Java störst under 2011 enligt Ohloh

I denna mätning, som baserar sig på de repositorier som Ohloh bevakar, är Java det mest committade språket. Vet inte om justering görs pga dess pratighet också? Mätvärdena är relativa (procent), hade varit kul att se om C-kodsbidrag faktiskt gått ner, eller om det bara är de andra som ökat (och därmed tar större del av kakan).

Data från Ohloh
Data från Ohloh

Git-kurs

Git LogoJag har idag hållt en liten kurs (3 timmar) som introducerat utvecklare till Git och distribuerad versionshantering. Deltagarna jobbar dagligen i Windows och Visual Studio och trots att det inte är min dagliga hemvisst så flöt allt på bra, Git Extensions fungerade fint t ex och ingen av deltagarna fastnade på nyckelhantering eller andra “vanliga” uppstartsproblem.

Följande ämnen hanterades:

  • Grunderna: Vad är versionshantering egentligen? Vad är skillnaden mellan centraliserad och decentraliserad versionshantering? Vad är speciellt för Git?
  • Versionshanteringens bitar: blob, tree, commit, tag, branch. Repo, index, staging area och arbetsmapp
  • Installation, grundkonfigurering
  • Vardagsarbetet: commit, branch, merge, push & pull, clone & init
  • Server och dela kod via SSH, GitHub, Gitorous.

Kursen är i huvudsak praktisk och inriktad på att få den som redan jobbat med centraliserad versionshanteringssystem, såsom CVS, Subversion och Microsofts SourceSafe, att komma igång.

Det finns fler ämnen att hantera – de som ingick i kursen ger basen för det dagliga arbetet och troligen behöver man inte någonsin lära sig mer om man inte är intresserad.

Scandev on Tour, Stockholm 2011

Jag var iväg på Scandev on tour i Stockholm och hade en bättre dag än väntat. Huvudattraktionen för mig att åka dit som deltagare var pga Gojko Adzic: jag ville se om han verkligen är så vattentät som han verkar!

Key Note, Bruce Eckel

