Общедоступность. Люди думают о людях… 1

Posted by dobrych Wed, 08 Jul 2009 23:36:00 GMT

В английском языке есть слегка специфичное слово — accessibility, которое наиболее точно можно перевести как «общедоступность». Но в некоторых контекстах его очень сложно перевести из-за элементарных понятий, которые присутствуют в западном мире и отсутствуют «у нас».

accessibility logo

Наверно наиболее часто слово accessibility употребляется в отношении людей с ограниченными возможностями, или как у нас обычно говорят — инвалидами. Но понятие ограниченных возможностей намного шире инвалидности, эти ограничения могут быть временными, в связи с какими-то болезнями или травмами. Представим, например, как трудно человеку с загипсованной рукой управлять компьютером или элементарно кушать.

Теперь вернемся к нашему понятию «доступности». Доступность подразумевает возможность совершать эффективно (т.е. с минимальными затратами) какие-то действия, как людям полноценным, так и людям с ограниченными возможностями. Веб-разработчики сталкиваются довольно часто с этим понятием, читая англоязычных коллег. Но понятие доступности распространяется на все сферы жизни. Элементарные примеры доступности:

  • лестница с удобным поручнем;
  • специальный заезд для детских и инвалидных колясок в общественных местах;
  • наличие брайлевских надписей на кнопках банкомата;
  • полное ручное управление в автомобиле.

Доступность — это принцип, которым должны пользоваться дизайнеры, архитекторы, конструкторы и другие люди занимающиеся созданием вещей для повседневного использования. Необходимо правильно понимать, что обеспечение доступности намного важнее субсидий и льгот для ограниченных людей. Именно доступность может позволить им интегрироваться в общество и приносить пользу себе и другим (включая возможность трудиться и зарабатывать на жизнь).

К сожалению в пост-советских странах очень мало внимания уделяется этому вопросу. Как следствие у нас практически отсутствует минимальная доступность в быту. Я уверен, что многие видели, как тяжело приходится инвалидам за пределами их квартир. Это конечно наиболее заметная категория людей, на которых отражается доступность.

Wheelchair photo

Цель моей заметки — обратить на этот вопрос внимание. Т.к. программисты, потенциально те люди, которые могут первыми перенять опыт западных коллег и внедрить его при проектировании отечественных продуктов. Ведь как раз информационные технологии позволяют ограниченным людям эффективно интегрироваться в общество. Особенно важно учитывать, что среди них много талантливых и творческих людей.

Чтоб не быть голословным, я приведу несколько ссылок на сайты и работы людей с ограниченными возможностями.

Полный список известных людей с различными инвалидностями и болезнями (англ.) на www.reddisability.org.uk.

Еще впечетляют картинки из google images — disabled artists.

Итог: заметка вышла чисто теоретической, но именно с нее я хочу начать новую тему в моем блоге — Web Accessibility. Скоро будут практические заметки с примерами кода.

Линкотека №5. Дизайн веб-интерфейсов. 6

Posted by dobrych Fri, 15 May 2009 02:06:00 GMT

Сегодня подборка интересных ссылок по теме дизайна пользовтельских интерфейсов, или как говорят на «буржуйском» User Experience Design.

  1. UI-patterns — коллекция типовых решений (примеров) и скриншотов для создания веб-интерфейсов. Хорошо отсортирована. Будет полезна для вдохновения или поиска готового решения.

  2. Quince UX Design Patterns Listing — еще одна подборка подобная предыдущей, но тут более детальное описание каждого примера и дополнительные иллюстрации.

  3. UX Booth — блог о юзабилити и вообщем интерфейсах. Проводят периодически публичное юзабилити–тестирование разных сервисов и пишут критику.

  4. Product Planner — онлайн–сервис, позволяющий группе разработчиков описывать движение (навигацию) по страницам сайта (user flow на буржуйском). Сервис этот не сложный, функционал довольно ограниченный, но со своей узкой задачей справляется отлично.

  5. I ♥ wireframes — блог сербской девушки веб-дизайнера, собирающей фотографии и скриншоты wireframes (не знаю как перевести) и процесса их создания, которые используются для прототипирования интерфейсов. Хороший ресурс для вдохновения, особенно если вы еще толком не пробовали проектировать интерфейсы.

Пятерки считаю вполне хватит для первого поста на тему интерфейсов. Дальше будет меньше ссылок и больше личной писанины.

Буду рад, если напишите в комментариях какие ссылки оказались наиболее полезными. Это поможет мне определиться о чем написать следующий пост.

