todo: Google Latitude Client for Maemo

I figure it’d take me four hours to create an app that, when launched gets the current location from the device (there’s a lib for that), converts it to long/lat coords and posts it to Google using the Google Latitude API (a simple RESTful service).

  1. Register for API key
  2. Register Application
  3. Get OAuth up and running (1h)
  4. Post dummy coordinates to Google Latitude (1h)
  5. Get location from the device (1h)
  6. Write authentication GUI (1h)
  7. Write application that looks for valid credentials (step 3), ask for authorization if not given already (step 6), gets location from the device (step 5) and posts it to Google Latitude (step 4)

I’d call that a day and the next day I’d look at creating a service out of this.

  1. Write application that wakes up at a certain interval (or several, more often during wake hours)
  2. Write GUI to change interval settings (or several …)
  3. Write settings storage (GConf)
  4. Write application that checks for authentication, if not present, launch GUI? (if not running) otherwise update position with Google Latitude and then sleep until next “interval”

After that, I’d call it a day and the next day:

  1. Register a new product with Maemo Garage.
  2. Post a message on the Maemo Forum.
  3. Publish “product” to Extras and wait.

All it takes is a little Python, some extra time and some patience for the Maemo community to have it’s way with QA-testing etc.

Skype-länkar

Det var ett sabla pill (och letande) för att få callto-, tel- och skype-länkar att hanteras från en webbläsare. Lite förvånande att skype inte skickar med detta från början (gäller Linux).

Hur som helst, min arbetsväg:

  • xdg-open är bra att använda när man skall öppna URLer
  • xdg-open använder gnome-open (i min miljö)
  • gnome-open använder gconf och kikar under /desktop/gnome/url-handlers för att hitta en url-handler som hanterar URLens schema (http t ex)
  • varje “url-handler” skall ha tre nycklar:
    • command – kommandot som körs, t ex /home/ceda/bin/skype.py %s
    • enabled – true/false
    • use_terminal – true/false

Sedan var det bara att hitta ett lämpligt kommando. Skype visade sig inte stödja något alls vad gäller binären och flaggor till programmet. Däremot använder man tydligen DBus och därigenom är möjligheterna större. Efter ett tags letande hittade jag Philipp Kolmanns skript skype action handler.

Nästan klart – det har ett tillkortakommande vad gäller URL-kodning. En ring-länk till mig skulle se ut såhär: callto:+46702778511 och Philipps skript hanterade inte att plustecknet kodades om till %2B. Jag fixade detta såhär:

# urldecode
if '%' in sys.argv[1]:
        import urllib
        sys.argv[1] = urllib.unquote(sys.argv[1])

Nu funkar det fint! (Vem var det nu jag skulle ringa egentligen …)

Vad, vem och vems rätt – sanningsläcka på WikiLeaks

WikiLeaks logotype
WikiLeaks har tagit emot nya dokument från en eller flera whistle blowers. Sanningen är tydligen obekväm för stora delar av USAs statliga verksamhet. Det är min tolkning efter att ha sett den ovanligt febrila verksamhet som tagit fart med sikte mot att få WikiLeaks att sluta fungera – en historia som nu kallas cablegate.

Här är IP-adressen till WikiLeaks – om du letar: http://213.251.145.96/
Om den inte fungerar, sök efter “Wikileaks ip address” på twitter.

The Huffinton Post skriver: “State Department To Columbia University Students: DO NOT Discuss WikiLeaks On Facebook, Twitter”. Om du inte har läst 1984 av George Orwell (på engelska), gör det nu! Det är en kort bok och den är inte särskilt svår att ta till sig eller komma igenom.

Enligt gawker.com så har Library of Congress, liksom the Department of Education blockerat WikiLeaks, medan State and Commerce departments instruerar de anställda att inte besöka siten.

Rick Falkvinge menar att när internetleverantörer sätts under tryck, donationskanaler dras in och processkraft dras tillbaka, så är det “fullt krig om informationen“. “Jag tycker att media borde reagera hårdare när politiker säger att uppgiftslämnare borde skjutas…”

Visst vill vi att information skall få vara fri? (Vilken del av mänskligheten tar skada av fri information?) På flera håll i Europa agerar olika organisationer för att säkra WikiLeaks nätnärvaro.

WikiLeaks frontman (finns flera som vill byta ut denna trubbige person) är ingen speciell egentligen – han har bara sett till att whistleblowers har någonstans att vända sig.

