Причины, по которым мне нравится Haskell

Последний гиковcкий выпуск Radio-T (номер 253) получился на редкость интересным. Речь зашла о Scala, рефакторинге, TDD, багтрекерах, и даже (наконец-то!) о моем любимом Haskell. К сожалению, тема «чем же так хорош этот ваш Haskell» не была в должной мере раскрыта. Такое чувство, что большинство айтишников действительно не понимают плюсов функционального программирования. В этой заметке я постарался развернуто описать, за что лично мне нравится Haskell.

Решение задачи «кто на ком женат» с помощью Haskell

В рамках серии экспериментов с прокачкой мозгов, я решил принять участие в небольшом программистском конкурсе от Романа Душкина. И я не без удовольствия воспринял новость о том, что вошел в пятерку победителей, полностью решивших задачу (места не пронумерованы, но если бы были, то я бы точно занял не первое и не второе место).

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

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

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

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

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

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

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

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

Оптимизация WordPress #3 — уменьшаем нагрузку на базу данных

Данные текст является переводом статьи Reduce WordPress CPU Usage #3 — Reduce your database queries, опубликованной в блоге cravingtech.com. Также вы можете ознакомиться с переводом первой и второй статьи из этой серии.

Высокая нагрузка на процессор может быть вызвана большим числом sql-запросов, производимых WordPress. В WordPress-блогах почти все данные берутся из базы данных — комментарии, посты, URL блога, расположение CSS-файлов и прочая информация, необходимая плагинам.

Оптимизация WordPress #2 — полное удаление плагинов

Данные текст является переводом статьи Reduce WordPress CPU Usage #2 — Uninstalling a WordPress plug-in completely, опубликованной в блоге cravingtech.com. Также вы можете ознакомиться с переводом первой и третьей статьи из этой серии.

Известно ли вам, что деактивация и удаление плагина WordPress не обязательно означает удаление его таблиц из базы данных? Эти таблицы захламляют базу данных, и я уверен, что это оказывает влияние на блог, пусть и небольшое.

Оптимизация WordPress #1 — основные приемы

Данные текст является переводом статьи Reduce WordPress CPU Usage #1 — General tips, опубликованной в блоге cravingtech.com. Также вы можете ознакомиться с переводом второй и третьей статьи из этой серии.

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

Параллельная обработка данных в Perl

Решил выложить небольшую заготовку для скрипта, обрабатывающего данные с помощью нескольких дочерних процессов. Мне уже приходилось пару раз ее использовать, может и Вам пригодится.