Есть ли жизнь на Марсе? Часть вторая

Posted by dobrych Sat, 25 Apr 2009 22:35:00 GMT

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

Отпуском думаю это и нужно считать, т.к. в моей жизни произошло очень важное событие, про которое не написать я просто не могу. У меня родился сын — Александр, я третий раз в жизни стал папой. Семейный отпуск — это главная причина, почему я так долго не обновлял этот блог. Мы с Аней уже «вошли в колею», Саша немножко подрос и появилось больше времени заняться своими проектами.

Теперь про работу. Так уж получилось, что последним постом перед моим семейным отпуском был именно пост про работу. Мне кажется, что это не очень хорошо, т.к. мне пришлось отказать нескольким компаниям, которые нашли меня через блог. Работа на самом деле нашла меня быстро, я рад, что это то, что меня интересовало. Но про работу отдельно напишу.

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

Жду заполненых форм :-) Если вам интересны другие мои проекты или просто чем я живу, заглядывайте в мой твиттер, я частенько его обновляю.

Линкотека №4. «Клиентура». 2

Posted by dobrych Fri, 02 Jan 2009 12:51:00 GMT

Сегодня подборка интересных ссылок по теме клиентских веб-технологий аля код для браузера.

  • Visual Event почетно занимает в этом списке первое место! Отличный JavaScript инструмент, выполненный в виде букмарклета. Позволяет просматривать привязку событий JavaScript к элементам страницы визуально. Поддерживает jQuery, YUI и MooTools. Отличный инструмент для дебага JavaScript. Посмотреть демо.

  • JS Bin — следующий инструмент для дебага JavaScript/HTML/CSS, позволяет интерактивно совместно нескольким разработчикам тестировать код. Поддерживает все мажорные JavaScript библиотеки (кроме ExtJS). Описать функционал трудно, попробуйте, в нем легко разобраться или посмотрите видео.

  • Twitterjs — небольшая JavaScript библиотека для интеграции твиттера в ваш сайт. Позволяет в несколько строчек подключить и настроить на свой влад ленту сообщений. На много удобнее чем стандартный способ, предлагаемый на страницах сервиса.

  • JazzRecord JavaScript ORM — новый проект, один из немногих решивших попробовать реализовать ORM на JavaScript. Проект вполне актуален, т.к. уже есть ряд технологий, где он может быть использован (Adobe AIR, Google Chrome и другие, используещие браузерные базы данных). Синтаксис ORM подобен ActiveRecord из Ruby on Rails.

Работа и вакансии для программистов

Posted by dobrych Sun, 14 Sep 2008 12:01:00 GMT

В связи с участившимися вопросами о поиске программистов и интересных вакансий, решил организовать у себя в блоге отдельный раздел.

Я уверен, что работа или сотрудник, найденные по личным рекомендациям, имеют больший шанс удовлетворить запросы как работодателя, так и соискателя. Так получилось, что у меня много друзей в реальном и виртуальном мире — программисты, разработчики, админы и другие ИТ-специалисты. Многие из них работают уже в менеджменте или на топовых позициях, плюс ко мне периодически обращаются компании и люди, которых я консультирую с просьбой помочь в поиске сотрудников. Поэтому, для небольшой организации процесса нахождения работодателей и соискателей я решил вести личную базу вакансий и резюме. Также я буду рад помочь моим читателям в этом вопросе.

Чаще всего ищутся разработчики со знанием Python, Ruby и JavaScript. Если вы пишите на PHP, CSS/HTML, хороший управленец, пиарщик или занимаетесь веб-дизайном, также добавьте ваше резюме.

Мои партнеры чаще всего предлагают контрактную работу в западных стартапах или рунет-проектах. Если вы тоже работодатель или вы просто ищите специалиста, пишите мне на личную почту dobrych [at] gmail.com

На сегодня есть две позиции, на которые требуются специалисты с опытом:

  • Ruby программисты для разработки и поддержки сайтов, построенных на Rails.
  • JavaScript программист с знанием ExtJS.

Последняя свежая информация и анкета для соискателя всегда на странице «Работа и вакансии».

Для работодателей есть возможность размещения баннеров и выделенных объявлений (виджетов).

Django 1.0

Posted by dobrych Thu, 04 Sep 2008 08:35:00 GMT

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

Так что ждите в скором будущем новых статей по Django тематике. Думаю осветить подробно:

  • эффективное создание форм;
  • кастомизация django admin интерфейса;
  • трюки с FileField и аплоадом в общем;
  • сигналы в django.

