onsdag 27 maj 2009

Bilder från konferensen


Här är lite flickr-foton från Scandinavian Web Developer Conference 2009. Vilmer och presentationer komer att läggas upp inom en vecka. Nu måste man jobba som vanligt igen :|

http://www.flickr.com/photos/50556731@N00/

Mvh,
PS

torsdag 21 maj 2009

Free CSS/HTML Seminar with Molly Holzschlag on Tuesday


This post is in English in deference to our international guests and speakers.

Tuesday 26/5, the day after SWDC 2009, we are happy to present 'an evening with Molly'. The event is a two-hour-ish seminar on current web standards, or in Molly's own words; "HTML5, CSS3, Will IE go away and questions, answers, discussions with a non-shy audience".

As most of you already know, Molly is the newly minted developer evangelist of Opera Software, has written 20+ books on web standards and development and is an active twitteuse. She is not to be missed, putting it lightly.

The place of this seminar in at Creuna, located at Kungsholmsgatan 23. Here is an eniro Map. We will open the doors at 17.30 and close them at 18.00, so make sure you're there in time. Creuna has despite the shortage of time in arranging this seminar been nice enough to provide beer and light snacks.

We have 44 places for this seminar. The first 44 people to comment to this post is in. Also, if you comment and for some reason can't come later on, make sure to mail me so that someone can take you place! Thanks.

Cheers,
PS

torsdag 19 mars 2009

Farsan har fått en helt ny stil


Efter en tids intensivt arbete är äntligen den nya versionen av SWDC2009's websajt uppe. Den tidigare versionen hade en hel del skavanker och det berodde väl mest på att undertecknad är mer programmerare än designer.

Med hjälp av två riktiga ess på webbutveckling, Isac lagerblad på Creuna och Magnus Forsberg på Ottoboni, så fick sajten ett mycket mer presentabelt utseende (och standardisering). För er som har sovit under en gran eller två på sista tiden så har Swedish Web Developer Conference 2009 följande att bjuda på;

Molly Holzschlag (W3C, Opera),

Dylan Schiemann (Dojo),

Remy Sharp (jQuery),

Jan Lendhardt (CouchDB),

Robert Nyman (Valtech),

Theresa Neil (Designing Web Interfaces),

Malte Ubl (Joose),

m.fl,

Till det skamligt låga kristidspriset av 2900 riksdaler. Det går liksom inte att tacka nej till, så enkelt är det :)

Det ryktas också om en större förfest dagen innan konferensen (Söndag 24/5) på ett större branchföretag där givetvis talarna kommer att mingla och åtnjuta den Svenska gästvänligheten. Mer om detta senare.

Over and out,

PS

lördag 28 februari 2009

Google friend connect börjar funka


Jaha, tänker du. Orka fatta vad det där är, liksom. OK, liten grundkurs i hur det fungerar:

1) OpenSocial.

OS är en standard (ett JavaScript API från börjna, men numera med REST access från lite grand vad du vill) för att skriva gadgets (som google kallar dom) / widgets (som resten av världen kallar dom) som ligger i webb-sidor hos 'sociala sajter', och hur dom interageras med dessa.

Ett exempel kan vara en gadget som visar ordspråk från olika länder beroende på vilket land den som kikar på sidan är ifrån. Gadgeten laddas (som en xml-fil med inbäddad JavaScript) från din server och visas som en del av sidan på den sociala sajten. Din JavaScript-kod anropar då andra OpenSocial JavaScript-funktioner som redan har laddats i sidan, som returnerar t.ex. lite information om den inloggade (i den sociala sajten) användare som kika på sidan.

Ditt JavaScript använder sedan vanlig Ajax för att hämta rätt text från din server, där ett litet server-script snurrar igång och bläddrar fram rätt sak ur din databas.

Den sociala sajtenkallas 'Container' på OpenSocial språk, och tanken är att om man har programmerat en gadget so m funkar för Plaxo, så funkar den percis likadant på LinkedIn, eller på Orkut, et.c.

2) Google Friend Connect

GFC är OpenSocial. Det är precis samma API, samma funktioner och så vidare. Den enda skillnaden på upplägget är att Containern är Internet. Eller det som GFC gör tillgängligt, vilket är ganska mycket samma sak.

Det innebär att du kan ta vilken sida som helst, t.ex. en på din webb-server, och länka in en GFC gadget. När sidan laddas kontrollerar gadgeten om den vet vem personen som ser den är, och kan annars visa en inloggnings-dialog, där man kan "Join"-a sajten. När man gör det så får man välja på vilken identitet man vill logga in med; Google Mail, Google blogspot, Yahoo, OpenID eller AOL.

