Category Archives: Forritun

Gamlir Nintendo leikir á netinu

Besta tölva allra tíma er og mun alltaf vera NES, gamla grá Nintendo tölvan. Ég hef stundum downloadað einhverjum Nintendo emulator forritum til að spila gömlu góðu leikina aftur en hef oft hugsað að það væri nú miklu betra ef það væri hægt að gera það beint á netinu. Mér var meira segja farið að detta í hug að taka einn af þessum emulatorum, sem eru flestir open source, og porta honum yfir í Flash eða eitthvað. En, þegar maður fær góðar hugmyndir þá er yfirleitt einhver sem hefur fengið þær áður og á snilldarsíðunni http://www.virtualnes.com/ getur maður gert nákvæmlega þetta, spilað Nintendo án þess að downloada neinu eða standa í neinu veseni. Þessi emulator er reyndar skrifaður í Java svo maður þarf að hafa Java plugin en það eru nú flestir með. Eini gallinn er að útaf lagaástæðum segjast þeir bara mega birta þá leiki sem þeir eiga sjálfir, þ.e. þeir eiga sjálf leikjahulstrin. En þessir frægustu eru allavega þarna, Super Mario Bros o.fl. Og ef maður á einhverja gamla leiki þá getur maður sent þá á gaurana sem reka síðunni og deilt þeim þannig með öllum.

Idiot

Síðustu daga og vikur hefur hobbý forritunar projectið mitt verið að búa til spilið Idiot í Javascript. Mig hefur alltaf langað að búa til spilaleik og ákvað að gera hann í Javascript til að hægt væri að spila hann á netinu. Ólíkt flestum svona smáprojectum sem ég geri þá actually kláraði ég þetta og hægt er að spila leikinn á hinni frekar óheppilegu slóð http://einaregilsson.com/idiot/. Þegar ég fór að leita að Idiot á netinu þá fann ég massífa síðu um hann á Wikipedia (undir nafninu Shithead) þar sem eru útskýrð allskonar afbrigði. Mín útfærsla virkar eins og ég hef alltaf spilað hann:

  • Í byrjun má skipta út spilum á hendi og þeim sem snúa upp í borði
  • Tvist má láta ofan á hvaða spil sem er
  • Fimmu má láta ofan á hvaða spil sem er og þá verður næsti að láta spil sem er lægra eða jafnt og fimma.
  • Tíu má láta ofan á hvað sem er og þá hverfur bunkinn.
  • Það má láta út fleiri en eitt spil í einu ef þau eru með sama númer.
  • Ef fjögur eins spil eru efst í bunkanum þá hverfur hann.
  • Ef maður þarf að taka bunkann þá má maður fyrst draga efsta spilið úr stokknum og láta ofan á, ef það er gilt þá tekur maður ekki bunkann.

Ekki búast við einhverju svaka animation eða neinu svoleiðis. Maður velur bara spilin sem maður vill spila út með því að smella á þau og smellir svo á ‘Láta út valin spil’ takkann. Þegar tölvan er að gera þá hverfa bara spilin úr hendinni á henni og birtast á bunkanum. Það er samt smá delay milli spilanna sem hún setur út þannig að maður á alveg að geta séð t.d. þegar hún lætur út 3 spil í einu. Ef maður þarf að taka bunkann þá smellir maður bara á ‘Taka bunkann’, þá er sjálfkrafa dregið eitt spil úr stokknum og sett ofaná. Ef það er löglegt þá færðu ekki bunkann, ef það er ekki löglegt fer allur bunkinn á hendina hjá þér. Leikurinn ætti að virka á öllum helstu browserum en það eru örugglega einhverjar villur í þessu ennþá þannig að ef þið rekist á eitthvað skrýtið þá endilega sendið mér póst og látið vita.

Skólinn að byrja aftur

