<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>tag:plblog.danieljanus.pl,2019:category:coffeescript</id>
  <title>Daniel Janus – CoffeeScript</title>
  <link href="http://plblog.danieljanus.pl/category/coffeescript/"/>
  <updated>2011-02-12T00:00:00Z</updated>
  <author>
    <name>Daniel Janus</name>
    <uri>http://danieljanus.pl</uri>
    <email>dj@danieljanus.pl</email>
  </author>
  <entry>
    <id>tag:plblog.danieljanus.pl,2011-02-12:post:smyrna</id>
    <title>Smyrna</title>
    <link href="http://plblog.danieljanus.pl/smyrna/"/>
    <updated>2011-02-12T00:00:00Z</updated>
    <content type="html">&lt;div&gt;&lt;p&gt;Dziś chciałbym zaprezentować kolejny stworzony przeze mnie przykład wykorzystania Clojure w praktyce – program &lt;a href="http://smyrna.danieljanus.pl"&gt;Smyrna&lt;/a&gt;. To proste narzędzie do przeszukiwania korpusów: umożliwia łatwe zindeksowanie zbioru dokumentów w formacie HTML, wyszukanie wystąpień interesującego nas leksemu i stworzenie listy frekwencyjnej słów.&lt;/p&gt;&lt;img src="/img/blog/smyrna.png"&gt;
&lt;p&gt;Program zrodził się z potrzeby chwili (potrzebowałem porównać wystąpienia pewnej grupy słów w różnych zestawach danych), ale uznałem, że jest na tyle użyteczny, że może przydać się nie tylko mnie. Zwłaszcza że nie było dotąd programu na wolnej licencji, który by umożliwiał &lt;em&gt;łatwe&lt;/em&gt; przeszukiwanie własnych zbiorów polskich tekstów. Można wykorzystać &lt;a href="http://poliqarp.sf.net"&gt;Poliqarpa&lt;/a&gt;, w którym też maczałem palce (a raczej nurzałem ręce), jednak używanie go z własnymi zbiorami danych wymaga ekwilibrystyki w stylu &lt;a href="http://github.com/nathell/dxces"&gt;dxces&lt;/a&gt; i jest trudne do przeskoczenia dla nietechnicznych użytkowników. Jest więc Smyrna swoistym uzupełnieniem dla Poliqarpa – &lt;a href="http://pl.wikipedia.org/wiki/Polikarp_ze_Smyrny"&gt;stąd zresztą nazwa&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Z technicznego punktu widzenia interesujący może być sposób, w jaki skonstruowałem interfejs użytkownika. Mimo że Smyrna jest w zasadzie aplikacją desktopową, obsługuje się ją przez przeglądarkę WWW: uruchamiany jest lokalny serwerek HTTP na porcie 8080, a następnie przeglądarka z tym adresem; cała dalsza komunikacja między JavaScriptowym kodem klienckim a Clojurowym silnikiem przeszukującym odbywa się przez JSON-RPC.&lt;/p&gt;&lt;p&gt;W ramach ćwiczenia, kliencki kod napisałem w nowej, alternatywnej składni dla JavaScriptu, czyli zyskującym coraz większą popularność &lt;a href="http://jashkenas.github.com/coffee-script/"&gt;CoffeeScripcie&lt;/a&gt;. Eksperyment uważam za udany: kod wychodzi czytelniejszy i zwięźlejszy niż w "zwykłym" JS.&lt;/p&gt;&lt;/div&gt;</content>
  </entry>
</feed>
