Older blog entries for cactus (starting at number 161)

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

Egy nem PC asszociáció

Nézem az index főoldalát, és mint az alábbi képen is látható, egymás mellett volt Clinton fotója és a Jön a Nigger! cím, ami egyébként valami random amerikai rapper albumát harangozta be:

Clinton vs. Nigger

Na és mi volt erre Cactuska első asszociációja? "Na mi van, Obama jól szerepelt az előválasztásokon?"

Én kérek elnézést. Úgy látszik, ma megharapott a majom.

Syndicated 2008-01-09 10:12:00 from cactus.rulez.org

Egy eseménymentes hét

Ezen az unalmas héten már megint nem történt semmi:

  • Zoli eljegyezte Petrát.
  • Huszi eljegyezte Mónit, és befizettek egy még épülő lakásra.
  • Anita egyetemi barátnőjének, Melindának megszületett a lánya.
  • Maca apa lesz.

(jó, szigorúan nézve a fentiek közül egy csomó nem ezen a héten történt, de most vált pletykából officiálissá.)

Ezek közül egy csomóra tegnap pont került alkalom inni, és látszik, mennyire nem vagyok edzésben, mert rendesen becsíptem pár pohár bortól meg néhány pálinkától. Úgyhogy most furcsán néz rám a Carathéodory-tétel, szerintem valamit fontolgat ellenem.

Syndicated 2007-12-28 12:07:00 from cactus.rulez.org

Reál balfasz

Kedden reggel megérkeztem a munkahelyemre, és a Petzvál szélén álló autó-sor végére parkoltam. Látom, hogy az előttem parkoló fekete Nissan Micrát éppen nyitja valaki, gondoltam még megvárom, amíg elindul, hogy akkor annyival előbbre álljak, ne a két autó között maradjon hely. Igen ám, de nem sikerült kinyitnia, és rövid próbálkozás után fel is adta... Nem akartam elhinni, hogy tényleg így fényes nappal a nyílt utcán akart autót lopni, úgyhogy figyeltem tovább. Erre látom, hogy odamegy a Micra előtt parkoló szintén fekete Aygóhoz, és azt már gond nélkül kinyitja. Kulccsal.

Közben a tag is kiszúrta, hogy én ezt így végignéztem, úgyhogy amikor kiszálltam, akkor elmondta a megoldást: összekeverte az autóját a Nissannal...

Syndicated 2007-12-20 08:10:00 from cactus.rulez.org

Azt hiszem, jól vagyok tartva

Szerintem van valami hihetetlen kényeztetés abban, hogy Nita pénteken elhívott egy csoporttársnője hastáncos-csoportjának a bemutatójára, ráadásul még a beugrómat is ő fizette. És még akkor sem zsörtölődött velem, amikor esetleg az alig felöltözött hölgyek bemutatója alatt látványosan jól éreztem magamat ;)

Egyébként szerintem a kezdő-középhaladó csoportok műsora volt a legélvezetesebb, a haladók meg a tanárnők már túlságosan rámentek a technikára, nem maradt benne annyi... érzés. Apropó érzés, Anitának annyira megtetszett a feeling, hogy kitalálta hogy februárban ő is elkezdi.

Szóval a tanulság csak annyi, hogy de jó nekem.

Syndicated 2007-12-09 19:15:00 from cactus.rulez.org

Mikulás

Tegnap este hazafelé menet még megálltam tankolni, és a benzinkút boltjában megütötték a szememet ilyen 100-120 forint körüli áron vesztegetett apró csokimikulások (ráadásul igazi csokiból, nem ez a tejbevonós marhaság). Úgyhogy kitaláltam, hogy veszek egy csomót, és ma én leszek az ISC Mikulás.

Ice reakciója a sztorira

Reggel az irodában szerencsémre egyedül találtam Encsét, úgyhogy a többiek még nem tudták meg, hogy mivel készültem. Megkérdeztem tőle, hogy jó gyerek volt-e idén, stb, persze azt hitte csak szivatom, aztán elkerekedett a szeme amikor a zsebemből elővettem egy csokimikulást...

Aztán jött Maya, meg sorban a többiek, mindig tudtam úgy intézni, hogy egyszerre csak egy embert cserkésszek be, és a többieknek meglepetés maradjon. Persze aztán jött a cifrázás, igyekeztem bevetni a céges télapók teljes eszköztárát, "Na, Karcsika, jó voltál idén? A kollégáidtól azt hallottam, hogy sokat kellett noszogatni, amíg kijavítottad a bugokat a C2-ben!" és hasonlóak, épp csak az hiányzott már, hogy valaki megijedjen a Mikulástól és elpityeredjen.

