<?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-3529459103024411283</id><updated>2011-05-02T16:07:33.624+02:00</updated><category term='InfoSec'/><category term='sistemsko programiranje'/><category term='POSIX'/><category term='F#'/><category term='pingvinluk'/><category term='teorija složenosti'/><title type='text'>Kung Fu programiranje</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://istambuk.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3529459103024411283/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://istambuk.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ivan Štambuk</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3529459103024411283.post-4297760038143766414</id><published>2007-06-12T07:16:00.000+02:00</published><updated>2007-06-12T07:24:50.520+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='InfoSec'/><title type='text'>Besplatni sklopovski rootkit sa Intel strojevima</title><content type='html'>&lt;a href="http://www.mail-archive.com/cryptography@metzdowd.com/msg07606.html"&gt;http://www.mail-archive.com/cryptography@metzdowd.com/msg07606.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Intel_Active_Management_Technology"&gt;http://en.wikipedia.org/wiki/Intel_Active_Management_Technology&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Zlouporaba sklopovske virtualizacije ili NGSCA modula je ništa prema ovome. Ovo je dostupno &lt;strong&gt;već danas&lt;/strong&gt;, i radi kao curica, neovisno o OS-u (SOAP - dakle XML!) i direktno komunicira sa MMU/CPU/NIC sklopovljem.&lt;br /&gt;&lt;br /&gt;Slammer 2, here I come..&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3529459103024411283-4297760038143766414?l=istambuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://istambuk.blogspot.com/feeds/4297760038143766414/comments/default' title='Objavi komentare'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3529459103024411283&amp;postID=4297760038143766414' title='4 komentara'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3529459103024411283/posts/default/4297760038143766414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3529459103024411283/posts/default/4297760038143766414'/><link rel='alternate' type='text/html' href='http://istambuk.blogspot.com/2007/06/besplatni-sklopovski-rootkit-sa-intel.html' title='Besplatni sklopovski rootkit sa Intel strojevima'/><author><name>Ivan Štambuk</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3529459103024411283.post-5232390607358277237</id><published>2007-06-08T23:05:00.000+02:00</published><updated>2007-06-08T23:18:59.158+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pingvinluk'/><title type='text'>Linux audio džungla</title><content type='html'>&lt;a href="http://blogs.adobe.com/penguin.swf/linuxaudio.png"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 800px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://blogs.adobe.com/penguin.swf/linuxaudio.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://blogs.adobe.com/penguin.swf/2007/05/welcome_to_the_jungle.html"&gt;http://blogs.adobe.com/penguin.swf/2007/05/welcome_to_the_jungle.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A eto..graf je aciklički......uglavnom :P&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3529459103024411283-5232390607358277237?l=istambuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://istambuk.blogspot.com/feeds/5232390607358277237/comments/default' title='Objavi komentare'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3529459103024411283&amp;postID=5232390607358277237' title='2 komentara'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3529459103024411283/posts/default/5232390607358277237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3529459103024411283/posts/default/5232390607358277237'/><link rel='alternate' type='text/html' href='http://istambuk.blogspot.com/2007/06/linux-audio-dungla.html' title='Linux audio džungla'/><author><name>Ivan Štambuk</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3529459103024411283.post-4754187807189911310</id><published>2007-06-08T02:02:00.000+02:00</published><updated>2007-06-08T02:06:13.420+02:00</updated><title type='text'>Dream Theater</title><content type='html'>&lt;a href="http://media3.guzer.com/pictures/rock_star_cat.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand" alt="" src="http://media3.guzer.com/pictures/rock_star_cat.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;rox!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3529459103024411283-4754187807189911310?l=istambuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://istambuk.blogspot.com/feeds/4754187807189911310/comments/default' title='Objavi komentare'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3529459103024411283&amp;postID=4754187807189911310' title='0 komentara'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3529459103024411283/posts/default/4754187807189911310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3529459103024411283/posts/default/4754187807189911310'/><link rel='alternate' type='text/html' href='http://istambuk.blogspot.com/2007/06/dream-theater.html' title='Dream Theater'/><author><name>Ivan Štambuk</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3529459103024411283.post-1148143094764262291</id><published>2007-06-04T13:10:00.000+02:00</published><updated>2007-06-04T13:48:20.732+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='teorija složenosti'/><title type='text'>Teorem o linearnom ubrzanju</title><content type='html'>Jako je zanimljivo kako zaista malo programera i programskih inženjera razumije &lt;span style="font-weight: bold;"&gt;zašto&lt;/span&gt; ustvari koristimo Veliko-O (Big-O) notaciju u svrhu označavanja asimptotske gornje granice funkcije. Dobar ih dio u podne i ponoć zna izrecitirati formalnu matematičku definiciju za veliko i malo O, thetu, omegu i tildu ~, kao i odokativno procijeniti vremensku složenost nekih jednostavnijih algoritama s kojima se susretnu u praksi - no pravi razlozi korištenja takve asimptotske definicije im, izgleda, ostanu vječna enigma.&lt;br /&gt;&lt;br /&gt;Stvar je inače jako jednostavna: u &lt;span style="color: rgb(51, 0, 51);"&gt;&lt;a href="http://hr.wikipedia.org/wiki/Ra%C4%8Dunska_teorija_slo%C5%BEenosti"&gt;računskoj teoriji složenosti&lt;/a&gt; &lt;/span&gt;postoji jedno teoremče koje slovi kao Teorem o linearnom ubrzanju (linear speedup theorem) i formalno se može iskazati ovako:&lt;br /&gt;&lt;br /&gt;Za proizvoljan rekurzivan (odlučiv) jezik L i za svaki Turingov stroj T koji ga odlučuje, za neku realnu nenegativnu konstantu &lt;span style="font-style: italic;"&gt;c&lt;/span&gt;, postoji Turingov stroj S nad istom abecedom koji odlučuje L i za kojeg vrijedi:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;time&lt;/span&gt;&lt;sub style="font-style: italic;"&gt;S&lt;/sub&gt;&lt;span style="font-style: italic;"&gt;(n) ≤ c*time&lt;/span&gt;&lt;sub style="font-style: italic;"&gt;T&lt;/sub&gt;&lt;span style="font-style: italic;"&gt;(n) + n, ∀n∈ &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;N&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Drugim riječina, za bilo koji TS koji rješava problem rabeći f&lt;span style="font-style: italic;"&gt;(n)&lt;/span&gt; resursa, postoji stroj koji rješava isti problem u &lt;span style="font-style: italic;"&gt;c*f(n)&lt;/span&gt; resursa, za &lt;span style="font-style: italic;"&gt;c&gt;0. &lt;/span&gt;To je razlog zašto se linearni faktori u konačnici ignoriraju i koristimo Veliko-O notaciju definiranu preko limesa.&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Postoji još i općenitiji teorem o ubrzanju (speedup theorem) koji govori samo o postojanju ubrzivog jezika i koji nije primjenjiv samo na odlučive jezika, kao što je slučaj sa teoremom o linearnom ubrzanju. Za dokazivanje teorema koji bi za proizvoljani odlučiv jezik pokazao postojanje više od linearnog ubrzanja ne bi ginula Turingova nagrada ;)&lt;br /&gt;&lt;br /&gt;Kvadratno se ubrzanje za neke klase algoritama (Groverov algoritam pretrage) može ostvariti kvantnim računalima, poput onoga kakvog je prototipno konstruirala kompanija D-Wave. Općenito se može pokazati da bilo koji problem koji može biti riješen brute-force pretragom slučajno odabranih instanci, može kvadratno ubrzati&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3529459103024411283-1148143094764262291?l=istambuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://istambuk.blogspot.com/feeds/1148143094764262291/comments/default' title='Objavi komentare'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3529459103024411283&amp;postID=1148143094764262291' title='0 komentara'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3529459103024411283/posts/default/1148143094764262291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3529459103024411283/posts/default/1148143094764262291'/><link rel='alternate' type='text/html' href='http://istambuk.blogspot.com/2007/06/teorem-o-linearnom-ubrzanju.html' title='Teorem o linearnom ubrzanju'/><author><name>Ivan Štambuk</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3529459103024411283.post-3061479569801100180</id><published>2007-06-03T02:34:00.001+02:00</published><updated>2007-06-03T02:42:02.225+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pingvinluk'/><title type='text'>Par bisera</title><content type='html'>na koje naletih baš danas:&lt;br /&gt;&lt;br /&gt;http://www.xml.com/ldd/chapter/book/ch04.html&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Many readers may be wondering why the kernel does not have any more advanced debugging features built into it. The answer, quite simply, is that Linus does not believe in interactive debuggers. He fears that they lead to poor fixes, those which patch up symptoms rather than addressing the real cause of problems. Thus, no built-in debuggers.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;http://osdir.com/ml/sysutils.autoconf.general/2004-09/msg00086.html&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Please do not port software to Windows, or, by extension, assist in&lt;br /&gt;porting software to non-free operating systems.  While GPL licensed&lt;br /&gt;software specifically permits this, DON'T DO IT AND DON'T HELP.  Making&lt;br /&gt;Windows more usable gives users less reason to switch to free software&lt;br /&gt;and more reason to continue funnelling time, effort and money into&lt;br /&gt;people and companies who take away freedom at every opportunity.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Genijalno! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3529459103024411283-3061479569801100180?l=istambuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://istambuk.blogspot.com/feeds/3061479569801100180/comments/default' title='Objavi komentare'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3529459103024411283&amp;postID=3061479569801100180' title='0 komentara'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3529459103024411283/posts/default/3061479569801100180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3529459103024411283/posts/default/3061479569801100180'/><link rel='alternate' type='text/html' href='http://istambuk.blogspot.com/2007/06/par-bisera.html' title='Par bisera'/><author><name>Ivan Štambuk</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3529459103024411283.post-6757581501216289044</id><published>2007-06-01T19:52:00.000+02:00</published><updated>2007-06-01T20:03:56.565+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='POSIX'/><category scheme='http://www.blogger.com/atom/ns#' term='sistemsko programiranje'/><title type='text'>Koprocesi</title><content type='html'>UNIX sistemski filter jest bilo program koji čita sa standardnog ulaza i piše na standardni izlaz. Obično se ulančavaju cjevovodima u shellu (koji su pri tome, kao što je Oleg Kiselyov jednoć pokazao, pri tome monadi!), filtar se nazivno promovira u koproces u trenutku kada isti program generira filtrov ulaz i čita mu izlaz, efektivno ga utilizirajući kao subsidijalnu računsku jedinku.&lt;br /&gt;&lt;br /&gt;Iako popularniji shellovi ne podržavaju izravno koprocese (pingvinski bash/sh/csh), neki kao ksh jesu, i to uz poprilično gadnu sintaksu. No svejedno, sa stajališta sistemskih programa, koprocesi su jako korisna koncepcija. Obično ih ostvarujemo kreiranjem po para jednosmjernih (unidirekcionalnih, half-duplex - iako POSIX.1 dozvoljava ali ne zahtijeva full-duplex) cjevovoda (pipes), koje u roditelju otvaramo za čitanje/pisanje, dok u forkanom djetetu u kojem exec*-amo koproces komplementarno za pisanje/čitanje.&lt;br /&gt;&lt;br /&gt;U &lt;a href="http://www.zemris.fer.hr/predmeti/os1/cjevovod.html"&gt;5. labosu &lt;/a&gt;iz kolegija Operacijski Sustavi 1, koncept se koprocesa rabi za provjeru ispravnosti korisničkih aritmetičkih izraza, projvjeravajući njihovu validnost i krajnji rezultat transparentno preko bc(1) koprocesa. Sva rješenja dotičnog zadatka koja sam ja vidio od svojih kolega, a bome i primjeri koji su asistenti-pingvini dali na većspomenutim stranicama, imaju jedan kritičan race condition.&lt;br /&gt;&lt;br /&gt;Naime, problem leži u standardnoj I/O buffering polisi, koja se programski dade kontrolirati (sa setvbuf(3), odnosno eksplicitnim fflush(3)-anjem nakon svakog pisanja), no to postaje malo nedohvatljivo u slučaju pretkompiliranog binarya kojeg ne možemo izmjeniti (bar ne koristeći neki platformski-nezavisan POSIX-kompatibilan način). ISO C zahtijeva sljedeće buffering karakteristike:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Standardni ulaz i standardni izlaz su u potpunosti buffered, akko se ne odnose na interaktivni uređaj.&lt;/li&gt;&lt;li&gt;Standardni izlaz za greške nikad nije u potpunosti buffered.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Ovo, međutim, ne kaže mogu li stdin/stdout biti unbuffered ili linijski bufferirani ukoliko su vezani za interkativni uređaj, kao i treba li stderr biti unbuffered ili linijski buffered. Većina implementacija (POSIX je specifikacija, ne implementacija!) po defaultu koriste sljedeće tipove:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Standardni izlaz za greške je uvijek unbuffered.&lt;/li&gt;&lt;li&gt;Svi su drugi streamovi linijski bufferirani &lt;strong&gt;ako se odnose na terminal&lt;/strong&gt;, inače su fully buffered (obično po 1024B).&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Standardni ulaz i izlaz koprocesa evidentno nisu vezani za terminal - i tu leži problem. Oni read(2)-ovi na izlaz iz koprocesa mogu potencijalno zauvijek blokirati pozivatelja koji čita sve dok ne dobije '\n' (bez obzira čak i ako koristimo neblokirajuće čitanje u petlji - još gore, sad imamo livelock!). Pozivatelj čeka na izlaz iz koprocesa, koproces čeka na ulaz iz pozivatelja, I/O podsustav čeka da u potpunosti bufferirani izlaz iz koprocesa pređe predefinirani prag popunjenja pa da ga može flushati i poslati pozivatelju - deadlock smrdi na kilometar.&lt;/p&gt;&lt;p&gt;Teži način rješavanja ovog potencijalno cirkularnog čekanja jest pokretanje koprocesa pod pseudoterminalom kojeg ustvari exec*-amo i koji najposlije pokreće koproces. Pisanje drivera za vlastiti pseudoterminalni uređaj je netrivijalno (dobro ne baš toliko teško, ali u svakom slučaju previše za nekoga tko samo želi naučiti elementarne IPC koncepte, a osim toga postoje i začkoljice o tome radi li se o BSD ili SystemV...), iako dakako postoje već gotova rješenja na netu.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Drugi je, lakši i hax0rskiji način, redefinirati isatty(2) tako da uvijek vraća istinu: &lt;/p&gt;&lt;p&gt;_isatty(int fd) { return 1;}&lt;/p&gt;&lt;p&gt;cc -G moj_isatty.c -o moj_isatty.so -Kpic &lt;/p&gt;&lt;p&gt;i potom na Solaris kanti na pinusu (naziv studentskog stroja) dinamički linkati na tu verziju podešujući okolinu koprocesa (odmah nakon forkanja):&lt;/p&gt;&lt;p&gt;&lt;br /&gt;LD_PRELOAD=/path/to/moj_isatty.so&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3529459103024411283-6757581501216289044?l=istambuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://istambuk.blogspot.com/feeds/6757581501216289044/comments/default' title='Objavi komentare'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3529459103024411283&amp;postID=6757581501216289044' title='0 komentara'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3529459103024411283/posts/default/6757581501216289044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3529459103024411283/posts/default/6757581501216289044'/><link rel='alternate' type='text/html' href='http://istambuk.blogspot.com/2007/06/koprocesi.html' title='Koprocesi'/><author><name>Ivan Štambuk</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3529459103024411283.post-2224730645287202792</id><published>2007-05-31T03:00:00.000+02:00</published><updated>2007-06-04T13:49:36.136+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='F#'/><title type='text'>Lijena evaluacija u F#</title><content type='html'>&lt;div    style=";font-family:Monospace;font-size:10pt;color:white;"&gt;&lt;span style="color:blue;"&gt;let&lt;/span&gt;&lt;span style="color:black;"&gt; &lt;/span&gt;&lt;span style="color:blue;"&gt;rec&lt;/span&gt;&lt;span style="color:black;"&gt; fibs = Seq.delay (&lt;/span&gt;&lt;span style="color:blue;"&gt;fun&lt;/span&gt;&lt;span style="color:black;"&gt;() &lt;/span&gt;&lt;span style="color:blue;"&gt;-&gt;&lt;/span&gt;&lt;span style="color:black;"&gt; fibs |&gt; Seq.cons 0I |&gt; Seq.cons 1I |&gt; Seq.pairwise |&gt; Seq.map (&lt;/span&gt;&lt;span style="color:blue;"&gt;fun&lt;/span&gt;&lt;span style="color:black;"&gt; (x,y) &lt;/span&gt;&lt;span style="color:blue;"&gt;-&gt; &lt;/span&gt;&lt;span style="color:black;"&gt;x+y))&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Ovo je inače prijevod u F# Haskell onelinera:&lt;br /&gt;&lt;br /&gt;fibs &lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt; 1 &lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:black;"&gt; 1 &lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:black;"&gt; zipWith &lt;/span&gt;&lt;span style="color:blue;"&gt;(&lt;/span&gt;&lt;span style="color:black;"&gt;+&lt;/span&gt;&lt;span style="color:blue;"&gt;)&lt;/span&gt;&lt;span style="color:black;"&gt; fibs &lt;/span&gt;&lt;span style="color:blue;"&gt;(&lt;/span&gt;&lt;span style="color:black;"&gt;tail fibs&lt;/span&gt;&lt;span style="color:blue;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;seq&lt;_&gt; je inače tipni sinonim za CLR IEnumerable&amp;lt;T&amp;gt;, i sve su mu metode (osim nekoliko njih koji se ticu konverzija u striktno reducirane liste i nizove) lijeno (po potrebi) evaluirane:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&gt; Seq.take 10 fibs;;&lt;br /&gt;val it : bigint list = [1I; 1I; 2I; 3I; 5I; 8I; 13I; 21I; 34I; 55I]&lt;br /&gt;&lt;/span&gt;&lt;div style="font-size: 10pt; color: white; font-family: Monospace;"&gt;&lt;/div&gt;&lt;div style="font-size: 10pt; color: white; font-family: Monospace;"&gt;&lt;/div&gt;&lt;div style="font-family: Monospace; font-size: 10pt; color: white;"&gt;&lt;/div&gt;&lt;br /&gt;Verzija koristeći ireffutable as-pattern:&lt;br /&gt;&lt;div    style="font-family:Monospace;font-size:10pt;color:white;"&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;let&lt;/span&gt;&lt;span style="color:black;"&gt; fib&lt;/span&gt;&lt;span style="color:blue;"&gt;@(&lt;/span&gt;&lt;span style="color:black;"&gt;1&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:black;"&gt;tfib&lt;/span&gt;&lt;span style="color:blue;"&gt;)&lt;/span&gt;&lt;span style="color:black;"&gt; &lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt; 1 &lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:black;"&gt; 1 &lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:black;"&gt; &lt;/span&gt;&lt;span style="color:blue;"&gt;[&lt;/span&gt;&lt;span style="color:black;"&gt; a+b &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;/span&gt;&lt;span style="color:black;"&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;(&lt;/span&gt;&lt;span style="color:black;"&gt;a&lt;/span&gt;&lt;span style="color:blue;"&gt;,&lt;/span&gt;&lt;span style="color:black;"&gt;b&lt;/span&gt;&lt;span style="color:blue;"&gt;)&lt;/span&gt;&lt;span style="color:black;"&gt; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;-&lt;/span&gt;&lt;span style="color:black;"&gt; zip fib tfib &lt;/span&gt;&lt;span style="color:blue;"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div color="white" size="10pt" face="Monospace"&gt;&lt;/div&gt;Nije toliko trivijalno translatabilna, s obzirom da nije moguce napraviti strukturalni pattern-matching na seq&lt;_&gt; i njegove konstrutore tipa kojih (koliko vidim) - nema.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3529459103024411283-2224730645287202792?l=istambuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://istambuk.blogspot.com/feeds/2224730645287202792/comments/default' title='Objavi komentare'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3529459103024411283&amp;postID=2224730645287202792' title='0 komentara'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3529459103024411283/posts/default/2224730645287202792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3529459103024411283/posts/default/2224730645287202792'/><link rel='alternate' type='text/html' href='http://istambuk.blogspot.com/2007/05/lijena-evaluacija-u-f.html' title='Lijena evaluacija u F#'/><author><name>Ivan Štambuk</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3529459103024411283.post-252000892532707225</id><published>2007-05-30T04:01:00.000+02:00</published><updated>2007-05-30T10:43:48.799+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='InfoSec'/><title type='text'>Phrack #64</title><content type='html'>Nakon duge i teške bolesti, izašao je &lt;a href="http://www.phrack.org/issues.html?issue=64"&gt;Phrack 64&lt;/a&gt;, ovaj put pod novim, razmlađenim uredništvom koji se naslovljavaju kao &lt;i&gt;The Circle of Lost Hackers&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Phrack degradira već više od dekade, kako kvalitetom članaka tako i nedostatkom duha undergrounda, koji se u moru industrijski-certificiranih InfoSec profija raspršio na kojekakve anonimuse koje više zanima kako da zajebu Warcraftov Warden nego ganjaju pikanterije libc-ovog alokatora.&lt;br /&gt;&lt;br /&gt;Preseravanja o povijesti scene, međunarodnim scenama (vraćanje u prošlost uvijek dobro dođe za prebjeg iz tmurne svakodnevice), freudovsko pretakanje iz šupljeg u prazno o "hakiranju svijesti" (..is but a dream within a dream) i novim revolucijama, začinjenim dozlaboga isfuranim paranojama o orwellovskom svevidećem oku koje jedva čeka analizirati što je h4k3r_17zg nasrao na ICQ bareći neku masnu kozurinu. Kako funkcionira DMA i mmaped IO je više mjestu OS udžbeniku opće namjene, a ne nečemu što pretendira na tron najelitnijeg haxorskog zinea. Hello World primjer spremanja podataka u GPU memoriju koji je maltene copy/pasted iz NVIDIA-inog CUDA SDKA da i ne spominjemo.&lt;br /&gt;&lt;br /&gt;Na razini su jedino papiri &lt;a href="http://www.phrack.org/issues.html?issue=64&amp;id=6#article"&gt;Attacking the Core: Kernel Exploitation Notes&lt;/a&gt; (tehnički ekscelira) i &lt;a href="http://www.phrack.org/issues.html?issue=64&amp;amp;id=15#article"&gt;Blind TCP/IP hijacking is still alive&lt;/a&gt; (originalnost - rabeći prethodnika ove tehnike je Shimomura uhvatio Mitnicka! :) Ostalo sve već viđeno/reciklirano na ovaj ili onaj način.&lt;br /&gt;&lt;br /&gt;U međuvremenu, dok se vodstvo phracka reorganiziralo i pohvatalo izmakle konce, svi koji nešto znaju su prešli u komercijalne vode i za objavljivanje članaka u nekim 31337 zineovima pod pseudonimima im je stalo koliko je i crno pod noktom. Koga briga za "ugled" u zajednici anonimusa kad puno veći (a usto i financijski blagoslovljen) ugled donosi održavanje predavanja/radionice na konferencijama klase BlackHat ili CanSecWest.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3529459103024411283-252000892532707225?l=istambuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://istambuk.blogspot.com/feeds/252000892532707225/comments/default' title='Objavi komentare'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3529459103024411283&amp;postID=252000892532707225' title='1 komentara'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3529459103024411283/posts/default/252000892532707225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3529459103024411283/posts/default/252000892532707225'/><link rel='alternate' type='text/html' href='http://istambuk.blogspot.com/2007/05/phrack-64.html' title='Phrack #64'/><author><name>Ivan Štambuk</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
