Med Build 2015 i backspegeln

Av Per Salmi den 17 Maj 2015

I år bestod Combitechs deltagande på Microsoft Build 2015 i San Francisco av ett gäng med fyra konsulter från Linköping och Stockholm, en satsning på att vara med där det händer när det gäller Microsofts utvecklingsplattformar. Med lite varierande intressen försökte vi täcka in de flesta teknikområden på konferensen.

HoloLens

Den mest hypade och samtidigt mystiska prylen under de senaste månaderna har varit Augmented Reality glasögonen – HoloLens. Det spekulerades mycket före konferensen om man skulle få med sig ett exemplar hem från Build men vi som trodde det var för tidigt fick (tyvärr) rätt. Det bjöds istället på en del demotillfällen på bland annat keynoteföredrag och sedan individuella demos där vi deltagare fick pröva på själva under guidning av utvecklingsteamet. Det fanns tre olika demotyper att boka in sig på och vi lyckades komma med på både en One-on-One demo och en sk HoloLens Academy där man fick tillfälle att pröva på utveckling av appar för HoloLens.

Hur HoloLens ser ut och vad man som användare upplever illustreras nog bäst av de demofilmer som finns samt keynotevideos från Build, de är filmade med speciell kamera som lägger på samma 3D-objekt som den som har glasögonen på sig ser och ger en visuell bild av hur det verkligen ser ut genom HoloLens. Skillnaden är att man har interaktion med HoloLens som man inte har som betraktare och att synfältet i HoloLens där hologram eller 3D-objekt är synliga är mindre (Microsoft säger sig jobba på att förstora synfältet inför den kommersiella releasen). Det var ändå en mycket intressant upplevelse att få pröva på att själv interagera med virtuella föremål!

Den demo jag prövade på bestod i att redigera 3D-objekt i en slags paintbox eller modelleringsverktyg, där man såg en modell framför sig och sedan gjorde ändringar som att kopiera, skala om, flytta och färglägga objekt som fanns i modellen. Modellen jag redigerade var en liten undervattensmiljö med havsbotten, fiskar, maneter och växter. Interaktionen med HoloLens består av gester, tex klicka på objekt med pekfingret framför sig, peka ut objekt med en markör styrd av blicken och att ge röstkommandon. Vill ha faktorn är väldigt hög, jag är imponerad av vad man kan klämma ur en dator av idag inbyggd i dessa glasögon i fråga om bildkvalitet, ljud, interaktion och totalupplevelse och jag tror utvecklingen av förbättrade HoloLens generationer kommer att gå fort.

Universal Windows Platform

image

Det många har förväntat sig sedan Windows Phone och Windows 8 lanserades med sitt Modern UI koncept lanseras nu tillsammans med Windows 10. Universal Windows Platform ger utvecklare möjlighet att bygga en app med anpassningsbart UI för att passa flera displaystorlekar och formfaktorer för att kunna köra samma applikation på flera olika plattformar dvs telefoner, plattor, datorer och HoloLens. Ja, även den minimala Raspberry Pi 2 supportas som målplattform. Intressant att nämna är att XAML får en del nyheter, kompilerade databindningar mm.

Azure och Windows Server

Mycket av de föredrag som handlade om Azure var inriktade på backend för Internet of Things, bland annat säkerhet kring enheter för att motstå attacker. Ett koncept kallat Azure IoT Hub presenterades för att ge en bra mall som följer de best-practices man jobbat fram under senaste tiden.

image

När det gäller Azure fanns det även flera sessioner som gick på djupet kring de nya App modellerna för Web- , Mobile- och Logic Apps. En del av dessa är ju nya koncept, främst inom Logic Apps, som inte funnits ute så länge att de fått nån större spridning ännu. Ett allt viktigare verktyg för utvecklare att kunna hantera för att samla telemetridata kring hur appar utformas är Application Insights som nu kan användas i alla typer av applikationer för att se trender i användning och för att hitta fel.

Windows Server byggs om rejält och kommer att släppas i en variant kallad Windows Nano Server. Det är en version där man själv tar en kärna och bygger på med support för olika operativsystemkomponenter utefter behov. Allt konfigureras via pakethantering och PowerShell. Tanken är att skapa en minimal server som inte behöver omstarter eller uppdateringar lika ofta eftersom den inte innehåller mer än det nödvändiga för att köra just den applikation man själv byggt den för. Utmärkt att använda för Hyper-V i både värd och gästkonfiguration, som applikaitonsserver i molnlösningar mm där man inte vill ha mer än det nödvändigaste installerat.

