Search
Write a publication
Pull to refresh
0
Richard_Ferlow @Richard_Ferlowread⁠-⁠only

User

Send message

Оптимизатор загрузки JavaScript

Reading time2 min
Views1.9K
Я закончил разработку бета-версии своего оптимизатора загрузки JavaScript — jWidget SDK.

github.com/enepomnyaschih/jwsdk/wiki

jWidget SDK — это небольшой скрипт, сборщик (прекомпилятор) вашего JavaScript. Это обертка вокруг YUICompressor, которая автоматизирует сборку проекта и дает очень гибкую конфигурацию. Инструмент совместим с любой архитектурой сервера, со всеми JavaScript-фреймворками. Инструмент бесплатный, с открытым исходным кодом и имеет лицензию LGPL.

Инструмент успешно протестирован на нескольких коммерческих проектах с разной серверной архитектурой. В том числе (не имею права дать ссылки):

— Чистый веб-сервис на Java + AJAX + JS. Особенность приложения: весь-весь-весь контент рендерится динамически через JavaScript, и приложение грузится почти мгновенно благодаря браузерному кэшированию
— Один шахматный клиент на jQuery, встроенный в сайт на Zend Framework
— Клиент одного приложения на Adobe Air

Читать дальше →

Честная генерация DOCX файлов на PHP. Часть 2

Reading time7 min
Views30K
image Здравствуйте, уважаемое хабрасообщество!
Продолжаем историю про генерацию DOCX средствами PHP.

Что нас ждет сегодня:
  • Мы узнаем, как вставлять изображения в документ;
  • Просветимся на счет English Metric Units;
  • Сделаем задел на будущую генерацию Exel.

Тем, кто не в курсе, рекомендуется прочитать первую часть. Ну а кто в теме – прошу под кат
Читать дальше →

Шпаргалки для тех, кто делает первые шаги

Reading time1 min
Views31K


На картинке фрагмент отличной шпаргалки, где собраны основные электронные компоненты — их внешний вид и обозначения на принципиальных схемах.

Шпаргалка по электронным компонентам (PDF, 168Kb)
Шпаргалка по контроллерам AVR (ч.1) (PDF, 61Kb)
Шпаргалка по контроллерам AVR (ч.2) (PDF, 61Kb)

PS: Там же, на сайте, имеется любопытный блог с описанием эффектных электронных поделок. Культура исполнения на высоте, приведены ссылки на open source прошивки.

Техническое задание: как уберечь себя от ошибок и рисков

Reading time5 min
Views22K
Что делать, если разработка ТЗ не самого сложного проекта занимает пару месяцев? Какие шаги при разработке ТЗ могут уберечь от рисков и ошибок? В данной статье мы рассмотрим проблему не содержания документа, а методологию его разработки.
Читать дальше →

Tinyicon — счетчик в favicon на js

Reading time1 min
Views4.2K
Tinyicon это небольшая библиотека для манипуляции с favicon сайта для передачи информации о новых событиях. Для браузеров не поддерживающих canvas счетчик отображается в title страницы.

image

Примеры и ссылки инсайд

Автоматизация создания виртуальных хостов

Reading time2 min
Views12K
Доброго времени суток!

В процессе разработке всегда хочется автоматизировать рутинные операции (или мне так кажется) и приступить непосредственно к действительно интересным вещам. Так как я являюсь веб-разработчиком, для меня такой операцией всегда было развертывание окружения. Сегодня я попытаюсь максимально упростить задачу создания нового хоста для нового проекта на локальной машине.

Если Вас замучило ручное создание хостов для Apache, а использовать готовый пакет типа XAMPP или Denwer нету желания/возможности/свой вариант, прошу под кат.
Читать дальше →

Документация jQuery UI на русском

Reading time1 min
Views54K
В справочнике jquery.page2page.ru появилась документация jQuery UI. Помимо подробного описания каждого плагина, она содержит статьи о фабрике виджетов, с помощью которой можно создавать собственные подобные плагины, правилах темизации (оформления) виджетов UI, собственной системе позиционирования UI, а так же о расширенных анимационных эффектах, доступных при подключении jQuery UI к сайту. Ну и конечно же есть вводная статья с которой можно начать изучение jQuery UI.

