Older blog entries for cactus (starting at number 170)

Structure and Interpretation of Computer Programs

Az egyik dolog, amit nagyon szeretek a progmaton a Simon-féle analízis kurzusban, az az, ahogyan gyakorlatilag a semmiből, vagyis a ZF-ből és a valós számok axiómáiból építkezünk, és ha néha ki is hagyunk egy-egy bizonyítást, akkor arra külön fel van hívva a figyelmünk. Ennek az a csodálatos eredménye, hogy még így a hatodik félév közepén is bármilyen bonyolult tétel bizonyítása esetén elvileg rekonstruálható a teljes út az axiómáktól.

Structure and Interpretation of Computer Programs

A SICP, mint alant kifejtem, ugyanilyen előadássorozat illetve könyv, a programozásról. Én egy-két évvel ezelőtt először az előadással találkoztam, ma már nem tudom, miért hagytam abba akkoriban a 6. előadás környékén. Most viszont elémkerült a könyv is, nekiugrottam, és kiderült, hogy a lényeg pont a második felében van.

Hal Abelson Az első három fejezet ugyanis bármelyik, hasonló témájú könyvben előfordulna: az absztrakció különböző, egymásra épülő vagy éppen ortogonális szintjei, mint pl. (magasabbrendű) függvények, adatok és műveleteik együttes kezelése (hadd ne mondjam típus), az imperatív megközelítés a maga értékadásos-mellékhatásos fekélyeivel, Haskell-szerű lazy evaluáció. Az összes illusztráció Scheme-ben, egy Lisp dialektusban íródott, valójában az első három fejezet éppen arról szól, ahogyan a fenti absztrakciós eszközök céljainak megvizsgálásával felépül a nyelv szemantikája.

Az érdekességek a negyedik fejezetben kezdődnek. Először, egyfajta baseline-ként bemutat egy Scheme-ben írt Scheme interpretert, ennek ugye Lispben eleve komoly hagyományai vannak (összehasonlíthatatlanul olvashatóbb a mai szemnek ugyanennek a cikknek a Paul Graham által felújított változata). Ezzel már sokkal valóságosabbá válnak az eddigi programok, hiszen bár a kígyó még a saját farkába harap, de már kezünkben van az axiómáknak az a véges halmaza, amikből a konkrét Scheme programok szemantikája levezethető.

Gerald Jay Sussman Ezekután bemutatja a Scheme pár leágazását, és persze hogy itt válik érdekeltté az intencionális programozó. A Lispben ugye régóta kultúrája van annak, hogy a problémákat a hozzájuk illesztett nyelven oldjuk meg, és utána vagy írjuk meg ennek a nyelvnek az értelmezését, vagy ágyazzuk be a nyelvet a Lispbe. Így aztán a tipikus Lisp programozó a legritkább esetben programozik Lispben, sokkal gyakrabban mindenféle ad-hoc Lisp' meg Lisp'' nyelvekben. A negyedik fejezet ilyen Scheme' nyelveket mutat be a lazy evaluációhoz és a nemdeterminisztikus futási szemantikához (ez utóbbi egyébként valószínűleg közel áll ahhoz, ahogyan a kvantumszámítógépeket fogjuk magasszinten programozni); illetve egy interpretált constraint-nyelvet.

És végül az utolsó fejezet az, ami odavág. Nem azért, mintha nem láttunk volna még a bootstrap-probléma megoldására gépi kódban írt compilert, hanem azért, ahogyan kerekké teszi a könyvet. Itt jön be ugyanis a korábban említett párhuzam az anal-kurzussal. Bebizonyítjuk, hogy létezik rendezett teljestest: a valódi, fizikai számítógépeket leíró regisztergép-modellen az utolsó bitig egyértelművé válik minden maradék kérdésre a válasz, a bemutatott, gépi kódú Scheme interpreter és fordító pedig hirtelen megfoghatóvá tesz minden, a könvyben megelőző példát. Handwaving-nek nyoma sem marad. Ahogy az utolsó előtti előadáson Abelson mondja: az utolsó, legnagyobb varázslat, hogy kiírtjuk a rendszerből a mágiát.

Syndicated 2008-04-16 20:17:00 from cactus.rulez.org

Titanic: Szamócás süti

Az utolsó idén megnézett Titanicos film múlt vasárnap, a Szamócás süti című japán dráma volt. (Valamiért benéztem, hogy vígjáték lesz, és így próbáltam társat szerezni a filmhez, végül Milán is ebben a hiszemben jött el, de aztán egyikünk sem bánta meg.)