Django + Spawning! 3

Posted by dobrych Thu, 31 Jul 2008 12:36:00 GMT

Вышла новая переписанная версия Spawning — WSGI сервера. Главное достоинство это non-blocking IO, т.е. большие возможности по масштабируемости (scaling).

Spawning is a wsgi server which supports multiple processes, multiple threads, non-blocking HTTP io, and automatic graceful upgrading of code.

Это очередной способ запуска django и других python-приложений для веб. Пример команды для запуска django процесса:

spawn --factory=spawning.django_factory.config_factory settings --port 9090 -s 4 -t 100

Пример для запуска приложений через paste (например Pylons используют paste для деплоя):

spawn --factory=spawning.paste_factory.config_factory development.ini

Если захотелось поставить и попробовать:

sudo easy_install Spawning

Почитайте еще обзор Эрика на английском.

Update: как ни странно товарищ Александр aka piranha практически одновременно со мной написал статью как раз про деплой через WSGI. Так что моя заметка «пролетает как фанера над Парижем», ибо мягко говоря Spawing не самый быстрый вариант :-) Читайте — Amazon byteflow: WSGI серверы кратко и юзайте fapws2.

Django newforms-admin в trunk 1

Posted by dobrych Sat, 19 Jul 2008 04:01:00 GMT

Есть! Наконец-то замержили в trunk django newforms-admin — Changeset 7967. Учтите, что после апдейта нужно будет переписывать код для работы админки. Но новость однозначно отличная! Много новых фич и ближе к релизу 1.0

Как говорят «там»: stay tuned! Будут примеры по настройке новой админки.

А товарищу Brian Rosner респект за удачный мерж.

File uploads в django 3

Posted by dobrych Tue, 01 Jul 2008 16:39:00 GMT

ДА! Это наконец-то случилось! Иван может петь победоносную песню, он так долго боролся за решение этого вопроса!

By default, if an uploaded file is smaller than 2.5 megabytes, Django will hold the entire contents of the upload in memory. This means that saving the file involves only a read from memory and a write to disk and thus is very fast. However, if an uploaded file is too large, Django will write the uploaded file to a temporary file stored in your system’s temporary directory.

Полная дока по новому аплоаду — Django | File Uploads | Django Documentation.

Загрузка (upload) файлов на сервер с помощью Adobe AIR и JavaScript 1

Posted by dobrych Fri, 13 Jun 2008 09:24:00 GMT

Я давно планировал начать серию статей про фронтенд разработку, т.е. про JavaScript, CSS и HTML. Про верстку писать — уже «баян», тем более это не очень мне интересно. Так что буду стараться разбирать наиболее редкие и уникаьные примеры.

Adobe AIR logo

Adobe AIR — тема этой статьи. Тема не обзорная, а вполне кокретная. Итак, как сделаь загрузку файлов на сервер с помощью AIR и JavaScript. Оказалось есть нюансы, которые в документации не освещены.

Пример.

// что и куда будем заливать
var url = "http://img31.picoodle.com/upload.php";
var pictureFile = new air.File('/path/to/local.file');

// устанавливаем переменные и их значения для http запроса, как в html форме
var variables = new air.URLVariables();
variables.op = 'upload';

// настраиваем парметры http-запроса
var tmpRequest = new air.URLRequest(url);
tmpRequest.method = air.URLRequestMethod.POST;
mpRequest.contentType = 'multipart/form-data'; // это тип для загрузки файлов
tmpRequest.data = variables;
air.sendToURL(tmpRequest);

// аттач ивентов для прогресс бара и завершения загрузки
pictureFile.addEventListener(air.ProgressEvent.PROGRESS, callback_for_upload_progress);
pictureFile.addEventListener(air.DataEvent.UPLOAD_COMPLETE_DATA, callback_for_upload_finish); 

// выполняем загрузку файла на сервер (отличается от простых http-запросов).
pictureFile.upload(tmpRequest, 'pic', false);

Вот про ивент air.DataEvent.UPLOAD_COMPLETE_DATA в доке нигде не написано, я выцепил его из примера, написанного для Flex на AcionScript. Пример рабочий, опробывал. Его нужно дополнить хендлерами ивентов. Для примера:

function callback_for_upload_progress(event) { 
    var loaded = event.bytesLoaded; 
    var total = event.bytesTotal; 
    var pct = Math.ceil( ( loaded / total ) * 100 ); 
    air.trace('Uploaded ' + pct.toString() + '%');
}

