Archive for the ‘Jobb’ Category

sista veckan i oktober

oktober 31, 2010

Det har varit en relativt lugn arbetsvecka…efter tisdagen i alla fall, då vi färdigställde den nya mjukvaran för den modifierade hårdvaran. Jag jobbade inte mest i mjukvarogruppen men det blev lite övertid ändå. Onsdag till fredag har jag arbetat med att sätta ihop ett förslag för hur vi ska använda grenar i vårat revisionshanteringssystem (subversion) och gjort ett gäng experiment-grenar för faktisk utvecklingskod. Jag har bland annat arbetat med att lägga in en uppsättning callback-funktioner. Det har varit väldigt intressant och nästan avslappnande.

På kvällarna har jag hållit på med Aikido Helsingborgs nya webb-plats. Den är baserad på drupal och jag måste säga att det var väldigt lätt att komma igång med ramverket. Jag har installerat moduler (bla wysiwyg-editor och datum-paketet) och skapat innehållstyper för att lägga till träningar i ett schema. Just nu slåss jag mot besynnerligheter i datumen, av någon anledning är alla tider förskjutna tre timmar. Efter datumen är fixade skall temat modifieras för att passa ordentligt och resterande information ska kopieras från den gamla hemsidan.

I helgen var det tänkt att det skulle vara Aikido-läger med Jorma Lyly men han fick tyvärr problem med ryggen under resan ner hit så en hel massa ledig tid dök upp. Jag har gjort väldigt lite, lite tråkiga hushålls-sysslor (ta ut återvinning och städa kylskåpet), uppdaterat mina debian-system, fixat så att både min Nintendo 8-bitars kontroll och min Nintendo 16-bitars kontroll fungerar till mitt media-system (nån som vill spela Snake rattle’n’roll eller Bubble Bobble?), fotat kyrkogården i mörkret och sett på den helt fantastiska filmen Ghost World.

Kyrkogården

Kyrkogård nattetid.

Embedded Conference Scandinavia 2010

oktober 24, 2010

Tisdagen och onsdagen den 19,20/10 (det vill säga i tisdags och onsdags) gick Embedded Conference Scandinavia av stapeln på stockholmsmässan. Jag hade privilegiet att närvara, lyssna, lära, äta gratis mat och plocka på mig en och annan gratispryl.

Conference innebär i dessa kretsar en uppsättning seminarier av olika karaktär, allt ifrån verktyg för effektiv programmering för inbyggda system till framtidens lösningar för datacentra.

Nedan har jag sammanfattat det som jag tyckte var intressant från de seminarier jag deltog i. (Varning för Buzz-words och facktermer!)

Wireless Embedded on GSM/GPRS modules with RTOS, Petri Loumala, Peter Folkesson (COLMEO AB)
AT-kommandon gäller lika mycket nu som när jag var tonåring och spelade Quake över modem, skillnaden är att idag används de mest för att styra GSM-moduler. Vanligtvis används GSM-modulen tillsammans med en ARM-processor som gör själva applikationsarbetet. En modern GSM-modul innehåller en 100 MHz CPU, 4 MB Flash-minne och 1 MB RAM vilket lämnar mycket utrymme till att utföra arbete utöver att telefonera. Föreläsaren argumenterade för att utnyttja denna processorkraft istället för att ha en extern processor. Fördelarna är att systemet är testat och har standardverktyg tillgängliga. Det som talar emot är att dessa moduler arbetar med OS som varierar från modul till modul och detta kan göra att portabiliteten för applikationen minskar ifall den körs i modulen.