A film alapvetően arról szól, hogy a mai japán nők élete mennyire élhetetlen, és nem több, mint megaláztatások sorozat. Ezt négy, többé-kevésbé párhuzamos, egymásba fonódó történettel mutatja be, a négy nő a kurva, az örök kislány, a művész, és végül az átlagos nagyvállalati alkalmazott. A karakterek jól vannak kitalálva, és a színészek is hozzák a figurákat, sajnos a történet viszont kicsit unalmasra sikerült.

Bár az ítélethez az is hozzátartozik, hogy tegnap este, amikor Edinának meséltünk a filmről, végül Milán is meg én is arra jutottunk, hogy így egy hét távlatából már inkább jónak mondanánk a filmet, akár meg is néznénk újra.

Syndicated 2008-04-13 14:53:00 from cactus.rulez.org

Zuboly-koncert

Kiment a ház az ablakon,
bennemaradt a vénasszony.
Kezemben a Smith & Wesson,
hol a Pamela Anderson?

Tegnap este Anitával a hajóra mentünk koncertre. Elvileg a moldáv Zdob si Zdub volt a fő fellépő, de mi az előzenekar, a Zuboly miatt mentünk.

A Zuboly kb. azt csinálja, hogy fog egy népdalt vagy hasonlót, meg egy mindenki által ismert popszámot, és a kettőt úgy gyúrja össze egy számmá, kiegészítve MC Busa rap-betéteivel, hogy akár észre sem veszed az átmenetet mondjuk a Billy Jean és egy regölős között.

De ez eddig még csak egy gimmick lenne, ami miatt viszont a tegnapi koncertet simán berakom az eddigi top 10-embe (olyan illusztris társaságba, mint pl. a Lamb 2003-as Szigetes koncertje), az a hitelesség. Nincs nehéz dolguk, mert az arcukra van írva. A lemez sehol sincs az élő élményhez képest: a koncepciót kitaláló Ágoston Béla faarccal előadott abszurd szövegei vagy Busa mosolygó szeme miatt az ember kénytelen az amúgy már semmit sem jelentővé koptatott örömzene jelzőt használni.

Syndicated 2008-04-11 21:43:00 from cactus.rulez.org

Cruisin' with me main man

Na, ki mondhatja még el magáról, hogy elvitte autózni, amolyan just cruisin' módra, a volt oktatási dékánhelyettesét?

Na?

Naugye.

Syndicated 2008-04-11 05:37:00 from cactus.rulez.org

Titanic: Fél Nelson

Dan egy belvárosi általános iskolában történelemtanár, rendszerkritikus független értelmiségi, aki megpróbálja a kiskamasz tanítványait kritikus gondolkodásra és az emberi jogok tiszteletére tanítani. Ebben két körülmény akadályozza: egyrészt a tizenhárom év körüli diákoknak állandó csábítás az iskola helyett a bűnözést választani, a környék drogdílerei ugyanis szívesen alkalmazzák a még nem, vagy alig büntethető munkaerőt.

A másik nehézség Dan elhatalmasodó kábítószer-függősége.

"Az értelmiség előtt két út áll: az egyik a kokain; a másik járhatatlan" -- ezt járja körül a Fél Nelson, a történetet pedig az indítja el, amikor Dee, a tanítvány rátalál a tesiterem öltözőjében a cracktől rosszullett tantóbácsira. Így aztán különös barátság szövődik köztük, de szerencsére a film nem megy át nyálas egymást-megmentésbe.

A szerintem idegenül közbeékelődő, tablószerű, a polgárjogi mozgalom történelmének jelentős állomásait bemutató jelenetek ellenére a film tempója feszes marad, a főszereplő Ryan Gosling kitűnően játszik, még egy-két mulatságos jelenet is belefért, összességében mindenképp javasolni tudom a filmet.

Syndicated 2008-04-08 20:10:00 from cactus.rulez.org

Titanic: Lesipuskás

Az idei Titanic-on elsőnek a Lesipuskás című filmet néztük meg (illetve inkább csak én, mert Anita kb végigaludta).

A filmről csak annyit, hogy olyan, mintha a Fargo egy olyan faluban játszódna, ahol minimum LSD-zik az ivóvizet. És ebből persze két film jöhetne ki, egy nagyon jó, meg egy nagyon szar. Ez nem a nagyon jó volt.

Syndicated 2008-04-04 08:16:00 from cactus.rulez.org

