30 декабря 2007

Ещё про cut в blogger

Поскольку что-то там к нам мчится, решил сделать подарок всем пользователям блоггера и рассказать, как я реализовал сворачивание постов.
Зачем? Чтобы сворачивать очень длинные посты вроде моих статей из OpenSource
Почему не стандартное решение, которое предлагает google? Потому что это скучно, требует перезагрузки страницы, обрезает пост в rss, что есть позор для автора. К тому же у меня чесались руки попробовать jQuery.

Итак:

Пока что вариант работает только для расширенных шаблонов.

1. Для начала читаем тут, добавляем в шаблон внутрь тэга head такой код:
<script src='http://leonid.phoenix.googlepages.com/script4blogger.js' type='text/javascript'/>
<script src='http://jqueryjs.googlecode.com/files/jquery-1.2.1.pack.js' type='text/javascript'/>
<style>
<b:if cond='data:blog.pageType != "item"'>
.cut {display:none;}
<b:else/>
.cut {display: block;}
</b:if>
</style>
Ссылки на изображения прописаны в скрипте, подключаемом первой строчкой. Их можно изменить и выложить скрипт на те же google pages или любой другой хостинг.

2. Потом ищем строку <data:post.body/> и заменяем на
<b:if cond='data:blog.pageType != "item"'>
<div class='pxpostwrap' expr:id='data:post.id'>
<data:post.body/>
</div>
<b:else/>
<data:post.body/>
</b:if>

3. При написани поста сворачиваемый текст помещаем в такой тэг
<div class="cut" id="cut">
</div>

4. Если хотите отблагодарить - нарисуйте мне кнопку для скрытия - показа поста.
Happy blogging!

Про Python и работу с не unicode файловыми системами

Для хранения текстовой информации используется unicode, это аксиома.
Однако, бывают ситуации, когда это невозможно. Простейший пример - ФС вроде vfat, которые не только не поддерживают юникод, но и имеют определённые ограничения на имена файлов (подробнее - тут). Несмотря на это она повсеместно используется во всевозможных девайсах от USB Mass Storage или, проще говоря, флэшек и заканчивая кпк и фотоаппаратами.
Обходится это достаточно просто, вот кусок кода на питоне:

enc = os.environ['LANG'].split(".")[1]
str = re.sub('[|?*<>:+\[\]\"\\\]*','',str.encode(enc,"ignore"))
Я это использовал для приведения имён файлов к своей локали для дальнейшего копирования на смонтированную флэшку.
Happy coding!

28 декабря 2007

powered by Русский Язык

Возникла у меня тут идея одна пропагандистского толка.
Про свиристелки я уже говорил, но так ведь не все думают, и вешают всякие бестолковые кнопочки. А мне вот захотелось толковую сделать - с надписью, как в сабже. И чтоб вела на какой-нибудь орфографический словарь на озоне. И по всем правильным блоггерам распространить. Только вот не художник я.
Конечно, это всё равно что с бурной рекой воевать и лучше бы было вернуть розги в школы (с улыбкой вспомнил свою очень строгую но справедливую учительницу русского), но меня бы такая свиристелочка грела.

26 декабря 2007

Заработался

> uptime
00:33:53 up 21 days, 7:55
Что-то я заработался...

Ruby, QtRuby, Qt4 и Windows

Однажды мне нужно было быстро написать гуёвое приложение под win32, при этом производительность не была важна.
Что я делал в таких случаях под Linux? GUI писался (вернее, просто накидывались формы) на Qt, функционал на руби, всё это замечательно работало благодаря связке QtRuby. Использовать же "родные" для Windows решения вроде с момента изучения ненавистного MFC или почившей Delphi не хотелось, да и лицензионная сторона вопроса всё-таки существует. Решение сделать всё с привычними инструментами казалось вполне логичным.
И тут оказалось, что подобных биндингов под win32 нет. То есть руби есть, Qt есть а привязок нет.
Непорядок, подумал я. Язык портируемый, даже под свой PocketPC я нашёл сборку. Библиотека тоже работает на всём, включая телефоны, а под Windows, столь гордящейся своей распространённостью, пути застаивить это работать вместе нет.
Гугль в помощь, сказал я себе, и нашёл вот тут неофициальную сборку библиотеки с нужными привязками. Всё работает отлично, не хуже, чем в Linux.
Кстати, о той страничке. Нормальный английский текст внизу страницы :)

