About
fv_2007
Agile innovative developer with deep insight into lots of platforms, technologies and protocols. Absolute “early adopter” in Web 2.0 technologies and more. Large professional network and eagerly talking about architecture, strategy, design patterns, restful ressources, object-oriented thinking and modeling languages such as PML. Special interest in programminglanguages constructs, knowledge on languages like Smalltalk, Erlang, Java, Clojure, Scala, Ruby... read more
Follow
Feedfavicon
Comments
Language

Thing'ish RESTafarian at Jaoo October 06, 2009 22:14 11 months ago

Anne Thomas-Manes fra Burton Group introducerede den “Thing Oriented Architecture” (TOA) arkitektur til stor glæde for de få ægte RESTafarians der var mødt op i en eller pakkend sal på året Jaoo. TOA er lig med "The Web is REST and REST is the Web. Der var måske ikke så meget nyt på Jaoo i år men der var meget konsolidering af de gamle dyder lige fra Haskell programmering over Lean udviklingsmetodiker til hvordan man sælger REST opad i sin organisation.

Scott Davis redede min første dag på Jaoo med hans tale om “Tale of Slippy Map”. Dagens ørige program gav ikke den store reaktion men der var et par gode solide præsentationer. Min gamle ven Kim Dalsgaard var trackhost på “Web Oriented Data” som til dels fangede min interesse sammen “Browser as a platform”. Disse to track passer rigtig godt sammen de trak ikke ret mange mennesker. Min interesse er baseret på at jeg tror på løskoblet interconnected data over http protokollen.

Barry Boehm tale om “Scaling Up Agility” var en lang reklame for agile metodikker og metoder og han løb gennem usecases hvor han beviser hvor langt man kan komme med lean udvikling. Eneste krav er at man skal havde ansat de beste adrætte resource og gøre forretningen klar til iterativ informations flow hvor adoption af forandring fylder langt mere end gammel planer og rutine processer. Den eneste sætning som jeg virkelig kan huske fra denne lidt, trætte taler, er hans statement om at man altid skal passe på når man får tildelt en fuldtidsansat forretningspecielist, måske er han den eneste de i virkeligheden kunne undvære? Og nej, din Compiler Driven Testing (CDT) kan ikke bruge som test tool.

Emil Eifrem leveredere en overbevisende introduktion til Graf databasen Neo4j. Det er ikke ligefrem første gang jeg høre denne præsentation men Emil har udviklet en god sans for kunsten at tale og det er en fornøjelse at være vidne til. Især bifalder jeg hans annalogi om den kognitive tankegang fra et Whiteboard til den grafforbundende verden hvor relationer og properties er en naturlig del af data i kaotiske former. I vore dage kan en medarbejder have op til 10 jobtitler. Hvordan vil du repræsentere det? Addere en ny kolonne for hver title? nej vel, din database skal omstruktureres men du i en grafdatabase blot lægger flere properties på den node der repræsentere din medarbejder. Måske arbejder du et sted hvor alting er veddefineret og statisk og så kan du roligt forsætte med RDBMS og ORM.

Michael Feathers gav en gennemrand af Clean Functions. Han præsenterede en del crap kode for at vi skulle kunne få invokeret vores logik til at finde nogle gode størrelser mht antal kodelinjer, klasser og sammenhænge mellem opgaver og opdeling. Der findes en flere teknikker og principper bag konceptet “clean code”. Personligt er det mange år siden jeg har set nogle af dem i brug i Java verden men de er langt mere udbredt i letvægtkredse.

Brian McBride viser hvordan " Linkend Open Data" og “Semantic Web” hænger sammen. Han er klar fortaler for “Jena Open Source” for at offentliggøre data på internettet og hvordan disse data kan udnyttes. Han repetere kort en række principper standarder for Linked Open Data og hvordan man konsumering data til og fra andre formater som fx RDF, RDF, XML, JSON samt SPARQL Query Language. Jeg synes dette område er enormt spændende men jeg må indrømme at jeg lukkede øjene lidt at tiden.