Crypto Key Lengths, when size matters, Joachim Strömbergson (Informasic)
”Krypto” är förenklat en metod för att transformera meddelande till något oläsligt men på ett sätt så att rätt mottagare kan reversera processen. Krypto används för Konfidentialitet, Integritet och Autenticitet (Confidentiality, Integrity, Authenticity – CIA modellen) även om de flesta bara tänker på Konfidentialitetsbiten. Krypto kan delas in i symmetrisk (mottagare och sändare byter en hemlig nyckel innan kommunikationen) och asymmetrisk krypto (en (publik) nyckel för att kryptera och en (privat) för att dekryptera). Asymmetrisk kryptering är generellt säkrare men mycket mer CPU och minnes-krävande (1000x symmetrisk). Kryptering i inbyggda system har ofta problem med prestanda och att ifall systemet knäcks är det svårt att uppgradera.
De största felen utvecklare gör är att välja för korta nyckellängder, lämna hårdvaran övervakningsbar (via t.ex JTAG) väljer egna propertiäära algoritmer istället för öppna verifierade varianter. Man bör också ta hänsyn till hur länge en nyckel skall användas (hinner man knäcka nyckeln medan den fortfarande är i bruk) och vem som skulle ha intresse av att hacka enheten i fråga (konkurrenter, hobby-hackers eller virusmakare).
Inom EU ger organisationen Ecrypt (II) rekommendationer om algoritmer som bör användas. För inbyggda system finns ett par implementationer som är välfungerande t.ex Grain och Trivium.

M2M – What is inside and why, Jacob Norrby (Prevas)
M2M (Machine to Machine) är apparater som är uppkopplade med andra apparater i ett nätverk där mätvärden överförs, bearbetas och sammanställs. Ett vanligt exempel är de moderna elmätarna som periodiskt rapporterar förbrukad el till en central dator.
M2M-tekniken har funnits i testanläggningar sedan tidigt 90-tal men har på senare år spridit sig allt snabbare i och med att uppkopplingsmöjligheterna ökat. Tekniken är inte knuten till något visst medie utan kan använda GSM eller ethernet lika gärna som långvågsradio.

Secure Networking: isolating multiple networks on a single node, Urban Sandertek (Green Hills Software)
Föreläsningen tog upp ”the separation kernel” (SK) ett system som bygger på mikro-kernel-konceptet, dvs. alla drivrutiner ses som normala applikationer. I SK-systemet separeras säkerhets nivåerna i samma maskin genom att ha en drivrutin och en TCP/IP-stack per säkerhetsnivå och på det viset skapas separerade nät. SK kräver en MMU för att kunna garantera att de olika drivrutinerna inte inkräktar på minne som ägs av en annan säkerhetsnivå. Detta åstakomms genom att lägga omappat minne mellan processerna, detta genererar då ett undantag ifall en process skulle skriva utanför slutet på sitt minnesområde. Mikro-kernel-strukturen gör koden så pass moduliserad att varje modul är överskådlig och kan individuellt verifieras och bevisas, och på detta sätt kan hela systemet bevisas.

Keynote: A view of software engineering and a way forward, Anders Caspár (Ericsson)
Ericsson har transformerats till ett företag där 80% av forskningsbudgeten går till mjukvaruforskning. Speciellt framtagen hårdvara byts mot kommersiell dito med specialiserad mjukvara. Mjukvaru-industrin är fortfarande i kraftig förändring och vi kan ännu inte slappna av utan måste utvecklas vidare. Vi måste bli mer produktiva/effektiva för att hänga med. detta kan göras på många olika sätt, t.ex utökade samarbeten med universitet, nya affärsmodeller, användande av öppen källkod, modellbaserade kodgeneratorer samt klassiska koncept som standardiserade gränssnitt.

Intel ATOM Tunnel creek, Robert Hanselius (Data Respons)
Intels utveckling av (kodnamn) Tunnel Creek CPUn tillsammans med Queensbay chipset har pågått ett tag och kommer snart att lanseras. Processorn är designad för en låg effektförbrukning samt för att ha goda möjligheter till viritualisering, den ska inte dra mer än 3.6 W vid 1.6 GHz.

Trends in the evolution of COM module formfactors, Patrik Björklund (Hectronic)
COM står för Computer on Module, vilket innebär ett litet kretskort med samtliga nödvändiga komponenter för att processorn skall kunna arbeta (RAM, nordbrygga etc.) samt gott om I/O-kontakter. Fördelen med dessa moduler är att eftersom de är väldigt integrerade går det snabbt att färdigställa ett projekt, de är lätta att skala (byta ut mot en liknande modul fast med t.ex mer ram), färre design risker, mindre kablage.
COM-korten finns i ett antal olika standarder, de som börjar vara aktuella idag är COM-express-standarden COM.0 som endast använder lågvolts-gränssnitt (SATA, Gbit Ethernet, etc.). Dessa kort har standardiserade värmelösningar, moduler som direkt på kortet eller att kortet monteras så det ligger emot chassi.
En annan aktuell standard är Q7 som är inriktad mot UMPC-applikationer. Det intressanta med denna standard är att CPU:n inte är låst till Intel utan det finns planer för att även kunna använda ARM-processorer.

