«Индиана» — самописанный движок на питоне, на котором работает «Тёплый край» и ещё парочка интранет-сайтов. Не более чем велосипед, но велосипед удобный лично мне. Умеет при должном запинывании изображать блог, ленту ссылок, библиотеку, мини-форум и мини-вики.

Страницы: | 1 | 2 | 3 | 4 | 5 |

Возвращение капчи

23 декабря 2008 // Хельги

Прикрутил (на скорую руку) старую добрую капчу «вы робот или человек?». Пока все комментарии от гостей всё равно скрываются до одобрения.

Тэги: indiana, warmland
Комментарии (1)

Qui vont tout balayer

3 декабря 2008 // Хельги

/users/helgi/spamcomments.png

Спам так и сыплется. Придётся возвращать капчу.

Тэги: warmland
Комментарии (7)

Старую собаку новым трюкам

1 декабря 2008 // Хельги

Листая «Информационный бум», я случайно наткнулся на колонку «Веб-анатомия», которую Артемий Ломов вел с мая 2004 г. по июнь 2005. Времена давние, но имя Ломова я встречал ещё очень давно на страницах журнала «Чип», так что я решил поностальгировать. А кроме того, вдруг — чем чёрт не шутит? — попадётся что-нибудь полезное.

Кстати, Ломов, похоже, страдает тягой к многословию и выспренности чрезмерной. Сам за собой такое замечал. А вот за Ломовым, читая его статьи в «Чипе» — нет.

Выпуск № 25, «По следам огненной лисы», заставил меня отвлечься на минуту и сопоставить даты. Статья посвящена выходу первого релиза «файрфокса», который состоялся в начале ноября 2004 г. Осень две тысячи четвёртого, сообразил я, — это время появления на свет «Кривого угла». Самая старая из сохранившихся новостей этого сайта также упоминает выход «файрфокса», правда, почему-то с полуторамесячным опозданием.

Так вот, занятно то, что именно в то время я осваивал HTML/CSS-вёрстку. Начал я со статей Ломова в «Чипе» (обладатели крепких нервов могут заглянуть в исходный код сайта «фингертипа», который сделан по Ломовскому шаблону); своего рода дипломной работой, итогом двух лет изучения приёмов вёрстки оказался дизайн «Тёплого края». А после этого новым трюкам старую собаку уже научить не удалось.

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

* * *

Кстати, позавчера, 29 ноября, «Тёплому краю» исполнилось три года.

Тэги: design, self, warmland, webdev
Комментарии (1)

Хранение изображений в БД

31 октября 2008 // Хельги

Пять лет прошло, и, однако, ничего не изменилось.

Люди делятся на две категории: нормальные и Верующие в Чудесную Мощь Баз Данных. Первые используют базы данных, когда это удобно, вторые — всегда.

Для того, чтобы написать движок блога, можно воспользоваться БД, а можно обойтись без неё. Кто-то считает, что с базой удобнее работать, кому-то требование иметь БД для работы движка кажется завышенным. Это всё вопросы вкуса.

«Тёплый край» не использует баз данных в первую очередь потому, что когда я начинал его писать, он жил у меня на ноутбуке. Я рассудил, что поднимать тяжеловесные сервисы мне совершенно не надо, и поставил не «Денвер» и не IIS, а маленький лёгкий сервер под названием xitami. И отладочная версия «Индианы», между прочим, до сих пор у меня на ноутбуке именно под xitami и работает.

Между прочим, по этой же причине у меня в «Индиане» нет поддержки mod_rewrite. Зато и требований никаких нет: IIS, xitami, «Апач» — всё сгодится, была бы поддержка CGI.

Так вот, когда Рус говорит: «Когда я начинал писать этот движок, один хороший человек [то есть я — Х.] советовал мне вообще отказаться от MySQL в пользу самописного интерфейса к текстовым файлам», — он, конечно, лукавит. База так база, тем более что вопрос совместимости его мало когда волновал. Но хранить изображения в базе — это уже даже не благородное безумство, а некий способ-делать-всё-через-выхлопную-трубу.

