<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7555770271531199968</id><updated>2012-05-21T09:16:45.182+03:00</updated><category term='Apache OfBiz'/><category term='JQuery'/><category term='DIP'/><category term='Плоды работы воспалённого мозга'/><category term='SQL'/><category term='Маргинальное'/><category term='FP'/><category term='Clojure'/><category term='XML'/><category term='Java'/><category term='Банальности'/><category term='Google'/><category term='.NET'/><title type='text'>Блог Павла Дробушевича</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://pdrobushevich.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7555770271531199968/posts/default/-/FP'/><link rel='alternate' type='text/html' href='http://pdrobushevich.blogspot.com/search/label/FP'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Pavel Drobushevich</name><uri>https://profiles.google.com/105938880741462935537</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-axFBm8rfRMM/AAAAAAAAAAI/AAAAAAAAA5k/YbOBUkwZVqQ/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>1</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7555770271531199968.post-6335057064292047981</id><published>2011-03-26T22:39:00.011+02:00</published><updated>2011-04-07T18:25:32.775+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Маргинальное'/><category scheme='http://www.blogger.com/atom/ns#' term='Clojure'/><category scheme='http://www.blogger.com/atom/ns#' term='FP'/><title type='text'>Субботний вечер пропаганды маргинальных технологий: Статистический анализ с помощью clojure и incanter</title><content type='html'>&lt;p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-9tBREyP_YAg/TZ1R5kx2ZXI/AAAAAAAAAcY/SSLLAEnb8WA/s1600/incanter-i-logo-holo.png" imageanchor="1" style="clear:right; float:right; margin-left:1em; margin-bottom:1em"&gt;&lt;img border="0" height="175" width="173" src="http://4.bp.blogspot.com/-9tBREyP_YAg/TZ1R5kx2ZXI/AAAAAAAAAcY/SSLLAEnb8WA/s320/incanter-i-logo-holo.png"&gt;&lt;/a&gt;&lt;/div&gt;Начну из далека. Все прекрасно знают, что Java код компилируется в платформа независимый java bytecode. Sun&amp;#39;ики этого не планировали, но, так же как и для CLR, появились альтернативные языки, компилируемые под JVM. Зачастую это порты других известных языков: Jython (Python), JRuby (Ruby), Kawa (Scheme). Они пользуются небольшой популярностью по очевидной причине, люди предпочитают использовать не порт, а настоящий язык. Но есть языки разработанные специально для JVM. Например Groovy, солянка Ruby и Java, заполучил своё место под солнцем как скриптовый язык, часто используется, как основа более гибких конфигураций, нежели статический xml и вроде веб на нём тоже делают. Ещё есть Scala, мельтипарадигменный язык, который совмещает в себе огромную кучу фич из ООП и ФП. Мне он не очень нравится перегруженностью синтаксиса, но он набирает популярность как замена Java. Но сегодня я хотел бы поговорить о &lt;a href="http://clojure.org/"&gt;Clojure&lt;/a&gt; - это функциональный язык, диалект великого Lisp&amp;#39;а. Ах, нет, я хотел обмануть, про замечательный язык clojure я не стану рассказывать детально в этой статье, лучший способ с ним познакомиться это &lt;a href="http://alexott.net/ru/clojure/"&gt;одноименный раздел на сайте Алекса Отта&lt;/a&gt;. Там же есть постоянно обновляющаяся &lt;a href="http://alexott.net/ru/clojure/clojure-intro/index.html"&gt;вводная статья&lt;/a&gt; написанная Алексом для журнала &lt;a href="http://fprog.ru/"&gt;fprog&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;Я участвую в проекте по обработке данных. Предыдущая версия использовала MS Sql Server для своей работы, поэтому анализ работы системы сделать было достаточно просто, можно было обойтись и простым t-sql скриптом или, если нужно было графическое представление, то можно было использовать Reporting services. Сейчас же, для того компонента, которым я занимаюсь, никакие СУБД не используются, поэтому какие-то выводы можно делать исключительно по логам. Поэтому даже был сделан отдельный структурированный лог в csv формате обо всех важных событиях, произошедших в системе. К примеру, к нам приходит много файлов, поэтому для каждого из этих фалов, этот лог содержит упрощённо 3 записи: файл найден, файл отправлен на обработку, файл обработан. Как то у &lt;a href="http://www.facebook.com/profile.php?id=100000498221779"&gt;Ярослава&lt;/a&gt; возникла идея попробовать &lt;a href="http://www.r-project.org/"&gt;язык R&lt;/a&gt;, чтобы нарисовать какие-нибудь интересные аналитические графики. Меня идея заинтересовала, я скачал книгу и впал в ступор. В общем и целом, язык этот мне не понравился (можно сказать не осилил:)). Но месяц назад в очередном порыве изучения clojure, у Алекса наткнулся на упоминания о проекте &lt;a href="http://incanter.org/"&gt;incanter&lt;/a&gt;. Лучше всего его описали сами авторы:  &lt;/p&gt;&lt;blockquote&gt;Incanter is a Clojure-based, R-like platform for statistical computing and graphics.&lt;/blockquote&gt;&lt;p&gt;В этой статье я попробую рассказать, как я, человек знакомый с clojure только по статьям/книгам/скринкастам, использовал incanter для построения интересных, на мой взгляд, графиков работы нашего приложения.  &lt;/p&gt;&lt;a href="http://pdrobushevich.blogspot.com/2011/03/clojureincanter.html#more"&gt;Дальше »&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7555770271531199968-6335057064292047981?l=pdrobushevich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pdrobushevich.blogspot.com/feeds/6335057064292047981/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://pdrobushevich.blogspot.com/2011/03/clojureincanter.html#comment-form' title='Комментарии: 7'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7555770271531199968/posts/default/6335057064292047981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7555770271531199968/posts/default/6335057064292047981'/><link rel='alternate' type='text/html' href='http://pdrobushevich.blogspot.com/2011/03/clojureincanter.html' title='Субботний вечер пропаганды маргинальных технологий: Статистический анализ с помощью clojure и incanter'/><author><name>Pavel Drobushevich</name><uri>https://profiles.google.com/105938880741462935537</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-axFBm8rfRMM/AAAAAAAAAAI/AAAAAAAAA5k/YbOBUkwZVqQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-9tBREyP_YAg/TZ1R5kx2ZXI/AAAAAAAAAcY/SSLLAEnb8WA/s72-c/incanter-i-logo-holo.png' height='72' width='72'/><thr:total>7</thr:total></entry></feed>
