Glædelig pi-dag

3,1415926535897932384626433832795028841971693993751058209749445923 0781640628620899862803482534211706798214808651328230664709384460 9550582231725359408128481117450284102701938521105559644622948954 9303819644288109756659334461284756482337867831652712019091456485 6692346034861045432664821339360726024914127372458700660631558817 4881520920962829254091715364367892590360011330530548820466521384 1469519415116094330572703657595919530921861173819326117931051185 4807446237996274956735188575272489122793818301194912983367336244 0656643086021394946395224737190702179860943702770539217176293176 7523846748184676694051320005681271452635608277857713427577896091 7363717872146844090122495343014654958537105079227968925892354201 9956112129021960864034418159813629774771309960518707211349999998 3729780499510597317328160963185950244594553469083026425223082533 4468503526193118817101000313783875288658753320838142061717766914 7303598253490428755468731159562863882353787593751957781857780532 171226806613001927876611195909216420198

Fotoprojekt del 2

Warning: Wall of text!

Der er blevet leget lidt med et kamera, en arduino og en loddekolbe siden sidst.

Foreløbige resultater:

Eye-fi fungerer fint. Billederne bliver uploadet som de skal. I forhold til den helt forkromede model, skal der tænkes lidt over et praktisk problem med kortets “uendelig plads” funktion. Kortet uploader automatisk billederne. Det er fint. Det kan også, automatisk, slette billeder når de fylder mere end en bestemt andel af kortets hukommelse. På den måde kan der jo laves en løsning, hvor der aldrig skal slettes billeder, og hvor den eneste udfordring bliver at have plads nok på ens gratis Picasa eller Flickr konto. Problemet er at kortet ikke er designet til denne type brug. Det er meningen at kameraet skal slukkes med jævne mellemrum, gerne en tre gange, for at man er sikker på at der slettes billeder. Problemet er nok begrænset, der er ganske god plads på det, specielt hvis der ikke tages billeder i fuld opløsning. Men ideelt skal der altså findes en måde at slukke kameraet på. Eftersom der også skal tænkes over strømforsyning til det, er det nok til at klare.

Arduino-styringen er ok. Der er lidt bøvl med 7 segment ledden til nedtællingen. Jeg fik både en fælles katode og en fælles anode model med fra Brinck. Helst ville jeg arbejde med fælles katode, men det er fordi jeg har så lidt forstand på elektronik, at jeg foretrækker at tænde en LED ved at sætte en udgang på Arduinoen til høj. Fælles katode ledden fik jeg så brændt af – den kunne ikke tåle 5 V. Overhovedet. Så nu leger jeg med en fælles anode led i stedet. Det er dioder, så jeg skal bare glemme mine ideosynkraiser omkring hvad der bør være plus og minus og sætte udgangene til at være lav i stedet. Samtidig sparer jeg en del modstande, fordi der kun er en anode der skal have sådan en, i stedet for syv. Interessant fact: Sådan en 7 segment led giver en hyletone når den får strøm direkte fra Arduinoen. Hyletonen forsvinder når der sættes en smule modstand ind.

Interfacet mellem Arduino og kamera driller også lidt. Jeg fik NC, ikke NO reedrelæer. Ideen er, at når der er forbindelse mellem jord og spidsen på et 2,5 mm jackstik sat i kameraet, så tager det et billede. Så jord og spids forbindes til relæet. Problemet er at når relæet er NC (normal closed). For så er der forbindelse, indtil jeg sætter strøm på indgangen til relæet. Det kan man kode sig ud af. Men hvis strømmen til arduinoen går, så er forbindelsen åben hele tiden. Og så står kameraet og tager billeder hele tiden. Så jeg skal i Brinck og have et par NO-relæer i stedet.