function callback_for_upload_finish(event) {
    Console.log('File upload complete');
    air.trace(event.data); // вывод ответа сервера на консоль air (режим отладки)
}

Эта заметка для тех, кто уже хоть немного знаком с AIR. В следующем обзоре я пожалуй напишу пример для работы с файлами. Если нужно сделать пример «с нуля» для начинающих, напишите, попробую. Хотя я считаю, что в официальной доке как раз неплохо написано с чего начать.

Я почти уверен, что у вас есть не мало вопросов по этой новой теме. Пишите в комментах, мне будет более понятно на что больше стоит обратить внимание.

Про меня 5

Posted by dobrych Tue, 10 Jun 2008 22:56:00 GMT

Решил обновить страницу автора (тобишь о себе). Делаю копи-паст в ленту. Постоянная ссылка на страницу «Об авторе».

Об авторе

Зовут меня Илья, можно по-дружески — Илюха. Позывной в сети (всякие соц. сети, мессенджеры итп) — dobrych. Так что можете смело мне писать в Gmail/GTalk на dobrych [a] gmail.com и в Skype с тем же логином.

С программированием связан профессионально уже 7 лет, но в жизни много всего интересного помимо работы. Последнее время я все больше стараюсь заниматься творчеством — фотографией и музыкой. И чаще проводить время со своей веселой семейкой. Да, кто не знает, я — счастливый муж(ик) и отец двоих уматных детишек! :-)

Мне очень нравится писать, поэтому с Сентября 2006 я — блоггер. Планирую в будующем делать новые контент-проекты, скорее всего в формате медиа-блогов. Набегами пишу в Twitter / dobrych.

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

Еще я пользовтель Mac (macbook pro). Это не понты и не дань моде, а просто хороший инструмент в моих руках. Делюсь опытом работы с Mac в отдельном блоге — Appleworms

Далее в перемешку.

Мне нравится:

  • минимализм в дизайне;
  • беспроводные устройства;
  • смотреть старое кино;
  • слушать инди-музыку;
  • катать детей на шее;
  • путешествовать;
  • работать с компьютером в командной строке;
  • рассказывать;

Не воспринимаю:

  • снобов;
  • шансон, попсу и эмо;
  • виндовз.

Линкотека №3. «Как ляжет карта». 3

Posted by dobrych Thu, 22 May 2008 20:29:00 GMT

Как я вчера обещал, начинаю активнее добавлять контент :-)

Третий выпуск «Линкотеки» посвящен картографии и Google maps в частности. К слову, тема вообще очень интересная и популярная. Я, честно говоря, недооценивал ее увлекательность и предлагаемые возможности, пока не столкнулся с ней в одном их своих новых проектов. В блогах все чаще можно услышать новомодную фразу гео-тегирование, а на разных социальных сервисах все чаще предлагают привязать какую-то виртуальную информацию к географическим координатам. Так что будте готовы наваять свой код, когда столкнетесь с необходимостью работать с гео-данными.

  • Mapstraction — JavaScript библиотека для работы с многими картографическими сервисами через единый API.

  • Modest Maps — Библиотека для работы с картографическими сервисами на ActionScript (v2 / v3) и Python.

  • cfis — Блог Charlie Savage, разработчика GIS систем. Много информации общего характера для понимания тонкостей картографического софта, плюс примеры кода.

  • Google maps. Snap to Polyline (example) — Пример JavaScript кода для привязки курсора к полигонам и полилиниям в Google maps.

  • Google maps. Resizable Polygons (example) — Пример JavaScript кода для создания полигонов с возможностью ресайзинга в Google maps.

  • Take Control of Your Maps — Отличный обзор картографического (GIS) софта для построения веб-приложений от «A List Apart».

  • jMaps jQuery plugin — Плагин к jQuery для базовой работы с Google maps.

  • GeoDjango — Отдельная ветка django, отлично заточенная на работу с гео-данными (GIS). Фич очень много, советую хотя бы ради интереса ознакомится. Главным я считаю полную интеграция с PostgreSQL PostGIS на уровне ORM.

  • django-geo — В отличии от GeoDjango, облегченный вариант для интеграции гео-данных в ваш django-проект.

На этом, пожалуй остановлюсь. Если тема GIS и работы с гео-данными интересна, дайте знать. Если нет, то я не буду закидывать вас неинтересным контентом. Просто есть мысли в следующих постах привести некоторые куски кода по теме с объяснениями.

GIS in web (links)