Dagen började med kort introduktion av Emily Bache som lämnade över till Bruce Eckel. Han feluppskattade tyvärr sin tid och missade den stora poängen med sin presentation, vilket var väldigt synd. Oklart varför han missade så grovt då det enligt egen utsago var fjärde gången han höll denna presentation. I princip så pratade han om språk och vad nästa stora språk bör ha för egenskaper. Han petade flera gånger på brister i Python, Java och C++ (nämnde inte C# en enda gång enligt mina anteckningar). CoffeeScript med jQuery förekom i hans bilder mot slutet och dessutom i koden som presenterades.

Kul med en lite mer teknisk key note! Hans egna tavlor som bakgrundsbilder till presentationerna var möjligen gav dock emellanåt för kass kontrast mot texten. Hans budskap var helt OK men jag måste säga att presentationen i sig var rätt beige.

Ruby on Rails, Shay Friedman

Jag gick sedan till Shay Friedmans presentation om Ruby on Rails. Det var antligen den mest politiskt inkorrekta presentationen under dagen (konferensen saknar för övrigt code of conduct och/eller ett manifest). Med minsta marginal snublade han nog över på rätt sida gränsen till godtagbart.

Jag hade föredragit dubbla tempot och något som stack ut från “my first 5 minutes”-spåret, kanske kika lite under huven och få se något intressant. Shay använde dock 3.1 vilket är rykande färskt med SCSS och CoffeeScript medskeppat som “standard”. Klart inspirerande och skall jag bygga sidbaserad webb (eller måhända JSON-backend) så ligger detta varmt till hands. Stort minus för att han inte körde testen en enda gång … Det hade bland annat undvikit hans två felsteg: att försöka ladda applikationen innan databasen var uppdaterad.

WCF Future

Detta var fullständig slöseri med tid, tyvärr. “You might have heard of web sockets, it’s w3c standard …”

Visualize Quality, Gojko Adzic

Efter lunchen kom dagens höjdpunkt. Gojko Adzic började lite före utsatt tid med att fiska bland publiken (han kände väl till svenskars fåordighet som åhörare) kring vad folk förväntade sig för att så småningom komma igång och helt enkelt presentera ett ganska ofärdigt material med tankar kring vad kvalitet är.
Gojko menade att t ex code quality aldrig är oviktigt, men det är inte lika viktigt i förhållande till att ett system uppfyller ett eller flera affärsvärden. David Harvey föreslog att föredragets ämne borde varit “Visualize Value” vilket jag instämmer i.

Innehållet var i övrigt bra presenterat, väl underbyggt och genomtänkt (mannen är riktigt vattentät) och ämnet hade jag snarare sammanfattat såhär:

To remove stake holder’s need for visibility (they ask for control) we need undisputibale visualization (of metrics).

Han gav exempel på tre P:n som är traditionella kvalitetsmätpunkter: Process effectiveness (such as code quality); Product status; Product Performance (have we delivered something that is actually used by users?). Han gav också förslag på andra sätt att hitta och visualiser mätvärden: Low tech testing dashboard, Risk/Test heat maps and charts, effect maps, Attribute-component-capability charts.

Intressant, framför allt bra presenterat och det föreslagna lär – rätt genomfört – otvetydigt ge bra underlag för diskussion och insyn i den egna verksamhet.

Long Term Value of Acceptance Test, Gojko Adzic

Var egentligen skåpmat och handlade om att inte dokumentera flöden i test, utan att med hjälp av smart marknadsföring (för att få stake holders intresserade) genom specification workshops få till kör- och testbar dokumentation av affärsregler, dvs företagets verksamhet. Han pekade ut TextTest som ett bra verktyg som steg i rätt riktning – dvs separera dokumentationen (testet) från det som behövs för att göra det kör-/testbart (scriptet, systemstart etc). Presenterades på ett bra och oklanderligt sätt, rubricerades som Living documentation vilket tydligen skall vara accepterbar benämning även i biznizkretsar.

Verktygstips: Relish, Speclog och Concordion.

Code Debt, David Harvey

Jag åkte på att ställa upp som försökskanin och parprogrammerade fem rader JavaScript med David Harvey. (Egentligen tror jag att jag skrev kanske femton tecken pga ovana vid Mac+eng tangentbord men men :)

David visade i alla fall på ett konkret exempel av hur kod kan evolvera fram i två riktningar – en som är lätt att arbeta med (den jag fick utöka) och en som hade en mindre positiv utveckling (Jörgen Lundberg åkte på denna elakare version och gav kommentaren: Wow). Presentation var helt OK. Den kunde varit bättre genom att fokusera mer på konkreta tips och åtgärder (eller strategier) än att belysa problemet.

Akka, Jonas Bonér

Jonas visade på vad Akka erbjuder – lösningar på problemen concurrency, scalability och fault-tolerance (that self-heal). En av lösningarna på desa problem är Akkas Actor. Detta “mönster” presenterades, med – min min smak – lite för enkla exempel. Ping-pong och self.reply("Hi " + name) funkar visserligen bra – det är lätt att läsa på en vägg med stor text – men det ger alltid lite extra när presentatören visar produktionskod och tar exempel från verkligheten.
För att hantera del av clustringen används gossip (som ger eventual consistency).

Sammanfattningsvis

Allt i allt var den dag över förväntan. Folkets Hus var kanon som lokal och allt flöt på kanon med mat och annat. Jag saknar dock open space eller någon form av mer inbjudande deltagande – i Göteborg fanns 2010 fish bowl som gör eventet till lite mer än bara “an eyes forward event” (som Bruce Eckel själv använde som benämning i sin key note).

Tidshorisont för NFC

Jag tror (i Sverige) …
  1. att majoriteten av mobiltelefoner har NFC om 3 år.
  2. att efter ytterligare 2 år kan man avsluta ett köp med NFC i hälften av Nordstans butiker.
  3. att efter ytterligare 4 år är NFC vanligare än korttransaktioner.

Enligt PayPal har jag fel, enligt MasterCard kan jag ha rätt. TechCrunch sammanfattar läget.

Alternate NFC Logotype
Alternativ NFC-logga

(Min senaste fem-årsgissning var vid julbordet 2001 – då gissade jag att Linux som alternativ på skrivbordet skulle vara minst lika lättanvänt, -installerat och -användt som Windows. Julen 2006 fanns Ubuntu 06.10. 2007 tror jag NetworkManager kom in och först då var det väl egentligen i samma liga.)

Att välja rätt List-implementation

Jag har stött på tillfällen då man undrar vilken implementation av en kollektion, t ex java.util.List man bör välja. Ibland behöver man använda så lite minne som möjligt, ibland vara så snabb som möjligt, osv. Jag har oftast löst det med att skriva enhetstest och långkörarjobb som gör något om och om igen, så får det stå över natten och när man kommer tillbaka nästa dag undersöka resultat, loggar och JVM-data.

Skärmbild över statistik från körning med Caliper
Skärmbild över statistik från körning med Caliper

Idag hittade jag Caliper via  Jesse Wilssons bloginlägg om LinkedList vs ArrayList (ur kö-perspektiv). Den korta tråden av kommentarer visar dock på hur irrelevant enhetstestbaserade undersökningar kan vara (även om de kör över tid så att GC får arbeta). På en JVM sitter ofta många system och “delar” GC och minnesrymd.

Helt irrelevant finner jag det absolut inte – även om systemet under test inte beter sig som under skarp last så upplever jag att man kan få ökad förståelse om hur olika implementationer beter sig och ju mer delar man har av ett pussel – ju lättare är det att se hela bilden och dra rätt slutsatser.

Statistik från Bredbandskollen

Bredbandskollen
Bredbandskollen

Bredbandskollen har nu dokumenterat ett API och publicerat det under deras
FAQ, sektion 7, längst ned. Det är dock inte JSON utan (schemalös) XML, men det är iaf komplett och det finns nu uttalat att informationen endast får användas i icke-kommersiellt syfte (såvida man inte tecknar avtal med IIS om annat, kontaktuppgifter finns att hitta i FAQ:n).

Informationen nedan är alltså gammal.

Det finns ett sätt att hämta statistik från bredbandskollen.se. Jag har inte sett att det är ett uttalat API, inga villkor för användning eller dokumentation. Tyvärr – IIS har en särställning och därmed borde vi ställa krav på öppenhet (vilken är väldigt god i allmänhet från .SE).

Disclaimer

Jag blev kontaktad av IIS och ombads uppdatera informationen här, enligt:

Hur som helst så skulle vi uppskatta ifall du uppdaterade ditt blogginlägg med hänvisning till att vi fixar ett API på rätt sätt ifall någon har behov av det. Tills dess är det olämpligt att sprida denna bakdörr eftersom vi inte erbjuder någon garanti att denna information är korrekt.

Normalt förfarande är givetvis att man tar kontakt med den som utger sig som ansvarig utgivare av informationen man vill använda, men på Bredbandskollens FAQ fanns ingen sådan information. Inget i någon sidfot. Inget i HTML.

Bas-URL

http://www.bredbandskollen.se/statistik/

getISPs.php

Returnerar ett objekt med ID (heltal) som nyckel, och ISP:ns namn som värde.

getChartData.php?

chartType=0 – okänt
year=2011 – periodbestämning, 2007-2011 (2007-10 verkar vara startpunkt)
month=8 – periodbestämning, 1-12
isps=6 – ISP-bestämning, kommaseparerade index från getISPs
regions= regionsbestämning, kommaseparerade index från lista kodad i HTML (se nedan)
speeds=  typ av förbindelse, kommaseparerade index från lista kodad i HTML (se nedan)

Regioner

{0:"Alla",
2:"Blekinge Län",
10:"Dalarnas Län",
5:"Gotlands Län",
3:"Gävleborgs Län",
6:"Hallands Län",
7:"Jämtlands Län",
8:"Jönköpings Län",
9:"Kalmar Län",
12:"Kronobergs Län",
14:"Norrbottens Län",
27:"Skåne Län",
26:"Stockholms Län",
18:"Södermanlands Län",
21:"Uppsala Län",
22:"Värmlands Län",
23:"Västerbottens Län",
24:"Västernorrlands Län",
25:"Västmanlands Län",
28:"Västra Götaland",
15:"Örebro Län",
16:"Östergötlands Län"}

Hastigheter

{0:"Alla",
1:"256 Kbit/s adsl",
2:"256 Kbit/s kabeltv",
3:"Upp till 384 Kbit/s 3G",
4:"512 Kbit/s adsl",
5:"1 Mbit/s adsl",
6:"2 Mbit/s adsl",
7:"2 Mbit/s kabeltv",
8:"1,5-2 Mbit/s fiber",
9:"Upp till 3 Mbit/s 3G",
10:"Upp till 6 Mbit/s 3G",
11:"8 Mbit/s adsl",
12:"8 Mbit/s kabeltv",
14:"10 Mbit/s fiber",
16:"24 Mbit/s adsl",
17:"24 Mbit/s kabeltv",
18:"24 Mbit/s fiber",
21:"60-100 Mbit/s fiber",
22:"10 Mbit/s kabeltv",
23:"0,20-0,25 Mbit/s adsl",
24:"1,5-2 Mbit/s adsl",
25:"6-8 Mbit/s adsl",
26:"12-24 Mbit/s adsl",
27:"0,4-0,5 Mbit/s kabeltv",
28:"7-10 Mbit/s kabeltv",
29:"12-24 Mbit/s kabeltv",
30:"25-50 Mbit/s kabeltv",
31:"3-5 Mbit/s kabeltv",
32:"50-100 Mbit/s kabeltv",
33:"20-60 Mbit/s adsl",
34:"Upp till 10 Mbit/s 3G",
35:"10-80 Mbit/s 4G",
36:"500-1000 Mbit/s fiber",
37:"100-200 Mbit/s kabeltv",
38:"Upp till 16 Mbit/s 3G",
39:"Upp till 32 Mbit/s 3G",
40:"10-20 Mbit/s 4G",
41:"5-10 Mbit/s 4G",
42:"12-30 Mbit/s adsl",
43:"30-60 Mbit/s adsl"}

Transparens på nätet

Google, Skype, Open Rights Group, Center for Democracy and Technology, Netzpolitik, OpenNet Initiative och andra bjuder in till ett tvådagars-hackathon (8-9 november), kallat Hack For Transparency (#h4t). Det bjuds på käk, nät och 3000 € i pris till bästa bidraget från respektive spår: Internet Quality och Global Transparency.

The objective is then not necessarily to end-up with fully completed projects, but rather to stimulate the awareness and thinking around these issues, and to discover fresh ideas and innovative angles to tackle them.

Senast 10:e oktober behöver man skicka in sin ansökan om att få delta.