Så er der hele spørgsmålet om hvilket kamera. Det er nok lidt overkill at sætte et spejlreflekskamera til opgaven, men det er nu engang hvad jeg har lege med derhjemme. På sigt skal det hele nok puttes i en enkelt kasse med hul til linse og så videre. Det betyder at der skal findes et kamera der understøtter Eye-fi kortet, og kan fjernbetjenes. Desværre er fjernudløsning af kameraer med kabel noget der som standard stort set kun findes på spejlreflekskameraer. Så kan man finde kameraer med trådløs udløsning. Det kræver at man piller lidt ved en IR-fjernbetjening, men det kan klares. Man kan også finde et kamera der er så billigt, at man vil gå i gang med skruetrækkeren, og få det åbnet så meget, at der kan loddes ledninger på udløserknappen. Og endelig er der den mulighed som det nok ender med. Man finder et Canon kamera, installerer CHDK på Eye-fi kortet, og starter CHDK op fra kameraet. CHDK er et udviklingsværktøj til at hacke Canon kameraer, og gør det bl.a. muligt at bygge sin egen USB-baserede fjernudløser. Når den rigtige funktion er valg, smider man et USB stik i kameraet, sætter strøm til de to rigtige ledninger i USB-kablet, og så tager kameraet et billede.

Udfordringen lige nu, bortset fra at der skal hente et par hardware dele i Brinck, er derfor at få indkøbt et kamera, der har en firmware er understøttes af CHDK, og at få CHDK til at boote op på kameraet fra et Eye-fi kort når kameraet tændes. Det sidste er vist ikke helt trivielt, hvis man vil have den uendelige plads på kortet. Nu skulle ordregiver også snart have nogen penge til at betale med…

Finstrukturkonstanten

Endnu et log-inspireret indlæg.

Finstrukturkonstanten er, sådan ca. 1/137. Mere præcist er den 7,2973525698(24)×10−3. De to tal i parantesen er standardusikkerheden på tallet, udtrykt numerisk som værdien der skal ligges til og trækkes fra de to sidste cifre i selve tallet for at få intervallet for værdien. Altså alt konstanten er et sted mellem 7,2973525674×10−3. og 7,2973525722×10−3. Eftersom konstanten er dimensionsløs, er værdien den samme uanset hvilket enhedssystem der bruges.

Konstanten blev introduceret i fysikken af Arnold Sommerfeld i 1926, da han forklarede de relativistiske afvigelser af spektrallinier i Bohrs atommodel fra 1913.

Finstrukturkonstanten er en fundamental fysisk konstant, der beskriver styrken af den elektromagnetiske interaktion mellem ladede partikler. Og derefter bliver det lidt langhåret – det er længe siden jeg bestod kvantekemi… Det kan man altsammen læse meget mere om på Wikipedia. Jeg anbefaler den engelske udgave. Lad os bare nøjes med at sige at det er en ret fundamental konstant, der dukker op en masse steder når virkeligheden skal beskrives. Et af de mere interessante steder er i beskrivelsen af fusionsprocesser, dem der bl.a. driver solen, og skabelsen af tungere grundstoffer. Havde finstrukturkonstanten været blot 4% større eller mindre end hvad den er, ville stjerner ikke kunne fremstille kulstof. Havde de ikke kunnet det, havde livet som vi kender det, ikke været muligt.

Fysikere er derfor lidt fascinerede af at den er så tæt på 1/137. Det er hetl sikkert et tilfælde, men det er da lidt sjovt. Min underviser i videregående kvantekemi gik så langt som til at sige, at han håbede der var et liv efter døden, så han kunne spørge gud om hvorfor det netop var så tæt på 1/137. 137 udmærker sig ved at være et primtal, det 33. i rækken af primtal. Det er en primtalstvilling, sammen med 139. Og en række andre matematiske interessante varianter af primtal. Og så er det i øvrigt forbundet til det gyldne snit. Så det er et tal der kan læses en masse betydning ind i.

Ikke overraskende var det ikke kun fysikere der lod sig fortrylle. Wolfgang Pauli, en anden af de store i kvantemekanikken, gik i samarbejde med psykologen Carl Jung, for at forsøge at forstå dens betydning. Givet Jungs lidt mystiske opfattelser af verden, har det nok spillet godt sammen med de bizarre fænomener i kvanteverdenen, men næppe bidraget til noget som helst der kommer bare i nærheden af forståelse af virkeligheden.

En automatisk fotoautomat

