All entries
Generikus programozás
17 October 2008 (ELTE programming) (2 comments)A héten Rinus Plasmeijer tartott vendégelőadást a generikus programozásról funkcionális nyelvekben, bemutatva a Clean azon nyelvi elemeit, amivel explicit szupportálja ezt. Encsé a lelkemre kötötte, hogy blogjam meg, miről is van szó.
Kiinduló "Hello World"-ként tekintsük az alábbi Haskell kódot, benne két, strukturális rekurzióval definiált ekvivalenciavizsgálatot listákra és fákra:
data Tree a b ≔ Leaf a | Branch b (Tree a b) (Tree a b)
instance (Eq a) ⇒ Eq (List a) where
Cons x xs = Cons y ys ≔ x = y ∧ xs = ys
⊥ = ⊥ ≔ ↓
instance (Eq a, Eq b) ⇒ Eq (Tree a b) where
Branch x xt1 xt2 = Branch y yt1 yt2 ≔ x = y ∧ xt1 = yt1 ∧ xt2 = yt2
⊥ = ⊥ ≔ ↓
Kellően messziről nézve a fenti két függvény láthatóan megegyezik. Az általános (mondhatnám, generikus) ötlet éppen az, hogy a strukturális rekurziót mint patternt nyelvi elemmé emeljük.
Continue reading »Hacktivity 2008
21 September 2008 (unix windows programming math) (7 comments)Encsé hívta fel a figyelmemet, hogy most lesz az idei Hacktivity, amelyről ő már tavaly is tudósított. Átnéztem a programot, és cím alapján sok előadás igérkezett érdekesnek. Meg a hekkelős játékra is kiváncsi voltam.
Az előadások végül nagyon változó színvonalúak voltak: volt közte pár teljesen content-less (pl. az XSS-előadást ilyen szinten én is meg tudtam volna tartani úgy, hogy nem is értek hozzá), a kvantumkriptográfiai előadás egészen addig volt jó, amig ki nem derült, hogy az előadó nem érti a kérdésemet.
Volt viszont pár tényleg jó előadás is, ottvolt egy FPGA-val MD5-öt törő srác, állati érdekes volt az alacsonyszintű wifidriver-törés (buffer overrunt okozó AP advertising beacon csomagokkal), pedagógiailag nézve pedig a szivárványtáblás előadás vitte a prímet.
Ami meg a hekkelős wargame-et illeti, tavaly ugye le-DoSolták a pontszámokat nyilvántartó gépet, idén meg kb. félóránként tartottak amatőr félórat... Encsé kollégával együtt feszültünk neki a feladatoknak. Volt köztük egy-két vállalható, volt néhány, ami jópofa lett volna, csak sajnos általában nem működtek (az pl. elég jellemző volt az egészre, amikor odamentünk a rendezőkhöz a 10. feladathoz megszerzett jelszavunkkal hogy nem fogadja el a rendszer, erre kiderült hogy a kétszámjegyű feladatokhoz nem működik és kicsit még faragni kellett). Aztán volt egy pár SQL injection-ös, az nagyon nem az én világom, úgyhogy ezekkel Encsé próbálkozott.
Aztán persze az lett a dolog vége, hogy fölényesen megnyertük. Kaptunk egy Linksys wifi routert meg egy külső merevlemezt, majd holnap szétosztjuk. Viszont ami vicces volt, hogy utána odajöttek ketten is hogy elkérjék az email-címemet mindenféle ilyen hálózati biztonsági munkákkal, pedig baromira nem értek én ezekhez, meg kedvem sincs, el is hajtottam őket azzal, hogy én inkább programozó vagyok...
Viki in a nutshell
15 September 2008 (personal) (5 comments)Vikiről röviden #1: a meta-táska. Vikinek van egy kicsi rózsaszín és egy nagyobb, kék táskája. Ma vettem észre, hogy a kékben főleg a rózsaszínt hordja. Mint elmondta, azért, mert bizonyos ruhákhoz nem megy a rózsaszín, átpakolni mindent meg milyen macera lenne.
Vikiről röviden #2. Múltkor látta rajtam a Menő Manós pólómat, és tökre tetszett neki. Most meg a TV-ben pont az ment, és erre úgy hívta fel a figyelmemet, hogy "a pólód van a TV-ben".
Programozás visszavezetéssel
4 September 2008 (ELTE programming) (4 comments)Hát akkor nézzük, mivel is tervezek foglalkozni Fóthi Ákossal a hétfőn kezdődő félév során, progmatos nagyprogramom keretében.
Az alapötlet az, hogy gépi segítséggel bizonyítsunk programozási tételeket , visszavezetés segítségével, és az "ötleteket", az invenciózus lépéseket a felhasználó, ne pedig valamilyen hilbertiánus, féseggű MI-engine találja ki. Tehát a papírt-ceruzát váltanánk csak ki, a hibázás lehetőségét akarjuk csökkenteni és az eredmények menedzselhetőségét növelni.
A "Hello World" szintet például az jelenti majd, ha abból a tételből, hogy ismerjük tetszőleges f:ℤ→ℤ illetve β:ℤ→𝕃 függvények esetén az alábbi feladat (Hoare/Dijkstra/Fóthi értelemben) megoldását...
| A: | (m: ℤ) × (n: ℤ) × (l: 𝕃) × (i: ℤ) × (max: ℤ) |
| B: | (m': ℤ) × (n': ℤ) |
| Q: | m=m' ∧ n=n' ∧ m≤n ∧ [m, n]⊆dom(f) |
| R: | Q ∧ l=(∃k∈[m,n]:β(k)) ∧ l⇒ (i∈[m,n] ∧ β(i) ∧ max=f(i) ∧ ∀k∈[m,n]:β(k)⇒f(k)≤max) |
(egyrészt vegyük észre, hogy természetesen a feltételes maximumkeresésről van szó, másrészt gondolkodjunk el azon, milyen fun lehetett ezt egyenként, Unicode táblázatokat böngészve beírnom)
... be tudjuk látni, hogy akkor meg tudjuk oldani bármilyen, mondjuk g:ℤ→ℤ függvényre az egyszerű minimumkeresést is, vagyis az alábbi feladatot:
| A: | (m: ℤ) × (n: ℤ) × (i: ℤ) × (min: ℤ) |
| B: | (m': ℤ) × (n': ℤ) |
| Q: | m=m' ∧ n=n' ∧ m≤n ∧ [m, n]⊆dom(g) |
| R: | Q ∧ i∈[m,n] ∧ min=g(i) ∧ ∀k∈[m,n]:g(k)≥min |
Erre egyébként van már annyi szanaszét heverő Lisp kódrészletem, amennyiből valószínűleg össze lehetne kalapálni valamit, ami ennyit már épp majdnem tudna is. Stay tuned.
Geekparty és egy breaking news
17 August 2008 (personal ISC food) (3 comments)Múlt héten, csütörtökre raktuk a lakásavató geekbulit az ISC-s kollegákkal. A terv az volt, hogy spagettit és Guitar Herot tolunk az arcunkba, mindkettőt nagyobb mennyiségben. Végül mindkettő sikerült is.
Elsőre mondjuk gigászi feladatnak tűnt egyedül főzni hat emberre, már csak azért is, mert teljesen ismeretlenek voltak számomra az arányok. Ennek megfelelően sikerült is egy egész kiló pasta-t kifőzni, aminek a fele sem fogyott persze el, ráadásul a visionary leader-ünk hatására a lé, amiben a tészta főtt, viszonylag egyenletesen beterítette a főzőlapot. Viszont mentségére legyen mondva, hogy beszerzőmissziót szervezett az Ikeába, ahonnan feltehetőleg Büdåppest márkájú sajtreszelőt zsákmányolva érkeztek (kiváncsi vagyok, hogy vezethetett Zape, ha azóta se Maya, se Encsé nem nagyon akar beülni mellé).
Continue reading »Older entries:
- 7 August 2008: Konzolok vs. HDTV-k (2 comments)
- 15 July 2008: Hiányzó iWiW feature (8 comments)
- 6 July 2008: A titkosügynökök magányossága (2 comments)
- 17 June 2008: Mark all as read (4 comments)
- 2 June 2008: Incompetent fuckwits (3 comments)
- 26 May 2008: Indi János és az ajkai kristályszuvenírek (9 comments)
- 25 May 2008: Tooltips for SLIME
- 18 May 2008: Nyomkodom a "Műköggyé" gombot (3 comments)
- 11 May 2008: A hétvége rendeltetésszerű használata (4 comments)
- 23 April 2008: Iskola az őrület határán
- 21 April 2008: Munkamorál (2 comments)
- 16 April 2008: Structure and Interpretation of Computer Programs
- 13 April 2008: Titanic: Szamócás süti
- 11 April 2008: Zuboly-koncert
- 11 April 2008: Cruisin' with me main man (1 comments)
- 8 April 2008: Titanic: Fél Nelson
- 4 April 2008: Titanic: Lesipuskás
- 28 March 2008: An important milestone (3 comments)
- 21 March 2008: Így lopjunk evőeszközt (3 comments)
- 6 February 2008: Look at me, I'm Dr. Zoidberg, home-owner! (1 comments)
- 1 February 2008: Alternatív WRT firmware-ek
- 9 January 2008: Egy nem PC asszociáció
- 28 December 2007: Egy eseménymentes hét
- 20 December 2007: Reál balfasz (3 comments)
- 9 December 2007: Azt hiszem, jól vagyok tartva (1 comments)
- 6 December 2007: Mikulás (3 comments)
- 14 November 2007: Not worth the paper it's printed on
- 10 November 2007: Diviánszky Péter for prezident! (1 comments)
- 30 October 2007: Nintendo a seggem (9 comments)
- 27 October 2007: Sapkakiválasztási axióma (14 comments)
- 15 October 2007: Jönnek a letölthető Wii demók? (3 comments)
- 12 October 2007: K stands for Kwality (6 comments)
- 7 October 2007: Egy jó doboz bármit elad
- 3 October 2007: Valós halál (10 comments)
- 15 September 2007: Élelmiszertúladagolás
- 5 September 2007: Folytatásos könyvek a bábeli könyvtárban (1 comments)
- 3 August 2007: Pókmalac, pókmalac... (3 comments)
- 2 August 2007: A kindergarten of pancakes
- 18 July 2007: Quote és backquote fia vagyok én (2 comments)
- 12 July 2007: Autósmozi (1 comments)
- 8 July 2007: Goblin
- 14 June 2007: Foglalkozása: aranytestű rock-isten (4 comments)
- 28 May 2007: Orvosi segítségre van szükségem
- 18 May 2007: Encsé, az élet császára (1 comments)
- 11 May 2007: Merre megy a matematika? (1 comments)
- 26 April 2007: Ég a fater^H^Hörzs! (1 comments)
- 11 April 2007: Kampány
- 29 March 2007: Félelem és reszketés Hamburgban (6 comments)
- 17 March 2007: Interactivity and Games as an Artform (2 comments)
- 16 March 2007: Encsé leverte a köcsögöket (3 comments)
- 26 February 2007: Az áltudós az becsap árvíz aszály tájfun lecsap!! (2 comments)
- 15 February 2007: Statisztikai vizualizáció rizsszemekkel
- 11 February 2007: Wii buli Warioval és Raymannel
- 9 February 2007: Szóval a Wii-ről
- 2 February 2007: Random sirám (1 comments)
- 21 January 2007: Ami a Wii használati utasításából kimaradt
- 29 December 2006: Playstation retrospektív: Gran Turismo (6 comments)
- 27 December 2006: Kis- és nagykarácsonyok
- 11 December 2006: Kamera által, homályosan (5 comments)
- 28 November 2006: Sziget a Google Earth-on (1 comments)
- 22 November 2006: Commenting on blog entries (2 comments)
- 8 November 2006: Ruby on Rails a seggem
- 6 November 2006: Újra itthon...
- 4 November 2006: Utazás Absztinenciába
- 2 November 2006: Képernyőregények
- 17 October 2006: A hallgató, akinek semmi sem kerülte el a figyelmét
- 13 October 2006: Activity log
- 11 October 2006
- 8 October 2006: Registering Windows file types with NSIS (6 comments)
- 2 October 2006: RSS feeds to ease transition from Advogato (1 comments)
- 22 September 2006: Queueing timeouts in JavaScript
- 12 September 2006: Tombol a kompetencia
- 10 September 2006: VPG 20 (2 comments)
- 9 September 2006: Luggage space extravaganza (1 comments)
- 27 August 2006: Mad Maestro
- 21 August 2006: Tilos 15 (1 comments)
- 13 August 2006: Sziget, bazmeg
- 8 August 2006: Papírmentes iroda
- 19 July 2006: The following takes place between 10:00 a.m. and 6:00 p.m. (1 comments)
- 24 June 2006: Programming by Google
- 16 June 2006: Éjjeli áramszünet
- 14 June 2006: Microsoft Natural Keyboard 4000
- 12 May 2006: Legközelebb eladok neki egy toronyórát, lánccal
- 8 May 2006: π DVD (4 comments)
- 7 May 2006: Mi ez itten ez?
- 18 May 2005: Dension customer support: A+
- 2 May 2005: Chrome rings (1 comments)
- 24 April 2005
- 25 March 2005
- 11 March 2005
- 8 March 2005: I think I've found it