Архив рубрики «development»

Про Twietry

29.01.2012

Как бы то ни было, а проектик уже более-менее похож на что-то приличное, и можно уже начинать потихоньку им хвастаться. Для начала — о том, что это такое. Twietry (twitter + poetry) — это игра в сочинение стихов по очереди, когда каждый пишет одну строчку и передает листок следующему «поэту». Твиттер не то, чтобы сильно необходим для этого, но в twietry играет крайне важную роль: у нас сквозная авторизация через него, а каждая добавленная пользователем строчка публикуется в его личной ленточке.

Набор фич довольно скромный: авторизовавшиеся пользователи могут создавать стихи, добавлять строчки к существующим стихам (создание стиха != добавление первой строчки в него), голосовать за стихи и строчки, классифицировать стихи хэштегами (пока только внутри добавляемых строчек) и всячески морально разлагаться. Неавторизованные этого счастья лишены и могут только читать.

Теоретически у нас есть oEmbed стихов (тип rich), но на практике пока не получается проверить, насколько все круто. В крайнем случае, можно просто посмотреть стих в более читаемом виде, чем режим добавления строчек (сцылок на это нигде нет, но если добавить в конце URL стиха «/simple», то все получится. Пасхалка, с понтом дела). К некоторым сущностям прилагаются идентиконы. В качестве экспериментальной фичи я решил использовать алгоритм, отличный от того, что используется в id.dxfoto.ru, и автором которого являюсь я лично (не буду, впрочем, утверждать, что до этого больше никто не додумался). На самом деле, они на фиг не нужны, но с ними красивее. Кстати, Ксения Николаевна сделала для сайта несколько картиночек. Их пока не видно (да и вообще, с оформлением бида), потому что на текущий момент они существуют только в блокноте, а до сканера я никак не дойду. Еще одна запланированная фича, связанная с картинками — это загрузка пользовательских иллюстраций к стихам. Я пока не знаю, действительно ли нужно это, но на всякий случай запилим. Также активно выдумывается и пилится приляпывание пользователям бэджей (рабочее название — «плюшки») за различные заслуги. Пока придуманы аж два вида плюшек (не скажу, каких). Ну, и мы, как бы, всегда рады гениальным идеям наших юзеров.

В общем, сам проектик (пока) крутится по адресу twietry.dxfoto.ru, время от времени обновляется, иногда падает, ну, как бы, так и должно быть. Исходники открытые и лежат в гитхабе — github.com/at8eqeq3/twietry, мы будем рады помощи (внутри Ruby on Rails и MongoDB).

Как-то так.

Журнал Pod’а

28.09.2011

Я завел для пода отдельный журнал, теперь все писульки по этому поводу будут там: http://hvmnd.tumblr.com/ (на досуге прикручу более человечное доменное имя).

Обновление Pod’а

24.09.2011

Pod обновлен до a009c37d6fd8192de479518cd728ed5c9eb44a50, заодно пофикшены проблемы с resque.

В грандиозных планах — купить сертификатик, переехать на отдельный сервер и все такое. Никто не желает составить компанию?

Отчет о работе Diaspora* Pod

23.09.2011

Неделю отсутствовал, поэтому не обновлял код. За это время на Pod’е зарегистрировались ~30 пользователей и, к сожалению, сломался кросс-постинг в Facebook и Twitter. Из-за дурного API разработка модуля кросс-постинга и поиска друзяФФек на VK пока никуда не торопится.

Завтра-послезавтра стяну апдейты, починю кросс-пост и наведу порядок, обещаю.

——

I was away for a week, so codebase is a bit old. In this period, there are about 30 new users registered on a Pod, and, unfortunately, Facebook and Twitter crossposting gone away. Due to not-so-easy API,work on crossposting and friendfinding module for VK is going sloooow.

Tomorrow or on next day I will update and fix everything, I promise.

Про идентиконы

09.05.2011

