livedev.org
livedev.org [http://livedev.org] life, web and rock'n'roll Социальные сети и виртуальные френды 5 Posted by dobrych Mon, 17 Dec 2007 00:49:00 GMT Немного непрограммерской тематики не помешает :-) Хочу наладить контакт, так сказать, со своей читательской аудиторией (как громко сказано :-) Итак, ниже список моих профайлов в социальных сетях. Прошу меня зафрендить. Хочу знать своих читателей и быть «в контакте», как говориться. Кто меня знает лично и может написать рекомендацию в LinkedIn – сделайте это плз. Со своей стороны обещаю отписать тоже. Кто увлекается фото, тоже отметтесь в комментариях. www.flickr.com/photos/dobrych www. flick r .com Профиль на toodoo.ru – зарегайтесь как читатели сайта пожалуйста (ну и френды само-собой). Профиль в «Мой круг» – тут можете меня добавить в свой первый круг, будем знакомиться ближе :-) Страница на «Хабре» – а тут мне не помешает хорошая карма, как начинающему. Я сделал страницу со всеми моими основными контактами , так что пишите – буду рад пообщаться. Posted in офтопик Tags life , social , web Meta 1 trackback , 5 comments , permalink , rss , atom Не изобретая велосипед 3 Posted by dobrych Tue, 04 Dec 2007 20:16:00 GMT Хотел поделиться списком django-проектов , которые могут быть очень полезны при старте любого нового проекта. Чтобы, как говориться, «не изобретать велосипед». Из того, что пробывал лично я, советую: sorl-thumbnail – для генерации thumbnail картинок для ImageField , очень удобно, может делать crop, изменение качества для jpg, подробнее смотрите на сайте проекта (все параметры задаются прямо через темплейттаг, так что верстальщики не будут задалбывать каждый раз когда нужно поменять размер картинки на фронтенде); django-registration – для автоматизации регистрации юзеров (проверка имейла итд), скорее всего будете затачивать под себя, так что годиться но с напильником; django-tagging – неплохая реализация тегирования для джанги, но требует доработки в плане оптимизации запросов к базе; django-template-utils – можно выцепить полезный код или использовать «как есть» при работе с темплейтами, полезные темплейттаги; Из того, что не пробывал, но советую пробывать читателям: django-voting – система рейтинга для контента (работает для юбой модели); django-evolution – новый проект для тракинга изменений схемы базы (моделей); сам не тестил, но отзывы хорошие; django-atompub – для генерации atom-фидов (feeds), намного гибче стандартного джанговского, очень хорошие отзывы; django-rest-interface – для создания ReST API , возможно для работы с ajax ; typogrify – для обработки вводимого/выводимого текста (правильные кавычки, тире итд); актуально только для англоязычных проектов, наша типографика отличается (читайте Лебедева); django-localdates – для корректной локализации дат; интересно как работает с русскими датами, кто может протестировать? Отдельно. Готовые к бою приложения: ByteFlow – блогодвижок , разработка моего товарища, оч советую (есть скрипт миграции с wordpress). feedjack – приложение, feed агрегатор на джанге. Полезно для коммунити-сайтов. webthumb-api – генерация превьюшек реальных сайтов (передаешь ссылку получаешь картинку). django-diario – блогодвижок , не смотрел код, кто пробывал или попробует – напишите комментарий о своем впечатлении. django-photologue – фотогалерея , тоже сам не пробывал, но судя по описанию довольно «продвинутое» приложение (кто попробывал – отпишитесь). snapboard – готовый движок форума , опять же не пробывал, если есть впечатления – напишите. Posted in обзоры Tags code , django , opensource , sample Meta no trackbacks , 3 comments , permalink , rss , atom XML vs JSON: или как общаются современные веб-приложения между собой 5 Posted by dobrych Tue, 13 Nov 2007 22:53:00 GMT Хочется высказать свою активную позицию насчет форматов передачи сообщений между приложениями в веб-среде. Или можете считать это просто настойчивым советом, особенно относящемуся к начинающим веб-разработчикам. Итак, что использовать? XML или JSON ? Общение (обмен сообщениями, если хотите) современных веб-приложений очень актуальная тема. В связи с появлением веб-сервисов в прошлом и огромным ростом популярности сложных (rich) интерфейсов в настоящем, появляется потребность в удобном и легком способе передачи данных между приложениями. Чаще всего подразумевается общение клиента и сервера. Частные случаи: всем полюбившийся Ajax , Flash/Flex приложения с динамическим контентом, API для публичных сервисов. Так вот исторически сложилось что для этих задач использовался изначально 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 по теме. Posted in заметки Tags ajax , javascript , json , web , xml Meta no trackbacks , 5 comments , permalink , rss , atom Мажорный дауншифтинг Posted by dobrych Mon, 05 Nov 2007 12:52:00 GMT После создания группы downshifting-ru и обсуждения в ней ряда вопросов, пришел к выводу, что многим IT-компаниям выгодно открывать офисы за пределами мегаполисов. После прочтения еще и о российских тенденциях , убедился в этом окончательно. Кому тема интересна, прошу ознакомиться с ситуацией в Украине по материалам рассылки – топик Полтава и топик IT-деревня Posted in заметки Tags downshifting , life Meta no trackbacks , no comments , permalink , rss , atom Ускорение загрузки веб-сайта на Ruby on Rails Posted by dobrych Wed, 31 Oct 2007 00:00:00 GMT Поигрался я на днях с интересным плагином к Firefox – YSlow от Yahoo и понял на сколько плохи дела у меня с оптимизацией загрузки веб-сайта. Очень полезная утилита, советую всем веб-мастерам, разработчикам и гикам. Для рельсов как всегда есть готовые дрезины, ой плагины :-) Поэтому сделать все получилось довольно быстро, не считая некоторого шаманства с typo. Есть две статьи по которым можно в элементаре поставить плагин и настроить на свой Rails-проект. Поэтому просто привожу на них ссылки – Сам плагин, с документацией и YSlow and Rails performance . Пошагово: ./script/plugin install http://sbecker.net/shared/plugins/asset_packager rake asset:packager:create_yml vim config/asset_packages.yml . См. мой вариант ниже. rake asset:packager:build_all Правим темплейт <%= javascript_include_merged :base %> , тоже для css – <%= stylesheet_link_merged :base %> Рестартуем (если надо) 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 Posted in заметки Tags asset , on , optimization , packager , rails , ruby , typo , yslow Meta no trackbacks , no comments , permalink , rss , atom UAWEB 2008 Posted by dobrych Fri, 05 Oct 2007 11:27:00 GMT Вот я получил письмо о том, что конференция UAWEB переносится на март, см подробнее . Что я могу сказать? Почитайте впечатления Ивана от конференции по python . На самом деле людям не нужна “помпезность”, им нужны интересные доклады и общение. Что ж хорошо, что как докладчик, я еще не убил кучу времени на подготовку… :-) После Нового Года займемся ;-) Posted in заметки Tags 2008 , conference , uaweb , web Meta no trackbacks , no comments , permalink , rss , atom Работа для Python программистов Posted by dobrych Thu, 04 Oct 2007 22:57:00 GMT В связи с тем, что в сфере веба и python у меня много знакомых, завел страницу у себя на блоге – Работа для Python программистов . Буду помогать и тем кто ищет себе разработчиков и самим разработчикам. Надеюсь, что через личное знакомство трудоустройство будет приятным для обеих сторон. Posted in заметки Tags cool , job , python Meta no trackbacks , no comments , permalink , rss , atom Python для веб-дизайнера или как писать гибкий CSS 3 Posted by dobrych Mon, 17 Sep 2007 10:21:00 GMT Сегодня в feed-ридер попало уведомление из django community про интересную python-библиотеку CleverCSS с примером кода для использования в Django, оригинальный пост автора . Библиотека позволяет писать CSS на Python с последующей конвертацией "на лету" или генерации статических файлов. Т.к. стили описываются на Python, то следовательно можно использовать всю его мощь для автоматизации дизайна. Представьте, что можно сгенерировать персональные стили для каждого элемента в базе (например для каждой фотки по ее id). Или, например, предоставить пользователям возможность настраивать внешний вид сайта (цвета, шрифт), что особо полезно при создании тем веб-сайтов. Хочу попробовать в деле и написать впечатление, а пока все еще мало свободного времени, решил просто поделиться интересной ссылкой. Если кто-то использовал, напишите впечатления. Posted in заметки Tags css , lib , python , style , webdesign Meta no trackbacks , 3 comments , permalink , rss , atom Семантическая верстка или тексты для роботов Posted by dobrych Thu, 06 Sep 2007 21:54:00 GMT После недавнего общения с Иваном , систематизировал в голове свои идеи насчет семантической верстки и связанных с ней нюансов. Главный вопрос: а зачем нужна семантика в верстке? Может это просто очередной понт, который не имеет реально важного значения? Хорошо, перейду сразу к делу без всякой теории. Итак случай первый , когда семантика мне оказалась необходима. Я думаю все, кто разрабатывали средние и мелкие веб-сайты, имели дело с текстовыми материалами заказчика (сделанные обычно в M$ Word). Или возможно Вам просто приходилось переделывать чьи-то текстовые документы (например при подготовке к диплому или редактировании статьи). Я уверен, что любой человек, читающий эту заметку, испытывал трудности при редактировании чужого текста. Типичные примеры это сбивка и прыгание абзацев, заголовков и особенно списков. Так вот любой среднестатистический пользователь ПК, скорее всего, при создании списков сам проставляет номера элементов, забивает пробелами отступы в абзацах, вместо того чтобы воспользоваться соответствующими пунктами меню. В принципе это вполне нормально для круга задач среднестатистического пользователя ПК. Но если пойти чуть дальше в использовании текстового материала, например экспорта в другой формат, то глюки в форматировании текста не заставят себя долго ждать. И даже хорошо поддерживаемый вордом RTF покажет пользователю все прелести несемантической верстки. А если Вам нужно конвертировать на другой носитель информации (например с экрана на бумагу, я не беру в пример стандартное распечатывание страниц в M$ Word), то тут скорее всего пользователя ждет еще больше сюпризов (наиболее часто замечаемый – это переносы строк). А при импорте неправильно сверстанных (читай несемантично сверстанных) документов в среду веб, необходимо перелопачивать весь текст и исправлять (обычно в ручную) неправильные элементы верстки. Далее, если даже осмотреться в самой среде веб, уже можно заметить все больше разноплановых устройств, с помощью которых можно читать веб-страницы. Особенности семантической верстки очень актуальны для мобильных устройств , т.к. они имеют нестандартные размеры экрана и сами браузеры имеют разный уровень качества по парсингу (x)HTML . Поэтому, чтобы оставить на совесть разработчиков мобильного устройства неправильное отображение сверстанных Вами страниц, нужно делать все по стандартам (в которые потом можно будет тыкнуть пальцем ;-)). Возвращаясь к началу моего первого пункта, замечу, что почти всех своих клиентов по разработке веб-сайтов я сначала консультировал, как правильно готовить контент к импорту и публикации на сайт. Случай второй , когда семантика очень полезна. Семантика в верстке всегда несет смысловую нагрузку. На любом этапе работы с контентом можно понять что хотел сказать контент-менеджер или просто автор текста. Если текст не единичный, а имеет какую-то периодичность, то четкое типовое форматирование намного снижает рутинную работу кодера или верстальщика. Также это очень помогает при создании стилей и оформления документов дизайнерами. Род работ зависит от типа документа (журнал, газета или веб-публикация), но идея семантически верного текста везде одинакова. Для меня это всегда было важно при написании стилей (CSS) для веб-страниц. Т.е. чем больше типовых элементов текста, тем более легко сверстать их внешний вид корректно и тем понятнее, что хотел сказать автор текста на всех промежутках работы над ним. И не забывайте про друга верстальщика – copy n paste ;-), тут семантика будет на Вашей стороне. Случай третий , самый важный. Автоматизация обработки текста. Часто один и тот же текстовый контент приходится держать в нескольки форматах. Типичный пример – страница веб-сайта доступная как pdf-документ и имеющая версию для печати. Все три варианта текста будут иметь разный внешний вид. Если просто веб-страницу и версию для печати можно просто настроить с помощью стилей (CSS), то с pdf такой вариант не пройдет. Тут нужна конвертация. Как раз на этом этапе будет видно качество верстки текста. Но это не совсем полный пример автоматизации. Некоторое время назад (достаточно давно) я писал на PHP CMS движок для веб-сайта. Одним из требований была синхронизация сайта по нескольким зеркалам. Синхронизация БД не была возможна по некоторым техническим причинам, поэтому был выбран вариант хранения всей информации в XML-файлах. Но немного поразмыслив я решил использовать XHTML формат для контента, в итоге в чистом XMLе хранилась только карта сайта, из которой генерировались URL. Почему же я выбрал XHTML? Дело в том, что XHTML может рендерить сам браузер (мне его остается только стилизовать, например с помощью CSS), поэтому отпадает нобходимость в конвертации текста в HTML формат. С другой стороны XHTML дает возможность работать с текстом средствами XML-утилит. В итоге получилась очень удобая смесь. При сохранении контента он строго семантически форматировался в нужные элементы с соответствующими аттрибутами, что давало возможность мне использовать их для стилизации на стороне клиента (через CSS) и обработки (фильтрации, выборки и поиска) на стороне сервера. Давайте рассмотрим пример.
Отличная погода сегодня в городе
2007/09/22 Весь город сегодня вышел на улицы, чтобы ощутить последнее осеннее тепло...
Подробнее ... some other text В данном примере я могу использовать названия элементов и аттрибутов в CSS файле для стилизации текста и в тоже время на стороне сервера, например с помощью xpath я могу выбрать все заголовки новостей. Вот пример xpath-выражения: /body[@id='root-node']/div[@class='news-node']/h1[@class='news-head'] . Самое главное что такой четко структуированный документ всегда будет легко экспортировать в любой другой формат. В данном случае, спустя год я переделывал сайт на django и буквально за несколько часов написал скрипт, который перевел весь контент (без единой потери) в базу джанги . На Python такой запрос будет выгялдеть так: import libxml2 xml = """ .... """ # тут кусок xml приведенный выше doc = libxml2.parseDoc(xml) head_node = doc.xpathEval("/body[@id='root-node']/div[@class='news-node']/h1[@class='news-head']")[0] print head_node.content Конечно я привел не все случаи и варианты применения семантической верстки, но это то, с чем я сталкивался сам. Интересно узнать мнения других. Так что пишите в комментариях, кто как использует семантику в реальной жизни . Posted in статьи Tags coding , css , html , python , semantic , text , xml Meta no trackbacks , no comments , permalink , rss , atom Downshifting-ru Posted by dobrych Mon, 27 Aug 2007 20:35:00 GMT После некоторой паузы решил продолжить развитие идеи насчет IT-деревни, а проще говоря идеи дауншифтинга. Для этого завел гугл-группу downshifting-ru . Приглашаю подписаться всех интересующихся, чтоб не потеряться в общении и продолжать делиться идеями и обсуждать все сложности и нюансы переездов, поиска интересных мест, поиска товарищей по переезду и т.д. Posted in заметки Tags downshifting , it , life Meta no trackbacks , no comments , permalink , rss , atom Older posts: 1 2 3 4 Searching... Про блог Блог о веб-программировании, саморазвитии и просто о жизни. Говоря кратко, просто интересные мысли и события из жизни веб-разработчика. Про автора Зовут меня Илья. Занимаюсь веб-разработкой. Интересуюсь новыми веб-технологиями, музыкой и персональным развитием. Подробнее. Категории статьи (4) заметки (27) обзоры (5) офтопик (2) Archives December 2007 (2) November 2007 (2) October 2007 (3) September 2007 (2) August 2007 (4) June 2007 (1) May 2007 (1) April 2007 (3) February 2007 (1) January 2007 (3) Теги blog conference django downshifting exception highlight howto html kiev life mysql python rails ruby soft syntax typo update web xml Немного рекламы Плюшки © livedev.org / powered by typo / styled with clerkly