Home
   Journal    Friends    Archive    User Info    Memories
 

Silfer

Dec. 7th, 2007 04:08 am "...med en rytme uten hode"

Inspirert av Tiril og eksamener. Forøvrig anbefales Lorca generelt; jeg poster nok mer av ham.

La Siguiriya går forbi

Mellom sorte sommerfugler
går en mørk pike
og i hennes nærhet
glir en tåkehvit slange.

Lysende jord,
jordiske himmel.


Hun er lenket til dirrende slag
av en rytme,
av sølv er hennes hjerte
og en dolk har hun i høyre hånd.

Hvorhen akter du deg, Siguiriya,
med en rytme uten hode?
Hvilken måne skal høste
din smerte av kalk og oleander?

Lysende jord,
jordiske himmel.


- Federico Garcia Lorca, "Dikt om den dype sang".

Tags:

Current Location: Oslo
Current Mood: indescribable

Leave a comment

Jul. 24th, 2007 05:46 pm Nerdeting

Jeg hadde et lite problem på jobb:

Vi har tre funksjoner checkX, checkY, og checkZ, som alle er predikater. Vi er interessert i å gjøre noe (la oss si kalle funksjonen doSomething) hvis og bare hvis to eller flere av de tre funksjonene over returnerer true - men uansett hvilke to (!).

Min løsning er å la 'X, 'Y, og 'Z returnere 0 og 1. Kodeeksempel i JS:


var sum;
sum = checkX() + checkY() + checkZ();
if (sum >= 2) {
doSomething();
}

UNIX og filtilgang


I unix finnes det tre typer tilgang til en gitt fil for en gitt bruker eller gruppe av brukere: Lesetilgang (read), skrivetilgang (write), og kjøretilgang (execute). Disse er kodet med tall: 4 for read, 2 for write, og 1 for execute.

La oss betrakte mengden A = {1, 2, 4}. Potensmengden av denne, P(A), er mengden av alle delmengder av A,
{
{1},
{2},
{4},
{1,2},
{1,4},
{2,4},
{1,2,4}
}

Hvert element i P(A) er en mulig kombinasjon av tillatelser for en fil for en bruker - {2,4} er read og write. Det som er morsomt, er å se på summene av tallene i hver av disse delmengdene: 1, 2, 4, 3, 5, 6, 7 - de er unike. Dermed kan man kode dem som tall - 7 er read, write, execute, osv.

Det som er et interessant problem, er hvordan man finner/konstruerer slike mengder, evt. fører bevis for at en mengde X er en slik mengde.

En liten formalisering:
La A være en delmengde av N, og S(A) være summen av elementene av A. La så F være en funksjon fra P(A) til N slik at F(x) = S(x). Finn en mengde A slik at F blir en injektiv funksjon (en-til-en).

PS: Det som også er morsomt med {1, 2, 4} er at summene av delmengdene gir oss en sammehengende rekke, 1-7.

Current Location: Oslo

Leave a comment

Jun. 29th, 2007 11:07 pm Karakterer og jobb

For å ta det i rekkefølge: Jeg fikk tre Aer av tre mulige. Det var gøy.

Videre har jeg, som tidligere skrevet, sommerjobb hos Symphonical A/S. Det er meget morsomt - jeg har sålangt (to uker) kodet en side som genererer statistikkdata fra serverlogger via AWStats, og modifisert et php-bibliotek for å generere captchaer til å passe for oss. Kodingen fra min side vil være i PHP og JavaScript (AJAX) - det siste er veldig kult.

Systemet er oppe til betatesting: Symphonical Det er en variant av ClassFronter som gjør ting riktig (og ikke galt, slik CF gjør dem).

Nerdeting:

Visste dere at man kan sende vilkårlig informasjon i HTTP-headers? Slik:
header("Nøkkel: Verdi");
Hvis man så kan hente dem ut i andre enden (via AJAX, for eksempel), så kan man gjøre mye morsomt. Eksempel: Man skal hente et dokument innenfra et annet, og skal i tillegg til dataene ha med en eller annen verdi. Cookie kan du ikke bruke, de må settes før noe output til browser. Men alle requests returnerer headere.