Þá er skólinn að byrja aftur. Reyndar fór ég á tvo fyrirlestra í þessari viku, gaur frá háskóla í bandaríkjunum sem hefur verið að vinna að nýrri compiler tækni fyrir forritunarmál kom hérna og hélt tvo mjög áhugaverða fyrirlestra. Hann + tveir stúdentar hjá honum eru á bakvið nýja tækni sem er komin í Firefox 3.1 og er að hraða javascript í honum um nokkur hundruð prósent. Mjög cool. Svo byrjar alvöru skólinn á þriðjudaginn. Ég er bara í þremur áföngum þessa önn og ekki að vinna svo þetta ætti nú ekki að verða neitt of massíft. Áfangarnir sem ég tek eru:

  • Process modelling and validation – Erfiður fræðilegur kúrs sem á kannski eftir að hjálpa við masters verkefnið mitt.
  • Technology, economics, management and organisation – 10 eininga (!!!) management áfangi. Ég tók ekki einn einasta viðskiptafræði áfanga í B.Sc. náminu á íslandi þannig að ég ákvað að kannski væri kominn tími á að prófa eitthvað nýtt. Svo er Luke félagi minn líka að kenna í honum sem verður fyndið.
  • Introduction to Computer Game Prototyping – Búa til litla tölvuleiki í Python. Þetta verður örugglega snilldar áfangi sem ég ákvað að taka þó það þýddi að ég lenti í árekstri við Process modelling áfangann. Ég skelli örugglega inn einhverjum leikjum hérna þegar líður á önnina.

Það besta er samt að ég er bara 3 daga í viku í skólanum sem er ansi þægilegt. Er í fríi frá hádegi á föstudegi til hádegis á þriðjudegi og fimmtudagur er frí líka.

Annars erum við núna á fullu að leita að íbúð. Vantar 3 herbergja íbúð áður en barnið kemur, erum búin að segja okkar íbúð upp og verðum að vera komin út 1. október. Ætlum líka að reyna að komast nær skólanum, síðasta vetur tók klukkutíma að komast í skólann með hjóli+metro+lest+strætó þannig að 2 tímar á dag fóru bara í samgöngur. Erum að fara að skoða a.m.k. tvær íbúðir um helgina, vonandi kemur eitthvað útúr því.

Danmörk – Dagur 77

Hvað er að gerast í Danmörku? Síðasta sunnudag elduðu Bruno, Matteus og Francielle brasilískan mat fyrir alla í gámnum. Þetta er víst einhver réttur sem er yfirleitt borðaður á mánudögum í Brasilíu. Það var stór diskur af kartöflumús með smá kjöthakki ofaná, svo var fullt af hrísgrjónum og svo var einhver baunaréttur úr svörtum baunum og einhverju fleiru. Þetta var ágætt, gaman að prófa eitthvað nýtt. Ég splæsti í kók og bjór svona til að leggja eitthvað af mörkum.