Til et projekt jeg måske endda kan tjene penge på. Eller hvor nogen kan.

Ideen: Lav en fotoautomat, hvor brugerne sætter sig foran kameraet, trykker på en knap og får taget et billede. Billedet uploades automatisk til en webside – det kunne være flickr.

Løsning: Byg en fysisk kasse man kan gå ind i, og enten sætte sig, eller stille sig foran kameraet. Knappen udløser kameraet – afhængig af kameraets funktioner, kan det være det skal bygges ved hjælp af en mikroprocessor. I kameraet placerer vi et Eye-fi hukommelseskort. Hukommelseskortet overfører automatisk billederne til en computer via et trådløst netværk. Et script på computeren overfører billederne til flickr. 

Yderligere ønsker: Mulighed for at kassen let kan skilles ad. Det ville, til den konkrete anvendelse, være fint hvis det var et skab. Og scriptet der automatisk overfører, må vældig gerne kunne gøre ting ved billedet – indsætte tidspunkt, tekst, og reklame.

Praktisk

  • Et Eye-fi kort
  • Et kamera (der kan tage et standard SD-kort)
  • Et fysisk setup inspireret af http://pingu98.wordpress.com/tag/diy-photobooth-arduino/. Eller et skab.
  • En bærbar computer med netadgang
  • Strømforsyning
  • Afhængig af kameraet, en passende løsning til udløsning af kameraet. Evt. en Arduino baseret sag.
  • Evt. separat blitz.

Det var brainstormen. Hvis den potentielle aftager af projektet synes det er en god ide, er det bare at gå i gang.

Sådan kan du fjerne DRM fra ebøger – 1

Bare rolig – vi skal nok komme til en detaljeret gennemgang. Men først: Jeg vil ikke, her, gå dybt ind i debatten om det rimelige i piratkopiering. De fleste argumenter mod kopibeskyttelse handler dybest set om at folk ikke bryder sig om at betale for noget de kan hente gratis på nettet. Alle de søgte, mere eller mindre akademiske, argumenter for hvorfor musikindustrien er onde, og vi derfor ikke vil betale for varen, holder basalt set ikke. Kunstnerne skal have brød på bordet, og forbrugerne af varen bliver nødt til at betale for det. Det er den forretningsmodel der har givet os Mad Men og andre gode serier. Den forretningsmodel hvor ingen vil betale for den vare de forbruger, har givet os Sidney Lee. Men når det er sagt, så klik på læs mere, og find ud af hvordan du fjerner kopibeskyttelsen på ebøger.

Kopibeskyttelse er nemlig ikke kun noget der skal sikre kunstnerne deres indtjening, det er også noget der generer mig som lovlydig bruger af den vare jeg har købt og betalt for. Forlag og andre skal passe meget på, at de ikke gør det så vanskeligt at være lovlydig, at det ikke alene er billigere, men også lettere, at være kriminel.(c) WarX, edited by Manuel Strehl, http://en.wikipedia.org/wiki/File:Flag_of_Edward_England.svg

Så når jeg har købt en ebog, så vil jeg have lov at gøre med den hvad jeg vil, så længe jeg ikke lægger den ud til piratkopiering. Jeg vil have lov at kopiere og printe, og der skal ikke ligge bøger på min computer med hemmelige oplysninger, som forlag mener jeg er bedst tjent med ikke at have adgang til. Så uanset at jeg ikke bryder mig om piratkopiering (fordi det ødelægger muligheden for kvalitet), mener jeg at kopibeskyttelse bør fjernes, i hvert fald fra ting jeg allerede har betalt for.

Kopibeskyttelse for ebøger kommer i tre udgaver:

  • Hård DRM – som Adobe, Amazon og andre betjener sig af. Bogen kan kun læses på en bestemt dims, eller compupter. Og måske kun i en begrænset periode.
  • Online DRM – som ikke er så udbredt på konsummarkedet, men bruges hyppigt af leverandører til uddannelses- og forskningsinstitutioner
  • Blød DRM – hvor bogen "vandmærkes".

Hvordan gør man så? Vi tager den af et par omgange, og starter med den bløde DRM, som den findes i ePub-filer.