JavaScript er mye kraftigere enn jeg trodde, forøvrig. Ikke bare kan man sende funksjoner som argumenter, man har også closures. Betrakt følgende funksjon:

function compose(f g) {
return function(x) { return f(g(x)); };
}

Når den returnerer, eksisterer ikke lengre variablene f og g - strengt tatt, men JS tar vare på dem, og tillater oss dermed å lage funksjoner som lager funksjoner. Nå mangler vi bare støtte for variabelt antall parametre, samt en endring av syntaksen, og vips: LISP. (Greenspuns tiende regel)

For å returnere til AWStats: Det vil etterhvert være flere servere i systemet, og de har egne logger, som alle skal med i statistikken. Mitt script henter disse via ssh single-purpose keys, og så skulle jeg sette opp det. Laget nøkler, sjekka at ting funket i shellet... og kjørte mitt script. 255 (SSH feilkode) M-kay... Kan det være tillatelser på nøklene? Mulig-ens... chmod hit og dit... 255. Teste på shell... den ber om passphrase (som ikke eksisterer!) Hæ? "Bernt, (Linux- og serverguru), har du et øyeblikk?" Bernt kommer bort og ser. "Hæ?" ... chmod tilbake... 255. Endre eier av nøkkel til www-data (Apache-prosesser kjører under den)... 255. Eder og forbannelser i mengder.

Fant ut av det til slutt - Apache kjørte som user daemon (settes i httpd.conf), og tillatelsestryll funket til slutt. Punchline, Bernt: "Men det blir spennende om det funker på en annen maskin!" :) SSH, mine venner, er fra et annet univers hvori Hume har rett, og kausalitet ikke gjelder. Du gjør X og får Y som resultat - men bare denne gangen. Hva som skjer neste gang... who knows?

Kort sagt, jeg har det ikke kjedelig på jobb.

Tags: ,

Current Location: Oslo
Current Mood: busy
Current Music: Nik & Jay: Aarstiderne Skifter

8 comments - Leave a comment

Jun. 13th, 2007 10:04 pm Tredje og siste slag

Logikk (INF3170) gikk bra - jeg gjorde to små, dumme feil, og veddet derfor mot Ivar som mener at jeg kommer til å få A.

Ladies and gentlemen, I am now officially a Bachelor of Sciences.

Current Location: Oslo
Current Mood: exhausted

1 comment - Leave a comment

Jun. 10th, 2007 01:27 am Prae ceteris

Jeg fikk A i lingvistikk. Det var uventet, gitt svadaen i semantikkdelen, men man tager hva man får.

Current Location: Oslo
Current Mood: extatic
Current Music: FF-win-melodien

6 comments - Leave a comment

May. 24th, 2007 07:36 pm Annet slag

Lingvistikken (LING1102) gikk greit - jeg har sett lyset hva angår syntaks, og klarte den delen strålende (all the theory makes sense now). Semantikken måtte jeg ro litt på, så ja... Håper på B.

Current Location: Oslo
Current Mood: drained
Current Music: Silence

5 comments - Leave a comment

May. 21st, 2007 03:30 pm Første slag

Filosofieksamen (FIL1002, erkjennelsesteori) gikk bra, oppgavene var søte og nusselige. Jeg forventer B og håper på A.

One down, two to go.

Current Location: Oslo
Current Mood: accomplished
Current Music: "My december", Linkin Park

Leave a comment

May. 16th, 2007 07:33 pm Eris er på min side

Jeg skal fortelle dere to historier.

Den første begynner med at en venn av meg holder på å leie ut noen kontorlokaler han selv har leid en god stund. Leietageren er et IT-selskap, Symphonical - de holder på å utvikle et slags prosjektstyringssystem/classfronter som gjør the right thing, og mere til. Min venn, Rolf, nevner meg overfor dem, og de spør: "Har denne unge mannen CV?"

Nå er det jo åpenbart hvor jeg skal med denne historien, men: Cven ble oversendt, og en telefonsamtale fulgte. Vi avtalte et møte (les: intervju) i dag, og det har jeg vært på. Mine damer og herrer (mine tre lesere!), jeg skal jobbe hos Symphonical i sommer! De koder i PHP, JS og python(!), og jeg kommer til å kode for dem. Ifi-folk hele gjengen (Emacs vs. Vi ble nevnt fort), så alt er toppen.

