ilvar: (Default)

Originally published at [ilvar.ru]. You can comment here or there.

Иван Сагалаев рассказывает о разработке первого большого яндекс.сервиса на Django - свежего “Куда все идут”.

Во время разработки я все время настаивал на том, чтобы мы не занимались тонкой оптимизацией по производительности. И чем дальше, тем больше я думаю, что это правильный подход. Система сильно менялась, во многих тяжелых запросах необходимость просто отпала, а некоторые наоборот появились. Если бы мы каждый раз тратили время на оптимизацию, много бы потеряли. Занявшись же оптимизацией в самом конце, мы потратили на нее примерно неделю. Больше всего тормозов добавляла старая как мир проблема — слишком много запросов в базу из-за доставания дополнительных данных отдельными запросами на каждый объект. Лечилось обычно: кешированием в памяти, хранением в таблицах предрасчитанных количеств, использованием SQL-зарпосов с “group by”.

ilvar: (Default)

Originally published at [ilvar.ru]. You can comment here or there.

По совету Игоря Крамера прикрутил к Django отладочный WSGI-сервер Werkzeug (на официальном сайте в вики есть специальная статья про это дело).

werkzeug.png

Результат меня довольно-таки порадовал… кажется, Pylons таки в пролете :) Разве что дизайн мрачноват, но я думаю, это можно поправить.

Pylons

Jan. 18th, 2008 05:03 pm
ilvar: (Default)

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’а открыть питоновскую консоль и поиграться с данными, причем в соответствующем окружении.

Pylons

Вот такие первые ощущения :)

ilvar: (Default)

Originally published at [ilvar.ru]. You can comment here or there.

  1. Визуальный редактор заставляет думать не о семантике, а о представлении. В результате либо результат на странице сайта выглядит не так, как в админке (потому что стили поверх наложились), либо стили жестко прописываются редактором и уже не могут меняться через CSS, “плавают” на разных страницах и заставляют контент-менеджера постоянно вручную выставлять шрифты, цвета и прочие отступы.
  2. Визуальный редактор позволяет копипастить текст из “Ворда”. Отлично! Некоторые продвинутые редакторы даже вычищают ненужные тэги. Но “мусора” все равно остается выше крыши даже в маленьких документах. А большие документы достаточно часто подвешивают браузер напрочь.
  3. Даже если текст с самого начала редактировался через админку, визуальные редакторы частенько добавляют лишний код, лишние стили и т.п. Например, если расстояние между абзацами у нас полстроки, а админка вместо абзацев иногда юзает <br/></br> - результат получается некрасивый.
  4. Визуальный редактор тянет за собой мегабайта полтора картинок и яваскрипта. Это добро, конечно, кэшируется браузером, но через GPRS, например, в админку уже не полезешь лишний раз.
  5. Яваскрипт визуального редактора заметно подтормаживает загрузку страницы, особенно если полей для редактирования на странице админки несколько.

Какой выход? Есть три варианта различной степени брутальности :)

  1. Почти визуальный. Использовать WYMeditor или его аналоги. Не избавляет от проблем с производительностью, но хотя бы позволяет разработчику сохранить контроль над внешним видом документа.
  2. Голый. Использовать html или bbCode, возможно, с дополнительными кнопочками-хелперами. Боюсь, что в этом случае контент-менеджер может выдавать грязный код (если как-то знает HTML) или постоянно дергать разработчка вопросами (если не знает HTML).
  3. Почти идеальный. Использовать wiki-разметку или Markdown. Да, потребуется какое-то время на обучение, но с другой стороны, все необходимые конструкции запросто помещаются на клочке бумаги (для повешения у монитора, естественно), а сама разметка является достаточно интуитивной. Не говоря уже о возможности простого автоматического diff-а изменений, в случае необходимости.

Я в своем блоге использую Markdown для семантических частей - таких, как параграфы, списки и т.п., а ссылки и картинки вставляю в HTML встроенными хелперами Wordpress - они достаточно удобно сделаны.