Consumer Technology in Embedded Systems, Hans Christian Lønstad (Data Respons)
ARM håller på att komma ikapp Intel på CPU-marknaden, ett ARM-baserat system drar i regel inte mer än 2 W och prestandamässigt börjar ARM komma ikapp. I den nära framtiden kommer ARM-baserade servrar och det uppskattas att ca 50% av NetBook-datorerna kommer använda ARM.
Priset på ARM-processorer är mycket lägre än Intels eftersom ARM är en licensierad teknik med många tillverkare.
När man utvecklar ett ARM-baserat system bör man tänka på att komponenterna livscykel inte är längre än 3 år, SoC-system kräver mycket mjukvara eftersom, vissa av varianterna är reserverade för de stora företagen.
Dock finns en del fördelar som balanserar nackdelarna: liten formfaktor, låg effekt, billig, inga fläktar krävs.

Many Core programming models, a case for task-centric programming, Karl-Filip Faxén (SICS)
I framtiden kommer vi arbeta med mer avancerade processor-arkitekturer, med fler kärnor, mer skillnader mellan kärnorna, mer integrerade finesser.
De modeller som finns för parallellisering är egentligen oberoende av programmeringsspråk dock finns inte alla modeller implementerade för samtliga programmeringsspråk.
Task-parallell programmering är en slimmad parallellisering utan allt för mycket special-kommandon. Tasks är ”lätta” (dvs tar inte särskilt många CPU-cykler för att skapa och växla till/från) och synkronisering mellan tasks sker via att två tasks slås samman vid slutet av exekvering. Programstrukturen för detta blir väldigt likt sekventiell programmering.
Wool är ett bibliotek för task-parallell programmering för C skapat av SICS (Swedish Institute of Computer Science). Wool är relativt enkelt och effektivt och finns fritt tillgängligt under GPL för de som är intresserade av att testa.

Interprocess Communication with MCAPI, Collin Walls (Mentor Embedded)
MCAPI står för Multi Core API och är ett gränssnitt för kommunikation mellan processorkärnor med mål att vara kodkompatibel över olika OS. Idagsläget har API:t ett litet foot-print, hög prestanda och kan köras på OS i ett hypervisor eller i en bare-metal-lösning (CPU utan OS). MCAPI hanterar multipla datakanaler, datakanalerna bygger på något som kallas noder som kan vara en processor, OS eller accellerator). När man kommunicerar öppnas i dessa noder Endpoints som beter sig ungefär som Sockets. Standardimplementationen av MCAPI bygger på delat minne men den kan modifieras för vilken kommunikationskanal som helst.

Minneshantering

april 16, 2010

Säker minneshantering i C har alltid varit problematiskt, via slashdot hittade jag två blogginlägg om ämnet (del ett, del två). Del ett visar hur man undviker NULL-pekare-undantag och del två visar hur NULL-pekare-undantag kan utnyttjas för att få förhöjda privilegier i ett Linux-system. Första inlägget ger också lite information om hur operativsystem generellt hanterar minne och varför.

This was true for every program, including the operating system itself. You can probably guess what goes wrong here: suppose that Microsoft Word is storing your document at address 700 in memory. Now, you’re browsing the web, and a bug in Internet Explorer causes it to start scribbling over random memory and it happens to scribble over memory around address 700. Suddenly, bam, Internet Explorer takes Word down with it. It’s actually even worse than that: a bug in IE can even take down the entire operating system.

This was widely regarded as a bad move…

Liftarens guide referenser vinner alltid poäng hos mig!

