#Utveckling & Arkitektur

Summering av DevSum 2016 - Del 2

Utveckling – språk, metoder och verktyg

Flera av föreläsningarna handlade även om tekniker, verktyg för devops och språk så som Angular 2, Xamarin, ASP .Net Core, CycleJs, Knockout, websocket, Git, Azure, Docker, köhantering osv; här följer en summeringen från några dragningar jag lyssnade på.

Läs den övergripande summeringen här om du inte redan gjort det [Johannes: lägg in länk till del 1].

Azure Service Fabric – “Magnus Mårtensson Distributed Computing made easy with Azure Service Fabric”

CycleJS – ”David Waller - Down the functional reactive rabbit hole: exploring Cycle.JS”

Angular 2 – ”Dan Wahlin - Angular 2 in 60-ish Minutes”

Git – ”Enrico Campidoglio - Git commandline”

Till Git finns bra grafiska gränssnitt men de klarar inte allt, kommandoprompten i Git är extremt kraftfull och du bör lära dig att hantera den. För dig som sitter i Windows finns posh-git, ett plugin till powershell, som ger dig ”tab completion”.

Ett bra tips är att lära dig några ”bra att ha” kommandon och skapa alias för de du ofta använder, därifrån kan du sen utöka ditt ordförråd. Enrico tryckte på att man ska ha en ren historia, ”Keep a clean history”, dvs. rensa bort onödiga brancher som försämrar överskådligheten.

Se Enricos onlinekurs på Pluralsight för att lära dig mer.

 

Websocket – “Magnus (dathor) Thor - Extremely reactive web apps using AngularJS 2, Typescript  and other things”

Magnus lurade publiken som trodde att det skulle handla om extremt snabba webbapplikationer med Angular2, istället handlade det om hur man använder websockets för att bygga snabba applikationer och hur man kan bygga egna ”repeaters” om man snöat in sig i Angular eller liknande ramverk och får problem med långsam rendering av data.

Magnus pratade också om hur viktigt det är att i förhand ha koll på om applikationen man bygger är krävande gällande datamängd och reaktivitet. Med sin erfarenhet är dathor väl värd att lyssna på och jag håller med om att man ska akta sig för att fastna i ett ramverk, särskilt om det är en stor applikation med krävande förvaltning och utveckling. http://www.devsum.se/speaker/magnus-thor/

Precis som Dan Wahlin är Magnus en förespråkare av Typescript, just för att man får precompilehjälp

 

Köhantering - ”Johan Öbrink - Decomposing your system using queues”

Johan Öbrink presenterade ett mycket trevligt sätt att tänka på när man bryter upp ett system i olika delar, analogin var alla kösystem en flygresenär passerar från dörr till dörr och hur var och en av dessa köer kan hantera olika mängder samt att de är intresserade av olika saker; tullen vill kontrollera att du är du och att du inte har något dumt med dig, taxfree vill ta betalt, gatepersonalen vill se din biljett osv. Detta tar jag med mig som ett enkelt sätt att kunna beskriva för en icketeknisk verksamhetsperson hur system hänger ihop.

För köhanteringen rekommenderar Johan RabbitMQ överlag, men har man ett enskilt, isolerat, system som behöver köhantering för interna processer kan man även använda Kue (node.js).

 

Säkerhet

Min summering från detta ämne är, som min erfarenhet, att väldigt många varken vet eller vill veta om deras system är säkra.

  • Är ditt data värdefullt för någon så se till att det finns backuper och om ditt data innehåller känsliga uppgifter som lösenord ska det vara krypterat.
  • Behöver du autentisera publika användare så låt någon annan göra det åt dig, t ex Facebook, Google, Microsoft.

Autentisering och access – hantera inloggningar i moderna applikationer

Mina två dagar på DevSum föregicks av en ”pre konf” utbildningsdag där jag lyssnade på Dominick Baier a.k.a. leastprivilege, en av utvecklarna bakom IdentityServer.

Dominick höll en mycket bra och djupgående genomgång och diskussion kring autentisering. Han tog upp lite historia kring hur man tidigare använt autentisering i Microsofts ramverk och hur man nu äntligen har lyft tekniken för att kunna stödja moderna löst kopplade applikationer, samt visade ingående exempel på hur man autentiserar användare i en ASP .Net Core applikation

Kursinnehållet: ASP .NET Core Security Architecture, Authentication Middleware, Cookie & external Authentication,  OpenID Connect & OAuth 2.0,  Single Sign-on & Sign-out, Securing UIs and APIs, IdentityServer, Mobile Clients, Authorization

 

Penetrationstesta dina system själv – någon annan kommer att göra det

