Meesterwerk
Meesterwerk

Voor een oud collega en huidig eigenaar van Labels & Buttons in onderaannemerschap de site gebouwd voor Meestewerk VOF.
Het design en de afstemming daarom trent werd verzorgd door Labels & Buttons zelf.

De site is gebaseerd op WordPress om ook de leek eenvoudig content te kunnen laten verzorgen. De opmaak is gerealizeerd door een handgemaakt theme. De structuur van de site bestaat uit pagina's met daarin een slider waarin blog posts te zien zijn die behoren bij de pagina.

Hiervoor is Glider gebruikt; Een op prototype en script.aculo.us gebaseerde carousel. In het template hangen een aantal zaken af van de naam van de pagina, zoals de categorie van de blog posts in de slider en de naam van het sfeerbeeld boven aan de pagina.

Dit is gedaan om met weinig tijd toch een sterke en functionele web 2.0 site neer te zetten. Het schrijven van een WordPress plugin had veel meer tijd gekost. Om te kunnen voldoen aan de typografische eisen van het ontwerp is sIFR 3.0 ingezet. De xhtml, CSS en JavaScripts zijn zodanig getuned dat ze op alle browsers hetzelfde resultaat en beeld geven.

Begin februari 2010 is de site live gegaan in een eerste release. Er zal snel een nieuwe release volgen met wat meer functionaliteit en een betere user experience.


2organize4life!
2organize4life_screen

2organize4life! is een stichting die is opgericht met als doel team te worden binnen de Roparun. Een jaarlijks evenement waarin honderden teams van Rotterdam naar Parijs (of andersom)  rennen in de strijd tegen kanker.

Tijdens een kort durende klus voor 2organize waarin een aantal kleine Ruby on Rails projecten gerealiseerd moesten worden heb ik ook de site van 2organize4life gemaakt. Het ontwerp werdt verzorgd door Adrie Hello van 2organize, maar voor de technische invulling, als mede voor de interpretatie van het visueel ontwerp kreeg ik de vrije hand.

In minder dan 1 werk week de gehele 1ste versie van de site gebouwd zodat deze nog voor de kerst dagen live kon. In de eerste versie zaten ondermeer een eenvoudig CMS systeem, gebruikersauthenticatie, een tags en comments systeem dat overal gebruikt kan worden, een blog & een agenda systeem en integratie met het twitter account. Daarnaast is de basis gelegd voor alle beoogde toekomstige functionaliteiten.

De door Rails meegeleverde Prototype en Scriptacoulous javascript frameworks zijn genegeerd en inplaats daarvan heb ik gebruik gemaakt van jQuery voor de benodigde animaties. De HTML, CSS en JavaScripts zijn vanzelfsprekend met de hand in elkaar gezet zodat alles Cross-Platform en Cross-Browser gelijke resultaten zou geven.

Als kers op de appelmoes heb ik een bijzonder populaire WordPress plugin,  sexy bookmarks, geschikt gemaakt voor Rails (en Internet Explorer) zodat blog posts, pagina's en agenda items geshared kunnen worden door de gebruikers van de site en zodat de site hiermee een iets hoger Web 2.0 gehalte zou krijgen.


EasyAuth

Tijdens een opdracht voor 2organize kwam de noodzaak voor authenticatie naar boven binnen de Rails applicatie. Daarbij moesten 2 rollen bestaan. Alle bestaande plugins leken mij nodeloos complex en hadden bijzonder veel code voor een triviale bezigheid; authenticeren.

Ik had een plugin gevonden voor de rollen, easy_roles, en wilde deze laten aansluiten op een kleine compacte plugin voor authenticatie. Na niet al te lang zoeken heb ik besloten om er zelf 1 te bouwen.

Mijn plan was om EasyAuth alleen de authenticatie van gebruikers te laten verzorgen, dit in tegenstelling tot bijna alle andere authenticatie plugins welke zich ook graag willen bezighouden met authorisatie. Dit om de complexiteit en de drempel om het te gaan gebruiken laag te houden. Authorisatie kan immers met dingen als easy_roles goed verzorgd worden.

1 toegevoegde functionaliteit die ongepland was; is het toevoegen van een routine waarmee de huidige gebruiker in alle controllers beschikbaar komt.

Wachtwoorden worden opgeslagen in de database, maar zeker niet in plain text. Ze worden feitelijk versleuteld (omdat EasyAuth een salt verplicht stelt voor de wachtwoorden) door middel van een SHA512 hexdigest. In de sessie zit alleen de ID van de gebruiker.

Een toevoeging die gedaan moet worden is het koppelen van de ID uit de sessie aan de gebruiker die de sessie heeft gemaakt, bijvoorbeeld op basis van IP adres.


OneTrainWorking

Rails lijdt aan een nare, soms optredende, IE (6?) bug. Rails genereert een formulier-geldigheids-token wat wordt beveiligd voor netwerk transport doormiddel van Base64. In Base64 mogen tekens als '/', '+' en '=' voorkomen en helaas kunnen verschillende Internet Explorer browsers daar niet zo goed mee omgaan.

Niet iets wat je wilt tegen komen op een druk gebruikte website als http://thomascook.nl/gratisvakantie en dus moest er een oplossing gevonden worden.

Ik heb een bijzonder kleine, eenvoudige en krachtige plugin geschreven die dit probleem verhelpt door Rails routines to overrulen en in plaats van Base64 een HEX waarde terug te geven voor de willekeurig gegenereerde bytes van het token.





π