taavi

Just another weblog

Archive for the ‘progemine’ Category

zotonic – suureks kasvanud nitrogen

without comments

Mõnda aega tagasi kirjutasin veebiraamistikust nimega nitrogen, mis kujutas endast event orienteeritud erlangi veebikeskkonda. Raamistiku arhitektuur ja ideed on sattunud viljakasse pinnasesse, idanema läinud ning suureks kasvanud.

Zotonic on sealt võrsunud ideede baasil ehitatud erlangi CMS (content management system).

Sisuhalduse poolel on küll veel ohtralt arenguruumi. Aga põhikontseptsioonid on väga mõnusalt paigas, ning omadusi millega kiidelda on kuhjaga:

Tasub vaadata, uurida. Ja relvastusse võtta;)

Written by taavi

November 17th, 2009 at 2:00 am

Posted in IT, erlang, progemine

Tagged with

syntaksi higlight wordpressis

without comments

Asjad arenevad – installisin süntaksi highlightimise mooduli wordpressi jaoks. Ja nüüd tuleb “hello world” selle väljundi testimiseks:

hello() ->
    World = "world",
    io:format("Hello highlighted ~p~n", [World]).

Huvitav, kas tuleb ilus hello world!?

Ei tulnud.. Kokku tubli tund-poolteist jamamist, ets saaks enamvähem mõistliku näoga väljundi. Ei ole see javascripti http://code.google.com/p/syntaxhighlighter/ sugigi nii mõnus, kui võiks olla.

Praegune muditud koodijupp erlangi enamvähem ilusti kuvamiseks on selline:

SyntaxHighlighter.brushes.Erlang = function()
{
 var keywords = 'after begin case catch cond end fun if let of query receive when '+
  'define record export import include include_lib ifdef ifndef else endif undef '+
  'apply attribute call do in letrec module primop try';

 this.regexList = [
  { regex: /%.*$/gm,                    css: 'comment' },   // one line comments
  { regex: /"(?!")(?:\.|\\\"|[^\""\n])*"/gm,    css: 'string' },
  { regex: new RegExp(this.getKeywords(keywords), 'g'),  css: 'keyword' },
  { regex: /[A-Z][A-Za-z0-9_@]*/gm,     css: 'variable' },
  { regex: /\\w+\/\\d+/g,       css: 'funs'}
  ];

  this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags);
};

SyntaxHighlighter.brushes.Erlang.prototype = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Erlang.Aliases = ['erlang', 'erl'];

Written by taavi

March 19th, 2009 at 1:57 am

Posted in progemine

Väike võrdlus erlang vs. java

without comments

Nädalapäevad tagasi oli headel kolleegidel põnev programeerimisülesanne: ehitadada pisike programmike, mis näitaks google mapi peal miski teenuse leviala.

Ülesanne iseenesest lihtne – leviala on antud hunniku polügoonidena ning pead vaatama kas sind huvitav punkt jääb mõne polügooni sisse. Tõenäoliselt üks esimese kursuse programmeerimise ülesanne. Aga tundus piisavalt põnevana, et proovida ise ka järgi, kas saab hakkama.

Sai küll. Tulemused erlang vs. java

  • 396 rida erlangi koodi
  • ca. 4-6 tundi aega
  • 917 rida java koodi
  • ca. 2-3 päeva aega

Aeg on hinnanguline, kuna ei minul ega kolleegil polnud see põhitegevus. Päris nelja korda produktiivsem võrreldes imperatiivse programmeerimisega just polnud aga mingi täiesti arvestatava eduteguri sai küll.

Kasvõi esialgne lihtsustatud versioon ainult bounding boxi arvestamisega tuli äärmiselt lihtsalt:

find_bounded(Lat, Lon, AreaList) ->
    lists:filter( fun(#coverage_area{boundingbox=Box}) ->
                          {{MinLat,MinLon},{MaxLat,MaxLon}} = Box,
                          if
                              Lat >= MinLat andalso Lat =< MaxLat andalso
                              Lon >= MinLon andalso Lon =< MaxLon ->
                                  true;
                              true ->
                                  false
                          end
                  end, AreaList).

Sellega sai loogika tööle. Edasine oli ainult optimeerimine ja reaalne punkti polügoonis asumise algoritmi lisamine.

Written by taavi

February 24th, 2009 at 4:26 pm

Posted in IT, erlang, progemine

Robert Virding: miks erlang on nagu ta on..

without comments

Robert Virding – üks Erlangi programmerimiskeele autoritest kirjutas järelvaate miks Erlang on selline nagu ta on.

Näiteks if-klausel lisati peaegu kui kiire häkk. Keele autorid oma sõnul ei kasutanud seda ja ka eriti ei muretsenud selle pärast;)

Written by taavi

September 30th, 2008 at 1:01 am

Posted in erlang, progemine

hea disain toimib – jQuery

without comments

Mõned nädalad tagasi tuli hullumeelne mõte vaadata uuesti ringi kuidas tänapäeval weebi ja eriti kuidas selle popimat poolt web 2.0 tehakse.

Vaatasin ringi mitmesuguste erinevate javascripti, json, ajax märksõnu toetavate biblioteekide vahel. Kõige sümpatsemana jäi silma jQuery. Võimalik, et sümpaatsuse põhjuseks oli see, et sain aru mida jQuery library teha üritab ja kuidas ta seda teha üritab. Enamuse javascriti asjadega on siiamani olnud tunne kui pudru ja kapsad – lihsalt ei saa aru mida tehakse.

Igatahes hea meel, et sama hinnangu on andnud mitmed teisedki:

Ja mis kõige lahedam – lisaks normaalsele diasinile – ka töötab mõistliku kiirusega.

Written by taavi

September 29th, 2008 at 8:15 pm

Posted in IT, progemine