Pylons

Jan. 16th, 2008 06:20 pm
ilvar: (Default)

Originally published at [ilvar.ru]. You can comment here or there.

Django vs. Pylons

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

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

В общем, будем пробовать :)

ilvar: (Default)

Originally published at [ilvar.ru]. You can comment here or there.

  1. Пишем
  2. Копипастим
  3. Дописываем
  4. Рефакторим
  5. Лечим баги
  6. Оптимизируем

По крайней мере, рефакторинг и оптимизацию вытаскивать в район пунктов 1 и 2 - это лажа. Окей, не всегда, есть гуру, у которых весь проект в голове с самого начала лежит, и его надо просто аккуратно перенести в код - но не у всех так или хотя бы чуть похоже, к сожалению.

В результате функциональность не закончена, рефакторинг весь надо переделывать, а та оптимизация теперь привела к бОльшим косякам. Спасибо, заходите еще. Да, очень были рады вас видеть. Чмоки-чмоки. Тьфу…

XPath

Nov. 20th, 2007 01:45 am
ilvar: (Default)

Originally published at [ilvar.ru]. You can comment here or there.

Проникся. Для парсинга чужого XML - самое оно.

ilvar: (Default)

Originally published at [ilvar.ru]. You can comment here or there.

Freelance Suite

Примочка вполне справляется со своими задачами, по ходу обрастая мелкими полезными печенюшками и конфетками. Из намеченного в четверг:

  • Выводить сумму потраченного на проект времени (в т.ч. за месяц/неделю) — сделал разными способами, остановился на tooltip’е (см. скриншот). Пока считает не совсем удобно - тупо отсчитывает 7 суток от текущего момента, но это скоро поправлю.
  • Поменять текстовые ссылки на иконки (места они занимают меньше, а суть та же) — воспользовался опен-сурсным стилем Tango! (см. скриншот)
  • Добавить немного модного JavaScript’a — сделал сворачивание списков задач у проектов, а то когда они все развернуты — слишком уж много места это все занимает. Разнообразия ради использовал mootools.
  • Приучить себя тыркать кнопочку прежде, чем начать работу :) — вроде бы пока получается.
ilvar: (Default)

Originally published at [ilvar.ru]. You can comment here or there.

Opera

За что я люблю Оперу - так это за необходимый и достаточный функционал “из коробки”. Для отключения противных превьюх необходимо сделать всего три шага.

Read the rest of this entry » )
ilvar: (Default)

Originally published at [ilvar.ru]. You can comment here or there.

Приблизился дедлайн одного противного проекта на РНР, пришлось заняться им плотно. Если я правильно помню, он еще с августа тянется - а тогда у меня с баблом напряг был. В результате - ни бабла, ни времени, зато прекрасный комплекс “надо доделать, я же обещал”.

Наверное, уже раз тысячу успел поругать себя за то, что попался на замечательную подставу “Джанго мы юзать не будем, оно слишком круто и навороченно, да и тем более у клиента уже хостинг есть”. А еще за то, что не стал смотреть РНРшные фреймворки, а подумал ограничиться CMS. А когда требования чуть изменились (правда, с доплатой), оказалось, что там дописывать и переделывать довольно дофига, а с таким количеством дублирования и прочих хитроштучек, какое есть в Jaws CMS, это очень болезненно.

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

