Kalenderluke 19: Julenøtter


torsdag 19. desember 2013 Julekalender

Her er løsningen på julenøttene fra utviklernes julekalender.

Oppgave 1:

Jeg er oppkalt etter kaffe.
Du kan skrive meg én gang, og debugge overalt :)
Som alle som er så populære som meg
er jeg både elsket og hatet.
Hva heter jeg?

Denne var vel ikke så vanskelig? Ordet var Java.

Oppgave 2:

Jeg er Z. Jeg er Zahl.
Jeg er viktig, jeg er fundamental.
Jeg kan angis som tre tegn,
og hvem er jeg da?

Zahl er tysk for "tall", og i matematikken er Z mengden som inkluderer 0, alle naturlige tall (1, 2, 3, ...) og negeringen av alle naturlige tall (-1, –2, –3, ...). På engelsk kaller man disse tallene for integers, og vi programmerere pleier ofte bare si int.

Oppgave 3:

Jeg er et mønster som begrenser,
du trenger bare én av meg!
Jeg er mye kritisert, men mye brukt,
for eksempel med fabrikkmetoder.
Hva er jeg?

Pattern er det engelske ordet for mønster, og her var ideen at du skulle tenke på design patterns. Et pattern som begrenser – som gjør at du kun kan ha én av noe – heter Singleton pattern. Det er det mest kritiserte mønsteret fra Gang of Four, men også det første man gjerne lærer. Og det brukes ofte sammen med factory method pattern.

Oppgave 4:

I 1950 var jeg i et rør, men det er lenge siden nå.
Jeg har et navn og attributter
Jeg er en ressurs for lagring av informasjon
Jeg er et array av bytes
Hva er jeg?

Sitat fra februarutgaven av Popular Science Magazine, 1950: "...the results of countless computations can be kept "on file" and taken out again. Such a "file" now exists in a "memory" tube developed at RCA Laboratories.". Dette kan ha vært første gang fil ble brukt offentlig til å beskrive en elektronisk ressurs for lagring av informasjon.

Oppgave 5:

Det finnet mye av meg,
og jeg er plagsom.
Jeg kommer ofte fra land som India og Russland.
For dem som skaper meg koster jeg ikke stort,
men jeg fører til store kostnader og problemer.
Hva er jeg?

Svaret her kunne lett vært virus, men det jeg tenkte på var spam.

Oppgave 6:

Jeg skjer når du minst venter det.
Ingen regler uten unntak, vet du!
Men du kan beskytte deg og gjøre noe med meg
når jeg dukker opp.
Hva er mitt engelske navn?

Her står ordet i teksten, og på engelsk heter det exception.

Oppgave 7:

Inne i meg kan man finne hva noe refererer til.
Utenfor meg er denne "noen" hverken gyldig eller synlig,
med mindre den er inne i en leksikalsk lukking
som ble skapt inne i meg.
Hva er jeg?

Denne var kanskje litt vrien? Det som refererer til noe er variabler, og de er kun gyldige innenfor et scope – med mindre de er referert i en lexical closure som brukes utenfor scopet, men ble opprettet i det.

Oppgave 8:

Jeg gjør det mulig for dem som ser like ut å fungere sammen.
Jeg grupperer, og stopper konflikter.
Jeg finnes i C++, i C#, i XML, ja mange steder,
men jeg finnes overraskende nok ikke i CIL.
Hva er jeg?

Du kan ha flere funksjoner/moduler/klasser/elementer som heter det samme – uten at det oppstår konflikter – og du grupperer dem i navnerom / namespaces. Jeg ble derimot overrakset da jeg i høst lærte at navnerom fra for eksempel C#-kode ikke finnes som et eget konsept i CIL-koden det kompileres til. Der blir navnerommet kun en prefiks til klassenavnet for alle klassene. CIL har ikke namespace, og .NET assembles har visstnok heller ikke noe metadata som forteller om namespaces.

Oppgave 9:

Jeg er et ord på to bokstaver,
jeg gir deg Ballmer-effekt.
Når fredagen kommer
passer jeg perfekt!

ballmer_peak

Ballmer-effekten dreier seg om alkoholinntak, og hvilken alkoholholdig drikk passer perfekt for eksempel på fredager? Øl synes jeg i alle fall.

Da står vi med bokstavene J I S F S E S N Ø, og stokker vi litt om på dem får vi..

...

FJØSNISSE!


comments powered by Disqus