Log in
Seblog.nl

Kort

Om in het Japanse thema te blijven: toen mijn stage bij Das Mag afgelopen was kreeg ik het Japan-nummer van Granta en een boekje met Japanse puzzels. Combineer dat met mijn nieuwe Japanse lamp en je zou bijna denken dat ik er heen wil.


Japanse puzzels hebben volgens mij niet zo veel met Japan te maken, maar ik ben ze nu toch nu en dan aan het maken. Zoals je misschien wel weet begin je bij een Japanse puzzel altijd met het zoeken van een volledig gevulde rij. Als er geen volledig gevulde rijen zijn, moet je zoeken naar een rij die samen met de witte vakjes vol zal zitten. Als de puzzel 10 vakjes breed is, kan je een rij met '1 2 3 1' gewoon invullen: 1 + 2 + 3 + 1, plus 3 witte hokjes, is 10.


Maar dat optellen van die vakjes vind ik eigenlijk nog best lastig. Ik vergeet steeds die witte hokjes mee te rekenen. Omdat ik lui en cijferblind ben, heb ik er een Python-functie voor geschreven.


def teller(numbers):
    total = numbers.count(' ')
    numbers = numbers.split(' ')
    for number in numbers:
            total += int(number)
    return total

Gooi er een string met door spaties gescheiden getallen in en hij geeft je de lengte van de rij.


>>> teller('1 2 3 1')
10
>>> teller('1 2 3 2 3')
15

Misschien moet ik nu verder gaan en een programma schrijven voor de rest van de puzzel. Volgens Wikipedia circuleren dergelijke programma's al en kunnen ze een Japanse puzzel in enkele seconden oplossen. Dit maakt de Japanse puzzel onbruikbaar als prijspuzzel. Het is maar dat je het weet.


2014-04-25 12:22
Zoals altijd: het kan efficiënter. Deze kreeg ik via de mail:

>>> c = lambda x: len(x) + sum(x) - 1
>>> c([1,2,3,1])
10
>>> c([1,2,3,2,3])
15

Hij werd aangeraden door Spinvis tijdens Literaturfest. Want: je vindt het afschuwelijk als je het leest, maar stiekem windt het je wel op. Ik kan nu oprecht zeggen dat het me niet opwond. Dat is niet om correct te doen ofzo, want ik moet ook gelijk toegeven dat ik het allemaal niet heel afschuwelijk vond ook. Misschien is mijn ziel afgestompt. Wel een aardig boekske verder.

[[boek:De necrofiel - Gabrielle Wittkop de-necrofiel.jpg 3]]

Ik heb zo'n gouden regel: als je het kan lezen in de originele taal, lees het dan in de originele taal. Ooit stonden op die lijst Nederlands, Engels, Duits en Frans. Tegenwoordig alleen nog maar Nederlands en Engels, en dat laatste ook maar met moeite. Maar zo niet bij Bukowski. Op een of andere manier was dat gewoon zó uit. Heel fijn.

[[boek:Post Office - Charles Bukowski post-office.jpg 5]]

Ik vond in een Japanese phrasebook de volgende zin:

ゆうべ会った人は高木さんじゃありませんでした。
yūbe atta hito wa takagi-san ja arimasen deshita.
The person I met last night was not mister Takagi.

Die zin alleen al is een verhaal. Niets meer aan doen, gewoon publiceren.

Ik deed een poging om het Heartbleed-beveiligingslek uit te leggen, maar inmiddels heeft NRC het ook al gedaan. Maar och, uitleggen is leuk, dan hoef ik tenminste geen advies meer te geven over wachtwoorden veranderen.


Eigenlijk is een server die websites in de lucht houdt gewoon een computer, net als jouw computer, alleen dan in een andere kast. Ook die computer heeft een harde schijf en een RAM-geheugen. De computer gebruikt dat laatste om tijdens berekeningen dingen te onthouden. Het is net als met de hand twee grote getallen optellen: je zet ze onder elkaar, telt steeds twee getallen en eens in de zoveel tijd moet je er één onthouden. Het werkgeheugen is niet alleen één onthouden, maar ook het onder elkaar zetten.

Zie het geheugen van je computer als hokjes. Als ik aan de computer vraag wat er in hokje 1 zit, weet de computer dat die drie vakjes groot is en krijg ik abc terug. Als ik om 3 vraag krijg ik d en als ik om 7 vraag krijg ik lmno.

 1    2  3  4     5  6   7     8   9
[abc][c][d][efgh][i][jk][lmno][pq][r]

Als een server een wachtwoord binnen krijgt zet hij het in zijn werkgeheugen. Hij maakt wat berekeningen: hij verhaspelt het wachtwoord en vergelijkt het verhaspelde wachtwoord met het verhaspelde wachtwoord dat op de harde schijf staat. Omdat hij steeds op dezelfde manier alle tekens door elkaar gooit en verandert, weet hij dat als beide gelijk zijn, het wachtwoord ook gelijk was. Het punt is: tijdens al deze berekeningen staat je wachtwoord staat dus even (of, als de computer niet opruimt, langer) onverhaspeld in het werkgeheugen, gewoon leesbaar, maar och, in principe kan niemand daar bij.

En dan het lek: bij Heartbleed is het door een bug mogelijk om te vragen om een hokje en te doen alsof het groter is dan het eigenlijk is. Als je de computer fopt en zegt dat je hokje 3 wil, en dat het 4 vakjes groot is, krijg je defg. Als e mijn gebruikersnaam was, en f mijn wachtwoord, komt dat nu dus gewoon naar buiten. Maar misschien ook niet, misschien was het het stukje tekst van de voorpagina of een een lijst met landen van de wereld. Of het is het halve wachtwoord van iemand anders.

Het is dus een beetje touwtje trekken op de kermis: altijd prijs, altijd wat gewonnen, maar in de meeste gevallen is het iets waar je eigenlijk niets mee kan. Maar toch, als je oneindig mag trekken, wie weet krijg je die beer dan wel.

Meer laden