Neurons to bytes

В конце марта 2010 г. в Санкт-Петербурге пройдет первая в России конференция по Zend Framework (Регаемся, ребяты!)

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

На данный момент уже открыта предварительная регистрация на конференцию! Для решения ряда вопросов организаторам очень важно сейчас понять приблизительное количество человек, которые смогут посетить конференцию или каким-то иным образом принять участие в ней.

Каждый предстоящий доклад возможно обсудить на форуме ZF-сообщества. Ваше мнение очень важно для авторов!

Планируемые доклады

Жизненный цикл предложений (proposals) в проекте Zend Framework

Александр Веремьев (Zend Technologies, Zend Framework Core команда)

Zend_Search_Lucene в деталях

Александр Веремьев (Zend Technologies, Zend Framework Core команда)

Zend Framework и производительность

Александр Махомет (создатель сообщества ZendFramework.ru)

Zend Framework и MVC, «толстая» модель

Александр Стешенко (Norada Corporation, PHP-разработчик)


ФотоСтрана.ru: Прототипирование с использованием ZF (история боевого применения Zend Framework в highload-проекте)

Леонид Жаворонков (ФотоСтрана.ru, тимлид)

Использование очередей сообщений в повседневных проектах

Денис Баклыков (Обновление, веб-разработчик)

Zend Framework и Doctrine

Степан Танасийчук (руководитель веб-студии stfalcon.com)

Zend Framework и мультиязычность

Степан Танасийчук (руководитель веб-студии stfalcon.com)

История проекта e-Штаб

Анатолий Ларин (e-Легион, веб-программист)

Что нового несет нам Zend Framework 2.0?

Надежда Блинова (Wizartech, веб-программист), Георгий Туревич (Wizartech, ведущий веб-программист)

Интеграция Zend Framework c Javascript-фрэймворками jQuery и Dojo Toolkit

Георгий Туревич (Wizartech, ведущий веб-программист)

Смело обсуждайте доклады и регистрируйтесь!

За последними новостями можно следить здесь:
RSS-канал: feeds.feedburner.com/zfconf
Twitter: @zfconf
Группа Вконтакте: vkontakte.ru/club14951507

К участию также приглашаются информационные и финансовые спонсоры.

Встроенные переводы сообщений валидаторов в Zend Framework

В новом Zend Framework 1.10 появились переводы для встроенных валидаторов! Ура!
Теперь не нужно переводить самому, как, например, делал я когда-то. Теперь можно тупо:

$language = 'ru';
$translator = new Zend_Translate(
    'array',
    '/resources/languages',
    $language,
    array('scan' => Zend_Locale::LOCALE_DIRECTORY)
);

Zend_Validate_Abstract::setDefaultTranslator($translator);

И всё - радуемся.

Информация из оригинального поста Томаса Вейднера, разработчика i18n в ZF.

Микрофреймворк fab для nodejs

Наткнулся на замечательный микрофреймворк fab, который позволяет легко создавать простые серверные приложения на языке javascript, для веб-сервера nodejs.

Fab очень похож на ruby-фреймворк Sinatra, который является довольно популярной штукой в среде ruby-девелоперов, так как позволяет сделать легкое приложение, без использования тяжеловесов, таких, как Rails.

Например, так выглядит простейшее приложение в Sinatra:

require 'rubygems'
require 'sinatra'
get '/' do
  'Hello world!'
end

А вот так выглядит точно такое же приложение в fab:

fab = require( "./fab" ).fab;

( fab )
  ( "/", function(){ return 'Hello world!' })
.deploy();

Многословнее, но всё равно круто, да? Единственное там пока нету разделения запросов по REQUEST_METHOD, первой нужнейшей штуки для удобной реализации REST-сервиса.

Фреймворки для nodejs

logo
Я просто оставлю это здесь. Список фреймворков для nodejs, которые я нашёл:

  • Намётки и размышления одного дядюшки Бена, который пытается создать свой фреймворк на nodejs. Смешно, он обозвал Дэвида Хэйнемайера Хэнсона тупицей, это повеселило :) Готового кода я там так пока и не нашел. А вот страничка проекта.
  • Simplex - здесь есть интересные куски кода, стоит посмотреть. Хотя это так - не фреймворк, а просто эксперимент, созданный за пару вечеров.
  • Raccoon - эта штука уже посерьёзней остальных. Буду её исследовать.
  • Вот еще один фреймворк, nerve
  • В комментариях Kuroki Kaze подсказывает, что есть еще JSAN. опенсурсовая библиотека javascript, но честно говоря, не слишком много я полезного там увидел.
  • Список проектов на github, посвященных nodejs