Historie to begynner første mai, som begynte på Youngstorvet, der jeg hørte på svulstige taler sammen med en gutt. 1. mai er den eneste dagen da man har lov til å være kommunist i Norge, forøvrig. Så gikk vi i toget, (og holdt plutselig hender der), stakk derfra og hang på Aker Brygge... Lang historie kort: Vi møttes kl. 11 og gikk fra hverandre kl. 22. (Jeg kjente ham fra før) Så nå er jeg lykkelig forelsket også. :)

Den som har tilfeldighetene på sin side, trenger ei å frykte meget.

Current Location: Oslo
Current Mood: high
Current Music: Vivaldi, Sommer del 3.

3 comments - Leave a comment

Apr. 30th, 2007 10:28 pm Jeg tapte!

Mine damer og herrer, de ser en slagen mann. Jeg fikk ikke sommerjobb i Simula. Så, om noen trenger en koder som kan trylle frem det som trenges, helst i selvvalgt språk (LISP), så har jeg en ledig sommer. Inntil da skal jeg pusle med logikk og eksamensforberedelser.

Current Location: Oslo
Current Mood: defeated
Current Music: "Ronnie & Clyde", Klovner i kamp

2 comments - Leave a comment

Apr. 18th, 2007 10:57 pm LING1102 (dedikeres til Åfarli et. al.)

Forklaring? Vel, eh, tja, det er omtrent
At det gror opp en X-bar-projeksjon
Fra X og opp. X-bar tar komplement,
Og vi får kongruent interaksjon
Med kjernen og en ny konstituent,
Som adjungeres til en subjunksjon
- hvoretter predikatet nekter plent
Å kasus-validere sin person,
Og derfor må spesifikator flytte pent
Via kontroll med mu-derivasjon,
Til finitt T, og blir forent
Med C-bar via CP og fusjon.

Det er nu ikke riktig alt som er på tverke,
I mai skal jeg nok skjønne forskerpraten.
Men inntil da vil jeg sitere Bjerke:
Gud skapte sproget, og djevelen sprogvitenskapen!

Tags:

Current Location: Oslo
Current Mood: amused
Current Music: Silence

2 comments - Leave a comment

Apr. 18th, 2007 02:25 am Livsnytt

I helgen var jeg på helseutvalgets seminar, "gutter+gutter". Veldig interessant å høre andre menneskers historier, erfaringer, og tanker om alle sider ved å være homofil - og fortelle egne, i en vennlig atmosfære. Jeg er mange tanker og noen bekjente rikere.

Videre så svever jeg i LING1102-pensumet. Det er en tilstand der du ved å tenke på det føler deg ingensteder, og ser ting drive forbi. *ser dobbelt objekt-konstruksjonen drive forbi, innhyllet i blå tåke* Jeg tenker meg å sveve slik til mai, hvoretter jeg skal sette meg ned over bøkene og sortere hodet i pensum og pølsevev.

Current Location: Oslo
Current Mood: contemplative
Current Music: Nik & Jay - Aarstiderne skifter

1 comment - Leave a comment

Apr. 14th, 2007 12:53 am Bølgen

If you comment...

1. I'll respond with something random I like about you.
2. I'll tell you what song/movie reminds me of you.
3. I'll name something we should do together.
4. I'll say something that only makes sense to you and me (or just me).
5. I'll tell you my first/clearest memory of you.
6. I'll leave you a quote that is somehow appropriate to you.
7. I'll ask you something that I've always wondered about you.
8. I'll add a picture!
9. If I do this for you, you must post this on your journal so you can do the same for other people.

Tags:

Current Location: Oslo
Current Mood: calm
Current Music: "Behind those eyes", Three doors down

10 comments - Leave a comment

Apr. 10th, 2007 09:01 pm Java og tråder

Spug og andre på 100m: Catch ideen min om hvordan man kan komme seg ut av en lang kallkjede i en annen tråd (ved å slice stakken), bytte ut brett, og generere løsninger på dette nye brettet - for ideen funker som antatt.

traad.java