…[Я] недолго заморачивался на способе хранения изображений на сервере, а просто сделал то, что хотел сделать давно: изображения хранятся в базе, а не на ФС.

Весёлые картинки

Если вы поленились сходить по самой первой ссылке, прочитайте прямо так:

When using a normal web server setup, images should be stored as files. That is, store only a file reference in the database. The main reason for this is that a normal web server is much better at caching files than database contents. So it it's much easier to get a fast system if you are using files.

Официальная документация MySQL, «5.2.12 Other Optimisation Tips»

Или, если угодно, из другого источника, по-русски:

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

Оптимальное использование MySQL

Дело не в том, что хранить изображения в базе маменька не велит, нет — дело в том, что организовать хранение не перректально, а обычным способом проще.

И первые грабли, на которые наступил Рус, это подтверждают. Если хранить изображения на диске, last-modified сервер отдаст сам.

Кстати, в проекте, над которым я работаю, есть необходимость хранения больших объёмов двоичных данных. И они — невероятно! — хранятся не в базе, а на диске. В виде файлов.

Тэги: indiana, webdev, мета
Комментарии (2)

0.5.99.01

3 сентября 2008 // Хельги

Всё, доигрался. Произвольные «перепрыгивания» в нумерации версий привели к тому, что я только что запланировал версию indiana-0.5.99.01. Потому что first-public очень хочется сделать 0.6, а всякие мелкие доделки к «шестёрке» никакого отношения иметь не могут.

(Хотя у меня с номерами версий вообще всегда туго. Address Book начинался с версии 4.х, «Индиана» — сразу с 0.4…)

Впрочем, 0.5 появилась, когда я вынес «ТК» в интернет. Так что уж пусть 0.6 будет первой версией, для которой я выложу исходники. Это официальный ответ на вопрос об их публикации.

Тэги: indiana
Написать комментарий

Трансляция в ЖЖ

28 августа 2008 // Хельги

gvezdnyj_svet оказала мне любезность и создала трансляцию RSS-ленты «Тёплого края» в ЖЖ.

http://syndicated.livejournal.com/warmland_rss/

Тэги: livejournal, warmland
Написать комментарий

Польза от багтрекера

5 августа 2008 // Хельги

Неделю назад я озаботился установкой багтрекера (это событие чудесным образом совпало по времени с моментом моего знакомства с «джирой» на работе). За эту неделю я успел вбить туда 58 «случаев» (case) и закрыть 8 из них.

Багтрекером я пользуюсь пока исключительно для «индианы»: другими проектами я занимаюсь так редко и так мало, что для них трекер не нужен.

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

Сейчас же я распределил баги, замечания и идеи по реализации новой функциональности не только по важности, но и по номеру целевого релиза. К примеру, реализация RSS-ленты для конкретного тэга очень важна, но не для ближайшего релиза, а для того, в котором я собираюсь вернуть некогда существовавший многоязычный интерфейс.

А вот важность задачи «убрать ссылку „Регистрация“ со страницы входа в систему» сама по себе менее важна, но разобраться с ней надо до ближайшего релиза.

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

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

Редакция от 11 июля 2009
Тэги: software, warmland, программирование
Написать комментарий

К финишной прямой

18 июня 2008 // Хельги

Поскольку я практически переписал модуль журнала, решил поставить на пробу свежую версию движка на боевой сервер. Проблемы с sys.path я, кажется, поборол. Но mod_python продолжает злиться на кодировку, да и firstinit не отрабатывает.

Забавно другое. Хорошо, что в сентябре прошлого года я решил начать вести журнал сразу же, а не подождать до завершения работ над новым модулем. Работы эти начались аж в январе, да и сейчас еще продолжаются.

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

Тэги: indiana, reflection, warmland
Комментарии (5)

Обновлённый дизайн «Тёплого края»

19 февраля 2008 // Хельги

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

Тэги: design, indiana, warmland, webdev
Написать комментарий

IIS теперь тоже поддерживается

14 февраля 2008 // Хельги