Кроме этого, обновлена карта функций, в которую были добавлены методы с двух последних обновлений jQuery, а так же все плагины jQuery UI.

Представление многострочных данных в javascript и юзерскриптах

Reading time9 min
Views12K
Речь пойдёт о проблеме кроссбраузерного представления многострочных данных в javascript. Это могло не быть проблемой, если бы Firefox умел работать с функциями так же, как другие браузеры. Единый кроссбраузерный способ представления так и не найден, несмотря на 2-дневные усилия. Если бы он был, его, наверное, уже стали применять на сайте userscripts.org. Пока что имеется раздельный способ представления: один — для юзерскриптов Firefox, другой — для всех остальных. Также, для Scriptish существует возможность чтения формата метаданных (директив), что не охватывает произвольного формата, но решает задачу, чаще всего встречающуюся в юзерскриптах. Не рассматриваем решение с 2 запросами на сервер, с обращением к внешним HTML, XML и с дублированием данных, потому что хотим данные и скрипт получить в одном запросе, в одном файле, и файл этот — типа «text/javascript».
Читать дальше →

Юзерскрипт: кроссбраузерно, кроссдоменно

Reading time7 min
Views2.1K
Разработка юзерскрипта HabrAjax преодолела свои очередные проблемы с кроссбраузерной поддержкой новых функций и создала плеяду статей (7 штук, ещё не опубликованных) по разным вопросам, связанным в основном с юзерскриптами и их кроссдоменным доступом. Все эти статьи нетривиальны, в интернете их темы освещаются частично, а некоторые не освещаются даже в описаниях багов браузеров (или автору неизвестны иноязычные решения). Статьи придётся выкладывать в произвольном порядке, потому что нет оснований как-либо их упорядочивать — каждая связана с другой лишь по тематике. Сейчас я приведу анонсы статей, без ссылок, чтобы сложить представление, о чём пойдёт речь в дальнейшем. Реализация — в HabrAjax, но там довольно много прикладного кода, не слишком хороший пример для демонстрации. Поэтому для каждой статьи будут коды с более адаптированными примерами, насколько возможно.
Читать дальше →

Простая интеграция сайта и 1С

Reading time6 min
Views143K
image
Последнее время натыкался на несколько различных статей об интеграции сайта и 1С. В комментариях часто начинались споры о различных подходах, и я решил поделится способом который однажды довелось реализовать мне. Разумеется, описанный ниже способ не претендует на универсальность и единственность, но, думаю, будет полезен тем, кто только собирается писать свой вариант.
Читать дальше →

onlineMerchant: удобное платежное решение для онлайновых магазинов. Часть I

Reading time2 min
Views1.8K
Знакомясь с все большим количеством услуг от системы PaySto, я делаю вывод, что организована она очень разумно, рационально и удобно, и что каждый ее компонент функционирует в комплексе с другими, помогая нашим отечественным предпринимателям развивать свой бизнес. При этом, все их внимание может быть направлено именно на работу, предоставление услуг, организацию обслуживания их потребителей, но никак не на решение проблем с оплатой, ведением учета и рассылкой счетов. Эту роль берет на себя как раз система PaySto.
Читать дальше →

Красивые подсказки для jQuery Validation с помощью qtip

Reading time4 min
Views20K
Привет Хабр!
Хочу поделиться способом организации красивых подсказок для плагина валидации на jQuery. Для этих целей будем использовать еще один плагин создания красивых информационных сообщений — qtip.


Читать дальше →

Новый метод замены текста картинкой, или избавляемся от -9999px

Reading time3 min
Views37K
Хотелось бы поговорить о техниках замены текста изображением. Думаю, практически все сталкивались с моментами в верстке, когда, к примеру, для заголовка страницы нужно использовать графический объект, при этом сохранив под ним текст и для поисковых роботов, и для печатной версии. Да и в принципе, никогда не хочется ломать семантинку страницы.



