Недавно инкапсулировал свой проект в namespace и столкнулся с проблемой отсутствия нормальной документации. Все, что удалось найти датируется примерно 2009 годом, а на дворе почти 2012… В найденном материале куча нерабочих мест, использующих то, что в нынешней версии php нет. В связи с этим хочу немного осветить этот вопрос.
Алексей @NeLexa
Пользователь
Popup с затухающим фоном с помощью jQuery
8 min
43K
Конечно же, не претендую на какую-то новизну, и данная заметка будет больше полезна начинающим с jQuery (коим и сам являюсь), чем людям, имеющим существенный опыт с данным javascript фреймворком.
+43
JavaScript паттерны… для чайников
8 min
181KОднажды вечером, сразу после того, как я закончил разбираться с наследованием в JS, мне пришла в голову идея, что пора бы заняться чем-нибудь посложнее — например паттернами. На столе внезапно оказалась книжка Gof, а на экране ноутбука появился труд с названием «JavaScript patterns».
В общем, спустя пару вечеров, у меня появились описания и реализации на JavaScriptе самых основных паттернов — Decorator, Observer, Factory, Mediator, Memoization (не совсем паттерн, а скорее техника, но мне кажется что она прекрасно в этот ряд вписывается) и Singleton.
В общем, спустя пару вечеров, у меня появились описания и реализации на JavaScriptе самых основных паттернов — Decorator, Observer, Factory, Mediator, Memoization (не совсем паттерн, а скорее техника, но мне кажется что она прекрасно в этот ряд вписывается) и Singleton.
+98
PhoneGap — решение проблем в первом приложении
4 min
16KPhoneGap — HTML5 платформа для разработки приложений под 7 существующих мобильных платформ. На днях они обновились до версии 1.2.0 и переехали под крыло Апачи. Адрес репозитория также обновился. На сайте в документации замечательная пошаговая инструкция для создания первого приложения, так что на вводной части больше не будем останавливаться, об этом уже писали. Мелкие проблемы начинаются, когда немножко выходишь за рамки стандартных возможностей платформы, но все решаемо.
Захотел я сделать нидерландско-русский словарь под Андроид за неимением приличного на рынке. Мне попался словарь отсканированный с хорошего бумажного. Процесс извлечения информации с картинок заслуживает отдельной статьи. Поэтому пропустим эту часть. В качестве первого этапа сделал словарь в виде html странички. По инструкции по созданию «hello world» сделал приложение и оно успешно запустилось. Дальше надо было обработать напильником и довести до ума детали.
Постановка задачи
Захотел я сделать нидерландско-русский словарь под Андроид за неимением приличного на рынке. Мне попался словарь отсканированный с хорошего бумажного. Процесс извлечения информации с картинок заслуживает отдельной статьи. Поэтому пропустим эту часть. В качестве первого этапа сделал словарь в виде html странички. По инструкции по созданию «hello world» сделал приложение и оно успешно запустилось. Дальше надо было обработать напильником и довести до ума детали.
+26
Splash Screen на J2ME
3 min
8.5KЗдравствуй %хабраюзер%!
Сразу хочу сказать что эта статья рассчитана на новичков а не на продвинутых гуру.
J2ME умерла... А вот и нет!
Информационные технологии стремительно развиваются, с приходом в нашу жизнь смартфонов, КПК и прочих новшеств — люди начали быстро забывать про телефоны, разработка программ на J2ME притихла. С слезами на глазах, до последнего вздоха, хочется верить что это не так. И кажется. уже завтра, ты увидишь новую статистику — статистику где java 2 micro edition не уступает никому, и даже наоборот — превосходит цифрами. Увы, наверное это всего лишь мечты.
Вспоминается то время, когда слово «j2me» было у всех на устах, а форумы гнулись от вопросов и идей, связных с j2me. Это была и есть воистину мощная технология! Такой она для меня и останется.
Выше и выше поднимаются статистики продаж device'ов с установленной OS. Статистики — это хорошо, но можно ли им доверять на все 100%? Я например не могу, потому что каждый день вижу много трубок, в людей которые могут запросто позволить себе купить дорогой Android или продукцию от Apple. Но теме не менее пользуются обычными телефонами, Samsung, Sony Ericsson, Nokia.
А на вопрос:
— «Почему Вы не купите новинку?»
Отвечают с гордостью:
— «Меня и тут все устраивает».
Однако принцип «Только для звонков» в моем случае не работает. Часто замечаю как знакомые в полную силу используют функционал простого телефона. Когда надо быстренько пополнить счёт мобильного себе или родным — не раз видел что делали это при помощи WM Keeper Mobile. Также записывают встречи, важные даты, органайзер работает как надо. Читают новости в родном RSS Reader'e, Отправляют электронную почту и даже пишут в свой Blogger-блог. И это действительно так!
После таких слов хочется включить классическую музыку, открыть любимый NetBeans и программировать, программировать и ещё раз программировать. Чем кстати мы сейчас и займемся. А напишем мы Splash Screen, подробней под катом…
Дисклеймер:
Сразу хочу сказать что эта статья рассчитана на новичков а не на продвинутых гуру.
Информационные технологии стремительно развиваются, с приходом в нашу жизнь смартфонов, КПК и прочих новшеств — люди начали быстро забывать про телефоны, разработка программ на J2ME притихла. С слезами на глазах, до последнего вздоха, хочется верить что это не так. И кажется. уже завтра, ты увидишь новую статистику — статистику где java 2 micro edition не уступает никому, и даже наоборот — превосходит цифрами. Увы, наверное это всего лишь мечты.
Вспоминается то время, когда слово «j2me» было у всех на устах, а форумы гнулись от вопросов и идей, связных с j2me. Это была и есть воистину мощная технология! Такой она для меня и останется.
Выше и выше поднимаются статистики продаж device'ов с установленной OS. Статистики — это хорошо, но можно ли им доверять на все 100%? Я например не могу, потому что каждый день вижу много трубок, в людей которые могут запросто позволить себе купить дорогой Android или продукцию от Apple. Но теме не менее пользуются обычными телефонами, Samsung, Sony Ericsson, Nokia.
А на вопрос:
— «Почему Вы не купите новинку?»
Отвечают с гордостью:
— «Меня и тут все устраивает».
Однако принцип «Только для звонков» в моем случае не работает. Часто замечаю как знакомые в полную силу используют функционал простого телефона. Когда надо быстренько пополнить счёт мобильного себе или родным — не раз видел что делали это при помощи WM Keeper Mobile. Также записывают встречи, важные даты, органайзер работает как надо. Читают новости в родном RSS Reader'e, Отправляют электронную почту и даже пишут в свой Blogger-блог. И это действительно так!
После таких слов хочется включить классическую музыку, открыть любимый NetBeans и программировать, программировать и ещё раз программировать. Чем кстати мы сейчас и займемся. А напишем мы Splash Screen, подробней под катом…
+3
RedBeanPHP — еще одна ORM библиотека
3 min
32K
На хабре нашел пару упоминаний про эту ORM, да и то давно и в комментариях. Недавно обнаружил, что вышла уже вторая версия. Желающим — вот ссылка на загрузку (GitHub) и на документацию
Цель этой статьи — кратко познакомить читателей с этой ORM-библиотекой.
RedBeanPHP — еще одна ORM-библиотека. Основное ее отличие от коллег, типа Propel или Doctrine, в отсутствии необходимости ручного конфигурирования объектов. Т.е. никаких xml, yml или ini-файлов. RedBenPHP на лету создает таблицы, поля и индексы. Любой объект можно связать с другим. Из БД поддерживаются MySQL, SQLite и Postgres.
+50
PHP: Расширенный текучий интерфейс
5 min
3.8KУверен, что многим из вас, кто читает этот текст, знакомо понятие Текучий интерфейс. И даже если вы про него не слышали, уверен, что вы им пользовались и не раз. Это действительно удобно. Так о чем же идет речь?
Вот небольшой пример. Мы можем в строчку, последовательно, производить действия. Этот же принцип лежит в основе популярной библиотеки jQuery. Да что тут говорить, все современные фреймворки изобилуют подобными конструкциями. А вот что если использовать подобный механизм для построения всего сайта?
<?php
class Images {
public $width;
public $height;
public function SetWidth($value) {
$this->width = $with;
return $this;
}
public function SetHeight($value) {
$this->height = $value;
return $this;
}
}
$images = new Images();
$images->SetWidth(100)->SetHeight(100);
?>
Вот небольшой пример. Мы можем в строчку, последовательно, производить действия. Этот же принцип лежит в основе популярной библиотеки jQuery. Да что тут говорить, все современные фреймворки изобилуют подобными конструкциями. А вот что если использовать подобный механизм для построения всего сайта?
+23
Opera Mobile Emulator 11.5
1 min
7.4KВышла новая версия Opera Mobile Emulator, которая теперь соответствует текущей версии Opera Mobile 11.5. В новой версии обновился список устройств, на которые можно имитировать при запуске Opera Mobile, а также обновилась сама панель запуска.