An important milestone

Ma vittem először olvasnivalót magammal az irodai WC-be.

JFTR: egy ilyen random számítógépalkatrész-katalógus volt.

Syndicated 2008-03-28 16:08:00 from cactus.rulez.org

Így lopjunk evőeszközt

Tegnap a Mobili Mania boltjában jártam, mert megérkeztek az Iittala evőeszközök meg egy csomó Eva Solo design-tárgy, amiket rendeltem. Rendeléskor a felét fizettem ki előlegként, és múlt héten hívtak telefonon, hogy megérkezett az áru.

A procedúra tegnap kicsit elhúzódott, egyrészt mert köhögésemre tekintettel teával kínáltak, aztán Gergelyt írtak a számlára (nem igazán vették le, hogy mire célzok, amikor azt mondtam, hogy nem szoktam magamat becézni, ha a nevemet kérdezik...), aztán jött a szokásos "és milyen orvos vagy?" téma. Közben persze átnéztük a cuccost, hogy nem sérült-e meg bármi is szállítás közben, meg hogy minden megvan-e, mindezt úgy, hogy fél szemem a kirakaton, ugyanis várakozni tilosban parkoltam.

Végül beraktam a már helyes névre kiállított számlát az egyik papírszatyorba, felnyaláboltam a csomagokat, bepakoltam a csomagtartóba, és elindultam.

Már az Andrássy úton jártam, amikor eszembe jutott, hogy valami nem stimmel... Felhívom őket telefonon: nem gondolják-e, hogy valamit elfelejtettünk? Hallom a telefonban, hogy lapoznak papírokat, gondolom a megrendelésemet keresték, hogy mi lehet, amit nem vettem át. Segítek nekik: "mondjuk én, fizetni?".

"Bazmeg!", szaladt ki az eladó száján.

Úgyhogy visszakanyarodtam, fizettem, meghallgattam az elnézéstkéréseket a bazmeg miatt, meg a köszöneteket, hogy eszembejutott.

Tanulságként meg biztos le lehet vonni egy csomó social hacking módszert.

Syndicated 2008-03-21 09:26:00 from cactus.rulez.org

Look at me, I'm Dr. Zoidberg, home-owner!

Alulírott, ezennel, elfogadja, kijelenti. Átveszi.

Syndicated 2008-02-06 22:26:00 from cactus.rulez.org

Alternatív WRT firmware-ek

Nyilván az sosem volt ideális megoldás, hogy itthon egy full számítógép csak azért megy és zajong 24/7-ben, hogy levelezőszerverkedjen az itthoni gépeknek, meg persze NAT-oljon. Lőri hívta fel a figyelmemet a Linksys által gyártott NSLU2-re (becenevén "slug"), amiben az a truváj, hogy normális Linux disztribúció telepíthető fel rá. Szóval elhatároztam, hogy egy ilyennel meg egy Wi-Fi routerrel váltom ki a mostani dobozt. Az NSLU2-vel kapcsolatos információkról majd a következő részben olvashatsz, itt most a routerről lesz szó. Konkrétan a Linksys WRT54GL-ről.

Minek ezen bármit is hackelni?

Ez a kérdés természetesen adja magát, mivel a cucc, háztartási routerhez méltó módon, tényleg Magától Működik: összedugsz mindent, és NAT-ol meg DHCP szerver meg minden. Az viszont nagyon bosszantó, hogy van egy-két nagyon egyszerű feature, amit nem támogat, pedig nem kéne hozzá sok. Számomra a statikus DHCP volt ilyen (persze Dnsmasq-kel), amire mindenképp szükségem volt, de valamiért a router nem tud ilyet. Lehet, hogy ez már enterprise feature, és ilyenért sok pénzt kell elkérni?

Persze megfordult az is a fejemben, hogy a fent említett slugot használjam DHCP szervernek, de akkor meg a Dnsmasq nem az ISP-től kapja az upstream DNS címét, szóval nem ideális. De hát nem is véletlenül ezt a WRT modellt vásároltam, ez ugyanis a leg hackerbarátabb -- így hát nekiálltam megvizsgálni az elérhető alternatív firmware-eket.

Ezek mindegyike Linux alapú, mint ahogy a gyári firmware is az. A különbség a userlandben van, a hobbista csomagok több (lényegesen több) szolgáltatást nyújtanak, viszont nem mindig tökéletes az integráció.

DD-WRT