Andra GFC gadgets man kan lägga in är en Wall gadget, med twitter-liknande funktionalitet, en Rating widget, där man kan sätta betyg på sidan, och så vidare. Alla gadgets sparar informationen på GFC servrarna, så ingen interaktion krävs eller hålls tillhanda med den webb-server som egentligen har själva sidan.

Låter det knasigt? det är det! :) Men det är också en enorm fördel att snabbt kunna få upp speciella gadgets på en sajt där man inte behöver hålla reda på in och utloggningm byte av lösenord, et.c. Dessutom är en central funktion i GFC att definiera vilka 'vänner' man har. Den listan, och all annan information (som användaren tillåter genom att joina sajten) kan man läsa och använda sig av i en egengjord GFC/OpenSocial gadget.

Nyligen så aktiverade Google möjligheten att skicka tillbaka såkallade "signed requests" till den server (eller någon annan för den delen) som sidan laddades ifrån, vilket innebär att GFC servrarna som hanterar all kommunikatioon tilloch från gadgets i sidan "stämplar" informationen med en kryptografiskt säker signatur. Det gör att din server kan få reda på ett unikt, garanterat id på alla som är inloggade i GFC på din sida.

Detta betyder i sin tur att du kan bygga en webb-tjänst där du inte behöver bry dig om användar- eller lösenordshantering, men ändå få ett unikt id för varje användare som du kan knyta till dina interna processer. Dessutom kan du se vilka vänner användaren har, och lite annat. Dock ej epostaddress, för närvarande, av säkerhetsskäl.

Jag har beskrivit hur detta går till en en annan post på min engeslkspråkiga blogg, som kan vara av intresse.
Lycka till och hör gärna av er om ni vill fråga om något!

Mvh,
PS

lördag 21 februari 2009

Håller Sverige på att falla efter när det gäller webbutveckling?

Sverige är ett av världens mest välutbildade länder. Enligt viss statistik, ligger vi på femte plats i världen på listan över antal utbildningsår per person.

Så välutbildade är vi. Trots det släpar vi efter vad gäller införandet, eller utvärderingen av nya teknologier. Från ett utvecklar- och arkitektperspektiv hamnar Sverige ganska långt ner på listan jämfört med omvärlden.

Ta en sådan sak som att utveckla intranät-applikationer. I nästan samtliga fall väljer man från projektledningen att använda antingen WebSphere eller Sharepoint (beroende på vilken kappa man har på sig), två lösningar med galet höga kostnader för implementation och underhåll.

De flesta företag och organisationer svars intranät jag har sett, har använt detta mer som en portal mot annat innehåll som redan finns i andra applikationer (förvisso inte alla med webb-gränssnitt), snarare än en platform för nya applikationer.

I samtliga fall skulle behoven kunnat mötas till en radikalt mindre kostnad genom att istället välja att implementera intranätet i en CMS plattform som Joomla, Drupal eller Wordpress. Samltiga är Open Source och kostar alltså hundratusentals kronor mindre än motsvarande lösningar från IBM eller Microsoft.

Men Sverige är helt enkelt inte hängt med i teknikutvecklingen. I stället för att göra rationella avvägningar som skulle kunna spara enorma pengar, väljer organisationerna att inte tänka och istället bestämma sig för en standardplattform, i den religiösa övertygelsen att det helt enkelt måste leda till mindra kostnader över tid.

Men CMS'er i all ära; ibland måste man nyutveckla, och tänker sig då att använda ett modernt gränssnitt som en webb-läsare till exempel. Givetvis väljer man ett server-baserat web-ramverk som det lättfotade JSF, eller nymodiga och hippa Struts (på Java-sidan), alternativt det svårkommenterade ASP.NET (i fallet Microsoft). Har man en riktigt tur så kanske projektet får lov att använda sig av Tapestry eller Spring. Dock har samtliga dessa ramverk brister som det finns lösningar för, och som används alltmer i länder utanför Sverige.

I höstas var jag hos Google i Mountain View och gjorde ett 'tech-talk' på ämnet Thin Server Architecture, där jag redogjorde för tekniker för att radikalt minska utvecklings- och underhållskostnaderna för webb-relaterade projekt. Grundidén är densamma som i RIA (fast RIA mest förknippas med Flash), och SOFEA (Service Oriented Front-End Architecture), det vill säga att erkänna den klient-funktionalitet som finns i browsern, och utforma projektet som ett client-server projekt, där en grupp har hand om klientern och en grupp om server.