Persze aztán a reakciók is adekvátak voltak, Encsé rajzolt az egyik táblára egy Mikulást, Zape meg elkezdte énekelni a Hull a pelyhest, pont mint a gyerekek, aki készülnek valami műsorral.

Syndicated 2007-12-06 21:05:00 from cactus.rulez.org

Not worth the paper it's printed on

We have all the Intentional coworkers (well, most of them, anyway) in Budapest all week, spending most of the time in meetings. Being the funny guy that I am, I try my best to shake things up with one-liners.

So Shane was showcasing us some new features, when, as it usually happens at demonstrations, our system crashed. Francois, at that point, was shredding some of his notes, but the paper he used was such that the shredding made a lot of noise. So I asked out loud:

Were those your stocks?

Judging by the full room laughing for over a minute, it's good to know that if programming doesn't work out, I can still look forward to a lucrative career as a comedian...

Syndicated 2007-11-14 18:03:00 from cactus.rulez.org

Diviánszky Péter for prezident!

Van ez a Be-ad beadandóprogram-kezelő webes rendszer, és ezen keresztül kellett az IA-32 assembly házifeladatot beadni. Igen ám, de nem csak a felvett kurzusok feladatait listázza ki a rendszer, hanem az összeset, amiről tud. Így hát amikor az assemblyt beadtam, megláttam hogy van egy Haskell kurzus is, feladatleírással mindennel, és just for fun beadtam arra is megoldást. Persze a félreértések elkerülése végett beleírtam az elejére egy kommentbe, hogy én igazából nem is járok arra a gyakorlatra. Kicsit egyébként számítottam arra, hogy majd jön egy levél hogy kinek a szabadidejével szórakozzak (hint: közeli felmenő nőrokonom).

Erre most veszem észre, hogy a tárgy oktatója, Diviánszky Péter (akit amúgy nem is ismerek), leellenőrizte, bevitte a rendszerbe hogy jó a megoldás, sőt, még el is küldte a kanonizált megoldás linkjét!

Syndicated 2007-11-10 12:50:00 from cactus.rulez.org

Nintendo a seggem

Kibaszott Super Paper Mario bazmeg, végigviszem a 100 szintes kurva dungeon-t ahol persze végig nem lehet save-elni, erre a végén megbasz a boss, és persze hogy game over, holnap kezdhetem előlről...

Eeez bazmeg ez a Nintendo, akik elvileg a játéktervezés meg a fun-csinálás csúcsa? Hogy egy órán keresztül nem lehet save-elni? Tán még majd vizet is melegítek, nem?!

Syndicated 2007-10-30 22:10:00 from cactus.rulez.org

Sapkakiválasztási axióma

Az egész egy ártatlannak tűnő fejtörővel kezdődött, amit András hozott a brigádnak. A feladat így szól:

Egy börtönben megszámlálhatóan végtelen rab raboskodik. Az unatkozó börtönőrök azt találják ki, hogy mindegyik rab fejére piros vagy kék sapkát húznak, úgy, hogy senki se lássa, a saját fejére milyen színű kerül, majd miután a rabok jól megnézték egymást (minden rab a sajátján kívül az összes többi rab sapkáját látja), mindegyiküktől megkérdezik, milyen színű sapka van a fején. Ha legfeljebb véges számosságú rossz válasz születik, a rabokat mind elengedik. Milyen stratégiát találjanak ki a rabok, hogy biztosan kijussanak?

Sajnos szerdán közölte a feladatot, és én először csütörtökön voltam dolgozni, úgyhogy addigra Encsének már volt egy (tudottan rossz) megoldás-vázlata. A következőek miatt fontos megismernünk ezt a megoldást, és azt is, hogy miért rossz.

Tegyük fel, hogy a rabok előre sorba rendeződnek, és megállapodnak egy algoritmusban, ami megszámlálhatóan végtelen hosszú piros/kék sorozatokat állít elő. Amikor minden rab fején sapka van már, mindegyik rab elkezdi futtatni az algoritmust, és megnézik, vajon az első, második, ... sorozatra igaz-e, hogy legfeljebb véges esetben adna hibás választ, ha az n. rab válasza az aktuális sorozat n. tagja lenne. A saját sapkájukat nem ismerve is mindannyian ugyanara a sorozatra fogják először megállapítani, hogy megfelelő. Ezekután valamennyi rab e szerint a sorozat szerint fogja a ráeső sapka-színt válaszolni.