Containerteknik – vad som kan ses som lättviktsvarianter av virtuella maskiner, kommer också med Windows 10. Detta jobb med att anpassa Windows för att kunna skapa containers gör Microsoft i samarbete med Docker. Det annonserades redan i höstas att man var på väg att ta fram detta men det är först nu det visats som demos inför publik, tyvärr dröjer den första preview-versionen av Windows som har stöd för containers tills i sommar då det ska komma i Windows Server Technical Preview 3. Man får hålla koll på vad som händer på About Windows Server Containers.

Jag kan inte låta bli men efter att Build var slut så annonserades också den sk Azure Stack under Ignite-konferensen. Det är efterföljaren till Azure Pack som gör att man kan bygga upp sitt eget Azure-datacenter på egen hårdvara med full kontroll.

Internet of Things

En mycket populär session på Build var Windows for Makers, i stort sett en mängd demos av vad man kan göra med Windows 10 på Raspberry Pi 2 som är ny bland de platt formar man kan köra Windows på. Den variant som körs på Raspberry enheter kallas Windows 10 Core IoT, egentligen en relativt nerstrippad Windows 10 som fungerar som plattform att köra Universal appar. Givetvis finns det stöd för olika typer av I/O signaler, bl. a. GPIO och I2C mm. Även Arduino och Netduino har fått en del uppmärksamhet från Windows 10, den ännu enklare kortplattformen får dock inte något stöd för att köra Windows 10. Prestandan räcker inte för det men man får bra stöd för att kommunicera med den. Man kan tex programmera mot dess I/O portar via BlueTooth anslutning från en Windows 10 enhet. En funktion är också på väg som gör att man kan använda en Windows enhet som ersättning för olika shields, enheten ger då utvecklaren ett antal virtuella shields för tex GPS, kamera, accelerometer mm. Se The Internet of your things för mer info eller leta intressanta projekt att komma igång med på hackster.io.

image

Utvecklingsverktyg

Under konferensen släpptes en release candidate av den kommande versionen av Visual Studio 2015 RC. Nytt i denna generation är att de tidigare varianterna Premium och Universal slås samman och kallas Enterprise. Tillsammans med den senaste Windows 10 Technical Preview versionen var basen för mycket av Universal Windows apparna som fanns att labba med för PC, plattor, telefoner och IoT enheter som Raspberry Pi 2. Intressanta delar för oss som jobbar med Visual Studio är att XAML editorn fått en ansiktslyftning tillsammans med Blend som ingår i Visual Studio. Ladda ner Visual Studio 2015 RC här.

Några av nyheterna som drog till sig ganska stor uppmärksamhet var också Visual Studio Code, en cross –platform version av Visual Studio som släpps för Windows, Linux och Mac. Det är då i stort sett en avancerad kodeditor med IntelliSense och stöd för ganska många olika programspråk. Ladda ner här.

Hand i hand med detta relativt nya mer öppna cross-plattformtänkande avslöjades också att Microsoft jobbar på två olika verktygssviter för att underlätta att publicera appar som redan finns utvecklade för Android eller iOS som nya Universal Windows Platform appar. Det handlar inte om att Windows 10 kommer att kunna köra appar som laddas ner från de andra plattformarnas appbutiker utan verktyg som används för att automatiskt portera kod till Universal-appar, dessa appar kommer sedan att kunna ta del av specialfunktioner i Windows plattformen. Vi pratade med en kille som jobbade med iOS varianten av verktygen hos Microsoft och just nu innan verktygen är klara at släppa på bred front direkt till utvecklare så jobbade han med stora apptillverkare med portning av enskilda appar för att testa verktygen. Tekniskt sett förklarade han det som att Objective-C kod med iOS API anrop och UI komponenter översattes till kod för Windows där UI delar implementerats med DirectX, de hade då vad han beskrev som iOS kompatibla UI komponenter speciellt implementerade för dessa portningsverktyg.    

Ladda hem sessioner

För att plocka hem sessionsvideos från Build (och en del andra konferenser) på smidigaste sätt för att titta offline så kan man använda denna lilla applikation gjord av Tim Nilimaa –> Session Downloader. Några länktips för sessioner om alla dessa ämnen ovan finns på Build 2015 Session Recap.

Eftersom denna artikel dröjt något så har ju Microsoft även hunnit klara av sin nya konferens Ignite också, för den som är intresserad så finns även en över 600 sessioner att se från den konferensen… så om du har oändligt med tid kolla in sessioner från Ignite 2015 när du har tittat slut på Build 2015.

Contribution: VLAN support to Connman

Av Marcus Folkesson den 17 Maj 2015

What is Connman

Connman is a daemon for managing internet connection within embedded devices. The project is an initiative of Intel and is released under GPLv2 License.
Connman is highly flexible and manage several technologies such as WLAN, cable ethernet and bluetooth.
LDC has successfully been using Connman in several customer projects and will would certainly argue that is is the best network manager out there.

How to control Connman