Rails 101

А цитаты к презентации, подобраны со вкусом.


“I always thought Smalltalk would beat Java. I just
didn’t know it would be called ‘Ruby’ when it did”


Сама по себе презентация полезна для освежения знаний по забытым частям руби и рельсов.

Bells and whistles

То, чего никогда не будет в этом блоге - это bells and whistles (свиристелки и пр.)
Об этом как всегда смачно рассказано здесь и здесь.
По поводу первого. Я пользуюсь онлайн-букмарками. Одними, а не всеми тридцатью, которые обычно натыкивают под постом. Поэтому я на панель своего браузера вытащил ровно один букмарклет - "добавить в этакую службу закладок". Если тот сервис, которым вы пользуетесь, не потрудился создать для вас даже букмарклет, зачем же вы им пользуетесь? Вопрос закрыт.
Второе. Необходимости компенсировать отсутствие величин в других местах я не испытываю. Единственный счётчик, который признаю - от фидбёрнера.
Третье. Блог технофильский, картинок не будет. Будет код, будут конфиги - будет и syntax highlightning.
KISS!

Ruby 1.9

Он не только goes faster, он уже здесь! А я-то чуть было не проспал...
Так что вдогонку предыдущему посту сия новость как нельзя кстати.

Про реализации Ruby

Из статьи со сравнением реализаций языка Ruby напрашивается несколько далеко идущих выводов.
Заметна тенденция ускорения Ruby. Ruby goes faster. Это устраняет один из основных недостатков Ruby как языка и RoR как платформы. Вкупе со скоростью разработки приложений это привлечёт людей, особенно новых в данной области. It makes Ruby production ready.
Появляются реальные альтернативы. Чего стоит один JRuby, не только не уступающий нынешнему RMI, но и приносящий с собой всю Java инфраструктуру. It makes Ruby enterprise ready.
И хотя всё это пока лишь тенденции, их определенно стоит иметь в виду.

25 декабря 2007

Увы, Microsoft традиционно пребывает в состоянии творческого безумия, и правая рука у него не знает, что делает левая...
— from

Какие-то ассоциации сплошь пошлые возникают...

24 декабря 2007

Ещё о text editors over IDEs

Опрос подтверждает утверждение, что разработчики на Rails/Ruby предпочитают текстовый редактор средам разработки. Конечно, нужно помнить, что некоторые редакторы сами по себе почти среды разработки (вспомним, как можно обвешать Vim/Emacs).
Интересный момент - лидер забега. Это уже, похоже, традиция не хуже LAMP - Rails on Mac with TextMate.

Про OPML

Вместо того, чтобы перегружать блог всевозможными ссылками, сделал проще (yeah, KISS!) - выложил OPML с некоторыми своими фидами. Из них можно сделать определённые выводы о круге моих профессиональных интересов и заодно узнать, кого я читаю. Просто импортируйте его в свой RSS агрегатор.

22 декабря 2007

text editors over IDEs

Отличная статья, привлёкшая меня, помимо прочего, строчкой "One of the secrets of the Ruby community is why many developers prefer text editors over IDEs".
Это ещё одна вещь, за которую я люблю руби - он не требует использовать что-то кроме моего любимого Vim. И действительно, посмотришь какой-нибудь скринкаст, посвящённый разработке на руби - показаны в лучшем случае три программы: браузер, текстовый редактор и терминал.

20 декабря 2007

Про Python

Недавно ковырял одну программу, написанную на питоне, для добавления туда необходимого мне , но не предусмотренного автором функционала. Оставив в стороне свою неприязнь к питону как к языку, как истинный гик залез в код и дописал (отослав разработчику патч, конечно же, ave Open Source). И подумал - а не пересмотреть ли мне своё отношение к питону? Благо и преимуществ у него хватает, и кроссплатформенность связок питона с GTK, QT и wxWidgets всегда на руку, да и допиливание той самой программы не сильно меня напрягло. И совсем уж было решил взяться за изучение (ну или хотя бы запланировать таковое на будущее), да наткнулся на статью. И как-то пыл остыл, сомнения вернулись.
Видна какая-то неряшливость в реализации вроде бы очевидных операций в языке, отсутствие какого-то строгого единого дизайна.
Подожду, пожалуй, питона 3.0. Может быть, и возьмусь.