A wiki nagyon részletes leírást ad mindenről, igazából azért ez volt az első választásom, mert úgy éreztem, azelőtt mindent tudok már a rendszerről, hogy még akár csak letöltöttem volna az image-et. A telepítést a gyári firmware webes interfészén keresztül végeztem, és semmilyen probléma nem adódott. Utána ujraindult a router, és már a DD-WRT felhasználói felülete jön be. Elsőre minden pöpecnek tűnt.

Az első problémám órák múlva jelentkezett: a router nagyon megbízhatatlan volt. Futott egy BitTorrent kliens a gépemen, és ez teljesen megölte a NAT-ot. Namost annakidején az első gép, ami itthon a NAT-olást intézte, egy 100 Mhz-es Pentium volt, 16 mega memóriával, és sosem volt vele gond (persze konkrétan BitTorrent akkor még nem létezett), úgyhogy ezt a békát nem akaródzott lenyelni. A neten keresgélve találtam pár ötletet hogy milyen arkán beállításokat kell megváltoztatni a stabilabb működés érdekében, de eddigre már felfedeztem a másik problémát is:

A statikus DHCP konfigurálása kicsit furcsán működött ahhoz képest, ahogy azt a Dnsmasq lehetőségeit ismerve elképzeltem. Mivel alapvetően ezért cseréltem le a firmware-t, azt találtam ki, hogy hagyom a webes interface-t a francba, és SSH-n keresztül, kézzel bekonfigurálom. Namost ez megoldhatatlan feladat. A filerendszer read-only, a beállítások egy ramfs-ből jönnek, amibe bootkor konfigurációs file-okat generál valami feketemágia az NVRAM-ban lévő kulcs-érték párokból. Ez volt az a pont, amikor kidobtam a picsába az egészet.

(Most látom csak, hogy a website teljesen átalakult az utóbbi pár hétben, és valami fizetős-aktivációs bullshit van. Good riddance.)

OpenWRT

Na ez meg a website-ra vetett gyors pillantás alapján minden, csak nem Magától Működik. Bár az alapelgondolás vonzó volt (írható filerendszer, hagyományos Linux disztribúciókra emlékeztető, csomagokra bontott felépítés), nem éreztem ingerenciát, hogy beletanuljak a részletekbe.

X-Wrt

Ekkor szerencsére ráleltem az X-Wrt-re, ami a gyári firmware-hez, illetve a DD-WRT-hez hasonló webes felületet nyújt, de OpenWRT alapokon. Ez gyakorlatilag pont az, ami nekem kell.

Ráadásul a webes interfész alapból jobb, mint a DD-WRT-é, ezért aztán pont a Dnsmasq bekonfigurálásához nem is volt szükség a kézzel írható filerendszerre -- de kipróbáltam, működik (feelinges volt vi-jal szerkesztgetni az /etc-t). A tűzfal-beállítások, portforward rule-ok létrehozása, stb. is kényelmesen, de mégis flexibilisen végrehajtható böngészőből.

Ami pedig szerintem a legnagyobb a dologban, az a csomagkezelés integrációja a UI-ba. A webes interfészen ugyanis alapból az összes funkció megtalálható, és ha olyan lapra klikkelsz, ami egy nem telepített program beállításait tartalmazná, akkor felajánlja a telepítést -- egyetlen gombnyomással. Jó, jó, én mint ősöreg Debianos, nyilván naponta találkozom ezzel, csak akkor épp apt-get-nek hívják, de mégis, ez az integráció így együtt nagyon kényelmes és meggyőző. Pl. ezen az oldalon látható a használni kívánt NTP szerver textfield-je, eredetileg itt ehelyett egy gomb van, hogy "Ha NTP-t szeretnél használni, klikkelj ide, és telepítsd fel az ntpclient csomagot".

Ráadásul azóta már kb két hete megy, problémáknak a leghalványabb jele nélkül. És igen, azóta is futtatok BitTorrentet. Úgyhogy én az X-Wrt-nél kötöttem ki.

Ami még hátra van: ha elköltözöm, VPN-t akarok kiépíteni a lakásom és anyámék háza között, de úgy, hogy csak a két WRT54GL tudjon róla, a kliensgépek semmit ne vegyenek észre az egészből, csak annyit, hogy az ellenoldali gépek is ott lógnak a 10.0.0.x-en. Állítólag ehhez is minden adott (az X-Wrt-hez van OpenVPN csomag), de ezt az egész kérdést még nem invesztigáltam.

Syndicated 2008-02-01 22:10:00 from cactus.rulez.org

161 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!