Прекрасно сказано
May. 5th, 2008 02:00 pmпитон это язык, где интроспективно можно понять почему трава в мире зелёная.
This is crossposted entry. ilvar.ru
питон это язык, где интроспективно можно понять почему трава в мире зелёная.
This is crossposted entry. ilvar.ru
Originally published at [ilvar.ru]. You can comment here or there.
Иван Сагалаев рассказывает о разработке первого большого яндекс.сервиса на Django - свежего “Куда все идут”.
Во время разработки я все время настаивал на том, чтобы мы не занимались тонкой оптимизацией по производительности. И чем дальше, тем больше я думаю, что это правильный подход. Система сильно менялась, во многих тяжелых запросах необходимость просто отпала, а некоторые наоборот появились. Если бы мы каждый раз тратили время на оптимизацию, много бы потеряли. Занявшись же оптимизацией в самом конце, мы потратили на нее примерно неделю. Больше всего тормозов добавляла старая как мир проблема — слишком много запросов в базу из-за доставания дополнительных данных отдельными запросами на каждый объект. Лечилось обычно: кешированием в памяти, хранением в таблицах предрасчитанных количеств, использованием SQL-зарпосов с “group by”.
Originally published at [ilvar.ru]. You can comment here or there.
По совету Игоря Крамера прикрутил к Django отладочный WSGI-сервер Werkzeug (на официальном сайте в вики есть специальная статья про это дело).
Результат меня довольно-таки порадовал… кажется, Pylons таки в пролете :) Разве что дизайн мрачноват, но я думаю, это можно поправить.
Originally published at [ilvar.ru]. You can comment here or there.
Вчера вечером попробовал поднять Pylons у себя. Первое впечатление - слишком много наворочено, примерно как в Symfony для PHP. То есть, после 2 недель ковыряния я примерно понял структуру проекта на Symfony, и она вполне логичная - но все же сильно навороченная по сравнению, например, с Django.
Сила Pylons в том, что он объединяет в себе несколько отдельных проектов (SQLAlchemy, Mako и др.) - т.е. можно особо не заморачиваться на отладке каждого модуля, а сосредоточиться на их совместимости и общем дизайне системы. Но, как водится, в этом же и слабость: разным модулям нужны разные конфиги, к ним надо по-разному обращаться, и формат возвращаемых данных тоже разный. Django един и монолитен, как скала, Pylons же больше похож на механическое устройство, состоящее из отдельных деталей.
Что очень порадовало (собственно, эта фича и сподвигла меня на знакомство с Pylons) - это дебажная страница Ошибки 500. Во-первых, в ней traceback, данные шаблона и информация о http-запросе разнесены на разные tab’ы, в результате страница гораздо компактнее Django‘вской. Во-вторых, тут есть своя killer feature - возможность в каждой точке traceback’а открыть питоновскую консоль и поиграться с данными, причем в соответствующем окружении.
Вот такие первые ощущения :)
Originally published at [ilvar.ru]. You can comment here or there.
vs.
Для своего будущего проекта хочу заюзать веб-фреймворк Pylons, среди известных мне он второй по интересности и качеству после Django. Ну и не хочется зацикливаться на Джанго, если честно - уже почти год на нем фигачу.
На офсайте есть хелп-список модулей, доки и куча туториалов, в т.ч. простенькая вики. Пробежал наискосок вики-туториал, заметил обилие всяких хелперов для всего, чего можно.
В общем, будем пробовать :)
Originally published at [ilvar.ru]. You can comment here or there.
По крайней мере, рефакторинг и оптимизацию вытаскивать в район пунктов 1 и 2 - это лажа. Окей, не всегда, есть гуру, у которых весь проект в голове с самого начала лежит, и его надо просто аккуратно перенести в код - но не у всех так или хотя бы чуть похоже, к сожалению.
В результате функциональность не закончена, рефакторинг весь надо переделывать, а та оптимизация теперь привела к бОльшим косякам. Спасибо, заходите еще. Да, очень были рады вас видеть. Чмоки-чмоки. Тьфу…
Originally published at [ilvar.ru]. You can comment here or there.
Надо написать маленькую программку, которая будет автоматом активировать какую-нибудь задачу при активности в рабочих окошках - типа IDE, текстового редактора или терминалки. Вечно забываю на кнопочку нажать вовремя… А алгоритм перехвата клавы должен же ж быть вообще тривиальный, по-моему.
Originally published at [ilvar.ru]. You can comment here or there.
Примочка вполне справляется со своими задачами, по ходу обрастая мелкими полезными печенюшками и конфетками. Из намеченного в четверг:
Originally published at [ilvar.ru]. You can comment here or there.
Вчера искал инфо по нагрузочному тестированию веб-проектов, прочел про ApacheBench, решил попробовать.
Залез на свой VPS, пустил 1000 запросов на один сайтик *.ilvar.ru (на том же VPS - чтоб исключить влияние каналов связи, да и траф лишний не гонять), на другой… а потом на файлообменник. Подождав вместо обычной пары секунд до появления надписи “100 queries sent” секунд десять я понял, что файлообменник-то находится на другом сервере. Упс.
Но интереса ради прогнал тест до конца, посмотрю, как это скажется на траффике :)
Originally published at [ilvar.ru]. You can comment here or there.
Приспичило тут устроить у себя файлообменник, сначала поискал готовые на PHP, но все не то - либо фич не хватает, либо наоборот, перебор, слишком сложно, либо вообще за деньги - и фиг знает, чего там внутри. В результате черт дернул написать свой, на Джанге. Часа за четыре, вместе с поднятием Джанги на DreamHost, дизайном и, как водится, тупняком по пустякам.
( Read the rest of this entry » )Originally published at [ilvar.ru]. You can comment here or there.
Настроил для подруги Wordpress, поставил туда статистику и подправил админский интерфейс и frontend, убрав довольно много лишнего. Спрятал половину пунктов в админке и всякие blog-style отметки в файлах темы блога. Причем админку ковырял не руками, как раньше, а просто поставил несколько плагинов:
( Read the rest of this entry » )Originally published at [ilvar.ru]. You can comment here or there.
И callstack при ошибках там сделан за-ме-ча-тель-но!
Originally published at [ilvar.ru]. You can comment here or there.
Не, ребят, в следующий раз варианты вроде “а вот тут у клиента уже есть хостинг…” не прокатят, делать будем так, как надо. Три дня уже имеюсь с админкой для проектика на Jaws, фронтенда вообще не касался. В то время как на Django какая-никакая, а все же админка есть СРАЗУ после создания структуры данных. Да, она довольно дубовая, но за такие деньги больше и не нужно/можно.
Осознание того, что код Jaws еще более-менее структурирован, и вообще неплох, просто-таки вгоняет меня в депрессию и приводит в уныние. И я уже сейчас осознаю мощь и силу принципа DRY (Don’t Repeat Yourself), он же СУХО (Соблюдать Уникальность - ХОрошо), на котором вообще построена вся структура кода Django и дополнительных модулей.
P.S. И заметьте, в посте - ни слова ни про крушение Невского экспресса, ни про звездопад Персеиды, ни про Медовый спас!
Originally published at [ilvar.ru]. You can comment here or there.
Вчера обнаружил сайт весьма интересной на первый взгляд CMS - Pagoda.
Честно говоря, информации про нее кот наплакал, но, судя по скринкасту, результат будет как минимум неплох.
( Read the rest of this entry » )Originally published at [ilvar.ru]. You can comment here or there.
Давненько ничего не писал о своих проектах и проектиках. На самом деле, пока подвижек особо нет - бегаю по городу, решаю текущие вопросы, вливаюсь в команду Замечательного Проекта.
Во вторник улетаю в Москву до выходных.
По Прелестно.ру договорился с нематериально заинтересованной барышней заняться доводкой проекта до ума, но это уже после возвращения из Москвы, не раньше.
Лазая по Сети, наткнулся сначала на GeoDjango, потом на geopy. C ГеоДжангой заморачиваться неохота - могут возникнуть траблы с обновлением, да и установка там не совсем трививальна… может быть, если когда-нибудь будет много свободного времени.
А вот geopy оставил впечатление законченного и самодостаточного продукта, чем грех не воспользоваться :) С учетом принятого уже почти решения о смене формата хранения точек на карте, думаю переписать с нуля все контроллеры (ака django-view), которые так или иначе работают с географическими данными. В процессе можно будет туда добавить несколько фич (добавление фото, псевдо-тэги и т.п.)
Так что в основном - планы да текучка.
Originally published at [ilvar.ru]. You can comment here or there.
По просьбам трудящихся сделал закачку больших фото и добавление произвольной фигни типа “о себе” :)
Originally published at [ilvar.ru]. You can comment here or there.
Все же автоматическая локализация в unix-style - это вещь!
Originally published at [ilvar.ru]. You can comment here or there.
О, день выдался весьма насыщенным.
С утречка пораньше поехал, показал пару Экселевских макросов и, самое главное, выяснил подробности насчет того, что и как у них там работает. Выделил основные сущности, действующих лиц и, в общих чертах, процессы. Теперь можно спокойно думать, что и как можно упростить и автоматизировать.
В пятницу поднимал на сервере PostgreSQL для “песочницы”, сегодня - чуть-чуть поднастраивал sendmail, приучал проект от неюникодной Django к юникодной и листал мануалы по svn. Мозги слегка перегружены, но в общем - я очень доволен.
В процессе просмотра буржуйских аналогов наметились небольшие изменения структуры, ибо в текущем варианте указание несколькими пользователями одной и той же точки приведет к не очень красивым результатам - собственно, на одной точке на карте будет стоять несколько маркеров, и как это все будет работать - неизвестно. Посему придется отделить создаваемые пользователями “субъективные” точки от “объективных” географических.
Ну и код порефакторить придется, в некоторых местах довольно гнусно выглядит…
P.S. Только что пришло письмо с хостинга. Теперь у меня не 100Гб трафика в месяц, а аж 500 :)