Есть ли жизнь на Марсе? 2

Posted by dobrych Tue, 20 May 2008 22:56:00 GMT

Привет, уважаемый читатель! Я уже месяц как не обновлял свой блог, но это совсем не значит, что «жизни на Марсе нет». :-)

За этот месяц в реальной жизни у меня случилось несколько важных изменений, благодаря которым я отложил свои «виртуальные» дела на некоторое время. Итак:

  • поменял работу;
  • отметил свой «четвертак» (25-летие);
  • решил некоторые личные накопившиеся вопросы.

Теперь маленький анонс:

  • В связи с новой работой и новыми задачами, расширяю свой технически-профессиональный кругозор; теперь кроме python и django, второй основной темой моих постов будет frontend-разработка (в частности JavaScript, Adobe AIR и может Flex).
  • Накопилось много интересных ссылок, так что обязательно в скором — Линкотека.
  • В одном из проектов мы используем Google Maps, поэтому скорее всего будут заметки и про картографию.
  • И конечно более подробно напишу о моем завершившемся проекте и о новых двух.

Так что, как говорят «там» — stay tuned! :-)

Есть ли жизнь на Марсе?

Еще немного про php 20

Posted by dobrych Sat, 05 Apr 2008 17:18:00 GMT

Тему я зацепил острую, так что будем наяривать дальше :-). Не думайте, что тематика блога сменится на php vs *. Нет, скажу пару мыслей и дам несколько ссылок. Думаю на ближайшее будующее этого хватит.

Итак, читайте пост Николая про субъективные причины выбора языка Python для веб-разработки — Блог компании SmartWeb: Почему Python (Муки выбора). Коменты пестрят конечно, но обратите внимание, что ребята целой командой писали до этого на Java, а не на php.

Советую послушать подкаст Димы ЧестныхPython против PHP. С юмором и по теме.

И немного наблюдений от себя. Последнии пару недель я получил достаточно много разного фидбека по теме корявости php. Так что получилась некоторая закономерность в общении. Итак, немного фактов.

  • Примерно 50% утверждавших, что php «рулит», не знают никакого другого языка программирования.
  • Около 20% счастливы от самого факта перехода с enterprise (Java, .NET) технологии на динамический язык (php) и пока не осознали, что его им мало.
  • Около 25-30% процентов считают отсутствие поддержки python или ruby хостинг-провайдерами причиной для торможения личного развития, как программиста.
  • Больше половины писавших на каком-то другом языке программирования перед php, долго на php не задерживаются.

И в довесок хочу дать ссылку на хорошую новую документацию, точнее даже набор примеров работы на python с мелкими задачами — Python-by-example. Оглавление разбито по python-модулям. Ну и конечно, если кто-то решил ознакомиться с python или собирается начать писать что-то на нем, и при этом не знает с чего начать, могу посоветовать книгу В глубь языка Python. Я в свое время начал с придуманной мной самим задачи и официальной документации :-)

UAWEB 2008. Моя презентация к докладу + фото. 5

Posted by dobrych Fri, 28 Mar 2008 18:26:00 GMT

Спасибо всем, кто подошел ко мне познакомиться/пообщаться, было очень интересно. Все пропустившие ждите видео с докладами...

Пока что не готов ничего написать толкового про саму конференцию, сделаю это позже. Но впечатления однозначно позитивные! Материал моего выступления смотрите в pdf и в Flash.

Updated: сегодня обработал фото, выбрал получше которые и залил. Кому будут нужны версии с бОльшим разрешением — пишите в комментах имя файла, я вышлю.

Архив zip 12 Мб

UAWEB 2008 5

Posted by dobrych Wed, 26 Mar 2008 22:13:00 GMT

Я буду говорить про django в пятницу 28-ого на конференции UAWEB-2008. Хотелось бы завести новые знакомства. Мое фото справа в сайдбаре. Подходите — буду рад пообщаться!

Постараюсь писать с конференции по мере возможности. И выкладывать фото. После выходных попробую сделать отчет.

Update: Смотрите фото, залил несколько на фламбер — UAWEB 2008. Буду по мере обработки докладывать.

Пять инструментов 7

Posted by dobrych Tue, 04 Mar 2008 15:48:00 GMT