Запустил смеха ради онлайн-генератор идентиконов. Это небольшая Rack-миддлеварька, которая дергает библиотечку, рисующую идентикон. Оригинальная библиотечка написана на PHP, активно юзается в WordPress, Gravatar и еще черт знает где. Меня же заморочило переписать ее на Ruby, что я, собсна, и сделал. На досуге пульну это дело на GitHub, если кому вдруг интересно. Мордочка же кружится по адресу http://id.dxfoto.ru/. Welcome.

As most of the viewers of this post are not russian-speaking, here is an english translation (there is nothing interesting, though) (sorry for possible mistakes):

Now, I am running my own online identicon generator. It’s a small Rack middleware that calls to the lib that draws an identicon. The original library was written in PHP (not by me) and actively used in WordPress, Gravatar and many other services. I have decided to re-write it in Ruby and, as you can see, done it. Some time later I will put it’s sources to GitHub, if it matters. At this time, my own web-face to it is running at http://id.dxfoto.ru/. Welcome.

Новый проектик и все такое

13.02.2011

Я в очередной раз родил очередную дурацкую идею очередного дурацкого веб-сервиса. С mongodb и краудсорсингом. По такому случаю ищется (видимо, впустую) кто-то готовый за «спасибо» рисовать няшный дизайн и верстать валидный html (js тоже лишним не будет). Также в наборе положительных качеств этого человека должно быть умение хотя бы как-то пользоваться git и не пугаться вот таких скобочек:

< %= bla_bla_bla %>

Доведите до кого нибудь, если не трудно.

Движение

07.02.2011

Мы решили немного похулиганить. Теперь у нас будет 2 VDS: один — для общедоступных сайтов, второй — в основном для внутреннего пользования и нужных плюшек. Сейчас я вожусь с настройкой нового сервера, а завтра нас ждет очень большая работа: забрать всю полезную информацию (а ее там много, и очень разнообразной) со старого сервера, переустановить на нем ОС (взамен немного протухшей FreeBSD 6.3 будет несколько более свежая 8.0), часть информации вернуть на старый сервер, часть залить на новый, вернуть в строй необходимые сервисы, и прочее, прочее, прочее (среди наших грандиозных планов — обновить ejabberd, сменить apache на nginx, перенести оставшиеся svn-репозитории в git, поднять mongodb, в перспективе — убрать php…). В связи с этим весьма вероятно, что завтра в течение дня большинство ресурсов на этом сервере будут недоступны. Мы искренне надеемся, что серьезных проблем не возникнет и к вечеру все будет работать (по крайней мере, мне бы очень не хотелось с утра, сидя в электричке, колупать что-то через midpssh). Пожелайте нам удачи.

Про разработку и все такое

04.01.2011

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

cd ~/projects/rails
rails new dxfoto

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

В общем, ежели у кого-то есть вдруг желание помочь с разработкой этого безобразия — welcome. Редмайна живет по адресу dev.dxfoto.ru


Кстати, да, мне тут гениальная мысль в голову пришла (нет, ну правда, гениальная): моей музяке не хватает слов. Тут никто случаем стихов не пишет?

Про чаты и паучков

30.06.2010

Вот, очередной кусочек гомнокода из себя выдавил. Нет бы по делу, всё какой-то фигнёй занимаюсь. История, как обычно, начинается издалека. А именно — всё с тех же замечательных Ответов@mail.ru. Кто там бывает — наверняка видел там в каждом разделе по замечательному чятику. Кое-где эти чятики унылы и пустынны, а кое-где прямо кипят жизнью. Периодически там такие дискуссии образуются — закачаишсо (ну, эт вообще-то везде так, но речь не об этом). А самое печальное что? То, что в чятике видно только 25 последних сообщений, а все предыдущие отправляются к Евгении Марковне на веки вечные, и назад не возвращаются. А ведь так хочется иногда почитать на досуге, вспомнить всю эту фигню… Ну, копипастить — это, конечно, вариант, но утомительно и вообще, не будешь же круглосуточно сидеть и F5 жмакать. В общем, сочинил я гадость, слегка облегчающую эту задачу. Первая часть гадости, и самая важная — это кагбе паучок. Получает страничку с репликами, разбирает ее hpricot‘ом и кладет в БД (sqlite). Поскольку разработчики чятика не позаботились об удобстве автоматизированного разбора (о, сколько там косяков: штампы времени с точностью до минуты, каждая реплика разбита на 2 части — имя с таймстампом и собственно текст, причем вся эта бодяга лежит кучей в общем div’е, красотища…), приходится извращаться. Против div’ной свалки помогает each_slice(2), с отсутствием идентификации реплик при сохранении борется хитрый constraint в базе, следящий за уникальностью пары время + текст сообщения (сначала думал добавить еще и имя автора, но решил, что это будет косяк: имя можно поменять, и тогда появятся лишние записи, да еще и кучей). Вот такой паучок:

#! /usr/local/bin/ruby
require 'rubygems'
require 'hpricot'
require 'open-uri'
require 'sqlite3'
db = SQLite3::Database.new(File.dirname(__FILE__) + "/chat.db") # или тут лучше File.join()?
doc = open("http://otvet.mail.ru/doit?action=chatmessages&cid=4") { |f| Hpricot(f) }
divs = doc.search("body/.Dialog/div")
unless divs.empty?
  File.new("last", "w").puts Time.now.to_s
  chat = []
  divs.each_slice(2) do |line|
    chat < < [line[0].inner_text.split("\n"), line[1].inner_text].flatten # всё через жо
  end
  chat.uniq!
  chat.reverse! # странно, почему цепочкой не работает?
  chat.each do |r|
    db.execute("insert into chat values ( ?, ?, ? )", r[0], r[1], r[2])
  end
end

Гомнокод во всей красе, объёмом 20 строчек. Пока умеет парсить только чятик в разделе «Компьютеры и Интернет», но впилить все остальные, в общем-то, не трудно. Займусь как-нибудь на досуге. А пока оно вполне себе успешно дергается сron’ом каждые 3 минуты (интервал подбирать надо бы, да) и делает своё чёрное дельце.

Вторая часть (код, уж извините, показывать не буду, ибо это сущий п[ой!]здец, да и не столь принципиальна она) организует к нашей БД замечательную веб-мордочку. Запускается через rack (кстати, у меня не получилось смонтировать приложение в подкаталог вхоста, хотя всё по инструкции. К чему бы это?) и бесхитростно так (с пагинацией даже) в pre всё выводит. Полюбоваться можно (пока что) тут: http://toys.dxfoto.ru/.

DXFoto — новая версия

11.05.2010

Прощайте, кривые php-скрипты и замечательный WordPress. Здравствуй, Ruby on Rails!

Хотя не, рано ещё так орать. Мы, конечно, всерьёз (в какой уже раз) взялись за разработку новой версии нашего сайтика, но до завершения пока ещё далеко. Мы очень стараемся (нет, правда) и весьма вероятно, что новый сайт будет чуть менее кривым, чем существующий. Внутри наконец-то появится некое подобие CMS и, как следствие, публикации будут происходить немного чаще (сейчас надо подготавливать картинки вручную, и почти вручную заполнять БД, а нам очень лениво этим заниматься). Снаружи будет HTML5 и незначительные (совсем) изменения в дизайне. Немного изменится и наполнение, теперь там будут не только фотографии (кстати, у нас теперь есть техническая возможность публиковать их в полном разрешении, и мы ею таки воспользуемся!), но и рисунки и музыка (будет и поддержка публикации видео, хотя большой необходимости в этом нет). Под ту же гребёнку будет зачёсан и этот блог (перенести все посты с немногочисленными комментами и настроить редиректы, бррр…). В общем, плюшек, больших и маленьких, будет много. Работы, разумеется, тоже до фига.

Собственно, к чему это всё? Видимо, к тому, что ежели эта писанина получится не слишком унылой, а количество говнокода в ней не будет зашкаливать, то из неё вполне может получитсься эдакий очередной (блого)движок, ориентированный в первую очередь на публикацию не-текстовых материалов. Как-то так. Ну и, традиционно, если кому-то кроме нас интересно повозиться с этой пакостью — you’re welcome.