PayPal

På svengelska:

I’ve read disturbing news about PayPal withdrawing the channel that has been available to support the work of WikiLeaks.
Was this an active decision made by PayPal or were you forced under some jurisdiction of law to move in this direction?
Please act transparently and tell us the thruth, so I and others, as users, know how to interpret you as a company and what just happened.

Sincerely, Fredrik Wendt

Uppdatering: PayPal skriver på sin blog (som inte är länkad från den publika webbplatsen):

PayPal has permanently restricted the account used by WikiLeaks due to a violation of the PayPal Acceptable Use Policy, which states that our payment service cannot be used for any activities that encourage, promote, facilitate or instruct others to engage in illegal activity. We have notified the account holder of this action.

WikiLeaks Flattr-konto är fortfarande igång dock. Får se om folket i Malmö väljer att se WikiLeaks som olagligt.

New York Law School: WikiLeaks Has Commited No Crime

ComBort kom hem

Har kört på ComHems 100 mbit/s-tjänst en månad och det är dags för en kort utvärdering.
Det var minst tre år sedan vi använde ComHem senast och då hade de problem med DNS:er. Vissa frågor bara uteblev och andra hade väldigt långa svarstider. Lösningen då var att jag satte upp en egen router med DNS som alla enheter i hemmet kunde använda.
Det tragiska är att det är exakt lika kass idag. I övrigt fungerar tjänsten som den ska – den verkar leverera vad som utlovas.
Dessvärre verkar modemet vara en “ny” produkt i bemärkelsen att den t ex gör rena fel i hur den delar ut DHCP-lån:


Nov 27 00:12:48 latitude-d531 dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 5
Nov 27 00:12:48 latitude-d531 dhclient: DHCPOFFER of 192.168.1.102 from 192.168.1.254
Nov 27 00:12:48 latitude-d531 dhclient: DHCPREQUEST of 192.168.1.102 on eth0 to 255.255.255.255 port 67
Nov 27 00:12:51 latitude-d531 dhclient: DHCPREQUEST of 192.168.1.102 on eth0 to 255.255.255.255 port 67
Nov 27 00:12:51 latitude-d531 dhclient: DHCPNAK from 192.168.1.254
Nov 27 00:12:51 latitude-d531 NetworkManager:   DHCP: device eth0 state changed preinit -> expire
Nov 27 00:12:51 latitude-d531 dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3
Nov 27 00:12:51 latitude-d531 NetworkManager:   DHCP: device eth0 state changed expire -> preinit
Nov 27 00:12:51 latitude-d531 dhclient: DHCPOFFER of 192.168.1.102 from 192.168.1.254
Nov 27 00:12:51 latitude-d531 dhclient: DHCPREQUEST of 192.168.1.102 on eth0 to 255.255.255.255 port 67
Nov 27 00:12:54 latitude-d531 dhclient: DHCPREQUEST of 192.168.1.102 on eth0 to 255.255.255.255 port 67
Nov 27 00:12:54 latitude-d531 dhclient: DHCPNAK from 192.168.1.254
Nov 27 00:13:01 latitude-d531 dhclient: DHCPREQUEST of 192.168.1.102 on eth0 to 255.255.255.255 port 67
Nov 27 00:13:01 latitude-d531 dhclient: DHCPNAK from 192.168.1.254
Nov 27 00:13:10 latitude-d531 dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3
Nov 27 00:13:10 latitude-d531 dhclient: DHCPOFFER of 192.168.1.104 from 192.168.1.254
Nov 27 00:13:10 latitude-d531 dhclient: DHCPREQUEST of 192.168.1.104 on eth0 to 255.255.255.255 port 67
Nov 27 00:13:11 latitude-d531 dhclient: DHCPACK of 192.168.1.104 from 192.168.1.254
Nov 27 00:13:11 latitude-d531 dhclient: bound to 192.168.1.104 -- renewal in 1736 seconds.

På forum (hembio och flashback t ex) tipsas det om att modemet fungerar bra i bryggat läge, dvs när den inte agerar router. Så det blir väl till att sätta upp en egen router, access punkt, DNS- och DHCP-server igen.

Innan jag gör det skall jag dock spola igenom en hög domäner för att skaffa lite material till utvärdering av DNS:er helt enkelt. Jag har tillgång till Telia och Bredbandsbolaget som jag kan jämföra med (där jag inte sett liknande DNS-problem, BBB-modemet mådde dock dåligt av att sitta på vägg – överhettades till allt vad jag kunde bedöma).