Долго не мог принять эстфаету от Ивана — 5 инструментов хе-хе. Загруз был последнее время, но буду исправляться. Написал свой скупой список из пяти наиболее используемых инструментов в работе. Кого что-то заинтересует более подробно — спросите в комментариях, с удовольствием расскажу.

  1. MacBookPro — это действительно инструмент, такой как рубанок, дрель или лопата :-) Отличное устройство, я использую его мощь на полную катушку. Не буду особо распыляться как все круто, т.к. пиара маков в сети куча и без меня...

  2. Из софта — TextMate. Это мега-удобный редактор. Программирую и пишу статьи в нем.

  3. Шелл (shell) или терминал или командная строка — это то, что позволяет мне работать с файлами и процессами на компе эффективно.

  4. Firebug — наше все для дебага javascript/ajax и css.

  5. Зеленый чай с лимоном (особенно в холодное время года). Горячее меня бодрит и заставляет мозги думать лучше, плюс кофеин и витамин C из лимона поднимают тонус.

Линкотека №2 6

Posted by dobrych Tue, 26 Feb 2008 07:04:00 GMT

Готова вторая подборка интересных ссылок с моими комментариями.

  • Google GData Authentication decorator — пример кода для работы с документами google на python (удобный декоратор).
  • Control Suite : High Quality Controls & Widgets for Prototype — интересный набор контролов и виджетов для javascript библиотеки Prototype.
  • FastInit: a faster window.onload — готвый javascript код (кроссбраузерный) для убыстренной инициализации и вызова js-скриптов. Очень удобно использовать вместо window.onload.
  • Cross-Fade Anything — еще одна javascript библиотека для создания слайд-шоу эффекта в Prototype.
  • Ext JS - JavaScript Library — очередной javascript тулкит для создания rich ui. Особенность в том, что он позволяет строить оконные интерфейсы aka browser OS.
  • LightWindow — реинкарнация популярного Lightbox JS. Позволяет делать js popup с любым контентом, в отличии от lightbox, который позволяет делать popup только картинки.

PS: если вы использовали что-то из указанного в ссылках — поделитесь, пожалуйста. Думаю многим будет интересно узнать чужое мнение.

Bug or Feature?

Posted by dobrych Mon, 14 Jan 2008 04:13:00 GMT

Пост для поднятия настроения в понедельник :-)

Коллега вчера вечером прислал ссылку, я посмеялся и отправил товарищам по проекту. А сегодня утром подумалось, что будет весело всем.

bug or feature

via ehlo - by Luchian Alexandru

Загрузка всех моделей в django shell автоматом 2

Posted by dobrych Thu, 10 Jan 2008 12:11:00 GMT

Наткнулся на интересную заметку. Как автоматизировать загрузку всех моделей из INSTALLED_APPS при запуске django python shell (manage.py shell).

from django.db.models.loading import get_models
for m in get_models():
    exec "from %s import %s" % (m.__module__, m.__name__)

Оказывается очень удобно! :-)

Оригинал — Peter Sheats’ Blog » Blog Archive » Autoloading Your Django Models

Линкотека №1 9

Posted by dobrych Tue, 08 Jan 2008 17:38:00 GMT

Решил сменить свою del.icio.us ленту в сайдбаре на более-менее регулярный постинг интересных ссылок.

А вот место в сайдбаре собираюсь заполнить блогроллом. Так что если хотите попасть в список — напишите мне на имейл или в комментарии свой сайт/блог. Добавляю на условии, что вы ставите на меня обратный линк.

Итак интересное, что я «нарыл» на просторах интернета за последние пару недель.

  • StaticGenerator for Django — ссылка дня! очень полезный проект для django-разработчиков, может генерировать статический html вариант сайта из моделей, пользуясь методом get_absolute_url. Самое главное, что через сигналы он может автоматом обновлять html-страницы при изменении/добавлении объектов (т.е. буквально данных в базе).
  • Evaluation of web based WYSIWYG-editors, test result 2007 — обзор онлайновых WYSIWYG редакторов (javascript и один на java), с него набрел на один интересный редактор (следующая ссылка).
  • WYMeditor - web-based XHTML editor — простой интересный онлайн редактор, без возможности upload/insert images, но зато более семантичный и наглядный для тех, кто знает HTML.
  • WYMstyle и css-boilerplate — css frameworks, хороши для веб проектов, когда у вас еще нет дизайна веб-сайта/веб-приложения, но вам нужно более-менее симпатично показать контент и функционал. Облегчают работу тем, кто не любит долгой возни с версткой.
  • swfobject 2 — новая переработанная версия (на данный момент rc1) javascript библиотеки для включения в страницу flash/flex роликов или приложений. Кто еще не пробывал — советую, намного удобнее, чем писать кроссбраузерные теги и делать ручные проверки нужной версии flash. Еще можно почитать блог разработчиков — SWFFix Dev Blog.
  • transdb — неплохая библиотека для локализации конента в django. Добавляет специальные многоязыковые текстовые поля в модель, что облегчает работу с базой и хорошо интегрируется с существующей системой i18n в django.
  • PyAMF — Реализация на Python поддержки протокола обмена данными AMF (от Adobe) для клиент-серверного взаимодействия. Используется во flash и других проектах Adobe. Данные по этому протоколу передаются в бинарном виде, что более-продуктивно с точки зрения потребления траффика, автоматизирована сериализация/десериализация данных как на стороне сервера, так и клиента.