Если кто знает еще фреймворки для nodejs, буду признателен за ссылки в комментах.

Вообще, мне кажется, серверное программирование на js штука весьма перспективная. Не хватает только мощного фреймворка, по типу Zend или пакетов CPAN, как в Perl, или Gems, как в Ruby. Но это вопрос времени и я думаю, на эту тему стоит написать отдельный пост.

Про интернационализацию и локализацию

Когда пользователь заходит на сайт, поддерживающий различные языки, то он должен выбрать тот язык, который подходит ему. В большинстве случаев язык, на котором отображается мультиязычный сайт определяется автоматически, на основе заголовка HTTP_ACCEPT_LANGUAGE, или на основе IP-адреса пользователя. Определять язык пользователя по его местоположению, при помощи IP-адреса неправильно, так как во-первых, правильно определить местоположение пользователя получится не всегда, а во-вторых, определять язык по местоположению это плохая идея.

Почему? Например, я могу находиться в Испании, и зайду на мультиязычный сайт из под локализованного на баскский язык браузера (я Баск), а страничка всё равно отобразится на Испанском языке, хотя я хотел именно баскский, который, к тому же, вообще не связан ни с одной известной языковой семьёй и по-испански я просто бы ничего не понял. Такое может случиться, если язык пользователя определяется по IP.

Итак, чтобы правильно определить язык пользователя, мы можем посмотреть только на HTTP_ACCEPT_LANGUAGE, кроме него мы можем узнать язык пользователя только если он сам его укажет. Read more

HTML5 Tabs: a first touch

HTML5 have a new, very convenient element section which is used to separate content. I tried to implement tabs using this element, because the standard solution on unordered lists (UL) or definition lists (DL) is not semantic, because the tab is not associated with his content area. Finally, one evening I did the first version, “quick and dirty”, but I tried.

So, let’s see the result: HTML5 tabs demo

These tabs have some drawbacks (fixed content area height and some others), so I accept suggestions for improvement (professionals will understand what I mean, when they’re look the sample code).

Updated at 24 dec 2009

HTML5 Tabs: Первая проба

В HTML5 есть очень удобные семантичные элементы section, которые используются для разделения контента.
Я попробовал реализовать с их помощью табы, так как стандартное решение на списках UL не является семантичным. В итоге, за вечер был сделан первый вариант, что называется “быстро и грязно”, но я старался.

Итак, смотрим демо: HTML5 tabs demo

Принимаю предложения по улучшению, так как табы имеют некоторые недостатки (профессионалы поймут о чем я, когда посмотрят код примера).

Интересная штука этот Rhino, или мысли о серверной разработке на Javascript

Давеча посмотрел на исходный код проекта Etherpad, который гугл недавно свернул. Долго искал внутри проекта что-то похожее на скрипты питона или чего либо еще модного, пока до меня не дошло: проект написан на Javascript. Достаточно было открыть любой файл с расширением js.

Как оказалось, проект написан на Rhino. Это такая имплементация javascript’а на Java. Хоть я в жизни ничего и никогда не писал на Java, но носорог меня определенно заинтересовал. Вообще, классная же идея, писать и на стороне сервера и на стороне клиента на одном языке, на Javascript?

По-моему махровому мнению - это круто. Я слышал краем глаза про такой проект, Jaxer, который позволяет использовать Javascript на стороне сервера, но не щупал его.

Нужно будет потом посмотреть, как там обстоят дела на предмет существования фреймворков для разработки на джаваскрипте на сервере. И вообще, какие есть препятствия для серверной разработки на JS. А то что-то не слышно про серверных разработчиков на этом языке.

Update:

Нашел классный проект Nodejs, это веб-сервер, использующий гугловский джаваскриптовый движок V8. Очень интересная разработка, попробую её собрать под nix и попробовать наваять какую-нибудь простую штуку. Наверное, получится пост.

How to work comfortably with layout blocks in Zend Framework

During my research, I found a convenient way to work with html blocks on the site. Almost every site has a number of blocks that should be present on some pages and absent on others. So, you need a flexible tool for managing the blocks.

I will present my vision of how to manage the blocks under Zend Framework.
Read more

Обновление кода к статье “Блоки в Zend Framework”

Я обновил статью Блоки в Zend Framework. Финальная версия и добавил в код дополнение, позволяющие передавать параметры главного контроллера в блок.
Это означает, что когда вы находитесь на странице, к примеру, http://example.com/pages/view/777 (где controller - pages, action - view и id - 777), то идентификатор (777) передастся так же в контроллер блока, который вы загружаете на данной странице, где его можно получить стандартным способом: $this->_request->getParam(’id’).