программирование

Маленькие открытия

Dmitry Vasiliev 22:12, 2008 12 8

Думаю не стоит сомневаться, что каждый из нас постоянно делает для себя какие-либо маленькие открытия. О некоторых можно даже написать. Вот, например, пара интересных моментов которые я недавно для себя открыл:

  • Где-то месяц назад я выбирал подходящий механизм сериализации данных для передачи их по сети. В итоге оставалось посмотреть на два варианта:

    В конце концов оказалось, что эти механизмы сериализации практически идентичны. Только если в Banana у байта типа установлен старший бит, а у данных старшие биты сброшены, то в Protocol Buffers все с точностью до наоборот. Кстати, не очень понятно почему в Google сделали именно так - мне кажется, что версия Twisted более оптимальна...

  • Второй момент совсем свежий и связан с библиотекой GPGME (GnuPG Made Easy). Все началось с того, что для одной из задач мы быстро набросали обвязку для GnuPG с помощью модуля subprocess. Позже у меня появилось время оптимизировать этот код и я подумал, что наиболее оптимальным вариантом будет написать Python-обвязку для библиотеки GPGME. При этом я рассчитывал через нее получить прямой доступ к функциям GPG... Было смешно узнать, что эта библиотека делает тоже самое, что мы написали с помощью subprocess. :-)

Comments All comments

Comment by Konstantin Khomoutov on 03:25, 2008 12 9

Konstantin Khomoutov's Gravatar

Самое смешное, что все известные мне биндинги к gpg, как выяснилось, просто запускают бинарь gpg.

Это весьма неудобно для таких применений, как instant messaging.

В итоге мне очень интересно: можно ли в принципе реализовать в gpg что-то вроде SMTP- или DICT-подобного протокола, чтобы можно было один раз (при старте программы) зацепить gpg за стандартные потоки ввода/вывода и скармливать ему данные на stdin, читая stdout/stderr, примерно так, как работают редиректоры в HTTP-прокси?

Comment by Dmitry Vasiliev on 12:54, 2008 12 9

Dmitry Vasiliev's Gravatar

Меня больше интересует доступ напрямую к библиотеке, но я пока в процессе... По идее это не должно быть сложно, но настораживает, что они сами так не стали делать. :-)

Comment by Dmitry Vasiliev on 13:02, 2008 12 9

Dmitry Vasiliev's Gravatar

Кстати, ответ есть в FAQ: http://www.gnupg.org/documentation/faqs.en.html#q4.16

Comment by Konstantin Khomoutov on 16:32, 2008 12 9

Konstantin Khomoutov's Gravatar

Знаешь, мне кажется, что эти "security issues" сводятся к боязни за кривую (де)инициализацию.

А вот разработчики OpenSSL почему-то не забоялись сделать по уму сразу. Она ещё и thread-safe, насколько я помню.

Comment by Dmitry Vasiliev on 12:50, 2008 12 10

Dmitry Vasiliev's Gravatar

Да, непонятно, чего они боятся.

Мне пока нужна только часть функционала, так что RFC4880 должно помочь. :-)

Comment by bialix on 14:47, 2008 12 10

bialix's Gravatar

Сегодня увидел, для меня это тоже забавное но открытие:

Сегодня исполнилось 15 лет игре DOOM.

В ОС Windows порт 666 обозначен как зарезервированный для Doom (например, в Windows XP это можно увидеть, открыв файл windows\system32\drivers\etc\services).

Comment by bw on 20:21, 2008 12 18

bw's Gravatar

Год подходит к концу и для себя уже можно подытожить, какое-же открытие было самым значимым. Для меня, это случайное открытие, Twisted Perspective Broker (это RPC, если грубо) в начале лета. Считаю что за прошедшие полгода я очень неплохо поднаторел в этом вопросе. Сейчас активно использую PB в одном коммерческом проекте, моя в восторге :-).

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

..bw

Add comment

Name:
Email: (Never will be published.)
Web site:
Comment: (Paragraphs divided by empty lines, line breaks and links will be automatically formatted.)