Below is the text of the page https://livedev.org/articles/page/3 stored 2008-06-09 by archive.org.ua. The original page over time could change. View as original html

Older posts, page 3 : Веб-разработка «по-русски» | livedev.org

livedev.org [http://livedev.org] Веб-разработка «по-русски» 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 life, web and rock'n'roll Posted by dobrych Sun, 26 Aug 2007 21:15:00 GMT На днях, еще раз обдумав будующее моего блога, решил поменять немного его формат. Тоесть снова добро пожаловать на 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-лент. Posted in заметки Tags downshifting , life , livedev , update Meta no trackbacks , no comments , permalink , rss , atom IT-деревня или просто дауншифтинг 30 Posted by dobrych Wed, 15 Aug 2007 20:37:00 GMT После достачно интересных дискуссий в комментах свежей статьи на DOU и в личной переписки с интересующимися, решился поднять смежную тему у себя. Итак, представляю Вашему вниманию достаточно абстрактную, но интересную идею для тех, кто хочет развивать себя и не работать всю жизнь на дядей в больших корпорациях. Суть в том, чтобы собрать небольшую компанию IT-шников, желающих переехать жить из больших городов поближе к природе и в более экологические места. Организовать коммуникацию для нормальной IT-работы, организовать сообщество для поддержки друг друга и личностного развития, возможно команду для совместных проектов. Преимущества: близость к природе (читайте идеи дауншифтинга, см. гугл); экологически чистая среда; продуктивная работа и личное развитие. Это предложение будет особо интересно тем, кто уже не зависит в своей работе от географического расположения и тем кто собирается не зависеть :-) Если Вам захотелось узнать немного больше про идею и пообщаться с теми, кому она также интересна, отпишите пожалуйста коммент к этой статье в виде: имя; email (защищайте от спама, я смогу прочитать); самое необходимое (минимальные условия) для переезда. Как только я более менее сформирую идеи и напишу больше инфы, разошлю всем отписавшимся для ознакомления. Posted in заметки Tags downshifting , it Meta no trackbacks , 30 comments , permalink , rss , atom Обновление сайта или livedev beta 1 Posted by dobrych Fri, 03 Aug 2007 12:23:00 GMT Длительное время я не обновлял блог. На это несколько причин. Первая – это нехватка ресурсов. Т.к. на работе близится время запуска проекта, то на личные проекты остается все меньше сил и времени. Вторая причина – это желание сделать из livedev нечто большее, чем просто персональный блог. Обдумывая на досуге дальнейшие планы по развитию сего сайта, пришел к выводу, что пора его одеть в свой уникальный дизайн и публиковать немного больше обзоров и мнений на более широкую тему. Все конечно будет крутиться вокруг веб-разработки, поэтому круг читателей надеюсь не поменяется, а только расширится. Текущий внешний вид конечно нельзя назвать полноценным дизайном, это всего лишь наброски. Но я решил обновить темплейт блога в любом случае, хотя бы как beta вариант. Чтобы это стало стимулом быстрее довести внешний вид сайта до конечного варианта. Сделаю предварительный анонс, что именно хочу обновить/добавить на сайте в первую очередь: несколько статей или заметок на тему django + ajax; пробный подкаст на тему веб-разработки; улучшить текущий стиль сайта. Posted in заметки Tags beta , design , livedev , site , template , typo , update Meta no trackbacks , 1 comment , permalink , rss , atom Перевод интерфейса Typo на русский 3 Posted by dobrych Wed, 06 Jun 2007 23:45:00 GMT Я практически закончил сабж. Осталось немного согласовать с trunk-ом. Если кому-то интересно попробывать beta-версию, напишите мне на dobrych [at] gmail.com. Интересно Ваше мнение прежде чем буду выкладывать в общее пользование. Posted in заметки Tags interface , russian , translation , typo Meta no trackbacks , 3 comments , permalink , rss , atom XML-сервисы на Python. Часть первая. Создание и парсинг XML. 2 Posted by dobrych Wed, 02 May 2007 08:12:00 GMT Недавно второй раз на практике столкнулся с серьезной задачей по работе с XML на Python. И второй раз был расстроен. К сожалению не все просто в Python настолько, насколько хотелось бы. Говоря в общем, встроенная в последний Python (2.5) ElementTree не совсем хороший выбор, как по мне, для полноценной работы с XML . С помощью ElementTree удобно создавать XML -документы, но никак не парсить. Я был удивлен, что такая простая задача как принять XML -документ из переменной—окажется такой замороченной… ElementTree заточен для парсинга файлов (т.е. ему нужно передавать при открытии или путь или уже открытый файл). В моем случае я уже имел переменную из HTTP -запроса, обработанного Django. Несколько часов я плясал с бубном, сначала чтобы заставить принять XML -документ из переменной, потом уже с самим парсингом и получением аттрибутов тегов. В общем убил много времени впустую, что очень неприятно. В довесок ко всему общеизвестный факт что ElementTree имеет очень ограниченную документацию, поэтому время было потрачено дополнительно на гугление и ковыряние в его сырцах. Хочу отметить что создание XML -документа с помощью ElementTree оказалось достаточно простым и удобным. А начинали мы именно с создания, поэтому и парсинг позже пытались делать тем же ElementTree . В итоге, после всей возни, я решил для парсинга использовать отдельную библиотеку— Beautilful Soup . И работа сразу пошла очень быстро. Главное достоинство Beautilful Soup —это практически полная сериализация XML -документа в объекты Python. Что очень хорошо отражается на читаемости кода и очень удобно при отладке. Насчет создания документов с помощью Beautilful Soup , ничего сказать не могу, т.к. небыло времени для себя потестировать. Из прошлого своего опыта также добавлю, что есть еще одна библиотека для работы с XML на Python— lxml . Она базируется на Cи библиотеках libxml и libxslt. Которые в свою очередь используются в большом количестве unix-приложений и других скриптовых языках. Прошлая моя задача была свзязана с выборкой данных из XML -документов с помощью Xpath. Так вот lxml и в частности libxml имеет хорошую и удобную реализацию Xpath. Так что рекомендую. PS: Все написанное выше—сугубо личное мнение, на которое в принципе имею право :) Ниже примеры кода. # пример парсинга XML через Soup from BeautifulSoup import BeautifulStoneSoup as Soup def some_view(request): message = Soup(request.raw_post_data) some_obj = Obj(content = message.body.string, phone = message.sin.string) # message.body - body это xml тег # пример создания XML-документа import elementtree.ElementTree as ET # создаем документ root = ET.Element("message") # рутовый элемент root.set("rid", "7idfndsi9s") # устанавливаем ему аттрибут sn = ET.SubElement(root, "sn") sn.text = "1039303" body = ET.SubElement(root, "body") body.set("content-type","text/plain") body.text = "somte text content" message = ET.tostring(root) Вот такой код генериться (из предыдущего примера) 1039303 somte text content Posted in статьи Tags elementtree , python , service , soup , xml Meta no trackbacks , 2 comments , permalink , rss , atom Older posts: 1 2 3 4 5 6 Searching... О блоге Мысли, идеи, задачи и решения по веб-разработке. Взгляд с персональной позиции автора. Об авторе Зовут меня Илья. В рабочее время занимаюсь веб-разработкой. Интересуюсь новыми и модными веб-технологиями. Нерабочее время посвещаю семье, по возможности фотографии и музыке . Подробнее. Tags 2008 ajax conference css development django downshifting exception javascript kiev life python rails ruby syntax typo uaweb update web xml Блогролл Amazon byteflow Маниакальный Веблог Подробно Appleworms Андрей Ясинецкий Собираю блогролл Свежие комментарии by krovati-gostinichnye on Мультисайтовость в django trunk by mybryco on Линкотека №2 by krovati-gostinichnye on Мультисайтовость в django trunk by farinaska on Не изобретая велосипед by semicon on Линкотека №2 Archives May 2008 (2) April 2008 (2) March 2008 (5) February 2008 (2) January 2008 (4) 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) December 2006 (4) November 2006 (4) October 2006 (4) September 2006 (3) del.icio.us/dobrych/webdev Design Stencils - Yahoo! Design Pattern Library Набор wireframe для созданию web ui прототипов от Yahoo Natural Docs Софт для генерации документации из кода. Юзабельная дока получается js-ria-tools - Google Code Набор утилит для оптимизации и тестирования JavaScript, возможность минимизации файлов JS mapfish Готовое приложение (клиент и сервер) для работы с гео-данным. Построено на базе Pylons и ExtJS/Openlayers Resizable Polygons Пример создания полигонов с возможностью ресайзинга на Google maps (javascript) Python Package Index : virtualenv 1.0 Скрипт для создания варитуального окружения (модули итп) для Python-приложений Google Maps JavaScript API Example - Snap to Polyline Пример кода для привязки курсора к полигонам и полилиниям Take Control of Your Maps (A List Apart Article) Отличный обзор картографического (GIS) софта для построения веб-приложений Mapstraction - a javascript library to hide differences between mapping APIs. Библиотека JS для работы с многими картографическими сервисами через единый API Modest Maps Библиотека для ActionScript (2/3) и Python для работы с картографическими сервисами Плюшки © livedev.org / powered by typo / styled with clerkly