В результате я решил попробовать Симфони, а там уж как получится. Будет все хорошо - ну и ладненько, не будет - Jaws ждет меня с распростертыми объятьями… чтоб им всем пусто было :(

ilvar: (Default)

Originally published at [ilvar.ru]. You can comment here or there.

  1. Нафига я давным-давно согласился делать эту халтуру?
  2. Нафига я давным-давно согласился делать эту халтуру на РНР?
ilvar: (Default)

Originally published at [ilvar.ru]. You can comment here or there.

Я - Темный Повелитель PostgreSQL и Единый Мастер Автоматического Тестирования. Буагага!

WTF-code?

Oct. 7th, 2007 11:56 pm
ilvar: (Default)

Originally published at [ilvar.ru]. You can comment here or there.

<input class=”checkbox” type=”checkbox” id=”add_myobject_public“/> <label id=”add_myobject_public_label” for=”add_myobject_public“>Не публиковать</label>

То есть, add_object_public означает “Не публиковать”? Тогда ясно, почему оно “работает как-то странно”!

ilvar: (Default)

Originally published at [ilvar.ru]. You can comment here or there.

Django, PostgreSQL, full-text search, profile, optimize, highload, optimize, profile, optimize…

ilvar: (Default)

Originally published at [ilvar.ru]. You can comment here or there.

Вчера искал инфо по нагрузочному тестированию веб-проектов, прочел про ApacheBench, решил попробовать.

Залез на свой VPS, пустил 1000 запросов на один сайтик *.ilvar.ru (на том же VPS - чтоб исключить влияние каналов связи, да и траф лишний не гонять), на другой… а потом на файлообменник. Подождав вместо обычной пары секунд до появления надписи “100 queries sent” секунд десять я понял, что файлообменник-то находится на другом сервере. Упс.

Но интереса ради прогнал тест до конца, посмотрю, как это скажется на траффике :)

ilvar: (Default)

Originally published at [ilvar.ru]. You can comment here or there.

wehea! Появилась одна идейка насчет использования наработок wehea в слегка коммерческом проектике. Следите за рекламой!

UPD: Кажись, облом. Впрочем, я пока не сдаюсь, может, еще какая идейка придумается :)

ilvar: (Default)

Originally published at [ilvar.ru]. You can comment here or there.

ilvar.share

Чего, никому не нужен халявный файлообменник без рекламы?

Чуть поменял выдачу ссылок, добавил ссылку “logout”, мало ли, кому понадобится. 12Мб файл закачался без проблем, фича-лист все разрастается :)

  • Автоматическое удаление файла через Х времени после закачки или при малом количестве свободного места;
  • Сделать ограничение файла по размеру;
  • Сделать индикацию процесса закачки.
  • Сделать нормальные одноразовые ссылки;
  • Записывать юзера - чтобы в дальнейшем дать возможность удалять свои файлы вручную; Сделано
  • Сделать инвайты (привет, Музыкальный Сервис!), чтобы не добавлять юзеров вручную. Нафиг, мне чужой траф не нужен :)

P.S. Все больше в восторге от чудесной автомагической Джанго-админки! Django Admin

P.P.S. Чуть добавил сексуальности дванольности красоты стилям. Тащусь :)

ilvar: (Default)

Originally published at [ilvar.ru]. You can comment here or there.

ilvar.share

Приспичило тут устроить у себя файлообменник, сначала поискал готовые на PHP, но все не то - либо фич не хватает, либо наоборот, перебор, слишком сложно, либо вообще за деньги - и фиг знает, чего там внутри. В результате черт дернул написать свой, на Джанге. Часа за четыре, вместе с поднятием Джанги на DreamHost, дизайном и, как водится, тупняком по пустякам.

Read the rest of this entry » )
ilvar: (Default)

Originally published at [ilvar.ru]. You can comment here or there.

  1. Они явно накручивают счетчики. Даже если вполне легально (заманивая юзеров на сайт по поводу и без), все же это неприятно.
  2. Они полностью передрали дизайн с facebook.
  3. Они закрыты, и для поиска людей требуют указания кучки личной информации.

Все это не криминально, но я бы так делать не стал. Наверное, поэтому Прелестно никому и не нужен :)

ilvar: (Default)

Originally published at [ilvar.ru]. You can comment here or there.

приятно, когда на фичку тратится полчаса времени, а в блоге сервиса сразу же больше 30 каментов “спасибо”

May 2016

S M T W T F S
1234567
891011121314
15 161718192021
22232425262728
293031    

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 24th, 2017 04:47 am
Powered by Dreamwidth Studios