Про Win XP SP3

Win XP SP3
Да, а ещё заявляли о прекращении поддержки XP. А не тут-то было, опрометчиво заявили. Потому что никто всерьёз использовать новогодний выкидыш корпорации не стал. Хороводы вокруг поводили, повздыхали, повсплёскивали руками - и оставили в стороне.
Думается мне, что прекращение поддержки XP будет одним из шагов с самыми тяжёлыми последствиями.

19 декабря 2007

Убунту - Эффект бабочки

На одном из модерируемых мною форумов в очередной раз мне задали вопрос: что ставить? Какой дистрибутив посоветовать владельцу ноутбука, если он уже имел неудачный опыт установки другого? Мой ответ был из одного слова: ubuntu.

Почему так? Ведь автор этих строк не является ни ярым сторонником, ни даже постоянным пользователем данного дистрибутива, используя для работы Gentoo Linux. В данной статье я попытаюсь упорядочить мысли по этому поводу.

Аргумент 1. Сообщество.
За довольно короткий срок вокруг Ubuntu сформировалось впечатляющее по размерам сообщество. И процесс продолжается и будет продолжаться, в сообщество будут приходить пользователи других дистрибутивов и новички. Достигнутая масса критическая и будет притягивать пользователей. Посмотрите на небезызвестный сервис ICQ и вы поймёте, о чём я говорю.
Что это даёт. Мощную самоподдержку пользователей и отдачу разработчикам. В блогах рунета на разные голоса произносится фраза: "Решение моего вопроса нашлось на форумах Ubuntu, хотя это слово и не стояло в поисковом запросе."

Аргумент 2. Основа.
"Я стоял на плечах гигантов",-пишет в своей книге Just 4 Fun автор ядра Linux Линус Торвальдс. Марк Шатллворт поступил аналогично и "забрался на плечи" Debian. И это обеспечило сразу два преимущества, качественное и количественное.
Формат пакетов dpkg и система управления ими являются, на мой взгляд, самыми технологически совершенными среди бинарных, уступая по гибкости лишь всевозможным портируемым. В то же время бинарность пакетов обеспечивает простоту работы с ними - ведь распаковать проще и быстрее, чем собирать из исходных текстов, пусть и автоматизированно.
Второе преимущество - совместимость с Debian. Вы когда-нибудь пробовали установить rpm пакет в Mandriva из некогда родительского Red Hat'а? Зачастую пустая трата времени. Пользователям Ubuntu доступен весь огромный (один из самых крупных) репозитарий пакетов Debian а также его неофициальные репозитарии.

Аргумент 3. Простота.
Давно не секрет, что установить Linux, используя современные графические программы установки, зачастую проще и удобнее, чем что либо. В Ubuntu эта тенденция возведена в абсолют. Перед глазами множество примеров того, как люди вдруг ставят и начинают пользоваться, махнув рукой на многолетнюю привычку к Windows. Одного такого человека я вижу каждый день. Он задаёт вопросы, пробует и ошибается - но не отказывается, как отказался от Windows и нескольких других дистрибутивов Linux.

Аргумент 4. Толерантность.
Устойчивым определением в рядах пользователей Linux стало слово "красноглазик". С остервенением фанатиков готовы они проповедовать идеалы OSS и калёным железом клеймить несогласных. Существует несколько дистрибутивов, все компоненты которых лицензированы только под GPL. Удобство использования таких дистрибутивов в условиях современных реалий вызывает сомнения.
Вместо этого Ubuntu даёт возможность пользоваться закрытым и платным ПО. Пользователи дистрибутива не страдают от отсутствия драйверов для их устройств и кодеков для их медиаконтента. А удобство установки всего необходимого (во многом проистекающее из второго пункта) заставляет бывалых линуксоидов широко улыбаться.

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

17 декабря 2007

Про Блог.ру

Проект красивый. Но ещё слишком молодой и потому корявый донельзя.
Откуда такой негатив. Ну хотя бы от импорта. Импорт хромает на обе сломанные ноги. Или извещения - то же самое. Вчера свалилось на мыло извещение, полез читать - оказывается ещё про пару комментов меня никто не уведомил. Спам в комментариях.
Чтобы сказать хоть что-то хорошее - потенциал есть. А так... "It smells like rock'n'roll"