Omegapoint

2011-10-20

Blog om "ramverk och komplex kod" från OPKoKo v2

Under bloggskrivarstugan på OPKoKo v2 skrev Pierre Sandboge en text om avvägningen mellan enkelheten att ta in ett nytt ramverk i koden och komplexiteten som blir av att ha många ramverk inblandade. Läs den på Pierres blog.

URL: http://sandsv.blogspot.com/2011/10/bara-ett-ramverk-till.html

2011-10-13

Blog om "trust" från OPKoKo v2

Under OPKoKo:s bloggskrivarstuga skrev Hans Peterson lite tankar om vad "trust" innebär i säkerhets-sammanhang. Läs dem här.

URL: http://secmaker.blogspot.com/2011/09/vem-i-hela-varlden-kan-man-lita-pa.html

2011-10-10

Blog om agil testning från OPKoKo v2

Under OPKoKo v2 hölls en bloggskrivar-workshop. Första resultatet från den är nu publicerat: Steven Hale ger en utmaning hur vi borde kunna förstå mer om agil testning genom att förenkla diskussionen.

http://forward-going-rich.blogspot.com/2011/10/agile-testing-simple-in-practice.html

2011-09-09

Video-föreläsning DDD+AppSec från JavaZone

På JavaZone i Oslo idag (9 sept) höll Dan Bergh Johnsson en föreläsning om hur man kan använda idéer från Domain Driven Design för att bättre förstå och kunna åtgärda/undvika AppSec-sårbarheter som Injection Flaw och Cross-Site Scripting.

Om du missade föreläsningen så kan du istället se den här:

http://vimeo.com/28768994


2011-09-08

JavaZone X Oslo onsdag 7 september 2011


JavaZone X - dag 1

Det är inte alla konferenser som börjar med live power-bluegrass, fyrverkeri-show inomhus, hårdrock och raketuppskjutning. Men när JavaZone firar sin tionde konferens så ligger det väl i traditionen med fakirshow, Rammstein till morgonkaffet och annat som emellanåt får icke-skandinaver att sätta nyss nämnda kaffe i vrångstrupen.

Nåväl. Här är några axplock från mina upplevelser under första dagen.

Long term value of acceptence tests - Gojko Adzic

Gojko presenterade slutsatser från sin väldigt omfattande erfarenhet av att arbeta med tester och testning. Lite förvånande var att han inte ville hålla fram "undvika regressionsbuggar", om oftast är argumentet för regressionstestning - automatiserad eller manuell.

Istället berättade han intressanta historier om situationer där företag och organisationer haft stor nytta av sin testsvit, men inte på de vanliga förväntade sätten. Gemensamt för dem alla var att de handlade betydligt mer om hur testerna fungerat som tillförlitlig dokumentation, framför allt på verksamhetsnivå.

Gojkos nyckel till detta var just att låta testerna fokusera på "verksamhets-dokumentation". Först då kan man få "kovariant" eller "symmetrisk" förändring, dvs att en liten ändring i verksamhet/behov/krav blir en liten ändring systemmässigt. Föga förvånande dyker Domain Driven Design upp med den gemensamma modellen som en sammanhållande kraft för att hålla verksamhet och system väl linjerade mot varandra.

Det här klingar onekligen väldigt väl ihop med den syn på tester som Dan Bryntze länge förespråkat - att deras långvariga värde står och faller med att de ligger nära den viktiga verksamheten.

Erfaringer med Scala i en Java-stack - Nina Heitmann

Nina (ena halvan av duon Scala Ninjas) gav en case-rapport från ett "vanligt" team som använt Scala i ungefär ett och ett halvt år. En intressant twist var att de använt en utpräglad Java-stack med JSP/SpringMVC/Spring/Hibernate, men med Scala som programmeringsspråk.

De hade prövat med Lift i början, men det hade fallit på att det var dåligt dokumenterat då - även om det något som ändrats till nu. Från andra har jag dock hört att Lift passar otroligt bra med Comet, men om man bygger på något annat sätt bör man kolla på andra webbramverk.