+28
Эмуляция интерфейса iPhone с помощью CSS
1 min
3K
Координатные данные проекта UiUiKit (Universal iPhone UI Kit):
- Сайт автора: www.minid.net
- SVN URL: code.google.com/p/iphone-universal/source/checkout
- Download: code.google.com/p/iphone-universal/downloads/list
Оригинально библиотека заточена под web-приложения именно для iPhone, поэтому всякий CSS3+ ограничивается указанием свойств только для
webkit
'а. Я пропатчил CSS директивами для остальных и развернул демонстрационную страничку, чтобы можно было сразу потыкать в элементы интерфейса. Выглядит симпатично (на картинке в начале топика — скриншот моего браузера). Приятного использования!
+53
Исправление и изменение кодировок MySQL
3 min
26K
В статье описывается не то, как первоначально правильно настроить кодировки MySQL (об этом уже довольно много написано), а о случаях, когда есть довольно большие таблицы с неправильными кодировками и нужно всё исправить.
Самое плохое в неправильно настроенных кодировках — то, что зачастую проблему сложно обнаружить, и с первого взгляда может казаться, что сайт работает правильно, и никаких проблем нет.
+32
Упрощение жизни разработчика с помощью сторонних сервисов
3 min
9.7KПредставляю скромную подборку сервисов, которые ускоряют экономят время разработчику и/или ресурсы сервера. Здесь не будет подробных обзоров, только список с кратким описанием и ссылками. Также, я не претендую на свежесть ресурсов, поэтому кому-то перечисленный список покажется слишком очевидным и известным всем.
Буду рад включить ссылки и описания, предложенные в комментариях.
Google Fusion Tables
Позволяет развернуть реляционную базу данных на серверах гугла с обращениями с помощью библиотеки Visualization или JSONP.
Статья на хабре: habrahabr.ru/blogs/webdev/116035
Ссылка: www.google.com/fusiontables/Home
Минусы: количество обращений в секунду равно пяти с одно IP адреса и столько же при обращении с аккаунта (используя авторизацию). То есть развернуть сайт с хорошей посещаемостью и работать с сервисом с помощью сервера не получится. Стоимость увеличения лимита — от 10 тысяч долларов в год (см. Maps API Premier). Кроме того, отсутствуют джойны, которые заменяются представлениями (view), создаваемыми через интерфейс.
Буду рад включить ссылки и описания, предложенные в комментариях.
Google Fusion Tables
Позволяет развернуть реляционную базу данных на серверах гугла с обращениями с помощью библиотеки Visualization или JSONP.
Статья на хабре: habrahabr.ru/blogs/webdev/116035
Ссылка: www.google.com/fusiontables/Home
Минусы: количество обращений в секунду равно пяти с одно IP адреса и столько же при обращении с аккаунта (используя авторизацию). То есть развернуть сайт с хорошей посещаемостью и работать с сервисом с помощью сервера не получится. Стоимость увеличения лимита — от 10 тысяч долларов в год (см. Maps API Premier). Кроме того, отсутствуют джойны, которые заменяются представлениями (view), создаваемыми через интерфейс.
+142
Как на самом деле работает mod_rewrite. Пособие для продолжающих
17 min
280K
Эта статья выросла из идеи продвинутого обучения наших сотрудников технической поддержки работе с mod_rewrite. Практика показала, что после изучения имеющихся в большом количестве учебников на русском языке саппортам хорошо дается решение шаблонных задач, но вот самостоятельное составление правил происходит методом проб и большого количества ошибок. Проблема заключается в том, что для хорошего понимания работы mod_rewrite требуется изучение оригинальной англоязычной документации, после чего — либо дополнительные разъяснения, либо часы экспериментов с RewriteLog.
В статье изложен механизм работы mod_rewrite. Понимание принципов его работы позволяет четко осознавать действие каждой директивы и ясно представлять себе, что происходит в тот или иной момент внутри mod_rewrite при обработке директив.
Я предполагаю, что читатель уже знаком с тем, что такое mod_rewrite, и не буду описывать его основы, которые легко найти в интернете. Также нужно отметить, что в статье освещается работа mod_rewrite при использовании его директив в файле .htaccess. Отличия при работе в контексте <VirtualHost> изложены в конце статьи.
Итак, вы изучили mod_rewrite, составили несколько RewriteRule и успели столкнуться с бесконечными перенаправлениями, со случаем, когда правило почему-то не ловит ваш запрос, а также с непредсказуемой работой группы правил, когда последующее правило неожиданно изменяет запрос, кропотливо подготовленный правилами предыдущими.
Почему так происходит?
+198
Автоматизация работы интернет-радио на Linux
18 min
33KПривет, `whoami`.
В этом посте я расскажу тебе об одном из методов автоматизации интернет-вещания – не самом надежном, но самом бюджетном. Сразу предупреждаю, что эта система заточена на использование ее под Linux, хотя с помощью знакомого многим «столярного инструмента», можно и под Windows реализовать. Эта статья расчитана на начинающих IT-шников, поэтому многие моменты я постарался «разжевать». Как у меня это получилось, решать тебе, мой дорогой читатель, но если мне удалось заинтересовать тебя, прошу под кат.
В этом посте я расскажу тебе об одном из методов автоматизации интернет-вещания – не самом надежном, но самом бюджетном. Сразу предупреждаю, что эта система заточена на использование ее под Linux, хотя с помощью знакомого многим «столярного инструмента», можно и под Windows реализовать. Эта статья расчитана на начинающих IT-шников, поэтому многие моменты я постарался «разжевать». Как у меня это получилось, решать тебе, мой дорогой читатель, но если мне удалось заинтересовать тебя, прошу под кат.
+56
Стратегия оптимизации веб-проекта с использованием MySQL
5 min
8.3KВведение
В жизни любого крупного веб-проекта, особенно на PHP, но, в целом, это касается любого серверного ЯП, пригодного для веб-разработки, обычно наступает понимание, что «так дальше жить нельзя», и что настал момент, когда нужно провести оптимизацию работы сайта, чтобы он перестал тормозить (хотя бы на production).
Интересно, что, как правило, даже тяжелые фреймворки (вроде Symfony или RoR) на «медленных» языках, в production-окружении работают достаточно сносно по скорости, а основные «тормоза» вызываются SQL-запросами и неграмотным кешированием (к примеру, инициализация достаточно сложной и большой конфигурации проекта на Symfony занимает около 80 мс, а времена исполнения страницы, при этом, иногда достигают секунды и более).
Если вы смогли определить, что это — ваш случай, и ваш проект на MySQL, то эта статья может вам помочь принять конкретные меры и исправлению ситуации с закреплением результата и предотвращением возникновения откровенных проблем с СУБД впоследствии.
+78
10 рекомендаций по html-верстке электронных писем
4 min
107KРекомендация первая: забудьте про блочную верстку. Весь лэйаут должен быть на таблицах. При этом, без крайней необходимости — их тоже лучше не использовать. Также следует выкинуть из головы представления о семантике, сокращенных css-правилах, валидации, плавающих блоках — и прочее. Самый распространенный в РФ почтовый сервис на данный момент (mail.ru) вообще не понимает стили (css). Любые тэги/атрибуты style заменяются на xstyle и не работают. Вообще все.
Так что, фактически, при вёрстке html для почтовой рассылки надо мысленно переместиться в 90-ые годы прошлого века и смело использовать все распространенные приёмы того времени.
Для тех, кто с ними не знаком (как я был) — напомню:
Так что, фактически, при вёрстке html для почтовой рассылки надо мысленно переместиться в 90-ые годы прошлого века и смело использовать все распространенные приёмы того времени.
Для тех, кто с ними не знаком (как я был) — напомню:
+98
Грабли при верстке HTML писем
3 min
104KДовольно часто наши клиенты устраивают регулярные рассылки с новостями. Почти всегда их не устраивают текстовые рассылки или простое оформление HTML рассылок. Наши дизайнеры вовсю креативят, а мы потом набиваем шишки при верстке их макетов с корректным отображением во множестве почтовых клиентов.
Ниже список встретившихся нам особенностей и способы их разрешения (как то упорядочить их мне не удалось, поэтому всё идет единым списком)
Ниже список встретившихся нам особенностей и способы их разрешения (как то упорядочить их мне не удалось, поэтому всё идет единым списком)
+264
Легкий PERL-скрипт для отправки и приема SMS через мобильный телефон
8 min
7.6KПреамбула
В процессе самостоятельной разработки «Умного дома» ( далее по тексту УД) периодически возникала необходимость в написании небольших, но очень нужных утилит-программ-скриптов, в том или ином виде уже написанных и доступных на просторах интернет, но по тем или иным причинам непригодных для использования в проекте. «Почему непригодных?», спросит опытный Разработчик, может я просто «Не люблю кошек, потому, что не умею их готовить?».
+11
Немного о деревьях
3 min
28KВступление
Встречалась ли вам ситуация, когда необходимо реализовать хранение древовидной структуры в реляционной БД?