Projektdelen i Avancerade Webbteknologier 1

Detta är min egen utvärdering av sättet att arbeta i projekt efter halva tiden.

Aktiva val

  • Fyra projekt presenterades. Studenterna fick 10 minuter på sig att skriva upp sitt namn på det projekt som de ville jobba med.
  • Grupperna formas inte om.
  • Helt fri indelning i grupper.
  • Två projekt fick user stories från mig, samt “vision” för webbplatsen som skall byggas.
  • Det tredje projektet var student-idé.
  • Projekten skall använda gemensam databas och källkodsrepo.
  • Inga sprintplaneringar, inga burndowns (vi har chansen att jobba med detta i nästa kurs).
  • Det ska finnas en fil som skapar hela databasen, inkl grunddata för att demonstrera den differentierande featuren.
  • Fokus på att producera user story med störst affärsvärde först – “ni möter VC om ett fåtal dagar: vad måste ni visa för att ro hem kosingen?”

Positivt

  • Bra storlek på grupper och lämplig fördelning med (för-)kunskaper.
  • Bra närvaro.
  • Bra stå-uppmöten (inga lösningsdiskussioner, inget trams, en talar i taget, avstämningsinriktat) och projektdiskussioner i helhet.
  • Varierande arbetssätt, bra variation i ena gruppen, mer statisk indelning/uppdelning i de andra.
  • Högt intresse för projekten.

Negativt

  • Studenterna har spenderat mycket tid på att diskutera projektets innehåll, såsom funktion.
  • Studenterna har spenderat mycket tid på att diskutera och få till databasdesign.
  • Överlag har ett fåtal producerat lösningarna, medan flertalet haft svårt att få ihop det själva.

Sammanfattning

Till nästa period kommer jag nog gå in och tillhandahålla en färdiddesignad databas. Detta kommer få dem att inte lägga tid på sådant som ligger utanför kursen. Jag kommer försöka tillhandahålla user stories, viktade efter affärsvärde. Eftersom det varit ett par personer som dominerat kanske dessa skall sättas i eget projekt för att få utmaning?

Notiser

  • Teckenkodning har varit en issue i Eclipse men framför allt i MySQL.
  • Två grupper har valt att använda user stories/tickets på papper, uppsatta på väggen. Tredje gruppen jobbar ad-hoc.

Trac

För vart och ett av projekten tänkte jag slänga upp Trac så att de får tillgång till en wiki, får möta ett web-UI som visar upp Subversion-repot och ger en (dålig) möjlighet att spåra issues t ex. Subversion-repot måste vara skapat – trac-admin initenv kör inte svnadmin create åt en.

aptitude install libapache2-mod-python

trac-admin kulattjobba.se initenv kulattjobba.se sqlite:db/trac.db svn /srv/svn/kulattjobba.se
<Location /trac/>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /srv/trac/bokbutiken.se
PythonOption TracUriRoot /trac/
Order allow,deny
Allow from all
AuthType Basic
AuthName “Bokbutiken.se”
AuthUserFile /srv/xyz/file_with.passwd
Require valid-user
</Location>

Sunfleet

Logotyp för Sunfleet Carsharing

Det är dags att skriva något om bilpoolen Sunfleet (sunfleet.com). Jag har nu över 65 genomförda bokningar och har använt mig av minst 6 olika uppställnings- och avhämtningsplatser (AF Majorna, Chalmers Studentbostäder, Citypoolen, Göteborgs Stad Nordstaden, Göteborgs Stad Packhuskajen, Klippan, Lilla Bommen, Lindholmen, Lorensbergsteatern, Majnabbe, Masthuggstorget, samt Mariaplan som inte längre finns kvar). Det har fungerat bra i ~63 av dessa fall, med ett fåtal undantag och det är dags att sammanfatta min upplevelse efter tre år som kund.

Positivt

Priset är attraktivt – jag hyrde tidigare från Europcar och kostnaden för kortare bokningar är ungefär hälften så dyra med Sunfleet. På helg- och veckopriser är kostnaden närmare 65-75 % av Europcars priser.
Majornas bilpool vill ha en insats på 5000 kr, Sunfleet tar en månadsavgift på antingen 29 eller 79 kr. (Insatsen får man visserligen tillbaka, men då får man också städa och tvätta en bil ibland, vilket Sunfleet har personal som sköter.)

