Klap, klap, klap
Mit søndagsprojekt i dag har været at komme til at kunne styre min Squeezebox ved at klappe.
Jeg er i gang med at bygge min gamle Eee PC 900 om til en kombineret tablet og digital fotoramme. Det kommer jeg til at skrive meget mere om på et senere tidspunkt.
Jeg er gået i gang med at skrive mit eget slideshow-program, fordi de slideshow-pauseskærme der kommer med Ubuntu stinker og ikke gør hvad jeg gerne vil have dem til. Af og til dukker der et billede op som man gerne vil se på lidt længere end den tid programmet nu er sat til at vise hver enkelt billede, og så kunne det være rart med en pausefunktion.
Så kunne man selvfølgelig fare over til eee-fotorammen og trykke på et eller andet. Men eftersom dovenskab og magelighed har meget høj prioritet ville jeg gerne kunne fjernstyre programmet på en eller anden måde. Derfor kom jeg til at tænke på at man måtte kunne bruge eee'ens indbyggede mikrofon til at lytte efter om man klapper. 1 klap = pause, 2 klap = næste billede, 3 klap = forrige billede, osv.
Så jeg søgte lidt rundt på nettet og fandt dette kodeeksempel på hvordan man med python kan lytte på mikrofonen. Jeg fik ret hurtigt smækket noget sammen der kan registrere et klap, samt tælle op hvor mange gange man klapper efter hinanden.
Det slog mig så at det ikke kun er slideshowet det er nyttigt at kunne styre. Min Squeezebox i stuen kører i en god del af de timer jeg er hjemme, så det ville være oplagt også at kunne styre den med klap. Så jeg kastede mig over at lave et script til fjernstyring af Squeezeboxen, i stedet for at gå i gang med at bygge klapperiet ind i mit fotorammeprogram. Planen er selvfølgelig at det hele skal bygges sammen på et senere tidspunkt. Generelt har jeg store planer for mit fotorammeprogram som jeg også vil komme nærmere ind på på et senere tidspunkt.
Jeg vidste fra tidligere eksperimenter at nogen har lavet python-modulet pysqueezecenter, så det var ret nemt at komme til at styre Squeezeboxen.
Resultatet er sjovt og ganske brugbart. Der skal finpudses lidt på genkendelsen af klap, men overordnet set er jeg ret godt tilfreds med hvad jeg har fået strikket sammen.
10 år med dfs
I dag er det 10 år siden jeg startede mit internetimperium. Dengang fik man et flot certifikat fra DK Hostmaster når man købte et domæne.
Jeg fejrede det tidligere her til aften ved at udbringe en skål med et par gode venner.
Siden har stort set indeholdt det samme gennem tiden: Min blog og andre småprojekter. Jeg krummer tæer når jeg tænker tilbage på teknikken der har stået bag i løbet af årene. Men hvad fa'en... Det er jo godt at man med tiden bliver klogere.
Hvis man tør, kan man se hvordan siden har set ud gennem årene i den fantastiske Wayback Machine.
Kom i gang med Python på N900
Inspireret af en kommentar jeg skrev til et indlæg på talk.maemo.org tænkte jeg at jeg lige ville fortælle lidt om hvordan jeg udvikler ting til/på min telefon, Nokia N900.
Jeg skriver mine ting i Python. Det gør jeg af mange grunde. Dels fordi det er et behageligt og pænt sprog. Dels fordi jeg ikke skal bekymre mig om compilere og den slags. Og til udvikling på N900 har det vist sig ekstra nyttigt.
Skriver man "rigtige" programmer til Maemo, så skal man installere Nokias SDK med virtuelle maskiner, compilere og hvad ved jeg. Det er ikke fordi det er uoverkommeligt. Man kan ret hurtigt komme i gang, og det er ret behageligt at arbejde med.
Men holder man sig til Python kan det hele gøres på en nærmest uforskammet let måde: Man kan udvikle direkte på telefonen. Til inspiration for andre der gerne vil i gang med at lave ting til deres N900 er her en beskrivelse af hvordan jeg gør.
Alle mine filer ligger på selve telefonen. Jeg kører Ubuntu på min bærbare computer. Jeg starter med at forbinde både min N900 og min bærbare til mit trådløse netværk herhjemme.
Herefter åbner jeg en terminal på computeren og SSH'er ind i telefonen, samt SFTP'er ind i telefonen for at få adgang til filerne.
Så er jeg i stand til at arbejde direkte på telefonen fra min bærbare. Når jeg via SSH i terminalen kører mine Python-script og der er noget med GUI, så bliver det vist på telefonens skærm, som om det blev kørt fra selve telefonen (hvilket det jo rent faktisk også gør).
På den måde har jeg altid mine filer og scripts med mig på telefonen. Og når jeg er hjemme kan jeg udvikle via min bærbare. Simpelt og uden komplekse SDK'er og IDE'er. Jeg bruger bare min normale teksteditor. Nemmere bliver det næsten ikke.
Det kræver selvfølgelig altsammen lidt indledende manøvrer, som fx at installere en SSH-server og de rigtige Python-pakker på telefonen. Men jeg går ud fra at hvis man er i stand til at skrive noget i Python, så ved man også hvordan man installerer den slags ting på sin N900. Denne Maemo-wikiside er et godt sted at starte hvis man vil i gang med at skrive Python til N900.
iDimser er det nye patter
Hvordan kan det være der bliver skrevet så meget om det hvergang Apple lancerer et nyt produkt?
For nogle dage siden skrev jeg på twitter:
lige nu står der "iphone" 10 steder på pol.dk's forside. er den tlf virkelig så vigtig eller er alle journalister med i jobs' kult?
En nordmand jeg ikke kender samlede den op og retweetede, hvilket resulterede i lidt respons fra (primært) nordmænd. En af dem var Julie R. Andersen. Efter lidt skriven frem og tilbage blev vi enige om at Apple-produkter må være det nye patter: Skriv om det, og alle klikker på det. Også selvom der ikke er noget reelt kød på historien.
Men Julie – som er Journalist og dermed en af dem min kritik var rettet mod – skrev også om blogindlæg om fænomenet. Og om hvorfor det forholder sig sådan. Indlæg og medfølgende kommentarer er god læsning og kan findes på Julies blog.
rejs-dk: Rejseplanen til Nokia N900
Jeg har endeligt fået tid til at lægge en klargørende hånd på et meget simpelt Rejseplanen-program til min mobiltelefon, Nokia N900.
Til at starte med kan programmet ikke så meget: Man starter det, det bruger GPS'en til at finde ud af hvor man er og så slår det de nærmeste stationer/stoppesteder op. Herefter vælger man et stop, og så åbnes Rejseplanen i browseren med afgangstider for det valgte stop. Langtfra rocket science, men har allerede vist sig ret nyttigt for mig selv flere gange når jeg lige stod og skulle vide hvornår næste bus kører.
Jeg har ikke rigtigt de vilde planer for den videre udvikling (det må komme hen ad vejen), andet end at jeg vil gøre sådan at man kan markere stop som favoritter. Så vil man fra sin favoritliste hurtigt kunne finde stop man tit bruger frem, i stedet for at skulle vente på GPS og opslag af nærmeste stop. Hvis nogen har forslag til hvad det ellers skal kunne, modtages de selvfølgelig med kyshånd.
Programmet hedder rejs-dk og kan findes via App Manager og apt-get hvis man har slået det repository til som hedder extras-devel.
Lidt teknik
Telefonen kører det Linux-baserede, open source styresystem Maemo. Og eftersom det er baseret på Debian og minder meget mere om "almindelig" Linux end Googles Android gør det, så er det også utroligt nemt for sådan en som mig at gå til. Ikke noget med SDK'er og IDE'er og hvad ved jeg. En SSH-klient og en teksteditor, og så var jeg godt i gang. Det er skrevet i Python og bruger Qt til brugergrænsefladen.
Man kan tilmelde sig som udvikler hos Rejseplanen og dermed få adgang til deres data. Desværre er det ikke en overflod og udviklervenlige API'er de stiller til rådighed, men blot download af en kommasepareret fil med en liste over alle stop i Danmark, deres ID og deres placering. Placeringen er tilmed i et (i hvert fald for mig) ret fjollet format – UTM zone 32N på Euref89 datum – så jeg har lavet et lille Python-script der konverterer dette til almindelig længde/breddegrad og gemmer i en SQLite-database. Hvis der er andre der sidder og roder med Rejseplanens data som kan have glæde af dette script, så deler jeg med glæde. Både det og resten af koden til mit program. Bare sig til.