Jag jobbar helt utan virtuellt minne i den produkt jag arbetar med på jobbet och vi har inte hittat på några fiffiga funktioner för att generera undantag. hårdvaran har dock vissa skydd inbyggd i hårdvaran som hindrar vår processor att skriva över allt för viktiga delar i minnet, samt meddelar när något gått horribelt fel. Detta genererar Abort-undantag och Undef-undantag som vi fångar upp och visar upp en felskärm med information om vilken typ av fel som inträffat, och ännu viktigare var felet inträffat. Skärmen är en kopia av Amigans Guru Meditation-skärm, svart med en röd blinkande ram med viktig (och dessutom kryptisk) information högst upp. Om vi sköter våra kort rätt kommer ingen kund någonsin se den (igen) men det känns bra att det finns referenser till retro-hårdvara bakom kulisserna.

Guru meditation

Guru Meditation

Internutbildning 08.30 – 16:30

augusti 19, 2009
Lite anteckningar blev det iallafall...

Lite anteckningar blev det iallafall...

Hektiskt…

april 4, 2009

I veckan har det varit relativt hektisk, bland annat skulle stationsprogrammeringsprogramvara skulle färdigställas, FAT16 skulle läggas in/testas och bootloader/firmware-uppgraderingsfunktionen skulle uppdateras. Allt blev inte klart men bra mycket, det har dock krävt en del övertid. Den enda dag jag var hemma innan åtta var onsdags (så jag var på bio) och ikväll (eller igår kväll då det numera är lördag) var jag jag inte hemma innan elva. Det har gått rätt bra förutom att torsdagen gick åt till att felsöka ett nytt fräscht problem som smått slumpmässigt sänkte hela systemet. Dock har jag bitvis varit bitter och grinig men jag har aldrig varit uppgiven så på det hela taget har jag nästan trivts. Arbetsveckan är dock inte slut ännu utan det kommer nog bli ett par timmar imorgon också.

Min dygnsrytm har varit helt ute och cyklat också, jag har klivit upp strax efter klockan sex och aldrig släckt innan 00:30 på nätterna. Jag har varit pigg och uppspelt mitt i natten utan anledning, detta har dock gett mig tillfälle att lyssna igenom mina mappar med blandad musik. Nu sitter jag till exempel och sjunger med i Soft Cell’s Tainted Love och tidigare stod jag och dansade till Rock Steady Crew‘s Hey you Rocksteady Crew.

Snart ska jag lägga mig och läsa ett par kapitel i Watchmen.

Jag använder detta som ursäkt för att jag inte bloggat på över en vecka…imorgon kommer förhoppningsvis månadens filmer!

Juldekorationer

december 19, 2008

För att ha lite julstämning på kontoret slängde jag upp lite dekorationer.

Ljusslinga runt den vanliga taklampan för att ge lite mysigare stämning

Ljusslinga runt den vanliga taklampan för att ge lite mysigare stämning

I fönstret hänger en julgranskula i glitter.

I fönstret hänger en julgranskula i glitter.

Det hänger bler julgranskulor i fönstret mot korridoren, men det saknar jag bilder på av någon anledning.

Halloween

oktober 31, 2008

Glad Halloween!

För att liva upp i höstmörkret har jag dagen till ära dekorerat mitt kontor med pappersfladdermöss och ljus. Det är inte varje dag man har anledning att dekorera sitt kontor så det gäller att ta till vara de dagar man får =)

Jack-o-Lantern, fladdermöss och lite stämningsfulla ljus

Jack-o-Lantern, fladdermöss och lite stämningsfulla ljus

På dörren till kontoret hänger spindelväv med ett par spindlar

På dörren till kontoret hänger spindelväv med ett par spindlar

En Fladdermus i all sin prakt

En Fladdermus i all sin prakt

Ljusen gör sig ganska bra på bild

Ljusen gör sig ganska bra på bild

En mycket glad Jack-O-Lantern

En mycket glad Jack-O-Lantern

Israel

september 14, 2008

I veckan har jag fått resa i jobbet…Till Israel av alla ställen för en Kurs/Workshop-aktig tillställning hos ett företag vi licensierar mjukvara utav. Det hela gick bättre än förväntat och redan efter första dagen kunde jag lugna mina nerver och mina överordnade eftersom resultatet vi ville uppnå med resan mötts direkt under första dagen. Detta gjorde att jag med gott samvete kunde ta en dag för att se mig omkring i Tel Aviv.

En palm som stod utanför mitt hotell