Scott Davis nærmest råbte dages bedste tale i gang mens mine øjne stod på vid gab. “The Tale of Slippy Map” Kort fortalt er det historien om google maps og hvordan man skaber oplevelsen af den fede applikation. Hemmeligheden er at man bevæger sig på en pane som er noget større end det synlige område og der preloades mens man kigger på det synlige. Jeg høre til den meget lille gruppe af mennesker som helst vil være helt tæt på de oprindelige protokoller og derfor at fantastisk at se hvor godt google maps er designet. I øvrigt er det den direkte medvirkende årsag til den kæmpe susces som maps har fået. Maps applikationen består af en stateless server del der levere koordinater og billeder i 256 × 256 pix. Klient delen er stateful og består HTML/DIV med ca. 150 linjer af Javascript og indlejeret stylesheet. Så enkelt at det er grineren. Oplevelsen er meget lig desktop applikation men er velorganiseret snyd for “the brokken web”. Mr. Scott får også en pædagogisk topkarakter. Hans præsentation er meget velovervejet men ikke tilpasset til europæiske forhold. Mange selvbestaltede supereksterne følte sig helt sikkert forulempet og talt ned til. Højst kontroversielt.

En sjovt ting jeg har tænkt over i dag er at mange har brugt sætningen “schema-free” adskillige gange i løbet af de første taler. Det glæder mig meget men det gør øjensynlig mange andre en del nervøse. I sessionen med Linked data var mange spørgsmål rettet mod det faktum at man ikke har kontrol over data sourcen. Tja, men sådan er der jo så meget og endnu et eksemplet på at man kan kende svaret uden at kunne spørgsmålet.

Anden dage på Jaoo 2009 var rettet mod REST!

Simon Peyton-Jones lægger for med en fantastiske tale om Haskell. Simon forklare om type klasser som de fungere i haskell, ikke at forveksle med Java og .NET klasser. Haskell er et akademisk funktionelt sprog der også bruges til få kommercielle applikationer. Et af Haskell’s mest karakteristiske kendetegn er dens type system, de såkaldte “type klasser”. Type klasser tjener samme formål, at de klasser af mainstream-OO-sprog men på en anden måde. Denne tale begynder med forklare lidt om “The Birth of Language” med først een “geek” bruger, derpå et par stykker mere, og måske knækker kurven og sproget et bliver populært udover tekniske venner og måske adopteret af den brede masse. Simon er veloplagt og stormer gennem noget kode og beder alle som ikke forstår detaljerne række armen op. Der er måske 500 mennesker i den store sal men ikke en røre sig. Publikum rør sig heller ikke der hvor Simon presser en test ind i en funktion der ikke lader sig gøre. Han skure blot ud over salen, rækker armen op og siger NU.

Rachel Reinitz var en positiv overraskelse. Hun talte om “Extending the Reach of your SOAwith REST”. Rachel er IBM Distinguished Engineer i WebSphere Services. Hun har bygget en stor del af IBM’s uddannelse på SOA, Enterprise Service Bus, og Web Services. Rachel er top ESB ekspert. Hun vil ikke reklamere for IBM men: “There are in fact good reasons to use messaging beyond IBM making a lot of money with MQ”. Rachel riser hele web2.0 verden op som IBM ser kagen med Service, not software(SaaS), community added value, semple adgang til data osv.. Der er særlige grunde til at vælge SOA og webservices fremfor REST.. Lad mig være ærlig, der er ved at gå salg i den og hun opfinder termen RestfulSOA. Hvis hun viste hvem der skulle tale efter hende ville hun måske vægle sine ord med lidt større omhu.

Anne Thomas-Manes fra Burton Group er en kvinde man lader tale ud.. Både ved cafeen og når hun indtager scenen. Anne er en af NetworkWorld’s "50 mest magtfulde mennesker og en respekteret ekspert i distribueret computerteknologi. Anne har deltaget i udviklingen af standarder som W3C, OASIS, JCP, UDDI.org, og WS-I. Hvordan sælger man REST i sin organisation? Forretningen tænker på afkast, ikke på hvilken underlige teknik ting der tales om i udvikling. Der er ingen reel fokus på teknologien. Elegance dosen’t sell. Hvis du har en god ide kan du sælge den til forretningen sammen med indtjenings prospekt og risici beregninger.

REST er præcis så sikker som hvilken som helst anden ting der sendes over http protokollen siger hun. QoS hænger ikke sammen med om der er en envelope i den besked du sender men mere på skalerbarhed og pålideligehed. Med hensyn til at startop projekter mener hun ikke at det kan lade sig gøre uden en ægte RESTafarian som mentor. Programmeringmodellen bag REST og det at se verden som resource er meget svær at forstå i detaljer, slet ikke hvis man kommer fra en OO verden. Flere af de hårdeste RESTafarians udtaler at det kan tage op til frem 5 at forstå alle elementer af REST ROA WOA. REST er en arkitektonisk stil orienteret til at formidle oplysninger om ting. REST er en form for “Thing’ish Oriented Architecture”.