Ég var áður búinn að tala um að það ætti að vera keppni milli forritana sem við gerðum í Computational Hard Problems. Við fengum að vita úrslitin síðasta þriðjudag og minn hópur var í 3. sæti. Maður fékk stig fyrir hraða og hversu góð lausnin var sem forritið fann og svo fékk maður bónusstig ef bæði hraðinn og lausnin var góð, svo maður gerði nú ekki bara hraða lausn sem væri krapp. Allavegana, við fengum flösku af rauðvíni í verðlaun, 2005 árgerð af Valpolicella Ripasso, hvað sem það nú er. Ég drekk ekki rauðvín en það er alltaf gaman að vinna :). [Extra nördaupplýsingar: Við hefðum ekki lent í 3ja sæti nema af því að við endurskrifuðum forritið í C++ fyrir keppnina, upphaflega útgáfan í C# tók 12 sekúndur, C++ útgáfan tók 6 sekúndur.]

Núna er ég hinsvegar að horfa á kennsluefni í LEGO Mindstorms, þar sem að á morgun er ég, Eduarda, Tiberiu og Nuno að taka þátt í keppni þar sem maður byggir róbóta. LEGO Mindstorm NXT er eitthvað svona system þar sem maður hefur fullt af kubbum, nokkra skynjara og mótora og svo getur maður smíðað vélmenni og forritað það til að leysa allskonar verkefni. Ég hef aldrei snert á þessu áður, og enginn annar úr hópnum mínum heldur þannig að þetta verður áhugavert. Þetta er í 7 klukkutíma, frá 1-8 á morgun og verður örugglega stuð. Ég hef smá áhyggjur af því að róbótinn gæti orðið self-aware og gert uppreisn gegn sköpurum sínum en að öðru leyti líst mér vel á þetta.

Annað kvöld kemur svo Alda til Danmerkur þannig að ég, hún og Agla verðum örugglega að gera eitthvað skemmtilegt um helgina. Við höfum aldrei áður verið öll 3 systkinin saman í útlöndum. Og, já, þetta er það helsta sem er að frétta af mér.

Danmörk

Þá er það komið á hreint að ég fer til Danmerkur í haust. Búinn að fá inngöngubréf frá DTU og skólinn byrjar 28. ágúst á einhverju introduction week. Ég keypti dönskunámskeið um daginn og er núna byrjaður að rifja upp dönskuna. Gengur vel að lesa en svo verður örugglega miklu meira mál að tala. Ég er samt búinn að læra nokkrar setningar sem ég mun reyna eftir bestu getu að troða inní öll samtöl svo ég geti sýnt hvað ég sé góður í dönsku.

Hej (Hæ) 

Jeg hedder Einar.  (Ég heiti Einar)

Jeg er meget sulten.  (Ég er mjög svangur)

Din mor kommer med tog. (Mamma þín kemur með lest)

Hvad hedder din mor? (Hvað heitir mamma þín?)

Man kan godt drinke rødvin med æblekage! (Maður getur vel drukkið rauðvín með eplaköku!)

Det er en interessant rejse (Þetta er áhugaverð ferð)

Þetta hlýtur að nægja mér fyrstu vikurnar. Ef ekki þá get ég alltaf raðað þeim saman á nýja vegu og þar með aukið orðaforðann töluvert. t.d.

Man kan godt drinke rødvin i en interessant rejse (Maður getur vel drukkið rauðvín í áhugaverðri ferð)

Jeg er meget sulten, mmmmm, æblekage (Ég er mjög svangur, mmmm, eplakaka)

Hvað hedder din æblekage? (Hvað heitir eplakakan þín)

Din mor er meget sulten, mmmm, æblekage (Mamma þín er mjög svöng, mmmm, eplakaka)

Det er en interessant rødvin, man kan godt drinke den i tog (Þetta er áhugavert rauðvín, maður getur vel drukkið það í lest)

Sjáum hvort nokkur fattar að ég sé ekki innfæddur þarna.

Í nördafréttum er annars helst að frétta að ég sendi í fyrsta skipti inn kóða í open-source verkefni. Þannig að ef einhver er að nota Django framework-ið og vantar textabox fyrir íslenska kennitölu, íslenskt símanúmer eða combobox fyrir póstnúmer þá er það núna innbyggt í Django í pakkanum django.contrib.localflavor.is_.forms .

Nýtt blogg

Jæja, eins og glöggir lesendur taka eftir þá er komið nýtt útlit á síðuna. Ekki bara nýtt útlit heldur nýtt bloggkerfi. Ég ákvað loksins að hætta með heimasmíðaða bloggkerfið mitt og fara að nota WordPress. Ég byrjaði á að skipta um kerfi á síðunni hjá Daníels og leist svo vel á það að ég ákvað að nota það hjá mér líka. Forritarar sem blogga virðast allir fá sömu hugmyndina: “Hey, bloggkerfi er einfalt. Ég ætla að búa til mitt eigið bloggkerfi!!!”. Það sem gerist er hinsvegar að þeir enda allir með einhver hálfkláruð krapp heimasmíðuð kerfi sem eru ekki næstum því jafn góð og alvöru bloggkerfi sem einhver hefur lagt virkilega vinnu í (og þetta er nákvæmlega það sem gerðist hjá mér 🙂 ). Í WordPress er t.d. innbyggt kerfi til að vinna gegn commentaspami sem ég var búinn að vera í vandræðum með á hinni síðunni, mörg þúsund þemu sem maður getur valið um og endalaus plugin til að gera allt undir sólinni.

Þetta er ennþá ekki komið almennilega í gang, ég er búinn að importa gömlu bloggfærslunum mínum með Python scripti en á eftir að finna eitthvað annað þema, laga linka og myndir í gömlum færslum og laga þetta eitthvað meira til. Það kemur allt á næstunni. Kannski ég reyni jafnvel að skrifa hérna inn öðru hvoru 🙂

Firefox plugin

Jæja, þetta blogg er meira og minna dautt. Nenni ekki lengur að skrifa á það. Ákvað samt að endurvekja það fyrir eitt gott nördablogg 😀

Var að lesa umræðuþráð á http://forums.mozillazine.org þar sem eru umræður um Mozilla forritun og fleira því tengt. Þar var einhver að biðja um extension fyrir Firefox sem leyfði manni að skrolla músarhjólinu yfir leitarboxinu til að skipta um leitarvélar í staðinn fyrir að þurfa að smella á icon-ið og velja síðan nýja vél úr lista. Ég prófaði að búa þetta til, heildar kóðinn var svona 15 línur, og ég setti það á http://addons.mozilla.org . Það kom inná netið svona á hádegi í dag, og núna þegar ég var að kíkja á það þá eru 200 manns búnir að downloada því! Ég veit bara ekki um neitt annað sem ég hef skrifað sem svona margir hafa notað! Ef það er ennþá einhver sem les þetta blogg, notar Firefox, og langar að skoða þetta þá er það á http://addons.mozilla.org/firefox/3696/ .

Linux (enn einu sinni)

[Nördablogg]

Nú var ég að setja Linux inn hjá mér enn einu sinni. Fólk kvartar stundum yfir að Linux sé “ónotendavænt” en það er bara rugl. Tökum sem dæmi, ég vildi koma þráðlausa netkortinu mínu í gang. Það eina sem ég þurfti að gera var:

Finna út hvaða chipset kortið mitt var með, googla eftir driver fyrir það, downloada source kóðanum fyrir driverinn (sem reyndist vera version 0.0.1 frá árinu 2004), gera make install til að compila drivernum, það virkar ekki, installa header files fyrir kernelinn, installa gcc, gera aftur make install, það virkar ekki, laga villur í driver source kóðanum sem voru útaf einhverju inline functions sem tókst ekki að inline-a, keyra make install aftur, það keyrir í gegn án villna, keyra modprobe zd1205, fá villuboðin FATAL: can’t install zd1205, skoða dmesg til að finna út hvað er að gerast, deprecated symbols á verify_area og pci_sync_single, finna réttu symbolin til að setja í staðinn og replace-a alla staði í source kóðanum þar sem þau koma fyrir, keyra make install aftur, keyra modprobe zd1205, fá aftur FATAL: can t install zd1205, skoða dmesg, sjá villuboðin “Device not found”, grep “Device not found” src/* til að finna hvar þessi villa kemur upp, sjá að hún kemur því að pci_register_driver skilar <= 0, googla pci_register_driver, komast að því að á einhverjum tímapunkti var þessu falli breytt þannig að 0 þýðir núna að allt sé í lagi, breyta pci_register_driver tékkinu í zd1205_hotplug.c, make install, modprobe zd1205 og þá loadast driverinn!

It’s almost too easy! (Bónusstig fyrir að þekkja kvótið!). Núna kemur a.m.k. ljós á netkortið hjá mér og í Wifi-radar forritinu sem ég náði í sé ég þráðlausa netið mitt, en það hefur ekki ennþá tekist að tengjast því af einhverjum ástæðum. En það hlýtur að koma með nokkrum einföldum skrefum í viðbót.

Carefully orchestrated campaign of robot violence

“… how do you KNOW your code won’t become self-aware, perceive humans as a threat, and wipe us out with a carefully orchestrated campaign of robot violence? Unit tests can’t test for THAT.”

[Kvót úr umræðuþræði um Unit testing sem ég var að lesa.]

p.s.

Hefði sennilega átt að merkja þessa færslu með hinu fræga [nördablogg] merki. Kannski ég komi mér upp svona flokkakerfi eins og er í WordPress, gæti þá verið með flokkana Nörd, Kvikmyndir og Annað.