Israel är ett ganska trevligt land rent generellt tror jag, de har en del politiska problem och så är det väldigt varmt och fuktigt men annars så. Jag stötte inte på några politiska problem, inga självmordsbombare eller horder med demonstranter som ville att en eller annan politiker skulle avgå, men det var kanske bara tur? Däremot var värmen och fukten lite jobbig.

En stor harpa i trä vid Tel Avivs strand

En stor harpa i trä vid Tel Avivs strand

Till Tel-Aviv tog jag en buss, en mycket liten buss (10 personer får kanske plats) men de kompenserar dess storlek med ett stort antal bussar istället (det gick säkert en buss var femte minut eller så). I Tel Aviv gick jag en hel del, jag gick till stranden, jag gick vilse, jag gick i mina egna fotspår, och jag gick in i en skivbutik. I skivbutiken (som var riktigt välsorterad) fick jag hjälp att hitta ett album med typisk Israelisk musik (av kategorin Industri). Gruppen heter Vultures och albumet i fråga heter Great Discoveries & Plasma Ticks. Jag gillar skivan starkt även om den går lite åt noise-hållet, den är dansant och känns anorlunda mot de europeiska industri-grupperna.

Karlsson på taket

Karlsson på taket, ingenstans går man säker för denna flygande fara

På väg ner till stranden sprang jag på en marknad där jag köpte lunch, pitabröd med falaffel och andra tillbehör. Efter att irrat omkring på marknaden lyckades jag ta mig ända ner till stranden och upptäckte att det stranden inte var aktuell eftersom den led en akut brist på skugga.

Resan var riktigt intressant, Israel är ju ett land som man mest hör om när något exploderar så det har varit kul att se hur landet ser ut större delen av tiden. Och det var kul att kunna se åtminståne lite grann även om jag var där i arbetet.

En halvt orelaterad notis: Man åker till Israel och vad händer alla skaffar ny blogg, nu ska länken iallafall vara uppdaterad.

Python: Sex månader senare

juli 24, 2008

Nu har jag använt Python på jobbet och privat i ungefär ett halvår och börjar känna mig hyggligt bevandrad i språket. (Med hyggligt bevandrad menar jag att jag skrivit ett par program och lekt lite med språket.)

Jag tror att jag har haft ganska lätt att komma in i språket eftersom jag programmerat en del C samt att jag känner till lite om Unix/POSIX eftersom POSIX-funktionerna i Python (filhantering, hantering av in-argument till program, etc.) är standardiserade.. (POSIX definierar en uppsättning av funktioner som operativsystemet skall hantera, samt dessa funktioners funktionalitet.) Trots att jag haft hjälp av tidigare erfarenheter tror jag att Python är ett bra nybörjarspråk eftersom det är lätt att komma igång med, det går snabbt att skapa intressanta program och framför allt för att det finns bra dokumentation.

Det jag använt Python till under våren:

  • Info-Rip: Ett program jag satte ihop till jobbet för att enkelt slita ut valda variabler och kommentarer från header-filer för att vår testare ska kunna ha något att gå efter när han använder sin testprogramvara för att analysera programet som körs i vår hårdvara.
  • Bunny Comic Downloader: Ett program som laddar ner den senaste Bunny-serien och integrerar den med min bakgrundsbild. Det här programmet använder wget för att ladda ner bilder från nätet och Python Image Library för att integrera den nedladdade bilden med min bakgrund. (jag ska ladda upp det här programmet när jag snyggat till det så jag vågar visa det)
  • Screenshooter: Ännu ett program för jobbet. Ett program som använder pySerial för att ladda upp en skärmdump från vårt display-kort och spara det som en bild (Python Imaging Library är gruvligt praktiskt). Till det här programmet skrev jag även ett litet GUI i TCL/Tk.
  • Fluxmarks: För att lära mig lite mer om Pythons reguljära uttryck skrev jag det här programmet som tolkar bookmarks-filer (Netscape v 1.0) från till exempel firefox och genererar en meny-fil som enkelt kan integreras i fluxbox huvudmeny-fil.
  • classTest: Ett litet program jag skrev för att lära mig hur man skriver en ny klass. Klassen jag skrev implementerar en enkel cirkulär buffert som kan initieras till en variabel storlek och innehåller kommandona read och write. Man kan inte direkt kalla den en komplett datatyp men den fyller sitt syfte.