Ian Robinson er Principal Consultant hos ThoughtWorks og forklare hvordan “hybermedia” fungere i et restfuldt miljø. At han bruger Dungeons & Dragons spilscenarie gør det kun en smule mere tosset. Pointen er at spiltilstanden hverken er hos serveren eller klienten men i linkage’en mellem de to. Dette princip kaldes også HATEOAS. Man har kun et entry point til spillet og efter en GET til den resource får man de næste muligheder der findes i spillet lige nu. Hypermedia applikationer råde bod på SOA-visionen om et distribueret system baseret på evolutionære let sammensatte program protokoller

Stefan Tilkov er medstifter og chef konsulent ved innoQ, et teknologi konsulentfirma med kontorer i Tyskland og Schweiz. Stefan har været involveret i udformningen af store, distribuerede systemer i mere end et årti og anvender en bred vifte af teknologier og værktøjer, der spænder fra C++ og CORBA over J2EE/Java EE og Web Services til at Ruby on Rails. Tikov er en mand der tør sige nogle ting og jeg ser altid hans taler hvis det kan lade sig gøre. I dag handler hans tale kun om at udnytte de mange muligheder for ægte caching der implicit er gemt i http protokollen. Man kan være mere eller mindre enig i hans synspunkter og personlige holdninger men hvor er det skønt at han virkelig kan bitche over teknologere som ESB, SOA, SOAP etc. Sikker derfor jeg kan li ham? En af de mest fremtrædende fordele ved at bygge services ved hjælp af RESTful HTTP er støtten til caching og man kan uden videre bruge de sande byggesten fra internettet uden at tænke på ekstra omkostninger til infrastruktur eller software. REST er en blot at udnytte Internette på den måde det er tiltænkt. Tikov har en interessant vinkel på hvor man ligger sit REST snit i en traditionel layed applikation. Grænsen skal ligge så tæt på klienten som overhoved muligt. Hvorfor? Kun klienten har tilstand og resten af middelvaren skal være stateless. Cool logik. Mange mennesker sad og så helt blanke ud. Jeg gætter på at man skal ha lavet et par apps i den stil for det falder nemt at tale om.

Dagens REST track på Jaoo var fortrindeligt sammensat af Tikov. Gennem dagen var dette spor velbesøgt og adoptionskurven må mindst være breakeven. Flere personer jeg talte med gav udtryk for at de nærmest er eksperter i REST mens deres mangelene forståelse åbenlys og det gør mig lidt urolig for REST fremtiden. Det der kan ødelægge udbredelser af REST til masserne er dårlig rådgivning og ringer applikationer som ikke møder deres krav. Det gode ved hele er at jeg må været nået langt i min personlige erfaring med REST siden jeg kan så tydeligt kan se rigtig og forkert. Dagen gav mig ikke noget ny men jeg er glad for en god portion validering. :-)

Der var ikke en generelt gennemgang af REST og det var måske en fejl. Kun specielle emner om REST såsom Hybermedie, HTTP Cachaing, hvordan man ikke laver et nyt RPC kald over XML og ikke mindst om hvordan man promovere REST videre ud og op i virksomheden. Efter min mening kommer den vigtigste pointe Anne Thomas-Manes, Burton Group. Du kan vælge REST på lige fod med andre teknologere men husk at allokere en specialist som mentor.

Jeg sad og jokede med en vældig flink fyr som lige var kommet fra lufthaven og var en del træt. Vi var helt enige om Tikov’s jokes om SOA var af en meget ringe karakter. :-)

Cameron Purdy, var manden jeg jokede med. Manden som skabte og solgte Tangosol til Oracle. Han skulle prøvet at tage et kig bagud for at se om vi kan forudsige hvad der sker i de næste år fremover. Hvad har vi lært og hvordan kan vi drage fordel at det. Dette var et retrospektiv tilbageblik på hvorfor C++ blev glemt over natten da Java kom ind på scenen. Det sjove er at når man nu ser på Java og alle de ting som sker med fx Cloud Computing, Multi Core hardware og andet kan man nemt forstille sig at nye ting klart overhalder Java over en nat. Cameron pointere at man umuligt kan adoptere Agile udviklings metodik hvis det tager flere dage at lave den mindste forandring. Han bitcher også over Java evner til at lave pauser ved GC, et enormt memory forbrug, en sindsyg ringe startop tid. Faktisk mange af de samme ting som gjorde Java C++ overlegen i sin tid, nu er de ting en hæmsko. C++ var fantastisk i sin tid men hvor mange biblioteker finders der lige til C++? Nej vel! Grunden er den simple at man havde automatisk memory håndterring. I Java derimod er vi skide ligeglade med memory forbrug, vi smider bare det hele væk og det var også godt nok i en tid i de næste år vil det blive en stigende forhindring.

