Записки из космоса на компьютерные темы

TC BANKCALL # TEMPORARY, I HOPE HOPE HOPE - из кодов компьютера на Apollo 11. В этом блоге Вы узнаете и другие шокирующие подробности о том, что на самом деле твориться внутри ваших компьютеров :-)

пятница, 20 августа 2010 г.

Раскрасить код для вставки в блог можно при помощи Pygments

Для этого нужно скачать программу:
hg clone http://dev.pocoo.org/hg/pygments-main pygments
Потом нужно выгрузить стили pygments в файл:
./pygmentize -S default -f html -a "div.highlight" > syntax.css
и добавить их в шаблон blogspot-а.
После этого можно раскрашивать код:
./pygmentize -f html -o abc.html abc.py
и вставлять получившийся html прямо в сообщение. Будет что-то подобное:
import sys
import MySQLdb
from datetime import date, timedelta

NEW_TABLE_NAME="abc_efg"

con = MySQLdb.connect(host="localhost", port=3306, user="abc", passwd="abc", db="abc", init_command="SET NAMES utf8")
con.autocommit(True)

d = date(2010, 01, 01)
while d <= date(2010, 12, 01):
    print d

    c = con.cursor()
    c.execute("SELECT * FROM efg WHERE date = %s", (d))
    rows = c.fetchall()
    if len(rows) == 0:
        print "There is no rows for %s" % d
        sys.exit(1)
    c.close()

четверг, 10 июня 2010 г.

Не нужно использовать cygwin для чего-то кроме однострочных скриптов

Так уж получилось, что кроме рабочего компьютера у меня есть только маленький нетбук с Windows 7. Иногда в свободное время мне хочется на нем что-то поразрабатывать. Устанавливать туда Linux я не хочу, потому что это создаст проблемы с подключением к интернету через телефон и так далее. Некоторое время я очень надеялся, что мне поможет cygwin. Однако, уже после того, как потратил очень много времени на его настройку, понял, что это плохой инструмент. Основные минусы такие:
  • отсутствие нормального менеджера пакетов;
  • ограниченное количетво программ (нет JVM, Scheme, Haskell);
  • медленная работа (возможно, это особенности Windows 7 или нетбука, но все работает очень-очень медленно);
  • таймауты при получении ресурсов (сокетов и чего-то еще) - скорее всего это следствие медленной работы;
  • порча разрешений файловой системы таким образом, что удалить файл получается с огромным трудом даже будучи администратором.
В итоге я перешел на использование Ubuntu под VirtualBox и абсолютно счастлив. Скорость работы (например, команды svn co) почему-то гораздо выше. Плюс это полноценный дистрибутив с кучей программ.

вторник, 27 апреля 2010 г.

Быстро посмотреть горячие кнопки в Eclipse

можно при помощи Command + L (то есть l с шифтом) или Ctrl + L на PC.

Вот те из них, которые я постоянно забываю:
  • перейти к определению - F3 ;
  • инкрементальный поиск - Command + J.

вторник, 8 декабря 2009 г.

Что не понравилось в Perl

Несколько вещей, которые не понравились в безумном языке Perl. Чтобы не забыть и при возможности использовать - подтрунивать над адептами этого набора заклинаний. Без особого порядка:
  • В случае, если интерпретатор запущен без -W, то можно спокойно писать в неверный дескриптор файла и ничего не знать об этом. Видимо, более общее - отсутствие нормальных исключений.
  • Негодная поддержка ООП
    • Организация классов классов возможна, но требует написания большого количества кода. Есть какой-то дополнительный модуль, но я до него не добрался.
    • Копирование объектов - я так и не понял как это сделать более-менее правильно. Есть какие-то проблемы с копированием замыканий.
  • Можно сделать файл abc.pm, внутри написать package efg. Работать программа не будет, а сообщений никаких не появится.
  • Ссылки. Совершенно не ясно зачем они вообще нужны. При этом они приводят к конструкциям вида %{$$self{'abc'}}.
Список можно продолжить, и это уже после двух недель знакомства. Хотя, может потом просто зомбируешься привыкаешь.

понедельник, 7 декабря 2009 г.

1С и продолжения или все более-менее похоже

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

Но, конечно же, в 1С есть и существенные недостатки. Один из таких недостатков, который похоже объясняется изначальной ориентацией системы на бухгалтерию - слабая поддержка процессов. Упор делается на учет уже произошедших событий, а иницирование этих событий в нужном порядке отдается на откуп пользователей. Есть встроенный механизм бизнес-процессов, но он продуман не до конца и часто не используется.

Обсуждал недавно варианты создания своего механизма для описания процессов. В процессе этого, чудесным образом понял, что разбор HTTP запросов - это по сути такой же процесс, правда с фиксированным количеством состояний. Также мне показалось, что подход к написанию HTTP серверов, основанный на событиях, который применяется в lighttpd, а также (это неточно, нужно проверить) во всяких Tornado и node.js, может быть и хуже, чем подход на основе продолжений. Собираюсь поразбираться с этим.

воскресенье, 29 ноября 2009 г.

Решение использовать Perl оказалось глубоко ошибочным

:-) Это ужасный-ужасный-ужасный язык. И нет оправдания тем, кто до сих пор делает на нем что-то кроме скриптов для администрирования. Я даже записал все грабли, на которые я натнулся, пока писал коротенькую программу для измерения скорости работы СУБД, попробую оформить их отдельным постом. Но уверен, что мне нечего добавить к статье от Steve Yegge.

"...Larry outclassed them all. Not only did he make a mistake which, in grand scheme of things is to language design what Chernobyl is to backyard barbecue accidents, he won't actually admit it was a mistake. Instead he markets it as your educational problem..." Исчерпывающе.

Однако, в любом случае лучше один раз увидеть, чем сто раз услышать. Моя совесть чиста, точнее будет чиста, как только программа будет закончена и выброшена (или переписана на Python).

воскресенье, 22 ноября 2009 г.

Изучаю Perl

Заела рутина, все идет по накатанной. Решил, что нужно постоянно пробовать что-то новое. Вот пишу тесты для измерения производительности разных СУБД на Perl. Потихоньку понимаю, что к чему и почему на столько нареканий в сторону этого языка.