Det trassel teamet haft verkar mest ha haft att göra med att ramverken "pratar Java", så att de till exempel har fått Java-collections från Hibernate och varit tvungna att konvertera när de vill använda funktionerna som Scala-collections har. Eller, på ett liknande sätt har de gärna velat använda Option[] i Scala-koden för verksamhetslogiken, men då har Hibernate haft svårt att mappa. I stort sätt få saker som krävt något större arbete att få till, men lösningen har inte blivit så "direkt".

Med tanke på att halva teamet kunde Java sedan tidigare (den andra halvan var mest vana med Perl) så trodde hon inte att de sparat särskilt mycket tid på att köra Scala. Tiden de tjänat på att snabbare kodning går nog jämnt upp med tiden för inlärning och experiment. Men, å andra sidan har de haft mycket roligare och det varit mycket intressantare - och det är viktigt. En mycket klarögt observation.

Continuous Delivery - Ken Sipe

Ken Sipe tog avstamp i att Agile Manifesto faktiskt pekar ut "continuous delivery" som den primära ambitionen i manifestets första princip. Med det menas att snabbt och tillförlitligt kunna göra täta och kvalitetssäkra leveranser som gör nytta.

För att komma dit behöver man rätt mycket teknisk disciplin, t ex vad det gäller att sätta upp miljöer, att deploya, att kvalitetssäkra. Glöm att sätta upp en prod- eller test-miljö genom att pilla omkring med installationer och konfigurationer tills det funkar; om du inte har scriptat det så finns det ingen chans att kunna reproducera det på något tillförlitligt sätt. Så, scripta allt och in med det i versionshanterings-systemet. Byggda artefakter (miljöer och binärer) kan man istället stoppa in i ett repository som "artifactory".

Två verktyg att hålla koll på här är Puppet och Chef som båda är inriktade just på att hålla ordning i miljöerna.

Ytterligare en drivkraft i denhär riktningen är att t ex finansiella företag i USA har fått ökade krav på att de i framtiden ska kunna reproducera exakt hur det såg ut i deras system för t ex en viss dag för sju år sedan - och det gäller såväl data som miljö och applikation. Har man inte kanonkoll på exakt vad man har gjort så är givetvis det helt omöjligt.

Så - agile med "continuous delivery" är väldigt långt från ostrukturerat och oplanerat cowboy-hackande.

Above the Clouds: Introducing Akka - Jonas Bonér

Jag torde ha sett varianter av denhär presentationen åtminstone tre gånger vid det här laget - men varje gång lär jag mig något nytt. Jonas gör ett snyggt jobb att plocka ut en liten delmängd av Akka som behövs för att kunna komma igång att skriva aktor-baserade system - och att sedan presentera den delmängden snyggt och tydligt. Med ramverk som är så resursmässigt lätta som Akka (en actor drar typ 600 byte minne, och bara minne) tror jag att actor-system kan komma stort på många fronter - inte bara finans, gaming, gambling o likn.

Lite nyheter är att Akka 1.2 kommer att släppas under kommande vecka, den viktigaste förändringen där är i mina ögon att core-jar:en numera helt saknar beroenden, utan kan släppas in helt fristående. Detta är givetvis ett viktigt steg på vägen till det att Akka ska först komplettera och sedan ersätta de actor-bibliotek som finns i standard-Scala.

Lite längre fram är även Akka 2.0 på gång - förväntas inom några månader. Stora förändringen där är att konfiguration har separerats ut ur koden. T ex ska man kunna klustra och lastbalansera actors mellan flera maskiner genom separata konfigurationsfiler istället för ändringar i kod. Ser väldigt snyggt ut.

JavaPosse - Dick Wall, Carl Quinn

JavaPosse passade på att spela in sin episod 373 (typ) live från stora scenen - med Joe och Tor uppkopplade via video. När klockan närmar sig sju på kvällen efter en fullmatad konferensdag slår underhållnings-aspekten igenom rätt mycket. Men, det var ändå en del intressanta diskussioner där jag särskilt minns frågan om hur ekosystemet för språk ser ut framöver. Jag håller med analysen att tiden med "ett språk" är över; ingen av efterträdarna kommer att bli lika dominerande som Java har varit. Snarare kommer det att finnas en uppsjö av delvis likartade språk som används för lite olika syften. Ser fram emot att följa det gamla rådet ur Pragmatic Programmer att lära mig ett språk per år.