Для портирования под Internet Information Services в движке пришлось поменять до смешного немного. Более того, самый главный баг вообще бы не вылез, если бы я адаптировал транк, а не ветку 0.5.10/onr. Баг был связан с тем, что IIS, в отличие от apache и xitami, вешается при попытке повторного вызова cgi.FieldStorage() при POST-запросах. На других двух серверах просто возвращается пустая форма. В транке этот баг не вылез бы потому, что там я уже переделал всё ядро, и двойной вызов там убран.

Второй баг связан с тем, как IIS трактует переменную окружения PATH_INFO. Рассмотрим три сервера по порядку.

Xitami

Под xitami все URL’ы выглядят так:

http://example.com/cgi-bin/sitename/?v=abc (GET)
http://example.com/cgi-bin/sitename/index.py (POST)

Соответственно, PATH_INFO == "" (вполне логично).

apache

На warmland.ru я использую mod_rewrite, и адреса переписываются так:

http://example.com/?v=abc
->  http://example.com/cgi-bin/sitename/?v=abc (GET)
http://example.com/index.py
->  http://example.com/cgi-bin/sitename/index.py (POST)

И тут PATH_INFO == "".

IIS

IIS же считает, что все пути, по которым лежат сценарии, виртуальны.

http://example.com/?v=abc (GET)
http://example.com/index.py (POST)
http://example.com/dir/?v=abc (GET)
http://example.com/dir/index.py (POST)

В первых двух примерах PATH_INFO == "index.py". Во вторых двух PATH_INFO == "dir/index.py". То есть IIS не только рассматривает путь как PATH_INFO, но и раскрывает directory default. Почему — неясно. Ясно только, что мои идеи использовать PATH_INFO накрылись медным тазом. Если я хочу поддерживать все три сервера, то надо быть очень конвенциональным — никаких рерайтов, никаких PATH_INFO.

Тэги: indiana, webdev
Написать комментарий

CSS для мобильных устройств

12 февраля 2008 // Хельги

Сделал для «Тёплого края» таблицу стилей, заточенную под КПК. Тестировал на HTC P4350 (Windows Mobile 5.0, Internet Explorer). Как на других устройствах будет выглядеть — трудно сказать.

Тэги: warmland, сделано
Написать комментарий

Forward compatibility

22 января 2008 // Хельги

В новом выпуске «A List Apart» обсуждается вопрос совместимости вперёд: многие сайты, заточенные под IE6, ломаются под IE7. Того же самого ожидают и при выходе IE8.

Забавно, но у меня ситуация обратная. Например, стиль Complex движка в IE7 отображается нормально, а в IE6 — нет.

Тэги: indiana, webdev
Написать комментарий

Нашли

1 января 2008 // Хельги

Просматривая логи, наткнулся на краулер «Рамблера». Там я, оказывается, уже есть, на 34-м месте.

Зато в «Яндексе» — аж на восьмом.

Странно.

Тэги: warmland
Написать комментарий

К вопросу о

1 января 2008 // Хельги

А ещё я в новогоднюю ночь ковырял движок. И да, кстати, видимо, после появления b2 главным модулем на сайте будет именно он. Журнал то есть.

Редакция от 8 октября 2009
Тэги: b2, warmland
Написать комментарий

2b||!2b

24 декабря 2007 // Хельги

''Старик Спектатор нас заметил
И блогосферкою назвал.''

Переименовать, что ли, модуль b2 (=blog2) в Ж2 (=Журнал2)? А то блог(г)ером скоро начнут обзывать.

Ж2
Ж2, союз. То же, что «же» (может употребляться вместо «же» после слов, оканчивающихся на гласную). Кого ж любить? кому же верить? Пшкн. Ну, так что ж?…

Источник: «Словарь русского языка Ушакова»

Тэги: b2, мета, ссылки
Написать комментарий

b2: навигация

24 декабря 2007 // Хельги

Часок посидел за новым модулем для ведения блога. Старый модуль называется blog, новый я хотел, не мудрствуя, назвать blog2, но потом решил сократить до b2. Получилось вполне в духе.