Det var min mening at følge Cloud tracket i dag men en særlig omstændighed gjorde at det blev meget anderledes.

See Attending Conferences

Kevlin Henney var min redning. Og hvilken en. Filuren var fyldt til bristepunktet og med god grund. Kevlin er en super behagelig taler med klare synspunkter om udviklings metodik. Han er fx ikke særlig imponeret af hele den agile bevægelse. I disse år er det som man skal udvikle efter agile principper for at cool. SCRUM fx ligger meget vægt på proriterede backlog emner mens det man i mange tilfælde burde fokusere på var at navigere uden om de væsentlige risicifaktorer. Det ligger implicit i mange agile metoder at design er behandlet som en kontinuerlig aktivitet men måske er design kun en af mange faser i udviklingen. Udvikling er også prototyper til TDD, arkitektur, refactoring og retrospektiv betragtninger med fortløbende feedback. Men denne erkendelse er ikke nok til at kommunikere hvordan et design bliver dannet og udvikler sig. Design fra kode fragmenter til store systemer kan forudses og diskuteret gennem fortællinger på lige måde som med programmerings episoder og pattern historier. Kevlin har også meget interessante vinkler på softwaretesting. Han giver nogle pragtfulde eksempler og jeg giver ham ret i at mange laver de mest stupide unittests. And hey,camel case doesn’t scale over 40 chars. :-)

Michael Nygard har senest skrevet “Release It! Design and Deploy Production-Ready Software”, en bog, der indenholder mange af hans tanker om udvikling af software som kan overlever i den virkelige verden. Michael bestræber sig på at lindre den daglige smerte for den enkelte udvikler. Han har brugt år på at finde ud af hvad det betyder at være en professionel programmør der bekymrer sig om kunst, kvalitet og håndværk. Han kan ikke fordrage apati eller spildt potentiale. Han taler til udviklere men også i høj grad til management og andre der bevæger sig i periferien af udviklings miljøet.

I denne tale fokusere Michael på tenologi, planlægning og risk management. Når man skære alt bullshitet væk er: “projects are experiments”. Når et firma planlægger sin fremtid er det altid i gode solide blokke. fx næste år skal vi forbedre vores indtjening med 2.5 procent, ikke 100 procent og ikke -100 procent. Faktum er at alle virksomheder går fallit uden at det er planlagt. “requirements are ignorance”, Denne bemærkning omhandler ikke at du som person er arrogant men blot at du er usikker med det samme du ikke ved noget med 100 procent sikkerhed. Det betyder at du kun kan gætte rigtigt eller forkert. Men det viser sig at man kan gætte 90 procent rigtig uden at vide noget med sikkerhed. Tænk på hvornår Johannes Gutenberg tykkede sin første bibel? Det ved du måske ikke, men du var at det var før år 1800 og efter år 1200. Hvis man samler 5 personer vil de med 93 procent sikkerhed repræsentere gennemsnitshøjten i verden. Du skal i hverfald aldrig sige: det har jeg ingen ide om! “Guessing is Truth”. Mit gæt er at jeg så snart som muligt skal høre Michael tale igen!

Jaoo var for mig endnu en god oplevelse med bravende gode talere. Kun en enkelt gang måtte jeg forlade en session og ty til min tidligere post om at hvordan man begår sig til konferencer. Alt i alt endnu en vellykket Jaoo med en grad af validering af allerede adoptere teknologer og konsolidering af allerede velkende processer. Husk at konferencen først er slut når alle omkring dig ved hvad der forgik.

Som professionel udvikler stiller jeg mig det samme spørgsmål efter hver konference: Er der noget jeg vil gøre anderledes i mit job på baggrund af mine oplevelser på Jaoo? Ja, jeg vil intensivere min udbredelse af historien om dødsstjernen og rebelflåden. Konceptet med et system falder mere og mere til jorden og vi taler mere og mere om at publicere data og linke dem sammen på forunderlig vis. Koplingerne mellem de enkelte systemdele benytter sig mere og mere at allerede erhverve og gennemprøvet software som fx routere og proxy servere. Oh hey, for sidste gang, klienttilstand findes i klientprogrammet. ikke på serveren.

Small Things Loosely Joined Written Fast


By Frank Vilhelmsen - 3 tags: rest jaoo conference - Add comment