Korridors-diskussionerna

Konferenser som JavaZone är också ett strålande tillfälle att få ett litet snack med en mängd grymma tekniker. Jag fick ett litet snack med Ken Sipe med några råd om hur man kan införa "plattform as code" och fasa ut den "gamla prod-miljön" genom att bygga, deploya och testa prod-versionen av applikationen, men på den nya (scriptade) plattformen. Ev kan man drifta den versionen bara på en av noderna i en lastbalanserad kluster. Jonas Bonér delade med sig av lite tips för "let it crash"-actors där man gärna kan skapa en separat actor för varje enskild riskfylld uppgift. På så sätt är det uppenbart för supervisorn vilken uppgift som inte gick bra och behöver startas om. Och med Erlend Oftedal fick jag en intressant diskussion om relationen mellan AppSec, kod och DDD. Bara för att nämna några - kort sagt ett strålande tillfälle att få infallsvinklar från folk man inte möter till vardags.

Eftersom det var tionde konferensen så drog kvällens fest AweSome igång i full fart och bar sedan iväg till en trevånings nattklubb som blev rätt fullsmockad. Den delen gjorde jag dock rätt kort för att istället gå och sova samt ladda för min egen föreläsning dagen efter.




2011-03-17

Omegapoint presenterar på Oslo Communities in Action

I Oslo arrangerar stadens olika community en gemensam kvällskonferens "Communities in Action". Bland arrangörerna finns såväl java-communityt "javaBin" som appsäk-communityt "OWASP Norway".

Till detta har vår Dan Bergh Johnsson blivit inbjuden för att hålla en presentationen "Domain Driven Security Code Kata" som rör sig i gränslandet mellan systemutveckling och säkerhet genom att använda handgrepp från Domain Driven Design för att komma åt applikations-sårbarheter som Injection Flaw och Cross-Site Scripting (XSS).

http://www.owasp.org/index.php/Norway#Medlemsm.C3.B8te_tirsdag_22._mars_kl_16:00_--.3E

https://wiki.cantara.no/display/PE/Program+CiA+2011

2010-10-27

Omegapoint sponsrar träff med Scrum UG Sweden 23/11

Scrum User Group Sweden är en av de intressegrupper som hjälper till att bygga den kunskapskultur som ett företag som Omegapoint behöver för att frodas. Därför är Scrum UG Sweden en av de grupper vi lovat att stödja med det som den behöver för att frodas.

Därför sponsrar vi Scrum UG Swedens träff 23/11. Plats: Omegapoints stockholmskontor. Tid: 17.00 - 20.00

Mer info och anmälan

2010-10-25

Omegapoint sponsrar DDD Sverige

Domain Driven Design Sverige är en av de intressegrupper som hjälper till att bygga den kunskapskultur som ett företag som Omegapoint behöver för att frodas. Därför är DDD Sverige en av de grupper vi lovat att stödja med det som den behöver för att frodas.

Därför sponsrar vi DDD Sveriges träff 26/10. Plats: Omegapoints stockholmskontor. Tid: 17.00 -

Din anmälan är bara två klick bort

2010-10-20

Omegapoint presenterar på Jfokus 2011

Idag presenterades första delen av talarlistan för Jfokus 2011 - Stockholms stora community-konferens som går av stapeln i februari. Till vår glädje har Omegapoints talesperson i "arkitektur och utvecklingsmetodik" Dan Bergh Johnsson fått förtroendet att hålla en föreläsning om "Ubiquitous Language" á la Domain-Driven Design, ett ämne som Dan länge varit engagerad i.

http://www.jfokus.se/jfokus/speakers.jsp

2010-09-22

TelecomCity DevCon10 onsdag 22 september 2010


TelecomCity har ett tämligen väletablerat rykte med sin Catwalk-konferens. Nytt för i år är att de kombinerar affärsspåret med ett utvecklarspår under namnet DevCon10.