Удивительно, насколько грязный код я писал всего два года назад. Удивительно, какие там длинные и непонятные функции. Сейчас я стараюсь писать более объектно и более кратко (за счёт многослойности).

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

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

А ещё есть проблема с черновиками. Черновиков нет. Можно сделать частную запись, но она «уползёт» вниз, и заново опубликовать её как свежую не получится. Вообще с идеей частных записей надо покончить, это ведь не ЖЖ. А черновики выделить в отдельную категорию и хранить тоже отдельно.

P.S. Ах, простите. Везде, где я написал слово «блог», следует читать «журнал».

Тэги: b2, indiana, мета
Написать комментарий

Своё милее

19 декабря 2007 // Хельги

А вот знаете что? Мне иногда не хватает кое-каких возможностей на своём сайте. Да что там, много чего не хватает. OpenID. Публикации по почте. Гибкости в вики. Черновиков. Высокой скорости работы. Простоты при выкладывании картинок.

Поэтому я и завёл, например, черновики. Но когда я при помощи Blogger’а редактирую эти самые черновики, я плююсь, натурально. То есть тот блог я использую исключительно для публикации заметок с комма, возможно, с фотографиями. А более ни для чего Blogger мне не подходит.

Своё милее.

Тэги: reflection, todo, warmland, мета
Написать комментарий

Веб-старт для комма

17 декабря 2007 // Хельги

Собрал ссылки на все сайты, которые часто посещаю с комма, в одно место:

http://warmland.ru/start

Тэги: warmland, сделано
Написать комментарий

DNS is temporarily down for maintenance

3 декабря 2007 // Хельги

С часу ночи и до середины дня warmland.ru был недоступен. Но никто не заметил.

Анатолий Воробей расстраивается из-за того, что «Six Apart» продала ЖЖ «СУПу». Наверное, положено порадоваться, что я вовремя переполз на свой сайт.

Сдохнет ЖЖ — и хрен с ним. В последнее время он мне всё меньше и меньше нравится. Связка RSS + OpenID мне кажется вполне удобной. А «Яндекс» чудесно находит мои комментарии в ЖЖ. Все, а не последние 10.

Ну а если кто-нибудь додумает распределённый блоггинг, это будет просто чудесно.

Тэги: livejournal, tech, warmland, ссылки
Комментарии (1)

Сайту два года

29 ноября 2007 // Хельги

Сегодня исполняется два года «Тёплому краю», скажу я. Ерунда, возразите вы. Сайт появился в интернете всего несколько месяцев назад. Я усмехнусь и покажу вот этот кусочек текста:

29 ноября 2005 г.
Контент «Тёплого края» и «Непостижимых полей» — сайта, на котором отрабатывался «Проект Индиана», — официально разделён. День рождения «Тёплого края».

10 сентября 2005 г.
В качестве сервера установлен Xitami. На заглавной странице появилось приглашение ждать у моря погоды со ссылками на старый «Кривой угол», ftp и «Проект Индиану».

…Сайтостроительством я заинтересовался ещё в 2004, в Астане, когда у меня не было даже нормального доступа в интернет. В меру своих сил я мучил HTML, пытался разбираться в новой для меня концепции CSS, писал самые-самые простые сценарии. Именно тогда я сделал первые варианты сайтов Address Book и Fingertip. Тогда же я познакомился с (и проникся) идеей вики. Я до сих пор очень рад, что не освоил FrontPage, и что этап верстки без разделения на данные и презентацию прошёл очень-очень быстро.

Потом было несколько идей, которые не вышли за пределы жёсткого диска моего тогда ещё настольного компьютера. Так и не созданный сайт студентов казахстанского филиала МГУ. Вики, посвящённая умершему проекту языка, даже названия которого я не помню.

А потом был ДСВ, и был «Кривой угол». Сайт, который несмотря на свою феерическую кривость, привлекал посетителей. Жуткая смесь статического (генерируемого из шаблонов) HTML, подключаемых кусков на SSI и серверного JavaScript, — о, теперь-то я понимаю, что за это меня нужно было закопать живьём. Не закопали. И, надеюсь, «Тёплый край» уже не вызывает такого священного ужаса.