Skicket på bilarna (Volvo C30, V50, V70) är väldigt godt (med ett enda undantag, se nedan) vilket jag jämför med Europcar där jag hyrde Volkswagen och Skodas exklusivare modeller.

Miljömedveten är god. (Miljöklassade fordon, faktura via mail (PDF) som standard, själva iden att dela bil …)

Finns på flera ställen i staden – smidigt att hämta upp på många ställen!

Det är relativt lätt att få tag på bil när det behövs. Endast vid ett tillfälle har vi fått boka bil på annat håll.

Det funkar väldigt bra – har aldrig haft problem med försena återlämningar, tanken är alltid halvfull, tankkorten fungerar (lätta att hitta PIN-kod), är vindrutetorkarblade dåliga kan man anmäla det eller bara köpa nya på kortet och byta själv.

Skulle man mot förmodan fastna vid sidan av vägen pga problem med bilen så är det skönt att veta att det faktiskt är Hertz som står bakom och kan rycka in.

Negativt

Bilen “försvann” en gång inför jul (Mariaplan) – den plockades bort. Som tur var upptäckte vi detta (ja, vi själva alltså) och ringde in för att fråga. Det löstes smidigt med en bil från Hertz till samma pris (vi fick dock dubbla räkningar, men även det löstes efter lite mailutväxlande).

Skramlandet i V70:n på Masthuggstorget. Felanmält för över ett år sedan men inte åtgärdat.

En gång när vi skulle åka iväg och köpa ett Wii Rockband-set så gick inte bilen som bokats på Masthuggstorget att öppna. Ringde supporten men de kunde inte kommunicera med bilen (och vi hade ju ingen nyckel ännu). Det tog en timme och fem minuter att komma iväg från att vi ringde supporten, och då fick vi åka till Majnabbe och ta en bil där istället.

Ingen bonus om man lämnar tillbaka bilar tidigare – det går inte ens att “lämna tillbaka” bilen till poolen så att någon annan kan boka den och nyttja bilen!

Inget användarforum. Webbplatsen har idag dessutom två brutna länkar: länken Fullbokat där man rapporterar underkapacitet och “Kontakta oss” där man kontaktar bolaget. De är inga ess på webbproduktion eller kundrelationer. Det är inte värdelöst – om man ser till de flesta webbplatser och svar via e-post brukar komma nästa dag.

Sammanfattning

Vi är väldigt nöjda – det finns gott om bokningsbara bilar. Det är väldigt prisvärt, helt bekymmerslöst (man behöver inte tvätta bilar som i de flesta bilkooperativ) och fungerar på det hela mycket bra.

ippool lever vidare

Jag råkade idag springa förbi Ip Sets som visar sig vara en vidareutveckling av ippool som Joakim Axelsson (aka gozem) lade mycket tid på under sin tid på Nätverksgruppen vid Chalmers Studentbostäder. Riktigt kul att se att det lever vidare, även om NVG tvingats gå till mer maskinnära core-routrar nu för tiden – PC-hårdvaran som Linux rullar på hinner helt enkelt inte med längre, främst beroende på att PCI-bussen inte klarar skyffla nätverkstrafiken tillräckligt snabbt vad jag förstår.
Joakims kreativitet var en av orsakerna till att studenterna kunde betala så lite som 130 kr/mån för 100 mbit/s till varje lägenhet (1830 när jag slutade). Nu för tiden hjälper han SonyEricsson och samarbetspartners med mobilutveckling.

Socks proxy med ssh och Chromioum-browser

Jobbar på helgen och kontorets trådlösa nät (som jag inte kan kontrollera) släpper inte igenom mig, och det trådlösa har diverse begränsniningar, eller snarare en: TCP på port 22 släpps igenom, allt annat filtreras.

nmap -sT -p 443 gandi.wendt.se --reason
nmap -sU -p 1194 gandi.wendt.se --reason

What’s a man to do? Jo: ssh -D 3333 remote.host och sedan cat > /etc/tsocks.conf

server = 127.0.0.1
server_port = 3333

Då fungerar t ex tsocks evolution (och pidgin).

Firefox slukar uppgifter från gnome/gconf bra, men inte Chrome/chromium-browser – denna webbläsare kräver --proxy-host=tsocks://localhost:3333 för att fungera.

Jädra mäck!