Примеров можно привести множество. Это и древовидные комментарии, и каталог продукции, и населенные пункты, разделенные по странам и областям. Я думаю, что каждый сможет самостоятельно привести несколько примеров.
В данном топике мы с вами поговорим об одной из тех возможностей, которые существуют для организации хранения деревьев в PostgreSQL — ltree.
+82
PNG — not GIF!
4 min
88KДоброго времени суток!
Вам когда-нибудь хотелось узнать как устроены файлы PNG? Нет? А я все равно расскажу.
Формат PNG(Portable Network Graphics) был изобретен в 1995 году, чтобы стать заменой GIF, а уже в 1996, с выходом версии 1.0, он был рекомендован W3C, в качестве полноправного сетевого формата. На сегодняшний день PNG является одним из основных форматов веб-графики.

Под катом вы найдете общее описание строения PNG-файла, некоторое количество картинок-схем, препарирование
в hex-редакторе, и, конечно, ссылку на спецификацию.
Вам когда-нибудь хотелось узнать как устроены файлы PNG? Нет? А я все равно расскажу.
Формат PNG(Portable Network Graphics) был изобретен в 1995 году, чтобы стать заменой GIF, а уже в 1996, с выходом версии 1.0, он был рекомендован W3C, в качестве полноправного сетевого формата. На сегодняшний день PNG является одним из основных форматов веб-графики.

