13 февраля 2009 г.

Сколько интересных веб-приложений вы можете создать в одном сообщении Twitter? У меня есть один — микро-твиттер. Я хочу видеть многих!

Вернувшись в Твиттер, я прочитал это сообщение в 222-символьной Вики от Аруна Шроффа. Я подумал — а почему бы и нет — и ответил вызовом: Сделай 140-символьное веб-приложение за 2 недели! Какой бы язык, библиотека или модуль ни были, главное, чтобы он был стандартным. Я сделал пример микро-твиттера, описанный далее в посте. Если вы думаете, что можете добиться большего успеха — вызываю вас. У вас снова 2 недели. Разместите свое веб-приложение здесь, в комментариях! (полный код, ссылка или что-либо подобное, чтобы мы могли увидеть его в лучшем виде)

Теперь перейдем к моему приложению для микро-твиттера. Он написан на Perl с использованием только модуля CGI. Однострочный код состоит из 140 символов, хотя в файле исходного кода вы можете найти еще более уменьшенную версию, состоящую всего из 123 символов, но с меньшим количеством функций.

Что в основном делает микро-твиттер, так это позволяет вам обновлять свой статус и показывать его. Не ждите никаких социальных конфет, для этого нет места, но это работает, и вы можете (уже не) протестировать его здесь — PIN-код 1234, и эта версия немного более безопасна по понятным причинам. Чтобы опубликовать сообщение, введите PIN-код, пробел, а затем свое сообщение.

Я работал около 2 часов, улучшая код. Это примерно 51 секунда на символ, забавно, что такая короткая часть занимает так много времени. И вот оно:

use CGI’:all’;print header.’<form>’.submit.textfield 0,’’,99;open F,’<0';print $f=(param 0)=~/1234 (.*)/?hr.$1.<F>:<F>;open F,’>0';print F$f

То, насколько я изменил общепринятые методы Perl, для меня довольно странно, но, с другой стороны, этот код полностью подходит для выбранной мной IDE — Komodo Edit. Прежде всего, я включил все причудливые вещи из CGI, но на самом деле я использую только :standard, :form и :html. расширения. Печатаю заголовок, иначе браузер выдаст Internal Server Error. Затем я запускаю форму, никакой ерунды html, head или body. Я печатаю кнопку отправки и текстовое поле, используя упомянутое расширение :form.

После этого я обрабатываю возможное сообщение. Я использую регулярное выражение для его анализа в поисках PIN-кода. Если найдено, я добавляю сообщение в начало файла, добавляя горизонтальную линию, чтобы оно выглядело читабельным. В то же время я помещаю все содержимое файла в переменную $f. Затем я использую его для перезаписи файла базы данных, чтобы сообщения не терялись. И это все.

А теперь снова — Уверяю вас, сделайте что-нибудь лучше, короче, красивее! Правила просты: какой бы язык вы ни выбрали, какой бы модуль или библиотеку вы ни включили, пока они стандартны, это хорошо. Но поделитесь своим веб-приложением в комментариях, даже если они нарушают правила — это будет интересно. Вызов запущен. Так вы достаточно опытны для этого? Давай! И следуй за мной.

Первоначально опубликовано на web.archive.org.