Princippet i den metode er, at man køber en ebog, opgiver navn, adresse, kreditkortoplysninger og så videre, og i det øjeblik man gør det, bliver bogen lavet. Filen ligger ikke klar på en server, den bliver genereret, og i den proces, tilføjes den oplysninger om dit navn, adresse, kreditkortoplysninger eller andet, som gør at filen kan spores. Når du så er en skurk, og lægger bogen ud på piratebay, eller på anden måde gør den tilgængelig for piratkopiering, så bliver du fanget. Sælgeren holder nemlig øje med fildelingstjenesterne, for at se om en kopi af bogen dukker op der. Den downloader de, åbner filen og finder din adresse. Og så sender deres advokat en stævning.

Ikke alle sælgere af ebøger fortæller hvad det er de gemmer i filen. Gyldendal er flinke, og beretter, at det er ordrenummeret, der bliver gemt. Man behøver altså ikke være bekymret for at kreditkortoplysninger ligger og flyder rundt i en ebog. Andre er knap så reelle. Der hvor jeg mener det er rimeligt at fjerne vandmærket, er de tilfælde hvor forhandleren ikke fortæller hvad der gemmes af oplysninger. I så fald ved jeg ikke om mine kreditkortoplysninger kommer til at ligge på min ebogslæser. Og det er her, jeg synes det er rimeligt at fjerne vandmærket. Hvis det bare er et ordrenummer, er det lidt overkill at gå i gang med den øvelse.

Lad os starte med at kigge på hvad en ePub-fil egentlig er.

ePub er et filformat, designet til at indeholde ebøger. En længere gennemgang af teknikken i det kan findes på Det Kongelige Biblioteks ebogsblog. Til dette formål, er det nok at vide, at det er baseret på en god, gammeldags, zip-fil. Den har fået ændret sit efternavn, så den nu hedder .epub. En zip-fil er en komprimeret fil, der "pakker" indholdet, så det fylder mere. Den var i sin tid meget brugt for at få tingene til at fylde mindre. Det er den sådan set stadig, men efter internettet er blevet så hurtigt, og alle har fået så store harddiske at størrelsen ikke betyder noget, bruges formatet efterhånden mest til at få en masse indhold pakket pænt ned i en enkelt fil.

Inde i zip-filen ligger der en række filer. Nogen af dem handler om navigation, andre indeholder meta-data, der er et forsidebillede, og der er filer der indeholder selve teksten. Der kan være illustrationer der vises i den løbende tekst, og epub kan i det hele taget indeholde ganske mange forskellige typer data. Det, der er karakteristisk, er at filen kan åbnes, og de enkelte filer inden i, læses direkte.

For at lave vores analyse af hvordan en given leverandør gemmer oplysningerne skal vi bruge to ens bøger, altså to eksemplarer af samme bog. De skal bestilles under forskelligt navn, med forskellig adresse, og med forskelligt kreditkort. Hvis vi bruger samme oplysninger til begge køb, bliver vandmærket formentlig ens, og så kan vi ikke se forskel. Og det er det, vi er ude efter.

Vi starter med at inspicere dyret. Åbner filen, og bladrer bogen igennem. Hvis dit navn ikke står øverst på hver anden side i bogen, eller din adresse er plastret ud over forsidebilledet, eller dit kreditkortnummer står i indholdsfortegnelsen, så er oplysningerne gemt mere subtilt. Derefter skiller vi filen ad.

Vi omdøber ganske enkelt epub-filerne til at hedde zip til efternavn. De kan åbnes af de fleste moderne styresystemer uden videre besvær. Herefter piller vi hver enkelt fil ud af zip-filerne. Vi kan starte med den fil der hedder "container.xml". Den kan vi åbne i et enkelt tekstredigeringsprogram, og se hvad der gemmer sig. Det kan være svært at gennemskue hvad indholdet står for, men den her er ret overskuelig. Pointen er at vi åbner "container.xml" fra begge de to ebøger vi downloadede, og sammenligner. Det kan vi gøre rent visuelt, men det tager tid når det er en stor fil, og for billeder kan vi komme ud for, at vores skærme eller øjne ikke er følsomme nok til at se forskellen. 