Под катом вы найдете общее описание строения PNG-файла, некоторое количество картинок-схем, препарирование

+183
Как ускорить эмулятор Android на 400%
5 min
143KTranslation
Последние несколько месяцев я работал над SDK для Android, входящим в платформу управления контентом Nuxeo. Особенно много работы было в последнее время, с приближением официального релиза SDK. Я хочу поделиться несколькими практическими советами по поводу разработки под Android, в частности тестирования и эмуляции. Уже после нескольких дней разработки я понял, что работа с эмулятором Android — не сахар, потому что он чудовищно медленный.
Начнём с того что он медленно запускается, но даже если использовать для ускорения запуска снапшот состояния, выполнение кода все равно происходит медленно, особенно в режиме отладки.
Тонкая настройка параметров Qemu не слишком помогла — скорость работы эмулятора осталась медленной, возможно именно поэтому большинство разработчиков предпочитает использовать реальные устройства, подключенные по USB.
В любом случае, мне хотелось найти решение, потому что я хотел показывать результат работы приложения на проекторе и не хотел чтобы демонстрируемое приложение тормозило.
Начнём с того что он медленно запускается, но даже если использовать для ускорения запуска снапшот состояния, выполнение кода все равно происходит медленно, особенно в режиме отладки.
Тонкая настройка параметров Qemu не слишком помогла — скорость работы эмулятора осталась медленной, возможно именно поэтому большинство разработчиков предпочитает использовать реальные устройства, подключенные по USB.
В любом случае, мне хотелось найти решение, потому что я хотел показывать результат работы приложения на проекторе и не хотел чтобы демонстрируемое приложение тормозило.
+81
Information
- Rating
- Does not participate
- Location
- Нижний Новгород, Нижегородская обл., Россия
- Date of birth
- Registered
- Activity