XML vs JSON: или как общаются современные веб-приложения между собой 6

Posted by dobrych Tue, 13 Nov 2007 22:53:00 GMT

Хочется высказать свою активную позицию насчет форматов передачи сообщений между приложениями в веб-среде. Или можете считать это просто настойчивым советом, особенно относящемуся к начинающим веб-разработчикам. Итак, что использовать? XML или JSON?

Общение (обмен сообщениями, если хотите) современных веб-приложений очень актуальная тема. В связи с появлением веб-сервисов в прошлом и огромным ростом популярности сложных (rich) интерфейсов в настоящем, появляется потребность в удобном и легком способе передачи данных между приложениями. Чаще всего подразумевается общение клиента и сервера. Частные случаи: всем полюбившийся Ajax, Flash/Flex приложения с динамическим контентом, API для публичных сервисов.

JSON Rulez Так вот исторически сложилось что для этих задач использовался изначально XML, как универсальный способ описания любых данных. Но позже появился новый (популярный сегодня) формат – JSON. Про сам формат вы можете почитать в инете, благо информации достаточно. А вот свои субъективные плюсы и минусы я напишу ниже.

Плюсы JSON по сравнению с XML:

  • быстрее парситься;
  • легче визуально воспринимается;
  • нативно интегрирован в JavaScript (читай Ajax);

К этому списку могу добавить отрывки личного опыта. С парсингом и валидацией XML есть достаточно много проблем, зависящих от библиотеки с которой вы работаете. Сериализация данных в JSON обычно в коде занимает меньше места, чем кодирование сериализации в XML. Интересным практичным моментом есть именно разработка Ajax интерфейсов, где JSON сокращает JS код. Большим плюсом к этому является возможность использования того-же протокола не только Ajax-ом, но и например Flash/Flex приложением или сторонним сервисом как API.

Вывод. Я считаю, что XML на самом деле не так уж плох и для общения между приложениями, но он лучше подходит для хранения сложно структурированных данных. А вот большим плюсом JSONа как раз является сокращение времени на разработку базового веб-приложения и его дальнейшей быстрой интеграции с другими разнородными приложениями. Еще проще говоря, если вы собираетесь заняться изучением или сразу использованием Ajax в своих проектах, обратите внимание на JSON и сэкономьте свое время.

PS о недостатках. Посмотрите статью Tim Bray и Don Box по теме.

NO XML

Мажорный дауншифтинг

Posted by dobrych Mon, 05 Nov 2007 12:52:00 GMT

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

Кому тема интересна, прошу ознакомиться с ситуацией в Украине по материалам рассылки – топик Полтава и топик IT-деревня

Ускорение загрузки веб-сайта на Ruby on Rails

Posted by dobrych Wed, 31 Oct 2007 00:00:00 GMT

Поигрался я на днях с интересным плагином к Firefox – YSlow от Yahoo и понял на сколько плохи дела у меня с оптимизацией загрузки веб-сайта. Очень полезная утилита, советую всем веб-мастерам, разработчикам и гикам.

дрезина для рельсов Для рельсов как всегда есть готовые дрезины, ой плагины :-) Поэтому сделать все получилось довольно быстро, не считая некоторого шаманства с typo. Есть две статьи по которым можно в элементаре поставить плагин и настроить на свой Rails-проект. Поэтому просто привожу на них ссылки – Сам плагин, с документацией и YSlow and Rails performance.

Пошагово:

  1. ./script/plugin install http://sbecker.net/shared/plugins/asset_packager
  2. rake asset:packager:create_yml
  3. vim config/asset_packages.yml. См. мой вариант ниже.
  4. rake asset:packager:build_all
  5. Правим темплейт <%= javascript_include_merged :base %>, тоже для css – <%= stylesheet_link_merged :base %>
  6. Рестартуем (если надо) ruby- процесс.