Detta innebär att projektets två delar kan arbeta till stor del asynkront av varandra, med bieffekten att den design som gjörs i HTML/CSS och JavaScript kan användas oförändrat i applikationen, utan att behöva konverteras till server-side templates. TSA innebär helt enkelt att klienten skrivs med hjälp av moderna Ajax-ramverk som Dojo, YUI, ExtJS eller jQuery (mfl), och som använder Ajax-anrop för att enbart hämta och leverera data från och till server, genom ett REST-gränssnitt eller kanske genom att konsumera web tjänster rakt in i browsern (som är principen bakem SOFEA).

Den stora vinsten blir på server-sidan, där den gruppen helt kan fokusera på att implementera affärslogik och säkerhet, och där all form av rendering, templates och XML-filer för mappning mellan webb och logik helt kan släppas.

Detta kräver givetvis att det finns kompetenta Ajax/JavaScript experter i gruppen som leder front-end arbetet, men experter kommer man ju aldrig undan :) Det finns även ett antal RAD-verktyg som till skillnad mot Microsoft Visual Studio ger ifrån sig en ren, tvåskiktad client-server applikation, som ändå kan köras i en gängse appliaktionsserver. Eempel på dessa är WaveMaker, SmartClient och Mendix.

I de flesta fall räcker det nog att handjaga klienten. Och om man skall ändra något i utseendet, så påverkar det inte server, och om servern ändrar sin interna struktur, så behöver det inte märkas i klienten, så länge inte protokollet dem emellan rubbas.

Det är utveckling det!

Tyvärr just nu bara tillgänglig i utlandet :) Vilket årtionde som helst kanske Svenska företag och organisationer kommer ikapp. man kan ju bara hoppas..

torsdag 19 februari 2009

Dagen Nyheter 19/2


1) Jag misslyckades med att konvertera den här raringen själv för ett år sedan ungefär. Däremot kom jag en bra bit på att porta originalet, Box2D, till Nintendo DS på ett halvapigt piratkort. Ja, det var tider det. Problemet med NDS var att all grafik som inte är sprites görs i 3D, vilket skojar till det lite extra. Nå, i vilket fall som helst så blev jag glad när jag såg att någon hade portat Box2D motorn till Actionscript, för då borde det inte vara så svårt att porta igen till JavaScript. Det var det. Jag är *mycket* glad att någon har orkat :) Det är alltså frågon om en 'realistisk' simulering i 2D av kroppars rörelse och interaktion. Perfekt för spel och visualiseringar av olika slag. http://box2d-js.sourceforge.net/index2.html

Det hade varit kul att skriva något mer, men inte i kväll. Dagen har lksom varit alldeles för rolig som det är, om ni förstår vad jag menar. God natt!

10gen - en aldeles egen Google App Engine



Jag har följt 10gen projektet en längre tid. Det är intressant på många olika sätt. Det mest framträdande med det är att det till stor del fungerar som Google App Engine, d.v.s. det är en applikationsserver som låter dig skriva applikationer i ett modernt programmeringsspråk utan att behöva hantera otäcka detaljer.

Men det är mer än så. Där GAE endast stöder Python, stöder 10gen Python, Ruby och SSJS (Server-Side JavaScript). Där GAE är helt beroende av Google's infrastruktur för sitt datalager, öljer 10gen's hela datalagerimplementatio med i paketet (om man vill) färdig att driftas på vilken maskin som helst.

Fast det bästa är nog att både applikationsservern och datalagret är Gnu AGPL, open source så det svänger om det.

Men det finns ännu mer i paketet. 10gen har alltså en applikationsserver, den kallas Babble, som inkluderar captcha tjänster, Django stöd, och mycket annat. Utanför den finns en load-balancing demon som kallas lb, och tillsammans med datalagret Mongo, skapas en helt gratis service-stack som heter duga.

Kika till exempel på hur man gör för att skapa ett objekt som man sedan sparar i datalagret (i SSJS);


var j = { name: "mongo"};
db.things.save(j);


Det är allt. När jag börjar referera till db.xxx, så skapas (om det inte fins) en 'tabell' med xxx objekt. Eller det skapas en 'tabell' med objekt,
typer är ju som bekant oftast i vägen (enligt Amazon, i vilket fall). Känns lite mer hanterbart än Hibernate, eller?

Utvecklarna sitter i New York, men är väldigt närvarande, både på IRC och i mailing-listorna. Vl värt att kika på, om ni är nyfikna på Google App Engine,
men inte vill använda Python, eller tycker Python är OK men vill/måste kontrollera och äga tillgång till data.

Mvh,
PS