Niall Merrigan, the Irish Norwegian, hade en mycket intressant och upplysande föreläsning, A security Testers toolkit, kring säkerhetstestning och hacking. Som före detta server- och nätverkstekniker var det inte några direkta nyheter för mig men det är alltid bra att lufta säkerhetsfrågor och höra vad som är nytt.

Några av verktygen Niall demonstrerade var följande: Openbugbounty.org - , Shodan.io -  hittar "Internet of things",  Webbkameror etc., Punkspider - Visar attackvektorer för webbsiter, Kali-linux - Debian image med massor av verktyg för att komma igång med hacking, Metasploitable – en Image att lära sig hacka mot, Veil-evasion- Bypass antivirus.

 

Säkerhetspanel – en diskussion

En intressant paneldiskussion med Richard Campbell (.Net Rocks) och säkerhetsexperterna Niall Merrigan, Paula Januszkiewcz , Dominick Beier och Mike Martin.

Det diskuterades kring vilka typer av attacker man kan förvänta sig och hur hackarna arbetar allt mer professionellt i denna miljardindustri anställda av organisationer med kundtjänst, försäljningsavdelning etc.

Vet du hur lång tid det tar att skanna alla publika IP-adresser i hela världen? – enligt säkerhetspanelen tar det 2.5minuter!

 

Visualisering

Walt Ritscher - From Dull to Dazzling: How Visualization and InfoGraphics enhance data comprehension

Mycket av det Walt berättade är sånt många av oss vet, men det var en väldigt nyttig aha-upplevelse att vara med om de experiment han utsatte oss i publiken för. Genom sina exempel visade han hur enkelt det är att se en förändring mellan två bilder där endast en liten förändring sker, men att hur man presenterar förändringen i form av mönster eller färg är extremt viktigt. Det mänskliga ögat är väldigt bra på att se avvikelser och mönster som presenteras i färgskalor, men väldigt dåligt på att se ett sammanhang i en sjö av siffror som i en excel. Tyvärr har jag inga bildexempel men förenklat kan man säga att när t ex en webbsida uppdateras med ny information måste detta sticka i ögonen, antingen genom avvikelse i geometrisk form, färg eller rörelse. NASAs Perpetual Ocean är ett mycket bra videoklipp som illustrerar detta; man har använt sig av rörelse och opacitet av små punkter för att åstadkomma den visuella effekten av vattnets rörelse.

Summeringen av denna presentation är följande:               

  • Avvikelser syns bäst, även förflyttningar.
  • Använd ”Motion graphics”, animation, avslöjar förändringar. Tänk Hans Rosling.
  • Om grafiken består av många olika former, visa uppdatering med färg.
  • Om grafiken består av många olika färger men samma former, visa uppdateringen med nya former.
  • För diagram finns ett par grundregler. Du skall inte använda ”3D pie charts” eftersom de lurar ögat beroende på hur diagrammet är roterat; om det nu inte är just den effekten du är ute efter. Använd stackad visning för att påvisa skillnader, inte objekt av samma form i olika storlek bredvid varandra eftersom ögat har svårt att avgöra den faktiska storleksskillnaden.
  • Rekommenderade verktyg för visning av grafik på webben är js (exempel babynamewizard) och canva.com

 

Distribuerade team

Rob Ashton - The 100% Remote Distributed Dream

Den kanske mest energiska talaren som även serverade fint kaffe med extremt nördig precision.

Rob berättade hur det är att jobba 100% på distans och hur viktigt det är att inte tvinga in alla i gemensamma möten då det blir problematiskt med tidszoner, dygnsrytmer etc. För att ändå hålla kontakten med kollegorna (utvecklarna) brukar de köra kodsessioner ibland, när folk är online kan man bjuda in dem eller bjuda in sig själv för att jobba tillsammans med delat skrivbord. Och som Rob uttryckte det var det absolut viktigaste att jobba tillsammans när man har en tråkig uppgift man egentligen inte vill göra, så varje gång han stöter på något som han inte har lust med säger han att han behöver hjälp; allting blir dubbelt så roligt om man är två.

I sitt andra tal, Caffeinated Passion, som jag tyvärr inte såg men fick återberättat, pratade han om hur han valde att kanalisera sin energi på något annat än systemutveckling, men med samma professionella attityd och yrkesstolthet i att vara extremt noggrann med input och output. Detta återspeglades väl i hur han med sin kollega räknade antal kaffebönor till varje espressoshot, vägde det malda kaffet som kom ut, tog tid på hur länge vattnet rann genom kaffet och noterade resultatet. Denna passion och glädje i att producera det bästa är något jag själv delar bland annat i min värld som systemutvecklare, men som ofta får tummas på av olika anledningar (tid). Hur som helst gav Rob ett fantastiskt bra exempel på hur man kan kanalisera sin energi och professionalism i nästan vad som helst, mycket inspirerande och väl värt att reflektera över. 

 

Publicerad: 2016-06-23