For de ikke helt innvidde, vi har følgende problemstilling: Vi genererer løsninger på et sudokubrett rekursivt, og skal lage en GUI til programmet. Vi skal kunne vise frem en og en løsning, noe som flere har løst med å la rekursjonen skje i en egen tråd. Det funker strålende sålangt, når man skjønner i hvilken tråd man befinner seg når.

Så skal vi kunne, etter å ha vist X løsninger, åpne et nytt brett og generere dettes løsninger (og da formodentlig avslutte det gamle brettet). Da må vi enten lage en ny tråd, eller endre den vi har. I begge tilfeller må vi kvitte oss med de rekursive kallene, sånn at vi enten kan bytte brett og starte rekursjonen på nytt (samme tråd), eller avslutte den gamle tråden og starte en ny.

Min ide er å sende en interrupt til tråden, og enten automatisk eller spesifikt få et unntak, som spiser opp stakken, for så å fange opp unntaket der vi ønsker å havne.

Sist: Man kan tenke seg å la det gamle brettet stå, og opprette et nytt vindu med brett og herlighet - slik at bruker kan ha så mange brett oppe samtidig som han ønsker. Da er vi ikke interessert i å slice stakken akkurat i det vi åpner et brett, men i det bruker lukker et - for ellers avslutter ikke programmet vårt, pga. wait(). (Dette er dog ikke testet, og teori != praksis, ofte.)

Tråder er forøvrig gøy.

PS: Husk å ha en notify() eller interrupt() for hver wait() - jeg satt i ett kvarter og grublet over hvorfor mitt lille program ikke ville terminere annet enn via ctrl-c.

Tags: , ,

Current Location: Oslo
Current Mood: Slicy
Current Music: Silence

5 comments - Leave a comment

Apr. 7th, 2007 02:32 am Cellulære automata

Jeg har kodet i dag - i LISP selvsagt. Fikk lyst til å lage en implementasjon av de "vanlige" endimensjonale cellulære automatene. Det var ikke så vanskelig, og koden er på 50 linjer, toplevel inkludert. Screenshot:

Bilde av regel30.

Koden finner dere her: ca.lisp. Kjøres ved å oppgi fire parametre, nemlig regel, ant. steg, lengde på "brettet" og hvor "." skal være.

For spesielt interesserte: Hvis man vil, kan man skrive egne regler i programmet, etter mønster av de jeg har definert. Man kan også kutte ut å kalle toplevel, og starte en repl istedenfor. Hos meg gjøres det slik: clisp -repl ca.lisp. Da kan man kalle sim med make-rule som første argument.

Ellers er livet meget behagelig for tiden. Ett ord: ferie.

Tags: ,

Current Location: Oslo
Current Mood: accomplished
Current Music: "Toccata e fuga", Bach

2 comments - Leave a comment

Mar. 21st, 2007 12:19 am Potpurri

Jeg har oppdaget xkcd. Det er meget, meget treffende. Kevin, denne er til deg: Datalingvistikk. Litt slem, da. :P Og, quote, "You laugh to keep from crying, you do math to keep from crying..." - evig sant.

Semantikkobligen går på betydninger av ordet "lys", hovedsakelig. Faktisk underholdende.

I logikk hadde vi intuisjonistisk logikk, der du kan bevise !(P & !P), men der du ikke kan bevise P v !P. Veldig... hjernevridende, men opplysende.

Videre så har jeg bøker, og leser nå Johan Borgens noveller. Han er skjønn.

Det var alt.

Current Location: Oslo
Current Music: Beethovens syvende

1 comment - Leave a comment

Mar. 6th, 2007 10:55 pm Brokker og biter

Jeg henger stadig oftere sammen med førsteårsfilosofene, som jeg har erkjennelsesteori sammen med. Ingenting er som å diskutere dagens forelesning mens man inntar sin middag, for så å la samtalen gli ut i filosofiske og andre avsindigheter. Jeg lærer dem logikk, og forteller anekdoter fra universitetslivet og informatikkens arkana. De, derimot, har lest filosofer opp og i mente, spiller sjakk (!), og har meninger om mangt. Alt i alt, godt selskap.