"Software Craftman"-spåret: TDD, Refactoring, Clean Code, DDD

Eftersom det tog mig ett tag att ta mig till konferensen på morgonen missade jag större delen av Lasse Koskelas föreläsning om testdriven utveckling. Han hade dock några insiktsfulla slutkommentarer som till exempel påpekandet att TDD "inte förbjuder dig att tänka". Med tanke på hur många missuppfattningar om TDD som cirkulerar så tål sådana saker att upprepas.

TDD-tråden togs upp av Roger Wernersson som gav en väldigt personlig introduktion om refaktorering, enhetstester och ren kod. Genom att basera sin presentation dels på sin personliga resa, och dels på enkla och tydliga exempel lyckades han särskilt väl med att få fram både vikten av och mekanismerna bakom refaktorering. I farten rekommenderade han böckerna"Refactoring" av Martin Fowler och "Head First Design Patterns" (som alternativ till GoF) och Robert Martins (aka Uncle Bob) "Clean Code" - en triologi jag instämmer med.

Min egen presentation av Domain-Driven Design hade ambitionen att både göra ett svep över ämnet och att göra en djupdykning på någon konkret bit. Det intima formatet och en mycket engagerad deltagarskara var säkerligen starkt bidragande till att det föll så pass väl ut. Eloge både till deltagarna som var där och till arrangörerna som lockat dit dem. Även om vi pressade begränsningarna för ventilationssystemet en smula så verkar det som om ingen vare sig somnade eller svimmade av syrebrist.

CI och Maven

Början på eftermiddagen kunde för min del sammanfattas med handfasta råd kring byggen. Jesper Forslund gav handfasta råd kring CI där många var bekanta, men sammanställningarna mycket insiktsfulla. Själv tog jag med mig därifrån en stark rekommendation att satsa ännu hårdare på "continuous deployment". I passet efter gick Anders Hammar  igenom fundamenta i maven och täckte en hel del som jag tror många "nästan kan" - dvs saker man får att funka, men kanske inte har helt koll på varför. För min egen del fick jag lite djupare klarhet i hur de konkreta maven-pluginerna binds in i de olika faserna beroende på hur man konfigurerar maven.

Not Only SQL på guardian.co.uk

Dagens engelska gäst var Matthew Wall från guardian.co.uk som berättade om deras initiativ kring NOSQL. Fascinerande nog handlade det mycket om hur de har en SQL Oracle-databas i mitten och hur de nu omger den med olika alternativa tekniker för att möta nya behov - att låta folk accessa deras media, och att kunna väva in andras data i deras site.

Exempelvis visade han deras REST-API för den som vill accessa deras data och hur detta har gjorts möjligt genom att lägga en Apache Solr som fasad framför Oracle. Inte nog med det - Solr i deras datorhall är bara master till en hel kluster av slav-Solr-instanser som körs i EC2. Åt andra hållet har de ett Micro-App API som gör det möjligt att väva in applikationer i deras site - och det datat går inte ner i Oracle-DBn, utan i en MongoDB-instans.

Sammanfattat verkar det som om de har en Oracle-DB för sitt eget redaktionella material och att det verkar så förbli. Men, samtidigt kompletteras deras system med diverse NOSQL-tekniker och man kan tänka sig att över tid kommer relationsdatabasen att sakta sjunka bakåt i fokus.

Dagen avslutades med en synnerligen avslappnad "öppet forum" diskussion i väntan på att kvällens bankett skulle börja - men då var det dessvärre dags för mig att vända kosan mot hemvändande transport.

Det samlade intrycket är att Thomas Dagsberg, Michael Tiberg och resten av DevCon10-gänget har lyckats med att redan i första instansen skapa en både kvalitativ och trevlig konferens. Det är bara att gratulera.




Om Omegapoint

Omegapoint AB är ledande rådgivare och experter inom Systemarkitektur, Säkerhet och IT-ledning.

Twitter uppdateringar

Omegapoints kvitterström:

    Andra Omegapointbloggar