Det jag tycker är mest positivt med Python är att det går fantastiskt snabbt att skriva ett program när man väl bestämt sig för hur det ska fungera. Det finns massor av bibliotek som gör livet enkelt för utvecklaren. Eftersom det går så snabbt att utveckla har python varit idealt att använda på jobbet för mindre pc-program som behövts för att underlätta mitt huvudarbete (programmering av inbyggda system).

Under de här månaderna har jag dock stött på patrull vid ett par tillfällen, inga större problem men ändå problem. Det första problem jag stötte på var att jag inte kan skriva mitt namn i kommentarerna eftersom Å är ett ogiltigt tecken, jag hade förstått ifall det var ogiltigt att använda i koden men som kommentar borde det väl få vara med tycker jag. Det här är inte ett problem utan en feature egentligen: Variabler skapas så fort de används vilket innebär att om jag sätter variabeln TestVar till ”Hej kom och hjälp mig!” och sedan skriver fel när jag kallar på variabeln print testVar får jag inget felmeddelande utan print skriver ut en tom sträng. Detta har lett till att jag (som är ganska slarvig av mig) har slitit mitt hår i frustration på jakt efter ett litet skrivfel.

För att sammanfatta det hela: Python är ett språk som är lätt att lära och som fungerar mycket bra till att skriva mindre applikationer. Det verkar även gå ypperligt att skriva större applikationer som synes av till exempel Deluge.

Lugn långhelg

maj 4, 2008

Arbetsveckan har varit hård men kort, jag har suttit med saker jag inte kan så bra: grafiska användargränssnitt (GUI). GUIn är nog något av en konst i alla fall om man vill att de skall vara intuitiva och funktionella, och tyvärr stämmer nog myten ”Ingenjörer kan inte göra användargränssnitt” (iallafall stämmer det på mig (räcker inte ett kommandoradsgränssnitt åt alla?)). Man använder helt andra delar av hjärnan när man gör något som skall användas av andra människor än när man skriver något som i princip bara en annan funktion i ett annat program använder. Det har dock varit roligt och lärorikt och gett mig möjlighet att fräscha upp mina TCL/Tk kunskaper.

På onsdagskvällen när arbetsveckan var slut var jag ganska trött i huvudet och det var mycket skönt att veta att den var över. Jag somnade tidigt och utnyttjade torsdagens dåliga väder till att återhämta helt genom att ligga på soffan växlandes mellan en bok och ett seriealbum. På fredagen var det vackra vädret tillbaka även om luften fortfarande var lite kylig, jag var ut en sväng på eftermiddagen och njöt i fulla drag av vädret.

Lördagen spenderades uppe på Spif spelandes Twilight Imperium och Svea Rike. På morgonen gick jag upp klockan nio, åt en lugn frukost, tvättade mig och läste dagens webb-serier. Solen sken och det såg varmt ut så jag valde en norrländsk kläduppsättning bestående av 3/4-dels-byxor och t-shirt. Väl mätt , ren, påklädd och med gott mod begav jag mig vid halv elva mot spif. 25 minuter senare anlände jag vid Spif tillsammans med ett molntäcke som blockerade värmen från solen effektivt och jag insåg att jag varit lite väl optimistisk i mitt klädval. Att det sedan dröjde 20 minuter innan någon med nyckel dök upp hjälpte inte situationen. Jag han bli lite småfrusen men man är ju norrlänning och har ett rykte att upprätthålla så jag höll god min.

Det var som vanligt väldigt roligt att spela även om jag inte ens var nära att vinna, Twilight Imperium hamnade jag på delad sista plats och i Svea Rike landade jag på tredje plats (vi var fem som spelade). Eftersom jag inte spelat spelen tidigare är jag nöjd med min insats men hoppas kunna göra bättre ifrån mig i Twilight Imperium nästa gång.

Idag har jag irrat igenom ett av Helsingborgs villaområden och sett något så ovanligt som ett trähus, tittat på Doctor Who, spelat Psychonauts och fifflat med Fluxbox.

…Jag tror jag är redo att återvända till jobbet imorgon bitti…