Особенности движка typo. В app/helpers/articles_helper.rb есть специальный хелпер (page_header) для построения заголовка страницы, так вот вставку javascript надо делать именно там, а не в темплейте.

Так в чем же суть убыстрения? В том, что asset_packager пакует все css/js файлы в один (соответственно один js и один css файл). Плюс оптимизирует сам код – удаляет комментарии, лишние пробелы. Получаются в итоге два очень хорошо утрамбованные статические файла, которые еще при отдаче со сжатием (gzip) вообще будут грузиться моментально. Для примера по статистике YSlow livedev.org стал грузиться в два раза быстрее.

Мой config/asset_packages.yml

--- 
javascripts:
- base:
  - cookies
  - prototype
  - effects
  - typo
stylesheets:
- base:
  - theme/layout
  - theme/content
  - theme/body

UAWEB 2008

Posted by dobrych Fri, 05 Oct 2007 11:27:00 GMT

Вот я получил письмо о том, что конференция UAWEB переносится на март, см подробнее.

Что я могу сказать? Почитайте впечатления Ивана от конференции по python.

На самом деле людям не нужна “помпезность”, им нужны интересные доклады и общение.

Что ж хорошо, что как докладчик, я еще не убил кучу времени на подготовку… :-) После Нового Года займемся ;-)

Работа для Python программистов

Posted by dobrych Thu, 04 Oct 2007 22:57:00 GMT

В связи с тем, что в сфере веба и python у меня много знакомых, завел страницу у себя на блоге – Работа для Python программистов. Буду помогать и тем кто ищет себе разработчиков и самим разработчикам. Надеюсь, что через личное знакомство трудоустройство будет приятным для обеих сторон.

Python для веб-дизайнера или как писать гибкий CSS 3

Posted by dobrych Mon, 17 Sep 2007 10:21:00 GMT

Сегодня в feed-ридер попало уведомление из django community про интересную python-библиотеку CleverCSS с примером кода для использования в Django, оригинальный пост автора.

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

Хочу попробовать в деле и написать впечатление, а пока все еще мало свободного времени, решил просто поделиться интересной ссылкой. Если кто-то использовал, напишите впечатления.

Downshifting-ru

Posted by dobrych Mon, 27 Aug 2007 20:35:00 GMT

После некоторой паузы решил продолжить развитие идеи насчет IT-деревни, а проще говоря идеи дауншифтинга. Для этого завел гугл-группу downshifting-ru. Приглашаю подписаться всех интересующихся, чтоб не потеряться в общении и продолжать делиться идеями и обсуждать все сложности и нюансы переездов, поиска интересных мест, поиска товарищей по переезду и т.д.

life, web and rock'n'roll

Posted by dobrych Sun, 26 Aug 2007 21:15:00 GMT

life, web and rock'n'roll На днях, еще раз обдумав будующее моего блога, решил поменять немного его формат. Тоесть снова добро пожаловать на livedev.org – life, web and rock’n’roll.

Короче говоря программерским языком:

blog.version = blog.version + 0.1
blog.title = "life, web and rock'n'roll"
blog.keywords.append('downshifting')
blog.keywords.append('life')

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

IT-деревня или просто дауншифтинг 31

Posted by dobrych Wed, 15 Aug 2007 20:37:00 GMT

После достачно интересных дискуссий в комментах свежей статьи на DOU и в личной переписки с интересующимися, решился поднять смежную тему у себя.

Итак, представляю Вашему вниманию достаточно абстрактную, но интересную идею для тех, кто хочет развивать себя и не работать всю жизнь на дядей в больших корпорациях.

Суть в том, чтобы собрать небольшую компанию IT-шников, желающих переехать жить из больших городов поближе к природе и в более экологические места. Организовать коммуникацию для нормальной IT-работы, организовать сообщество для поддержки друг друга и личностного развития, возможно команду для совместных проектов. Преимущества:
  • близость к природе (читайте идеи дауншифтинга, см. гугл);
  • экологически чистая среда;
  • продуктивная работа и личное развитие.

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

Если Вам захотелось узнать немного больше про идею и пообщаться с теми, кому она также интересна, отпишите пожалуйста коммент к этой статье в виде:
  1. имя;
  2. email (защищайте от спама, я смогу прочитать);
  3. самое необходимое (минимальные условия) для переезда.

Как только я более менее сформирую идеи и напишу больше инфы, разошлю всем отписавшимся для ознакомления.