понедельник, 22 августа 2011 г.

Haskell и MongoDB. Updated.


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

Вот так и произошло. Не так давно я написал статью об использовании MongoDB и Haskell, а она уже не актуальна. Ничего не поделаешь, надо усп.

суббота, 20 августа 2011 г.

Призы за решения математической задачки

Не так давно я участвовал в конкурсе, который организовал автор известных работ о функциональном программировании, Роман Душкин.

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

Главный приз получил licvidator. Его Java-безумие это заслужило. :)

А остальным были вручены PDF-ки "Методы получения, представления и обработки знаний с НЕ-факторами" c автографом автора.

В числе остальных оказался и я. О чем радостно и рапортую (картинка кликабельна):


Огромное спасибо Роману. Надеюсь, что книга будет проста для понимания таким как я, не-бородатым не-профессорам. 

среда, 10 августа 2011 г.

Перенимаем лучшее или заменяем "return ()" в Haskell

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

Возможно вы это оцените.

вторник, 9 августа 2011 г.

Бот для браузерной mmorpg Ботва на Haskell


Однажды друг пригласил меня в браузерную mmorpg под названием Ботва Онлайн.
Я уже давно не играю в такие игры. Но маленький интерес остался. Около пяти лет назад, во времена dial-up интернета, это было моим любимым развлечением. Сейчас же, я если и захожу в такую игру - то только посмотреть, имеет ли она то, чего я ждал от браузерных игр того времени. Либо могу ли я тут пожульничать.

четверг, 4 августа 2011 г.

Решение "хитроумной задачи для любителей матана"

Сегодня человек с ником _darkus_ (как оказалось - это тот самый Роман Душкин) разместил в LiveJournal пост, с названием "Хитроумная задача для любителей матана", где он призывал решить её на любимом языке программирования.

Мыслим Pointfree

Pointfree. Думаю многим уже знакомо это слово. Каждый уважающий себя Haskell-программист должен овладеть этим кунг-фу.

Это не сложно.

Haskell библиотеки, которые мы должны использовать

Однажды просматривая reddit, я наткнулся на неплохую статью с кратким обзором Haskell-библиотек для практических нужд.
Оригинал статьи на английском, с ним можно ознакомиться тут. А у кого плохо с английским, мой авторский перевод в этой статье.

среда, 3 августа 2011 г.

Функциональная задачка by rigidus.ru

Сегодня совершенно случайно наткнулся на статью под названием "Функциональная задачка".
В ней описывалась простая задача и способ её решения на Common Lisp. На самом деле я не знаю, чего в этой задаче "функционального", но это слово привлекло мое внимание.
Вы можете ознакомиться с решением на CL и самой статьей тут.

Я же решу задачу на Haskell. Причем двумя способами. Сам я хоть и не люблю спортивное программирование, но вот такие "быстрые" задачки люблю. Они не занимают много времени и их приятнее решать, нежели всякие абстрактные сказки.


суббота, 30 июля 2011 г.

Работа с BSON в Haskell


Разобрав как работать с MongoDB, мы не разобрали главного. Что же делать с полученными из БД данными? На самом деле у опытного Haskell-программиста даже не возникнет такого вопроса.
Но статья не для них. Статья для тех "горячих" новичков, которые прочитали короткий мануал, либо несколько глав из книги по Haskell и сразу принялись за дело.

Haskell не такой язык, в котором можно положиться на интуицию. Надо понимать. Не надо знать кучу рецептов или способов построить велосипед, надо лишь знать поведение инструментов, понимать их устройство.

Ну ладно, что уж там. Если вы новичок, то вряд ли это введение вас остановит. Приступим к делу.

четверг, 28 июля 2011 г.

Домен на GoDaddy.com или блокировка через час

Вчера я приобрел домен на GoDaddy.com в зоне ".me". Я уже имею один домен у SpaceWeb, но они к сожалению не регистрируют национальные домены Черногории.

вторник, 26 июля 2011 г.

MongoDB и Haskell. Упрощаем себе жизнь


Многие методы, примененные в статье устарели и неактуальны. Обновленная версия.

Наверное уже все слышали модное нынче слово "nosql", кто-то возможно уже использовал на деле эти замечательные базы данных.

Haskell также имеет биндинги к различным nosql-бд, а именно:

  • Redis
  • Cassandra
  • CouchDB
  • Riak
  • MongoDB


В данной статье я расскажу об использовании MongoDB и Haskell.

понедельник, 25 июля 2011 г.

Многопоточность GTK и lightweight потоки в Haskell. Ошибка новичка

Сегодня впервые попробовал Gtk2Hs. Пробовал его в купе с Gazpacho, о котором писал ранее. Интуитивно-понятная архитектура GTK в купе с подробнейшей документацией в Haddock сделали мне приятный вечер.

Для закрепления успеха я решил написать простенькую утилиту. Быстренько накидав формочки и вдумчиво, но так же быстро написав код, я принялся за тестирование.

Не дав даже оглядеться, меня ловко спустили с небес.

воскресенье, 24 июля 2011 г.

Glade 3 не дружит с Haskell или холодный Gazpacho оказался вкуснее


Сегодня я попытался сделать GUI с помощью GTK и Glade. Haskell имеет пакет для glade, а так же кучу туториалов.

Но к сожалению, Haskell-библиотека glade рассчитана на glade-2.

суббота, 23 июля 2011 г.

Shpider. Простые примеры


Многие, кто только начал изучать Haskell сразу лезут в Web. Причем лезут с двух сторон, с одной стороны это web-пауки, а с другой сайты и порталы.

При наличии великолепных web-фреймворков вроде Snap или Yesod, написание CMS для сайта не является подвигом.

Вопросики/квадратики или как монтировать флешку на Linux


Такая проблема часто возникает у новоприбывшего линуксоида.

Нужно подмонтировать Windows-раздел - а там вопросики?
Друг принес флешку - на ней квадратики?
Вы записали флешку на Linux, а у подруги кракозябры?

Простой Network-клиент на Haskell

Чуть ранее мы написали простой TCP сервер. Теперь мы напишем простой клиент для него.

Простой TCP сервер на Haskell с Network.Socket


Написание сервера при наличии богатых библиотек для работы с сетью - вещь нетрудная. Но новичкам чаще всего не хватает хорошего комментированного примера.

В данной статье мы рассмотрим написание простейшего TCP-сервера на  Haskell.

Первая запись



Следуя традициям в блоге необходимо сделать банальную запись, которая будет повествовать о том, как прекрасен мир, приветствовать "огромную" аудиторию читателей и может быть чуточку расскажет о новоиспеченном  блоггере.