Connman is fully controllable via DBUS, which gives the application a great channel to configure and get information out from Connman.
Qt has an excellent DBUS integration which makes use of the signal/slot mechanism. This makes it possible to listen on events from the connman daemon. Events such as WiFi signal lost, new DHCP and so on.

There is also a connmanctl application for controlling by commandline or script.

VLAN and Connman

From release 1.29 (from commit f48ee40 to be more precise), the project has support for Virtual LANs (thanks to LDC of course).
VLANs is actually just about tagging all outgoing packages with an specific ID. The tag is a part of the ethernet-frame is read by the
next coming device (router, switch, computer or whatever) to determine how to pick it up or send it forward.

The Connman implementation let the VLAN service shows up with the name convention
ethernet_<MAC>_<VLAN ID>_cable

The VLAN ID is represented in a three digit hex-value. For example:
ethernet_5c260a4bf6a3_00a_cable

VLAN and Linux

To create a VLAN in Linux, we have to use the ip tool, which is a part of the iproute2 package.
There is also a depricated vconfig tool, but let it be depricated and don’t use it.
Add a VLAN with the following command:
ip link add link eth0 name eth0.10 type vlan id 100

This interface behaves like a normal interface. All traffic routed to it will go through the master interface (in this example, eth0) but with a VLAN tag.
The name convention (eth0.10) is not enforced, you can use whatever you want as name, like MarcusPrivateComputer, for example.

Windows på Raspberry Pi

Av Mats Sjövall den 3 Maj 2015

Med Microsofts nya satsning på IoT (Internet of Things) så har man släppt en variant av Windows 10 som går att köra på Raspberry Pi 2.

Denna variant av Windows är mer som ett inbyggt system och har ingen desktop, men man kan enkelt skriva .Net App:ar både med och utan GUI.

Jag var tvungen att testa :)

Det var föredömligt enkelt att komma igång, se denna länk.

I korthet så gjorde jag följande:

  1. Signa upp för preview:n och ladda ned från Microsoft Connect.
  2. Preparera ett SD-kort:
    dism.exe /Apply-Image /ImageFile:flash.ffu /ApplyDrive:\\.\PhysicalDriveN /SkipPlatformCheck
  3. Koppla upp till TV:n (eller projektorn i mitt fall) och boota upp Raspberryn och vänta tills följande skärm kommer upp: 
  4. Starta Visual Studio 2015 och skapa en Windows Universal App
  5. Slå på Remote Debugging med följande projekt-inställningar (Authentication None behövdes för att det skulle funka)
  6. Välj ARM som plattform
  7. Kör appen!

Jag tog mitt lilla hobby-projekt som jag nyligen konverterat till en Universal App och drog igång. Det funkade felfritt utan modifiering om än med lite dålig prestanda.

Build and run the latest linux kernel on your desktop computer

Av Christopher Dahlberg den 25 Mars 2015

If you are eager to try out the new version 4 of the Linux kernel this is the guide for you! This guide will tell you how to download the latest Linux tree and build it for your current setup. At last we will install the image on your system (parallel to your existing one, no worries). So that you at boot-time can choose which to start (dual-boot). Before it was quite a lot a hassle to do this (so I’ve heard ;) ) although today its childs play:

# Clone the official Linux repo
git clone https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

# Navigate into the Linux tree
cd linux

# Checkout the latest release (at the time of this post it was 4.0.0-rc5)
git checkout v4.0-rc5

# Copy the configuration from your existing configuration file (your configuration will probably have some other name, depending on your current version)
cp /boot/config-3.11-2-amd64 .config

# Port the configuration to fit the new kernel
make olddefconfig

# Build the kernel and modules
make -j 8

# Install modules in /lib/modules/ (need root permission)
make modules_install

# Install the kernel in boot folder and generate a initrd image (need root permission)
make install

# Assuming that you are using grub, update the grub configuration to also include the new kernel
update-grub

At boot time you will now be able to choose between your old kernel or bleeding edge (4.0.0-rc5 in this case). Enjoy!

Global Azure Bootcamp 2015 i Linköping

Av Per Salmi den 10 Mars 2015

2015-logo-250x169.NET användargruppen Swenug arrangerar i samarbete med Combitech det världsomspännande community eventet Global Azure Bootcamp 2015 i Linköping lördagen den 25 april 2015!

Arrangemanget är en minikonferens  och workshop om Microsoft Azure som körs på samma dag på över 110 platser jorden runt. Dagen innehåller föreläsningar och labbar där vi tillsammans prövar på olika delar av Azure plattformen och dessutom deltar i en global gemensam labb.

Anmälan är öppen för alla utan kostnad, antalet platser är dock begränsat så en anmälan behövs och den fixar man snabbt och enkelt på http://azurelkpg.eventday.com där den senaste informationen om eventet också kommer att publiceras!