Немного об истории решения этого вопроса.


Самой первой популярной техникой была так называемая FIR (она же — Fahrner Image Replacement), которая появилась в 2003-м году. Она проста как пень, и многие начинающие верстальщики ее до сих пор используют:
Читать дальше →

Использование результата jQuery.ajax вне функции вызова или можно обойтись и без cron

Reading time2 min
Views7.7K
Не так давно начал использовать jQuery.ajax. В процессе написания одного скрипта обнаружил, что нельзя немедленно использовать ответ ajax запроса. В моём случае запрос передается серверному скрипту, который в свою очередь со стороннего домена наполняет json файл. Наполнение firebug-ом отслеживается от 12 до 20 секунд, что достаточно долго по моим меркам (нельзя заставлять людей столько ждать). Придумал следующий выход из ситуации:

Вводим глобальную переменную (дата, курс валют к рублю):
Читать дальше →

Решение проблемы с появлением 8080 порта в ISP manager (настройка редиректа на 80 порт)

Reading time3 min
Views30K
Сегодня столкнулся с проблемой — обнаружилось, что по ошибке старого системного администратора, в одном очень редком случае у нас происходил редирект с обычного 80 порта на порт 8080.

Из-за этого в индекс яндекса попала целая куча страниц, имеющих адрес example.com:8080, потому что проблема существовала уже 3 года, а заметили ее только сейчас.

Проблема усугублялась тем, что сервер конфигурировался автоматически с помощью ISP manager, что привело к тому, что сайты были доступны как по адресу example.com, так и по example.com:8080, и с учетом того, что к серверу было привязано 5 ip-адресов и на нем крутилось около 20 сайтов, переконфигурировать все вручную чтобы сконфигурировать правильным способом апач и nginx (сделать, чтобы апач слушал только 127.0.0.1 и чтобы они висели на одном порту с nginx, а внешние адреса слушал только nginx) не представлялось возможным. Проблеме потенциально подвержены все сайты, которые пользуются ISP manager, поэтому я считаю ее достаточно актуальной, и решил опубликовтаь свое решение, чтобы все тоже проверили и исправили, если надо.

Соответственно стояла задача — «малой кровью» сделать:
1. чтобы сайт example.com корректно работал, но не открывался по адресу example.com:8080
2. чтобы с порта 8080 для одного определенного сайта шел редирект на 80 порт, чтобы сохранить работоспособность страниц, попавших в выдачу яндекса.

Читать дальше →

Начала отладки и профилирования веб-приложений

Reading time8 min
Views19K

Вступление


Много существует статей на Хабре, описывающих интересные и сложные аспекты веб-разработки, но много существует читателей, которые, находясь в начале своей карьеры веб-разработчика, хотели бы видеть материал, который позволил бы сделать первый шаг от «PHP за 24 часа» до разработки на серьезном уровне, и я хотел бы поделиться своим опытом в этом деле.

Особенности веб-приложения делают его разделенным на две части: клиентскую и серверную. На стороне клиента работает код на JavaScript (может быть, где-то можно найти и VBScript, но мы, пожалуй, не будем рассматривать этот случай), на серверной же — много что, в принципе, но мы рассмотрим PHP, наиболее популярный язык для серверной части веб-приложений. Так же интересно было бы поговорить об отладке и профилировании Flash-приложений на клиентской стороне, но затронутая тема и так обширна, так что пока оставим это.

Так же можно отнести к задачам отладки клиентского кода анализ и валидацию HTML кода. Это, вроде бы, задача не совсем из области программирования, но также немаловажная.

Некоторые части рассмотренных задач уже рассматривались в других статьях, и я предоставил на них ссылки.
Читать дальше →

Техническое задание на сайт

Reading time11 min
Views699K
UPD: Продолжение статьи с примером техзадания

