воскресенье, 27 февраля 2011 г.

Сказ о том, как я пробовал собирать Ocaml'ом нативные виндовые экзешники

Итак. Имеется машина под управлением MS Windows XP SP3. Есть желание собирать native executables под эту платформу с помощью системы функционального программирования Ocaml.

Как следует из информации на сайте, существуют 2 базовых порта Окамла под Windows: один на основе MS Visual C++, другой - MinGW/Cygwin. Я поначалу использовал первый.
До тех пор, пока не заинтересовался генерацией нативных exe-файлов. А тут-то и выясняется, что для этого в первом случае требуется установить сам MS Visual C++ и какой-то MASM. Официально рекомендуется скачивать с сайта Майкрософта версию Visual C++ 2005 Express. Полазив же по сайту MS нашел только какой-то веб-инсталлятор под Visual C++ 2010 Express. Вроде бы как Express-версии бесплатны в использовании (хотя, может, я просто чего-то не понял:). Но в любом случае, тянуть много чего, да еще и сильно проприетарного, не очень хотелось. Так что наш выбор - порт на основе MinGW/CygWin, версию 3.11 которого в виде виндового инсталлятора можно скачать по ссылке: http://caml.inria.fr/pub/distrib/ocaml-3.11/ocaml-3.11.0-win-mgw.exe. Размер инсталлятора - чуть более 40 мегабайт.

суббота, 15 января 2011 г.

Видеоурок "Вычисление конечной цепной дроби на Haskell"

Всем привет.
Продолжаем выпускать видеоуроки )
Сегодня записал небольшой видеоурок по решению упражнения N1.37 из SICP ("Структура и интерпретация компьютерных программ" Абельсона и сотоварищи) на тему вычисления конечной цепной дроби.

Сначала вкратце рассказываю, что такое бесконечная и конечная цепная дробь, каким образом с помощью неё можно вычислить коэффициент золотого сечения theta, а затем привожу решение задания на хаскеле - привести 2 варианта реализации функции вычисления конечной цепной дроби, порождающие рекурсивный и итеративный процессы,
и определить минимальное количество членов конечной цепной дроби, которая даст точность нахождения коэффициента золотого сечения в 4 знака после запятой.

Снова в видео есть некоторые огрехи, но зато они придают определенную живость повествованию ) Само видео, залитое на ютьюб, ниже:

суббота, 8 января 2011 г.

Видеоурок "Функции высших порядков" (на примере Haskell)

Всем привет. Попробовал сделать свой первый видеоурок в Камтазии :)
В качестве темы выбрал "Функции высших порядков". Сразу говорю, что видео, скорее, для начинающих. Получилось, может быть, не очень удачно (и местами я несу какую-то околесицу), но учтите, что это мой первый опыт такого рода. Будем же любить друг друга и относиться чуть снисходительнее :).
Ну а если кому даже и понравится (вдруг!), то я буду только рад.
Вот само видео на youtube:

пятница, 31 декабря 2010 г.

С Новым 2011 Годом!


Друзья.
Скоро наступает Новый 2011 год. Для меня всегда празднование Нового Года было
особенным событием. Есть в нем, на мой взгляд, нечто сказочно-волшебное. Пожелаю вам в Новом году крепкого здоровья, душевного и материального благополучия, встреч с умными и интересными людьми. Чтобы Новый год дарил вам одни только положительные эмоции. С наступающим Новым 2011 годом!

пятница, 5 ноября 2010 г.

Haskell Platform 2010.2.0.0 и Cabal под Windows XP

Давеча столкнулся с интересной проблемой обновления пакетов в Haskell Platform 2010.2.0.0 (от июля 2010 года) под Windows XP. Изучал пример, в котором для перекодировки символов использовался модуль Encoding. Из коробки данный модель не входит в состав библиотек, поставляемых c Haskell Platform 2010.2.0.0.

Качать пакеты можно с http://hackage.haskell.org - хранилища различных пакетов модулей для хаскеля. Можно пробовать либо устанавливать пакеты вручную, либо использовать идущий вместе с хаскелем Cabal - средство для автоматической установки пакетов. Конечно, более интересным показался второй вариант. Тут же наткнулся на первые грабли.

вторник, 2 ноября 2010 г.

Размер среды окружения при запуске DOS задач в Windows XP

Общеизвестно, что при запуске DOS-приложений размер окружения (Environment) ограничивается по-дефолту вполне определенной величиной (в XP, например, это значение равно 256 байт, если я правильно понял ). Как это проявляется ? Ну, вот, например, у вас есть переменные среды, в том числе и PATH, которые заданы средствами Windows (Мой Компьютер => Свойства => Дополнительно => Переменные Среды). При запуске DOS-приложений стартует виртуальная машина DOS-задач NTVDM, которая запускает command.com, получающий из всего пула переменных среды блок размером в 256 байт. То есть, если PATH у вас был длинный (а такое часто случается при установке приложений в папку Program Files, которые добавляют в переменную PATH пути к своим бинарниками или либам), то для DOS-задачи он будет урезан.

суббота, 2 октября 2010 г.

Firefox 4 и русская локаль

Не так давно обновил у себя Firefox 3.6.10 на Firefox 4 Beta 6. Что-то, видимо, изменилось в настройках, не могу понять только, что именно. Смысл в чем. Встроенный поиск в Google
перебрасывает, почему-то, на молдавский домен google.md с латинской графикой.
Видимо, по-дефолту поиск идет на домене google.com, который уже в зависимости от страны или настроек пользователя перебрасывает последнего на локальный домен.
Пока решил это включением галки "предлагается на русском языке" на странице google.md (видимо, гугль садит какую-то куку), но как-то это не по-людски. Хотелось бы урегулировать проблему раз и навсегда. Полазил по настройкам Firefox'а в about:config. Нашел 2 параметра, которые отвечают за локаль:
1. Строчный параметр "general.useragent.locale"
Вроде бы, устанавливает локаль в юзерагенте браузера. Пробовал менять дефолтное "en-US" на "ru-RU" - без особого успеха.
2. Булевый параметр "intl.locale.matchOS". В случае True (по-дефолту выставлен в False) заменяет вышестоящий параметр тем, что выставлено в локали OS (если я правильно понял). Изменение его на "True" также результатов не дало.
Сталкивался ли кто с таким ? Интересно, как можно решить ?