Derfor er der en genvej. Når man distribuerer filer, har man ofte brug for at sikre sig at en fil ikke er blevet ændret. Det er spørgsmål som "er filen blevet downloadet korrekt?" eller "er der nogen der har lagt virus ind i den?". Så når man lægger en fil ud til download, giver man lige en lille oplysning om den. Nemlig at dens MD5 Hash er "5e427f31e6b10315ada74094e8d5d483". 

En MD5 Hash er en kryptografisk teknik, som man udsætter en fil for. Den giver et resultat som ovenstående, og pointen er, at hvis der ændres blot en enkelt lille detalje i filen, så ser hash-værdien anderledes ud. Når man har downloadet filen, kan man derfor bruge et særligt program til at beregne hash-værdien for filen. Og hvis den er den samme, er filen identisk med den der blev lagt op til download. Er den forskellig, er der noget galt. Programmer til den slags kan findes mange steder på nettet, et af dem er her.

Den genvej kan benyttes på alle filer, og er en let måde at se om der er forskel på de bøger vi har købt tidligere. Vi piller ganske enkelt hver eneste fil ud af de to ebøger vi købte, og sammenligner hash-værdierne. Hvis de er forskellige, selvom filerne hedder det samme, og den eneste forskel er at de kommer fra hver deres eksemplar af de to identiske bøger vi købte, så er der lusk med i spillet, og det er formentlig der, der er gemt oplysninger om hvem du er.

Da jeg testede det, og jeg skriver ikke hvilken leverandør jeg testede!, var den eneste fil, der var forskellig de to eksemplarer imellem, forsidebilledet. Det er også det oplagte sted at gemme oplysningerne. Der var ikke andre billedfiler i bogen. Alle de andre filer hedder måske xml eller css til efternavn, men de har det til fælles, at de kan åbnes i en almindelig teksteditor, og læses direkte. Man kan sågar ændre i indholdet, og gemme dem igen. Ikke gode steder at gemme oplysninger. Skriver sælgeren bare min adresse direkte et sted i bogen, kan jeg let ændre den, så det ser ud som om det er min gamle fransklærer der har købt den, lægge den ud på nettet, og derefter bare vente på overskrifterne om at Judith er blevet snuppet i en sag om piratkopiering af ebøger for 10 millioner.

Så oplysningerne var gemt i forsidebilledet. Det er ret let at ændre det, man ser blot hvad billedfilen hedder, tager en anden billedfil i ca. samme størrelse, ændrer navnet, og lægger den ind i zip-filen. Man kan også gøre andre ting. Åbne billedet i et billedbehandlingsprogam, gemme det i en anden filtype, åbne det igen og gemme det tilbage til den oprindelige. Er jpg indblandet bare et enkelt sted, sker der en komprimering, der gør det umuligt at trække oplysningerne ud af billedfilen igen.

Efter man har gjort ting med forsidebilledet, lukker man zip-filen, omdøber den til epub, og vupti! Så har man en epub-fil uden sporbare oplysninger.

Men lad nu være med at lægge den ud til piratkopiering. Forlaget skal tjene penge på det her, ellers kan de ikke satse på den næste J.K. Rowling, og må nøjes med at udgive Amalies erindringer. Og det ville da være trist.

 

Derfor virker DRM ikke

Forfattere, forlag etc. er naturligvis i deres gode ret til at få penge for deres arbejde. Det der pladder med at alt skal være gratis holder ganske enkelt ikke. Skaberne af det indhold der piratkopieres skal også have brød på bordet. Får de ikke det, bliver der ikke skabt nyt indhold, der er værd at piratkopiere. Så der må findes en måde at tjene penge på, og eftersom penge er en effektiv motivator, skal løsningen nok findes.

Indtil da er vi plaget af kopibeskyttelse på måder der gør livet besværligt for de lovlydige brugere. Og ikke er nogen særlig hindring for de småkriminelle brugere. 

Lad os derfor kigge på ebøger, og se hvorfor kopibeskyttelsen ikke virker.

1. Kopibeskyttede PDF'er (og andet) via Adobe Content Server