И тем не менее сайт жил. Сайту придали форму библиотека, куда я выкладывал прочитанные книги, и каталог ресурсов общаги, которые я ранжировал и описывал. Тогда ещё не было DC, были только FTP-сервера. К «Кривому углу» была криво прикручена тридунговская гостевая книга — сам я написать гостевую не мог. Там были какие-никакие новости, погода, нафиг никому не нужная библиотечка софта, необновляющиеся статьи, голосования и учебные материалы.

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

Итак, в начале четвёртого курса я стал готовиться к грядущему возвращению в общагу. Я начал работать над «Проектом Индианой», движком на питоне, который с тех пор изменился до неузнаваемости. Я начал переписывать библиотеку, потом — новости, и 29 ноября на свет появился «Тёплый край».

Чуть позже я нашёл-таки себе аудиторию в виде коллег по работе, читателей сайта «Непостижимые поля». Теперь этого сайта уже нет, как нет и фирмы, в которой я работал. По вечерам дома (а иногда и днём на работе) я писал движок, попутно осмысляя основы веб-разработки. Стыдно сказать, чего я тогда не знал. Я, например, не знал, что нельзя несколько раз вызывать cgi.FieldStorage(), и из-за этого у меня не работали POST-запросы. А про PATH_INFO я вообще не знал до вчерашнего дня, так что теперь, когда я о нём узнал, может, приделаю к движку. Но как бы то ни было, «Тёплый край», — а это был уже другой сайт, с иными, чем в «Кривом углу», акцентами, — жил и развивался без аудитории.

В 2006 году аудитория появилась. Мой сервер даже несколько раз валили, что, несомненно, служит косвенным доказательством популярности сайта. И если на «КУ» важными разделами были погода, лекции и ссылки, то на «ТК» превалировали блог, библиотека и вики. Tempora mutantur et nos mutamur in illis.

C 2006 было мало изменений в движке сайта. И я, увы, не успел сделать новый блог ко второй годовщине «Тёплого края». Даже праздничный стиль тот же, что был год назад.

Но, оглядываясь назад, я думаю про себя: Чёрт возьми, а ведь весёлое было время! Хорошо, что был «Кривой угол», и хорошо, что есть «Тёплый край». Так что пожелайте мне удачи.

Редакция от 1 декабря 2008
Тэги: indiana, warmland
Комментарии (1)

Гостевая книга

15 ноября 2007 // Хельги

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

Тэги: warmland, объявление
Написать комментарий

Sorry, we’re experiencing technical difficulties

8 ноября 2007 // Хельги

Откуда ни возьмись, вылезли глюки с запуском скриптов. Красивая схема с .htaccess не заработала, и я был вынужден сделать всё грубо, грязно и некрасиво.

Если у вас не открывается «Тёплый край», подождите пару минут и попробуйте ещё раз. То ли сервер перегружен, то ли ещё что.

Если в какой-то момент сломаются сайты Address Book и Devel, попробуйте зайти на них с главной страницы. Если и это не получится, дайте мне знать.

Тэги: warmland, объявление
Написать комментарий

OpenID кажется сложноватым

30 октября 2007 // Хельги

Видимо, если я всё-таки прикручу OpenID, то кода, отвечающего за него, получится больше, чем кода, занимающегося нормальной авторизацией.

Тэги: indiana, tech, warmland
Написать комментарий

RSS

25 октября 2007 // Хельги

Не знаю, насколько грамотно я его написал, то тем не менее:

RSS

Он же внизу слева.

Тэги: indiana, warmland, объявление
Написать комментарий

Новый адрес сайта

24 октября 2007 // Хельги

Обновите ваши закладки. Теперь «Тёплый край–4» располагается по адресу

http://warmland.ru/

Депо закрыто. Сайт открыт. Добро пожаловать.

Тэги: warmland, объявление
Написать комментарий

Страницы: | 1 | 2 | 3 | 4 | 5 |