Ha az őrök ki tudják kérdezni a rabokat, és meg is tudják állapítani, hogy legfeljebb véges rossz válasz született, akkor ezeket a műveleteket megengedettnek vehetjük (használhatjuk a börtönőrök algoritmusait), vagyis a végtelen sorozatok előállítását és egyes sorozatok ellenőrzését elvégezhetik a rabok.

A megoldás mégsem helyes, mivel könnyen látható (közvetlenül Cantor módszerével, vagy pl. a sapka-sorozatokat kettedesjegy-bitsorozatként értelmezve, a [0,1]-beli valós számokkal azonosítva), hogy a lehetséges sapkasorozatok kontinuum számosságúak, ezért nem sorolhatóak fel, vagyis egy mégoly erős algoritmus, amelyet a feladat, mint láttuk, implicit megenged, és könnyedén előállít végtelen bitsorozatokat, sem tudná valamennyi lehetséges sorozatot előállítani.

De vajon szükség van-e valamennyi sorozat előállítására? Nyilván nem, hiszen sok olyan sorozat van, amelyek közül egy adott sapka-leosztás esetén bármelyikre is jutnak a rabok az algoritmust futtava, a rossz válaszok száma legfeljebb véges. Definiáljunk ugyanis egy olyan binér relációt a megszámlálhatóan végtelen hosszú bitsorozatok felett, amelyben két sorozat relációban van, ha van olyan index, amelytől megegyeznek, vagyis legfeljebb véges tagjuk tér el. Ez a reláció nyilván ekvivalencia-reláció, és a raboknak elegendő egy olyan algoritmus, amely minden ekvivalencia-osztályból előbb-utóbb előállít legalább egy sorozatot.

Mármost vizsgáljuk meg az ekvivalencia-osztályok számát! Sajnos azt kapjuk, hogy ezek továbbra sem megszámlálhatóak, hiszen egy-egy osztálya úgy áll elő, hogy vesszük egy reprezentánsát, majd hozzávesszük azokat az egyéb sorozatokat, amelyek tőle egy tagban térnek el (ilyenből nyilván megszámlálhatóan végtelen van), amelyek két tagban (szintén), és így tovább. Megszámlálhatóan végtelen darab megszámlálhatóan végtelen halmaz uniója azonban még mindig csak megszámlálhatóan végtelen. Mivel az osztályok uniója, vagyis az összes sorozat megszámlálhatatlan, nyilván az osztályok száma is az.

A fenti gondolatmenet alapján tehát bárki meggyőzhető, hogy az ismeretett megoldás hibás. Csakhogy András egy ehhez nagyon hasonló megoldást ismertetett kanonizáltként (mint kiderült, a feladatot, és a megoldását ő matek-szakos hallgatóktól hallotta): a rabok megállapodnak ekvivalenciaosztályonként egy-egy reprezentánsban, és amikor az őrök kikérdezik őket, mindannyian a látott sapkák által meghatározott osztály reprezentánsának tagjaival válaszolnak.

Persze amikor ezt András előadta, kitört a pokol, mert átverve éreztük magunkat. Ugyan hogyan tudnának megállapodni a rabok az ehhez szükséges ℝ→ℝ függvényben, ha általában még a valós számok egy részhalmazára sem adható kiszámítható szelektorfüggvény? Mint kiderült, a forrásnak számító matekhallgatókat ez a részlet egyáltalán nem zavarta.

Aztán rákerestünk a neten, és kiderült, amit már akkor éreztem a zsigereimben, amikor a "megoldást" hallottuk: a megoldás valójában a kiválasztási axiómán függ, nem is lehetne konstruktív. Persze a linkelt oldallal ellentétben én nem gondolom, hogy ebből a kiválasztási axióma valamiféle értékelését vonhatjuk le, viszont szerintem az eredeti feladatban szereplő rabokon fikarcnyit sem segít bármilyen, nem-konstruktív módszer.

És innentől válik a kérdés filozófiaivá, és itt dobom be a gyeplőt a leendő kommentelők közé: szerintetek mi a helyzet?

Syndicated 2007-10-27 20:38:00 from cactus.rulez.org

152 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!