Vi fant på en ny logisk slutningstype i dag: "Ad aero" (Ex tenius aer?), altså "fra løse luften". Brukes ofte i en viss lærebok.

LISP: Dette, hentet fra Norvig (PAIP), er kanhende det som best illustrerer hvorfor jeg liker LISP.


(defun matrix-transpose (matrix)
"Turn a matrix on its side."
(if matrix (apply #'mapcar #'list matrix)))


Altså linjen fra og med "(apply...". Det er som en koan, og like opplysende.

Videre burde jeg se å ikke forsømme treninger fullt så ofte. Vel, pytt sann. *smile uskyldig*

Hundremeterskogen (terminalstue) er blitt noe redusert siden sist. Forbausende få der - stortsett oss gamle travere, og ellers fast klientell. Men plantene har vokst seg til.

Tags:

Current Location: Oslo
Current Mood: calm
Current Music: Bach

2 comments - Leave a comment

Feb. 26th, 2007 09:42 pm Backlog samt oppdatering

"After three days without coding, life becomes meaningless." - Programmeringens Tao.

Jeg kodet i går, og det var gøy. Resultatet er backlog, et lite program skrevet i LISP. Funker som en huskeliste, slik navnet antyder. Oppfører seg slik:



Og tar kommandoer: -a (add), -d (delete), -rm (delete everything). Delete tar en eller flere argumenter, slik at "... -d 1 2 3" vil fjerne innlegg 1, 2 og 3. Funker også under Linux, men er CLISP-idiosynkratisk siden LISP ikke har standard kommandolinjearguments-håndtering. Den som ikke skjønte forrige setning: Fred være med dere. De som vil bruke denne koden med en annen LISP må endre ext:*args* til det deres LISP har i stedet for.

Koden finnes her: backlog.lisp. Og sånn i tilfelle jeg ikke har nevnt det før, så er LISP språket über alles. It does indeed do what I want it to, og følger "principle of least astonishment".

Videre har jeg grønn te, sjokolade, og filosofiartikkel som må leses til morgendagens forelesning, om sanseoppfatning. Dette er en god kombinasjon som straks skal iversettes. Jeg har også planer om å fortsette tankerekken fra forrige post, altså aleph - in my copious free time.

Tags: ,

Current Location: Oslo
Current Mood: accomplished

4 comments - Leave a comment

Feb. 18th, 2007 03:16 am Overtellbart

Morsomt hvordan tilfeldigheter spiller inn og skaper ting. Greit nok, Eris har jeg aldri undervurdert, men dog. En tilfeldighet, en blogg, og man faller ned i en dyp-dyp grop med minner. Søtt og vemodig og pent... men vondt. Og min verden fikk en ny krok, og den uendelige historien i den fikk en ny gren.

Jeg lurer på om det er mulig å få en for stor verden, for mange grener - rett og slett for mye informasjon samlet og ordnet, i den grad den er det... Snarere er den bundet sammen, forbundet av mange lenker. Så kommer et grensepunkt, der verdenen ikke lengre kan holde på informasjonen som fantasi og oppspinn, og realiseres. Hver gren er en historie, som også blir virkelig og får et eget liv. Skaperen av denne verdenen blir dermed ikke lengre Gud, allmektig i sitt verk, men bare Skaper. For hvis han fremdeles fritt kunne manipulere denne verdenen, ville den ikke vært virkelig. Virkeligheten, den som vi snakker om som den ekte virkeligheten, er per definisjon ekstern. Det samme må dermed gjelde enhver skaper - hans virkelighet er for ham ekstern.

(På forhånd ha meg unnskyldt for min lettsindige omgang med denne tanke - den fortjener bedre, men jeg er snarere poetisk enn analytisk nå.)

Verdenen det her er snakk om, er ikke en klode - mer en virkelighet, et stadig voksende tre der hver gren er en egen virkelighet (dimensjon?), muligens forbundet med andre grener - altså egentlig en graf... men det er oss uvesentlig for øyeblikket. La oss spole litt tilbake til Skaperen. Han kan ikke lengre manipulere en slik verden som Gud - for da ville den vært intern - men han kan, siden den er ekstern, iaktta. I tillegg virker det rimelig å tenke seg at han kan påvirke denne virkeligheten. Jeg skal ikke lengre ned i analysen nå, se over, men jeg undres på om skaperen ikke kunne hoppe ned i virkeligheten - gi opp sine krefter og bli en del av virkeligheten, realisert som hva som helst, egentlig... fortrinnsvis noe tenkende og handlende.

En slik verden vil, med mindre Skaperen var så pertentlig å faktisk velordne den ned til minste detalj FØR den passerte grensepunktet og ble realisert, ikke være koherent. I min verden, som startet denne passiaren, mangler alle historier store biter, spesielt i forhistorie. Hva skjer så når verdenen realiseres, med ferdige karakterer og innvånere og allting? Enten vil forhistoriene, verdensbrokkene, ja til og med enkelte naturlover, mangle - hvilket vil gi meget forbausende verden. En annen mulighet, som virker mer sannsynlig, er at informasjonen som finnes i dette verdenstreet (grafen) blir brukt, i det verdenen realiseres, til å lappe sammen hullene, fylle inn bitene, sågar skape naturlovene som ligger der implisitt. (Jeg har ikke tenkt på tyngekraften i de fleste av historiene, men det at ting faller ned ville, gitt denne hypotesens riktighet, syntesere en passende naturlov.) En slik prosess kunne tenkes å eliminere alle spor av Skaperen - verdenen ville BLI koherent, og allting ville henge sammen... mye som det gjør hos oss. Dermed vil spor av Skaperen, som nettopp er ting som IKKE henger på greip, bli ordnet og koblet sammen og forsvinne.

Hva angår den første muligheten, at verden faktisk realiseres uten denne prosessen, så ville det gi en motsigende verden. Dette virker meg usannsynlig, da jeg som Skaper ikke kan forestille meg en slik virkelighet. Videre forutsetter en virkelighet nettopp noe velordnet - kaos kan ikke kalles en historie.

Verdenstreet jeg snakker om, er muligheter og variasjoner - alle historier som kan utspille seg i denne verden. Videre kan enhver tenkende i denne verden i teorien bli en Skaper - tenke en verden og legge inn tilstrekkelig informasjon til at denne realiseres. Det samme kan naturligvis tenkes om enhver Skaper - at hans virkelighet også er skapt på tilsvarende måte. Denne uendeligheten av uendeligheter vil, i siste instans, være overtellbar... men å forsøke å forestille seg den er mosomt, mine venner - og vakkert.

Første avsnitt av denne fortelling kan avskrives til mine latente emotendenser. Resten kan også avskrives, hvis man absolutt insisterer, men da på arkane nerdeevner.

Tags:

Current Location: Oslo
Current Mood: artistic

3 comments - Leave a comment

Sep. 14th, 2005 03:14 am On the arcane matters of C programming

Recent new handin assignment: Simple program in C#. Two, in fact.

First one takes a text file and puts its lines into a linked list. Then, the program should be able to do the following with those lines:
- Print the text.
- Remove all vocals and print the text ("foo bar" becomes "f br").
- Exchange all vocals with vocal X for all values of X in turn, and print it all in turn.
- Print a random line.

The second program takes a text file with only these 4 characters: " ", ":", "@" and "\n" (linebreak). Thse characters are encoded as binary values 00-11 respectively, and concatted into one and one char. (" :@\n" becomes 00011011, which is a char value). These new characters are then printed to an output file, or stdout.

I haven't started on the second program, but I am almost done with the first one.

A "Great Mystery" from the first program:

This code, if run, produces the SAME number over and over for a long while on Windows and Linux. On Solaris, however, it behaves as defined, producing different numbers.
---

int main () {
srand(time(NULL));
int random = (int) 100 * rand() / (RAND_MAX + 1.0);
//Division by RAND_MAX+1.0 gives gives us a number 0.0-0.99...
//*100 Makes it a number between 0 and 99
printf("%d", random);
return 0;
}

---
My group teahcer found no obvious solution to this mystery. My crockity solution is to run rand() a while before using its number, which gives me randomness.

Oh, C is lingua franca of my course, "Introduction to operating systems and data communications" (for "data" read "computer"), link.

Leave a comment

 

Advertisement