11.1.13
Готовится перевод "Clojure Programming"
Издательство "ДМК-Пресс" продолжает серию переводов книг про новые языки программирования, и следующая вещь в списке - "Clojure Programming". Перевод уже начался, и они ищут людей которые помогут с технической вычиткой перевода. Если кому-то интересно, то пишите на dm at dmk-press.ru.
3.12.12
Переводы книжек на тему ФП...
Я регулярно общаюсь с издательством ДМК-Пресс, которое в последнее время занимается изданием переводов книг по функциональному программированию и языкам ФП.
В данный момент они занимаются переводом "Scala for Impatient" и им нужны люди которые бы могли сделать техническую вычитку. Если кому интересно, то напишите Дмитрию Мовчану на dm at dmk-press.ru - я сам не знаю как это дело будет организовано...
Они также заинтересованы в издании перевода Practical Common Lisp, который находится в подвешенном состоянии уже давно (надо доперевести 1.5 главы и пройтись по тексту, вычитывая). Издательство приобрело права на издание книги в России, и обещает напечатать книгу по себестоимости. Если кто может принять участие в этом проекте, напишите мне, я выдам .git-репозиторий с текстом в формате LaTeX (или залить это дело на github?). У меня честно говоря совсем нет свободного времени довести PCL до ума.
Update: PCL залит на github, кто хочет поучавствовать - присылайте свои login names, я добавлю к проекту. Координация и обсуждения происходят в списке рассылки
Update: PCL залит на github, кто хочет поучавствовать - присылайте свои login names, я добавлю к проекту. Координация и обсуждения происходят в списке рассылки
30.10.12
Новая версия статьи про CEDET
Только что залил на сайт новую версию своей статьи про настройку CEDET. Я также оставил доступной старую версию статьи, но в виде отдельной страницы.
Новая версия описывает новую схему расположения исходного кода, а также новый способ активации под-режимов, так что статья теперь применима и к версии из bzr, и к версии идущей в составе GNU Emacs (после того как выпустят новую его версию).
Кроме того, я добавил небольшое описание того, как настроить связку CEDET + Java, а также небольшое описание настройки дополнений через auto-complete.
Вместо моего конфига, который очень уж сильно замусорен, теперь лучше воспользоваться отдельным конфигом.
P.S. кстати, в последних снапшотах, CEDET умеет находить проекты Maven, и получать информацию о classpath прямо из них, так что теперь работает и дополнение имен для классов из сторонних библиотек. Например, вот так (Это дополнение при работе с кодом Apache Tika):
P.P.S. If you found error, or typo - please write comment on page, or fork source code on github (it's enough to fix only .muse file), and create pull request :-)
Новая версия описывает новую схему расположения исходного кода, а также новый способ активации под-режимов, так что статья теперь применима и к версии из bzr, и к версии идущей в составе GNU Emacs (после того как выпустят новую его версию).
Кроме того, я добавил небольшое описание того, как настроить связку CEDET + Java, а также небольшое описание настройки дополнений через auto-complete.
Вместо моего конфига, который очень уж сильно замусорен, теперь лучше воспользоваться отдельным конфигом.
P.S. кстати, в последних снапшотах, CEDET умеет находить проекты Maven, и получать информацию о classpath прямо из них, так что теперь работает и дополнение имен для классов из сторонних библиотек. Например, вот так (Это дополнение при работе с кодом Apache Tika):
![]() |
P.P.S. If you found error, or typo - please write comment on page, or fork source code on github (it's enough to fix only .muse file), and create pull request :-)
25.9.12
Выступление про Clojure на ITSea 2012
На прошлой неделе я рассказывал про Clojure на небольшой конференции ITSea (совмещенной с купанием в море и т.п. :-), и затем еще давал небольшой мастер-класс на тему практического использования Clojure. Слайды доступны на slideshare (а вот записи выступления к сожалению не было):
Данный постинг является дополнением к этим слайдам, и содержит ссылки на разные ресурсы, упоминавшиеся в рассказе:
Данный постинг является дополнением к этим слайдам, и содержит ссылки на разные ресурсы, упоминавшиеся в рассказе:
- Сайт языка
- Список доступных книг про Clojure (разделы про конкретные языки в обзоре литературы по ФП)
- Введение в Clojure на русском языке
- Список видео-лекций и презентаций про Clojure
- Planet Clojure - аггрегатор блогов
- Getting started with Clojure - описание первых шагов, включая установку и настройку средств разработки
- Интерактивные ресурсы/учебники: 4Clojure, TryClojure, Himera, labrepl
- Списки рассылки: clojure, clojure-russian
- IDE/редактора (остальные редактора/IDE описаны в подразделах Getting Started): Eclipse, IntelliJ IDEA
- Средства сборки: поддержка Clojure в Maven, Leiningen
- Библиотеки/фреймворки:
- Web: Ring, Compojure, Noir, Hiccup, lein-ring, ClojureScript, ClojureScript One, lein-cljsbuild
- SQL: Korma, clojure.java.jdbc
- NoSQL: Monger (MongoDB), Clutch (CouchDB), clojure-hbase-schemas (HBase)
- GUI: Seesaw
- core.logic
- Contrib libraries
- Внутреннее устройство persistent коллекций: вектора, отображения (maps)
Labels:
clojure,
conference,
fp,
presentations
10.6.12
Вышел GNU Emacs 24.1!
После длительной разработки, была выпущена новая версия GNU Emacs - 24.1. Среди основных изменений в данной версии можно отметить следующие:
- система пакетов, которая позволяет скачивать и устанавливать пакеты из внешних источников - как официальных, так и сторонних
- поддержка отображения и редактирования текстов на языках, где текст пишется справа-налево
- поддержка lexical scoping в Emacs Lisp
- улучшения в системе дополнений (completion) - большинство пакетов теперь используют одинаковый метод показа дополнений
- встроенная поддержка тем оформления
- улучшения в интеграции с внешними библиотеками - GTK+3, ImageMagic, GNU TLS, etc.
3.6.12
Впечатления о курсе "Natural Language Processing"
Продолжая традицию постоянного обучения, я не смог не пройти мимо еще одного из курсов предлагаемых Coursera. После курсов прошедших прошлой осенью, у меня осталось очень хорошее впечатление о них. Среди большого набора новых курсов я выбрал курс Natural Language Processing (NLP) - та тема, которая меня давно интересовала. А на этой неделе я наконец-то получил сертификат об окончании этого курса, и решил написать по свежим следам...
Курс длится 8 недель и преподается двумя известными специлистами в этой области - Dan Jurafsky & Christopher Manning (оба из университета Stanford). В качестве основы для курса взяты две книги: Speech & Language Processing, 2ed и Introduction to Information Retrieval (можно найти и онлайн-версии обоих книг - в виде последних снапшотов перед отравкой в издательство). Так получилось, что обе книги у меня уже были достаточно давно, но все не доходили руки сесть за их чтение. Хочется отметить, что читать книги все-таки требовалось, чтобы лучше понять то, что объяснялось в лекциях.
Каждую неделю необходимо было прослушать примерно 2 часа лекций, ответить на набор вопросов, и выполнить домашнее задание (в виде программы). В качестве языка программирования можно было использовать Java или Python - каждую неделю публиковалось новое задание, которое содержало заготовку кода, куда надо было вписать свое решение. Одним из отличий от осенних курсов было то, что на выполнение заданий отводилось больше времени - две недели (эти сроки иногда увеличивались - в зависимости от сложности задания и технических проблем).
Первые три недели были достаточно простыми - разбирали использование регулярных выражений для NLP, моделирование языков, spell correction и классификацию текстов с помощью Naive Bayes - задания выполнялись достаточно быстро.
А вот недели 4-6 были достаточно сложными - рассматривались maximum entropy модели, вычленение именованных объектов и отношений между ними, part of speech tagging, а также вероятностный парсинг текста. 5-е и 6-е задания были самыми сложными в этом курсе (стоит отметить, что много народу просто пропустило 6-ю домашнюю работу) - необходимо было уметь программировать на достаточно хорошем уровне. Но зато было очень интересно смотреть как твоя программа выдает корректную структуру даже для очень сложных предложений с правильно присвоенными частями речи.
7-е задание было очень легким - надо было запрограммировать индексирование текста и вычисление tf-idf. А вот 8-е, хоть и казалось несложным, но требовало достаточно много времени для доводки регулярных выражений, которые должны были извлекать кусочки информации из входных данных. Времени к сожалению было не особо много, так что я сдал первый работающий вариант, за который получил около 70% от макс. оценки.
В итоге, после прохождения всего курса, я набрал 93% от макс. кол-ва баллов. Также вспомнил/научился как программировать на питоне - языке на котором я писал очень редко, а в основном читал код. И даже применил новые знание на практике, соорудив категоризатор текста на базе HBase/Clojure/Hadoop в виде эксперементального модуля для нашего продукта.
Так что если вам интересны вопросы information retrieval/natural language processing - я очень рекомендую этот курс - он дает очень хорошее представление об этих областях и формирует основу для дальнейшего изучения.
Курс длится 8 недель и преподается двумя известными специлистами в этой области - Dan Jurafsky & Christopher Manning (оба из университета Stanford). В качестве основы для курса взяты две книги: Speech & Language Processing, 2ed и Introduction to Information Retrieval (можно найти и онлайн-версии обоих книг - в виде последних снапшотов перед отравкой в издательство). Так получилось, что обе книги у меня уже были достаточно давно, но все не доходили руки сесть за их чтение. Хочется отметить, что читать книги все-таки требовалось, чтобы лучше понять то, что объяснялось в лекциях.
Каждую неделю необходимо было прослушать примерно 2 часа лекций, ответить на набор вопросов, и выполнить домашнее задание (в виде программы). В качестве языка программирования можно было использовать Java или Python - каждую неделю публиковалось новое задание, которое содержало заготовку кода, куда надо было вписать свое решение. Одним из отличий от осенних курсов было то, что на выполнение заданий отводилось больше времени - две недели (эти сроки иногда увеличивались - в зависимости от сложности задания и технических проблем).
Первые три недели были достаточно простыми - разбирали использование регулярных выражений для NLP, моделирование языков, spell correction и классификацию текстов с помощью Naive Bayes - задания выполнялись достаточно быстро.
А вот недели 4-6 были достаточно сложными - рассматривались maximum entropy модели, вычленение именованных объектов и отношений между ними, part of speech tagging, а также вероятностный парсинг текста. 5-е и 6-е задания были самыми сложными в этом курсе (стоит отметить, что много народу просто пропустило 6-ю домашнюю работу) - необходимо было уметь программировать на достаточно хорошем уровне. Но зато было очень интересно смотреть как твоя программа выдает корректную структуру даже для очень сложных предложений с правильно присвоенными частями речи.
7-е задание было очень легким - надо было запрограммировать индексирование текста и вычисление tf-idf. А вот 8-е, хоть и казалось несложным, но требовало достаточно много времени для доводки регулярных выражений, которые должны были извлекать кусочки информации из входных данных. Времени к сожалению было не особо много, так что я сдал первый работающий вариант, за который получил около 70% от макс. оценки.
В итоге, после прохождения всего курса, я набрал 93% от макс. кол-ва баллов. Также вспомнил/научился как программировать на питоне - языке на котором я писал очень редко, а в основном читал код. И даже применил новые знание на практике, соорудив категоризатор текста на базе HBase/Clojure/Hadoop в виде эксперементального модуля для нашего продукта.
Так что если вам интересны вопросы information retrieval/natural language processing - я очень рекомендую этот курс - он дает очень хорошее представление об этих областях и формирует основу для дальнейшего изучения.
15.4.12
Clojure 1.4!
А между тем, незаметно подкрался релиз новой версии языка Clojure - 1.4.
Rich Hickey называет этот релиз в основном maintenance, хотя есть и достаточно крупные изменения:
Полный список изменений можно найти в репозитории. Кроме того, может быть интересным интервью Rich Hickey в котором он рассказывает про некоторые изменения в новой версии.
Rich Hickey называет этот релиз в основном maintenance, хотя есть и достаточно крупные изменения:
- Расширяемая процедура чтения (reader) - разработчик может указать функцию чтения для своих типов данных. Разработчик должен указать метку для своего типа данных, и соответствующую функцию чтения, и данная функция будет вызвана после того, как следующая (после метки) форма будет считана стандартным reader. Например, можно будет писать вот так:
#foo/bar [1 2 3]- в этом случае, после чтения метки, процедура чтения сначала считает форму[1 2 3], а затем вызовет процедуру связанную с данной меткой (если она определена) и передаст ей прочитанные данные. В состав новой версии вошла поддержка чтения двух новых типов - #inst - для времени и даты, и #uuid - для UUID.
- Новый синтаксис для доступа к полям записей (унифицировано с ClojureScript) - теперь можно писать (.-field_name record-instance).
- Возможность контролировать поведение компилятора Clojure с помощью опций, указанных через переменную *compiler-options*.
Полный список изменений можно найти в репозитории. Кроме того, может быть интересным интервью Rich Hickey в котором он рассказывает про некоторые изменения в новой версии.
Подписаться на:
Сообщения (Atom)