Hvorfor virker det ikke? Fordi det er meget let at fjerne. En hurtig søgning på Google giver eksempelvis denne side, der i fem relativt enkle trin, forklarer hvordan man fjerner kopibeskyttelsen. Indrømmet, det er nok kun enkle trin for nørder. Men er kopibeskyttelsen fjernet en gang, behøver man ikke gøre det igen. I stedet for at købe en ebog der er kopibeskyttet, og fjerne DRM'en, downloader man den bare gratis.

1.5. Kopibeskyttelse brydes hurtigt

Jamen kan man så ikke bare lave en anden slags kopibeskyttelse, der ikke kan fjernes på den måde? Nej. Eller rettere, jo, det kan man godt, og det virker et par uger, så er der nogen der har regnet ud hvordan man fjerner den igen.

2. Blød DRM, vandmærkning

Det er den løsning den danske distributør af ebøger, Publizon, anvender. Tanken er at vi ved hvem du er når du køber bogen, og den har ingen DRM i traditionel forstand, så . Den oplysning gemmer vi et sted i bogen. Hvis du lægger den ud på Piratebay, kan vi downloade den, se hvem du er, og sagsøge dig (langt ind i helvede). Nu er det bare sådan, at den oplysning kommer til at ligge et sted, hvor man i princippet kan fjerne den. Publizons løsning placerer informationen steganografisk i forsidebilledet. Så man ændrer bare på forsidebilledet inden man lægger bogen ud på nettet. 

3. Online løsninger

Vældig populært. Du skal være online for at læse bogen. Ideen er at du sidder og kigger på noget der er streamet, lidt ligesom Youtube. Og eftersom du ikke direkte downloader noget, kan du ikke gemme bogen, og derfor kan du heller ikke piratkopiere den. Problemet er bare, at hvis jeg får det vist på min skærm, så er informationen kommet ned på min computer, og derfor kan jeg rent faktisk gemme det. Det eneste man får ud af den løsning, er at irritere lovlydige kunder, der godt vil kunne læse bogen steder hvor internetdækningen er hullet.

 

Med andre ord, det virker ikke. Forlag med flere skal tænke sig voldsomt om, ellers er det eneste resultat af deres forsøg på at undgå piratkopiering, at motivere deres lovlydige kunder til at piratkopiere. Og det var jo ikke det der var meningen…

Povray projekt

Det er ikke altid helt let at forklare hvad jeg laver på arbejdet. Forleden blev dele af arbejdstiden brugt på at finde bestemte scener med elvere i Ringenes Herre. Meget seriøst, og en vigtig del af arbejdet, men det er ikke helt let at forklare et job der involverer både det, og at hjælpe brugerne med at finde en bestemt bog.

Formålet er at lave en kick-ass præsentation i Prezi, for chefen har efterhånden lagt et vist niveau for hvordan hans foredrag skal se ud, og det er ikke helt let at leve op til. Der er stadig over en måned til varen skal leveres, men jeg er gået i gang med at foreberede næste års årsberetning, for den skal naturligvis overgå dette års.

Derfor et rask lille Povray projekt. Eller måske ikke i Povray, men så i et andet program til at lave 3D-animationer, der gør det muligt at løfte niveauet endnu en gang.

Jeg er ude efter at kunne lave en animeret 3D-film, hvor vi flyver gennem et eller andet, og holder pauser ved bestemte billeder/slides/videoer. Det kan i hvert fald gøres i Povray, men jeg forudser at det kan kræve så meget tid på en kraftig computer, at det ikke er praktisk muligt. Blender er et muligt alternativ.

Under alle omstændigheder, er der en stabel teknikker der skal styr på:

Jeg skal kunne lave legemer, terninger, dodekaedre etc, og smide billeder på fladerne.

Jeg skal kunne rotere disse legemer, og bevæge kameraet omkring dem.

Jeg skal kunne indsætte video i animationen, gerne direkte, uden at skulle lave for meget efterbehandling.

Jeg skal kunne synkronisere lyd ind over filmen.

 

og meget andet, men det er de ting jeg ikke helt har styr på endnu.