Реализация хэш-таблиц, почти как в Perl

Мне почему-то всегда казалось, что хэши в Perl, несмотря на название, реализованы в виде бинарных деревьев, а не хэш-таблиц. Как бы дико это ни звучало. Вероятно, это связано с тем, что в STL контейнер std::map обычно реализуется в виде красно-черного дерева, и я ошибочно предположил, что в Perl сделано так же. Но недавно я обнаружил, что в книге «Programming Perl» недвусмысленно утверждается обратное.

Об особенностях оптимизации кода в GCC

Сегодня товарищ redp озадачил меня интересным вопросом. Дескать, если современные компиляторы такие умные, то почему GCC не в состоянии преобразовать даже элементарный макрос инверсии байт двойного слова в ассемблерную инструкцию bswap?

Мини заметки – выпуск 4

Пришло время для очередного выпуска мини-заметок. Вас ждут парочка полезных фильтров для WordPress, несколько Perl-скрипов и другие приятные мелочи. Предыдущие выпуски мини-заметок можно найти здесь (#3) и там (#2).

Кроссплатформенное GUI приложение на Haskell

В этой заметке речь пойдет о создании кроссплатформенных GUI приложений на языке программирования Haskell с использованием библиотеки wxWidgets. Особое внимание будет уделено уменьшению размера программы. Программа, размер которой изначально составлял 26 Мб, будет ужата до 3.9 Мб без потери функциональности. И это без использования UPX.

Тест производительности скриптов на Python

Если вы давно читаете мой блог, то можете помнить, как пару раз я говорил о Python разные неприятные вещи, дескать он медленный и памяти много кушает. При этом даже приводились различные пруфлинки. Но, откровенно говоря, нехорошо судить о языке по тому, массивы какой вложенности он поддерживает, с какой скоростью он выполняет пустой цикл из 100500 итераций и тд. Нас же интересует, как он справляется с типовыми задачами. Так что я решил провести собственный небольшой эксперимент.

Зачем нужно знать всякие низкоуровневые вещи

Когда-нибудь я планирую запостить в этот блог несколько заметок, посвященных всяким «низкоуровневым» вещам — таким, как алгоритмы сжатия, ассемблер, написание драйверов, WinAPI и тд. В контексте подобных тем всегда возникает вопрос, мол зачем мне все это знать, когда есть готовые библиотеки, высокоуровневые языки и прочие вещи, избавляющие нас от необходимости много думать. Чтобы в будущем не возвращаться к этому вопросу, я попробую ответить на него сейчас.

Примеры использования wxWidgets

Как и обещал, пишу продолжение своей заметки про wxWidgets. В этом посте будет описана установка wxWidgets и Code::Blocks под различными операционными системами, основы создания GUI с помощью wxSmith, а также приведены небольшие примеры кода.

Открыл для себя wxWidgets и Code::Blocks

Некоторое время назад я стал интересоваться разработкой кроссплатформенных GUI приложений. Сейчас существует множество подходов к разработке данного типа программ — это Java, библиотеки GTK и Qt, скриптовые языки. Однако я сделал выбор в пользу библиотеки wxWidgets, и ниже будет рассказано, почему.

Эллиптическая криптография на практике

Решил поделиться своей старенькой наработкой — библиотекой для работы с большими целыми числами и эллиптическими кривыми, а также привести пример ее использования в криптографических целях. Глубокого погружения в математические основы не будет. За более подробной информации, касающейся работы с большими числами и эллиптическими кривыми, обращайтесь к соответствующей литературе и интернету.

История одного скрипта (Google-расследование)

Не знаю, как вы, а я что-то устал от загонов про сплайны, генетические алгоритмы и прочую муть. Для разнообразия я решил рассказать историю, которую мне удалось по крупицам восстановить с помощью одного популярного поисковика. Эта история о судьбе маленького скрипта, написанного в далеком 2007 году.