X-Men: Days of Future Past

Jag och Elin gick och såg senaste filmen om X-Men i dag och jag blev riktigt glatt överraskad. Så här bra har Marvel inte varit på film på länge.

Inte för att jag har några stora klagomål på t.ex. Iron Man, Avengers, eller The Incredible Hulk, men X-Men: Days of Future Past var verkligen riktigt, riktigt bra. Jag gillar speciellt mycket om när de visar oss tillbakablickar och historierna bakom karaktärerna, det är bland annat därför jag gillar X-Men Origins: Wolverine så mycket, och det är gott om sånt material i senaste filmen.

Elin och jag började prata om Marvel-universumet och några av våra favoritkaraktärer (Wolverine, så klart) på väg hem från bion så nu sitter vi och kollar på första filmen från 2000. Det är fortfarande en av de bästa filmerna om X-Men och det är intressant att se hur väl det fungerade att byta ut Rebeca Romijn mot Jennifer Lawerence i rollen som Raven “Mystique” Darkhölme.

Spoiler alert
I vanlig ordning när det gäller Marvel-filmer så måste man stanna kvar tills hela eftertexterna har rullat klart och i dag var inget undantag.

Det sista vi såg var en scen från, vad jag antar var, (extremt) forna Egypten. Tusentals med människor knäböjer framför en figur som står med händerna i luften medan pyramider byggs samman av gigantiska stenblock som svävar i luften, som när Erik “Magneto” Lehnsherr kontrollerar metall. Bakom den mystiska figuren som vi fortfarande inte sett ansiktet på sitter fyra ryttare till häst, detta om något ger ju en hint om vem vi kommer få se.

De tillbedjande människorna mässar “En Sabah Nur” vilket är ett alter ego för en av de bästa skurkarna i hela Marvel-universumet, och när kameran snurrar runt figuren som kontrollerar stenblocken ser vi tydligt att det är just (en väldigt ung) Apocalypse som står där, med blekgrå hy och blå läppar.

Med tanke på att nästa(?) film i serien heter X-Men: Apocalypse var det kanske ingen stor överraskning, men det var roligt att se det.

Max 40 år

Min vän, och bestman på mitt bröllop förra året, Max fyller 40 i dag.

Hans fru Moa hade i god tid planerat en överraskningsmiddag på restaurang Pelikan i Stockholm, och Max själv hade styrt upp ett kalas till nu på lördag. Ett kalas som nu inte kommer bli av då vi är ca 30 personer som strålat samman för att överraska Max.

Något av det bästa är att det är massor av vänner från vår gamla klan FADER som dyker upp under kvällen, folk vi inte träffat på upp emot 10 år. Och det är lika roligt att hänga med dem nu som då.

Eftersom vi har fullt upp med att se till att Max har en fantastisk kväll så är det allt för i dag.

Några av middagsgästerna

Födelsedagsbarnet själv, tillsammans med Peter (som också fyllde 40 efter midnatt) till vänster

Valtech Tech Day 2014

I dag är det dags igen för Valtech Tech Day.

Totalt kommer vi ha 15 talare uppdelat på två spår med start efter lunch. Vi fokuserar inte på något specifik språk eller teknik, utan tanken är att både lära sig mer om det man redan är bra på, samt att lära sig om helt nya områden.

Vid 18-tiden drar vi igång community night som i år bjuder på livemusik, food trucks och stans absolut bästa mingel!

Och som vanligt är eventet helt gratis!

Vad vi använde för att bygga Stadsvolymer

I går skrev jag om Pontus Willebrands examensprojekt för Forsbergs Skola, Stadsvolymer, och jag tänkte passa på att skriva lite om den hårdvara, mjukvara, och den öppna data som användes under utvecklingen.

Konstruktionen

Själva konstruktionen byggdes av brädor från ett byggvaruhus som skruvades ihop med vinkeljärn, och täcktes med vit foamboard.

Stadsvolymer - Konstruktion

Inuti konstruktionen så monterades olika rörliga delar byggt av LEGO Technic som till stora delar hade inhandlats på auktionssidor på nätet, eller från butiken Model Team i Bandhagen (varning för webbsida från tidigt 90-tal).

Det var även inuti konstruktionen som Arduinon, själva hårdvaran, placerades.

Stadsvolymer - Insida

Hårdvaran

Hårdvaran bestod en Arduino Uno Rev3 som inhandlades som en del av ett Startpaket från Kjell & Co. Hos dem köpte vi också en del extra sensorer och motorer, samt en ethernet shield, och en motor shield.

Arduino Uno Rev3

Vi hade också tusentals bitar LEGO Technic till vårt förfogande.

Stadsvolymer - LEGO Technic

Vi använde oss också av en 4G-router från TP-Link, en TL-MR3420 och ett 4G-abonnemang från Telia för att ha ett dedikerat nätverk för projektet.

Mjukvara

För att hämta data från de APIer jag skrev använde vi oss av Quartz Composer som är en samling  teknologier från Apple som gjorde det möjligt för oss att hämta data via RSS, hantera den, och rendera den som videos.

Projection Mappning genomfördes med Resolume.

Kod och programmering

Webbsidan stadsvolymer.iamleft.se skrevs i PHP mot en MySQL-databas, och Twitter-appen som postade tweets till besökare som angav sitt Twitter-namn använde sig av TwitterOAuth, ett kodbibliotek för att hantera OAuth för Twitters REST API. För enkelthets skull använde jag delar av Twitter Bootstrap för att styla sidan, och jQuery för att hantera formulärpostningar och förfrågningar till servern via AJAX.

Koden för att hämta tunnelbane-information använde APIet SL Realtidsinformation från Trafiklab och jag skrev en egen liten wrapper för att snabba upp anropen och plocka ut delar av datat.

Övrig data som projicerades på konstruktionen hämtades hem i förväg från olika myndigheter som t.ex. Statistiska Centralbyrån eller Stockholm Stad Dataportalen.

Koden som styrde Arduinon och tog emot signaler från de olika sensorerna och ethernet shielden, samt skickade kommandon till motorerna och servomotorerna skrevs i Wiring, det programmeringsramverk för mikrokontroller som bland annat Arduino använder sig av.

Som jag skrev i gårdagens inlägg så kunde vi inte använda oss av den, i Wiring, vanliga delay()-funktionen utan vi fick importera biblioteket elapsedMillis för att kunna skriva funktioner som kunde pausa sig själva utan att stoppa resten av funktionerna från att köras.

Vi använde också tredjepartsbiblioteket VarSpeedServo skrivet av Ewan Branda för att kunna styra hastigheten på servomotorerna som annars har en fast hastighet.

Och eftersom den ethernet shield vi köpte inte var den officiella som bygger på ett Wiznet W5100-chip, utan en annan som bygger på ENC28J60-chipet så fick vi använda ytterligare ett tredjepartsbibliotek för att kunna skriva koden som om det vore en original-shield. Det biblioteket heter UIPEthernet och är skrivet av Norbert Truchsess.

Min kod, utan de inlänkade biblioteken, hamnade på knappt 400 rader (med kommentarer) och var egentligen inget avancerat. Eller så skriver jag helt enkelt funktionell och optimerad kod (troligt).

Och det var det om själva utvecklingsprocessen.