?

Log in

No account? Create an account
ICFPC 2011
eye
voidex

С радостью присоединюсь к команде. Поучаствовать хочется, но одному слишком напряжённо, так что зовите. Умею держать свечку и варить кофе.

Tags: ,

Windows Live Writer
eye
voidex

Поставил до кучи, заодно решил проверить.

society_by_gloom82-d36que5-ggggg

Read more...Collapse )

enumFromThenTo
eye
voidex
last ([0, 1 / 13 .. 1] :: [Double]) <= 1
False

Что же это такое творится?
Tags: ,

Rotary
eye
voidex
Tags: ,

PNG + JPEG
eye
voidex
Не могу поверить, что на hackage нету биндингов к libpng + libjpeg, или хоть чего-нибудь, позволяющего играючи, легко и просто загрузить JPEG/PNG/GIF/BMP.
Может, я всё-таки слепой или не так ищу?

update: таки слепой, Codec.Image.STB
Tags: ,

Building DLL in GHC
eye
voidex
По умолчанию GHC не умеет собирать нормальный DLL под Windows (как с этим в других системах, я не знаю). Поэтому я написал для себя модуль (код ужасен, я знаю, я взял половину из туториала, половину наваял на скорую руку и вынес, лишь бы оно собирало мой код), для которого достаточно определить дополнительный раздел в CABAL — x-export, внутри которого перечислить модули, содержащие экспортируемые функции. Точнее, там нужен список модулей, которые будут добавляться в рантайм при помощи hs_add_root.
Правильно ли я понимаю, что на других системах с этим проблем нет? Т.е. всей этой свистопляской надо заниматься только под Windows? Если да, то в defaultDll, видимо, не нужно предпринимать каких-либо дополнительных действий, если система отлична от Windows.
Tags: , ,

ID3v2: 2 vs 4
eye
voidex
Во время прогона по всей своей библиотеке, примерно в сотне из 4к композиций обнаружил неизвестные теги TT2 и TP1. 4-й байт был нулевым, что, вообще говоря, не по стандарту, т.е. фрейм невалиден. Оказывается, в старом варианте ID тега был всего лишь 3 байта, и данные теги соответствовали имени автора и названию альбома. Удивительны тут две вещи:
  1. Каким боком эти теги попали в новую версию? Видимо, какая-то кривая программа читала эти 3 байта в число (что логично), однако без всякой конвертации записала в 3-ю версию тегов.
  2. Однако explorer спокойно эти теги отображает в свойствах файла.
Т.е. какой-то мудак сломал файл, а какой-то умник решил исправить его ошибку таким способом. Теперь у меня когнитивный диссонанс, как это обрабатывать в библиотеке?
С одной стороны, такой фрейм вообще невалиден, с другой — не читать его некомильфо. Видимо, наваяю отдельную функцию, которая будет «восстанавливать» такие битые фреймы, по дефолту же их читать не надо.

fix
eye
voidex
Надо себе на стену повесить: всегда пиши ленивый паттерн в функции, которую планируется использовать в fix, всегда!
Второй раз уже натыкаюсь, а сейчас вообще пол часа на поиск «ошибки» угрохал.
Tags: ,

WTL + VS.Express + DEP
eye
voidex
Данный пост оставлю себе на будущее, чтобы не дай боже ещё раз с этим сношаться.

Решился я поставить WTL на Express, но как известно, он завязан на ATL, коего в новом Platform SDK и не предвидется (а старый качать лень). Поэтому я отыскал готовый кусок из старого PSDK, внёс необходимые правки (которые можно узреть, например, здесь), и сохранил всё это в архив.

На этом, правда, ничего не кончилось, а только началось, я взял чужой проект и он у меня успешно падал с AV при запуске. Наивно полагая, что дело в разнице студий и, возможно, каких-либо настроек (которые я предварительно сломал, дабы собрать проект у себя), я стал рыться в коде. Но потом и пустой с нуля созданный проект тоже не заработал. Методом «исправляй по кускам, пока не заработает» (а у меня по крайней мере запустился пример из WTL), я таки нашёл злосчастную опцию: необходимо отключить DEP, т.е. выставить флаг /NXCOMPAT:NO в дополнительных настройках компоновщика. Я зол. И тем более я не понимаю, почему на двух других машинах всё работало, а у меня нет.
Tags:

Darcs `on` Windows
eye
voidex
Вряд ли кто-то пытался поднять сервер darcs под windows, но мало ли, по крайней себе на будущее (если вдруг всё поправят).
На клиенте достаточно установить putty + сопутствующие утилиты.
На сервере: FreeSSHd (мануал), а также указать корневую директорию для sftp, внутри которой лежат репозитории. После этого SSH работает, darcs pull'ит и get'ит, но упорно не хочет push'ить с ошибкой:

D:\projects\some>darcs push voidex@voidex.org:some
Sat Oct 3 10:57:14 [_\cc_][_\ee_][_\f1_][_\ea_][_\ee_][_\e2_][_\f1_][_\ea_][_\e
e_][_\e5_] [_\e2_][_\f0_][_\e5_][_\ec_][_\ff_] ([_\eb_][_\e5_][_\f2_][_\ee_]) 20
09 voidex@voidex.org
* Initial revision
Shall I push this patch? (1/1) [ynWvplxdaqjk], or ? for help: y

darcs failed: can't set directory to 'some'
darcs: fd:3: hPutBuf: resource vanished (Broken pipe)

И чёрт его знает, что ему не нравится.
Tags: ,