Не так давно на хабре были две статьи (Согласно техническому заданию и А зачем мне ТЗ? Я и так знаю!) посвященные техническим заданиям. У меня обе статьи вызвали, мягко говоря, недоумение, в особенности статья «Согласно техническому заданию». На мой взгляд, это вообще вредная статья, которая приводит к неверному понимаю сути ТЗ. В связи с этим хочу выразить свой взгляд на этот вопрос. Не буду говорить обо всех тех. заданиях, слишком широка тема, но думаю смогу рассказать о ТЗ на сайт.

То описание технического задания, о котором речь пойдет ниже, не является пересказом ГОСТа, но скорее является его творческой переработкой, хорошо сдобренной горьким опытом. Описанный ниже подход к ТЗ не охватывает все аспекты сайтостроения, но задает общее направление.

Большинство сайтов можно отнести к маленьким и очень маленьким проектам, масштаба единиц человеко-месяцев. В силу малости размеров такие проекты спокойно поддаются хорошему продумыванию и легко реализуются с помощью водопадной модели, достаточно просто не лениться на каждом этапе разработки (от написания ТЗ до сдачи проекта). Применять к этим проектам гибкие методологии разработки нет смысла, а как раз есть смысл применять хорошее ТЗ. К тем сайтам, которые не попадают под водопадную модель не стоит применять описанный ниже подход.

1. Обоснование необходимости ТЗ


А зачем вообще нужно ТЗ на сайт? Заказчик говорит: «Нужен следующий сайт: каталог товаров, корзина, форма заказа, доставка, мы на карте, о нас, обратная связь». Что не ясно? Ничего необычного, всё обыденно и рутинно.

Разработчик отчетливо представляет, что нужно сделать, а сделать, в его понимании нужно вот так:



Далее много букв

Защищаем веб-формы от спама без CAPTCHA — 2: Ботобор

Reading time3 min
Views28K
Три года назад на Хабре была опубликована статья «Form Spam Bot Blocker: Защищаем Web-формы без CAPTCHA!», рассказывающая о принципиально отличном от CAPTCHA решении для PHP по защите форм от спам-ботов. Это решение основано на идеях, изложенных в своих статьях Филом Хааком (Phil Haack) — Honeypot Captcha и Недом Батчелдером (Ned Batchelder) — Stopping spambots with hashes and honeypots. К сожалению, предложенный в статье класс, написан для PHP4 и не развивается с 2007-го года. Хочу предложить вашему вниманию его аналог на PHP5.
Читать дальше →

Автозагрузка в PHP: начали за здравие, а кончили за упокой

Reading time5 min
Views23K

Предисловие переводчика


Данная статья является вольным переводом-пересказом поста The End of Autoloading
. Оригинальная статья не первой свежести, поэтому код приведенный в примерах может быть не актуален. В теме, которую затрагивает статья, самое главное — общий взгляд, а не конкретные примеры.

Предисловие


Автозагрузка в PHP отлично экономит время. Это позволяет писать скрипты не задумываясь о путях к библиотекам, которые вы используете. Но с приходом неймспейсов и под влиянием Java-стиля современных фреймворков ситуация изменилась. В ближайшем будущем автозагрузка будет повсеместно, но без единой выгоды старого ее стиля.
Читать дальше →

Честная генерация DOCX на PHP. Часть 1

Reading time4 min
Views73K
image Здравствуйте, уважаемое хабрасообщество! Как-то раз был на хабре интересный материал про генерацию doc-файлов средствами PHP. К сожалению, больше на хабре ничего на эту тему я не нашел. На тот момент я разработал собственное решение.
Оно состояло в том, чтобы генерировать .docx файлы. Аргументы были следующие:

  • На дворе 2012 год, а этот формат появился аж в 2007-м
  • Генерить .docx несомненно проще, чем .doc, поскольку .docx = .zip, а .doc — бинарный файл
  • Костыль с генерацией HTML и переименованием в doc не подойдет для более-менее уважающих себя проектов
  • С помощью приведенного ниже метода мы с легкостью сгенерируем Excel, и вообще всё что угодно.

Подробности под катом.
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Registered
Activity