i76 webdesign, Sittard
Gerard's Weblog
vrijdag, 10 oktober, 2008
Bij de bouw van ons kantoor hebben we domotica laten aanleggen. Behalve dat ik wist dat ik het wilde, had ik eigenlijk niet zo’n goed beeld van wat je allemaal met domotica kunt doen. De mogelijkheden en toepassingen vormen zich pas echt als je het goed en wel geïnstalleerd hebt en er zelf mee aan de slag bent geweest.
Het merk waar we voor hebben gekozen is van QBUS. De installatie is uiteindelijk geleverd door PNG Domotica. Paul Barrois van PNG heeft ons goed geadviseerd en geleverd wat we zochten in een zeer net ingerichte kast.
- Onze meterkast met de domoticakast opengeschroeft voor de show

Ik heb geen ervaring met andere domotica merken, maar ik heb begrepen dat QBUS meer mogelijkheden bied om het systeem naar je hand te zetten ten opzichte van andere merken. Mijn eigen mening over QBUS is dat ze een zeer uitgebreid assortiment van hoge kwaliteit hardware leveren welke bestuurd wordt door buggy en achterhaalde software. De handleiding van de software is pas te begrijpen als je zelf al hebt uitgevonden hoe het werkt. Zo biedt QBUS deze ook aan als Te uitgebreide handleiding van de qbus software
of Het initialiseren van de ethernetinterface, uitgelegd op een complexe wijze
.
Alle verlichting en sommige stopcontacten hebben we op de domotica aangesloten. Op de logische plekken hebben we schakelaars aangebracht om de boel te kunnen besturen en er zijn enkele bewegingsdetectoren. Daarnaast hebben de mannen van Intergarde me geholpen om het alarmsysteem op de domotica aan te sluiten. Hiermee kunnen we alles uit doen als we het alarm inschakelen of leuke Red-alert effecten als er zich een alarmsituatie voordoet.
Het belangrijkste is natuurlijk dat de domotica ook met de iPhone aangestuurd kan worden! Ik wilde dit webgebasseerd doen omdat ik dan sneller kon starten en deze interface later voor een gewone webbrowser kon ontsluiten.
De QBUS ethernet interface biedt een http-interface aan waarop je via de controller de besturingsonderdelen in menu’s kunt stoppen en bedienen via http. Je kunt echter niet zelf het uiterlijk bepalen van deze interface en de beveiliging is zo lek als een mandje.
- Originele QBUS interface

Met PHP en MySQL heb ik een schil gemaakt die op de achtergrond de schermen van de QBUS kan parsen en de status van de verschillende onderdelen opslaat in de database. Voor de gebruiker heb ik met behulp van de iUI library een iPhone-interface gemaakt welke met behulp van Ajax commando’s naar de qbus interface stuurt. Daarnaast neemt mijn laag nu ook de beveiliging voor zijn rekening zodat ik deze op een publiek adres kan aanbieden.
- iPhone menu

De QBUS beveiliging is stateful met een timeout. In de praktijk betekend dit dat je met een willekeurige PC inlogt op de QBUS en vervolgens elke andere PC die er bij kan ook toegang heeft. De hele wereld dus als je deze interface publiekelijk aanbiedt.
- De beveiliging

Ik heb de iUI library uitgebreid met een dim-switch zodat we nog op een redelijk ogende manier de dimmers konden bedienen. Uiteindelijk werkt deze hetzelfde als de toggle die al in de library zit, maar dan met 3 in plaats van 2 standen.
- Bediening van de verlichting
Als laatste heb ik onze IP-camera opgehangen en meegenomen in de interface. Het beeld ververst zo snel als je verbinding die toestaat. Op 3G betekent dit ongeveer één beeld per 4 seconden.
- IP-camera via de domotica interface
Geplaatst in Algemeen |
4 reacties »
woensdag, 11 juni, 2008
“Ruby, ruby, ruby, ruby!”
galmt het lied van de Kaiserchiefs nog door mijn hoofd de volgende dag. Gisteren om 5:00 opgestaan om de trein naar Amsterdam te nemen waar op de Hogeschool van Amsterdam de Ruby en Rails 2008 conferentie te bezoeken.

- Badges van Tom-Eric en Gerard voor Ruby en Rails 2008
Veel internationaal bekende sprekers waren aanwezig, zoals Zed Shaw die de spits afbeet. Zed is onder andere bekend door het schrijven van Mongrel en bekender door zijn Rails is a Ghetto rant. Een bevlogen programmeur die, om een punt te maken, in twee weken een virtual machine basis heeft gemaakt voor assembly die nog werkt ook nog.
Obie Fernandez, de schrijver van het boek The Rails Way, had stukken voorbeeldcode in rails die zo slecht in elkaar stak dat de tranen je in de ogen sprongen. Helaas waren deze voorbeelden op waarheid berust en werden we nogmaals gewezen op het feit dat het voor de meeste klanten niet mogelijk is om de kwaliteit van IT-producten te beoordelen en daarmee vaak een kat in de zak kopen.
De jongens van Phusion vertelden over hun schokkend coole product Phusion Passenger. De lang met spanning verwachte mod_rails voor Apache! De snelheid gaat omhoog, geheugengebruik naar beneden, maar, voor ons in elk geval, nog belangrijker een sterke vereenvoudiging van deployment en stabiliteit van applicaties. Weg met mod_proxy, extra webservers voor Ruby en de oplossing die mijn oude baas classificeerde als: “Von hinten durch die Brust ins Auge”. Een mooi schone nette oplossing op het spoor van de Rails Way.
Charles Oliver Nutter, die voor Sun werkt aan het JRuby project, heeft geprobeerd een aantal vooroordelen weg te nemen met betrekking tot Java en gesproken over een aantal details van het JRuby project. Hoewel ik me kan voorstellen dat het handig is om Ruby en Rails op deze manier bij grote bedrijven binnen te krijgen, is het niet iets dat past in mijn straatje. Wat dat betreft ben ik wellicht te zwaar bevooroordeeld om van mening te kunnen veranderen.
In de pauze werden de winnaars uitgeroepen van de Ruby contest die werd gehouden door Finalist. Uit een grote database van vragen kon je er 5 beantwoorden en de winnaar is degene met de meeste juiste antwoorden in de kortste tijd. Van de 260 Ruby programmeurs die aanwezig waren is onze Tom-Eric derde geworden!

- De prijzen die Tom-Eric binnenhaalde
Tijdens de lighting talks werd onder andere verteld over de scaling issues die projecten zoals Wakoopa en Soocial zijn tegen gekomen op het moment dat de projecten wel erg populair worden of op Techcrunch worden genoemd.
Last, but not least, was er een videoverbinding met David Heinemeier Hansson in Chicaco die zich tijdens het Q&A uitweide over zijn opvattingen over Rails, de bedrijfsvoering bij 37 Signals en de Mac die elke Rails programmeur lijkt te hebben.
Het is leuk om weer helemaal geïnspireerd en gehyped terug te komen van zo’n conferentie. Plannetjes en ideeën borrelen omhoog. Benieuwd wat daar uit gaat komen.
Geplaatst in Ruby on Rails |
Geen reacties »
maandag, 26 mei, 2008
Afgelopen weekend bracht de laatste studiereis van i76 ons in Berlijn waar FX van Phenoelit zijn jaarlijkse PH-Neutral hield. Ondanks, of misschien juist omdat, dat het een invite-only feest is, was de opkomst dit jaar weer een stuk hoger dan de vorige keer. Er kwamen maar liefst 450 genodigden uit alle delen van de wereld op af. Crème de la crème uit de security scene allemaal bij elkaar om te socializen, feesten, informatie te verstrekken en de laatste nieuwtjes te delen.
De topics varieerden hevig. Één van mijn favorieten kwam van LOLPhone, een dienst gebasseerd in San Fransico via welke je caller-id kunt spoofen of iemand anders zijn voicemail afluisteren. Van de 18000+ telefoongesprekken die allemaal netjes waren opgenomen en gecategoriseerd was een waanzinnige grafiek van sociale verbindingen gemaakt. Ze zeggen dat je nooit meer dan 6 stappen van iemand verwijderd bent. In het sociale netwerk via de telefoon ligt dat meer in de buurt van 4.
- Sociaal netwerk van LOLPhone

De sessie over ontwikkeling en technieken gebruikt bij contra-spionage was ook leuk. De hardware en tools voor het detecteren kwamen aan bod maar met name de grote variëteit en orginaliteit van afluister en spionage apparatuur was verbluffend. Dit varieert van een waterfles die je met een gsm kunt opbellen om mee te luisteren in de kamer waar hij zich bevind via een kleurencamera zo groot als een knoop, tot een microfoon welke slechts bestaat uit 1 glasvezel met een iets verdikt uiteinde.
- Nieuwste generatie glasvezel microfoon

De pas aangekondige DIK rootkit voor Cisco routers werd uitgebreid toegelicht en ook de nieuwe aanvalsvector waarbij je je niet richt op de applicatie om controle over het geheugen te krijgen, maar juist de omgeving van geinterpreteerde talen zoals Perl, Python en Ruby gaf genoeg stof tot nadenken.
- Insel der Jugend

De sprookjesachige omgeving van het ‘Insel Der Jugend’, samen met de electronische muziek en de voornamelijk in het zwart geklede karakters gaven het interessante en leerzame weekend een mysterieuze, maar ontspannen ondertoon.
Geplaatst in Algemeen |
Geen reacties »
woensdag, 14 mei, 2008
Gisteren zijn we naar Hotel Arena geweest voor een bijeenkomst van de fronteers, een vakvereniging van front-end ontwikkelaars waar de front-end developer van i76 zich ook onder schaart.
Een belangrijk punt, waar de de fronteers voor strijden, is toegankelijke websites. Toegankelijke websites zijn nodig voor mensen die over het web moeten navigeren met een handicap. Je moet denken aan blinden of slechtzienden, maar ook aan de 1 op 12 mannen die kleurenblind zijn of de vergrijsde laag van de bevolking die zich in meerdere mate buitengesloten voelen als ze zich niet op het internet begeven.
Naast de morele verplichting die je hebt om niemand uit te sluiten heeft een toegankelijke website ook andere voordelen. Deze uitten zich op het gebied van zoekmachine optimalisatie, correct functioneren in alternative omgevingen zoals browsers van mobiele telefoons of omgevingen zonder javascript, maar het komt ook de onderhoudbaarheid van de website ten goede door het scheiden van inhoud en presentatie in twee afzonderlijke lagen.
Everyweb Solutions gaf een interessante demonstratie van de ontoegankelijkheid van enkele toonaangevende websites zoals die van Heineken, Vu, Vomar, HEMA en VPRO. Zelfs Visio, die het keurmerk drempelvrij draagt, bleek lastig te navigeren voor blinden.
Het nobele werk dat de koplopers binnen de fronteers doen effent het pad voor toekomstige ontwikkelaars. Het neemt frustraties weg bij de minder bedeelden, voor wie het al een aardige uitdaging is om zich in de jungle van het web te begeven en uiteindelijk stimuleert het standaarden waarmee helderheid wordt gecreëerd en geld wordt gespaard.
Geplaatst in Algemeen |
Geen reacties »
maandag, 21 april, 2008
Ik was in Sittard vanwege de verjaardag van Daan en ben meteen maar even langs ons nieuwe kantoor geweest. Wow! Dat is opgeschoten. Het stucwerk zit erop en geeft het meteen een heel afgewerkt uiterlijk. De lange gestucte muren zijn zo glad als een biljardlaken. Daar kan mijn eigen stucwerk niet tegenop.
- Achterkant

De trap is ondertussen ook geplaatst. De muur naast de trap kon pas gemaakt worden als de trap op zijn plaats stond. In de ruimte onder de trap is een pilaar gemetseld om het gewicht van de trap op te vangen.
- De trap

- De trap, nog helemaal ingepakt, zodat er niks mee kan gebeuren.
Eigenlijk zouden we enkel ons kantoor beneden opbouwen en het gedeelte boven kaal laten zodat een eventuele huurder dit zelf kan indelen, maar het stuk met de trap ziet er vanaf buiten zo onafgewerkt uit, dat we in elk geval het halletje en trapgat laten afwerken.
Geplaatst in Algemeen |
Geen reacties »
donderdag, 3 april, 2008
De vormen van ons toekomstige kantoor beginnen langzaam duidelijk te worden. De doorgang naar van de unit naast ons is dichtgemetseld en de muren van toilet en serverruimte staan. De afscheidingswanden tussen het werk en keuken-/vergadergedeelde zijn gemetseld.
- Achterkant

- Alle muren zijn ingesmeerd met gele stucprimer zodat de stuc die wordt aangebracht netjes blijft zitten. Dat geeft wel een lekkere warme sfeer.
- Voorkant

In de ruimte boven, die voorlopig kaal blijft, hebben we een toilet geïnstalleerd. Wel zo handig voor de werkmensen die voorheen helemaal naar het ziekenhuis reden om naar de toilet te gaan! i76 heeft dus nu een toilet van ongeveer 80m2!
De unit naast ons is ondertussen ook bewoond door Triple X IT. Ze verkopen, adviseren, onderhouden en verbeteren alles wat met Exact te maken heeft.
Langzaam begint de hele strip op de brugstraat bewoond te raken. Ook de laatste units zijn verkocht of verhuurd.
Geplaatst in Algemeen |
Geen reacties »
dinsdag, 1 april, 2008
De battle heeft direct al duidelijk impact. Goede en originele ideeën passeren de revue. Snel lanceren met weinig functionaliteit, of breed uitpakken en met een vliegende start beginnen? Hoeveel geld is een goede domeinnaam waard, of zijn er nog domeinnamen vrij die niet al te obscuur zijn? De eerste grote verschillen in aanpak worden duidelijk.
Daan gaat voor zijn oude vertrouwde PHP, Tom kiest voor de vernieuwende Ruby on Rails aanpak. Beide heren hebben reeds een domein geregistreerd. Daan is gegaan voor clips.fm en Tom ’s domein is muziek-videos.nl
Tom ligt met een neuslengte voor. Hij heeft nog een krediet van € 995,- terwijl Daan nog € 931,- heeft. Of zal de korte .fm domeinnaam zijn waarde nog bewijzen?
Geplaatst in Battle |
1 reactie »
dinsdag, 23 oktober, 2007
Er zijn veel artikelen en pagina’s te vinden over de werking van unix-rechten. Er is echter weinig te vinden over de praktische toepassing ervan. In dit artikel leg ik uit hoe i76 de rechten toepast voor het werken in projectverband op een veilige manier.
Verschillende gebruikers van i76 moeten rechten hebben tot de projecten waar ze aan werken, maar niet tot de projecten waar ze niet aan werken. Onze ontwikkel en productieservers draaien op Linux Debian, maar het door ons toegepaste rechtensysteem geldt ook voor alle overige unix afstammelingen en klonen.
Voor elk project wordt een nieuwe gebruiker aangemaakt die zijn eigen gebruikersgroep heeft. Voor Debian is een eigen gebruikersgroep per gebruiker default en kan worden aangepast in /etc/adduser.conf met de setting USERGROUPS=yes.
# adduser testproj
Adding user `testproj' ...
Adding new group `testproj' (1006) ...
Adding new user `testproj' (1006) with group `testproj' ...
Creating home directory `/home/testproj' ...
Copying files from `/etc/skel' ...
Als een gebruiker toegang moet hebben tot een project dan voegen we hem toe aan de groep met het adduser commando.
# adduser gerard testproj
Adding user `gerard' to group `testproj' ...
Done.
Van nature is Unix een heel open systeem waarbij gebruikers gestimuleerd worden om zoveel mogelijk informatie te delen. Bij de meeste standaard installaties zie je dit terug bij het aanmaken van een gebruiker waarbij de gebruiker zijn homedirectory de rechten 0755 krijgt. Oftewel drwxr-xr-x. De eigenaar mag alles, de groepsleden en overigen hebben lees, verwijder en filescan rechten.
Wij willen dat gebruikers die niet in de groep zitten (other) niet bij directories mogen. Bovendien willen we dat leden van deze groep schrijfrechten hebben:
# chmod 770 testproj
# ls -ld testproj
drwxrwx— 3 testproj testproj 4096 2007-10-23 08:30 testproj
Dit kun je ook als standaard instellen in /etc/adduser.conf met de setting DIR_MODE=770.
Indien een gebruiker binnen een project directory een file aanmaakt, krijgt deze file als eigenaar en groep de gebruiker zelf.
gerard@i76:/home/testproj$ touch foo
gerard@i76:/home/testproj$ ls -l foo
-rw-r--r-- 1 gerard gerard 0 2007-10-23 08:45 foo
Dat zou betekenen dat andere gebruikers binnen deze groep enkel het bestand mogen lezen, maar niet wijzigen. Een aardige domper op de samenwerking.
De oplossing is eenvoudig door de zogenaamde setgid bit op de projectdirectory te zetten.
# chmod g+s testproj
# ls -ld testproj
drwxrws— 2 testproj testproj 4096 2007-10-23 08:46 testproj
Deze zorgt ervoor dat alle files en subdirectories die in deze directory worden aangemaakt bij de groep testproj horen.
gerard@i76:/home/testproj$ touch foo
gerard@i76:/home/testproj$ mkdir foodir
gerard@i76:/home/testproj$ ls -ld foo*
-rw-r--r-- 1 gerard testproj 0 2007-10-23 08:46 foo
drwxr-sr-x 2 gerard testproj 4096 2007-10-23 08:46 foodir
We zien de setgid bit mooi gezet is op de subdirectory, maar de groepsleden hebben enkel leesrechten gekregen op het bestand en de directory. Om de rechten van nieuwe bestanden en directories te bepalen wordt umask gebruikt. umask bepaald welke rechten een bestand niet heeft als deze wordt aangemaakt.
In onze situatie is een umask van 007 geschikt:
gerard@i76:/home/testproj$ umask 007
gerard@i76:/home/testproj$ touch foo2
gerard@i76:/home/testproj$ mkdir foo2dir
gerard@i76:/home/testproj$ ls -ld foo2*
-rw-rw---- 1 gerard testproj 0 2007-10-23 08:47 foo2
drwxrws--- 2 gerard testproj 4096 2007-10-23 08:47 foo2dir
Een default umask kun je opnemen in /etc/profile zodat deze bij het inloggen wordt gezet. Denk eraan dat een webserver nu ook niet bij de bestanden kan. De bestanden waar de webserver bij moet mogen moet je expliciet aanpassen om leesrechten toe te kennen aan other en op de directory waar ze inzitten lees- en filescan-rechten.
chmod o+r foo
chmod o+rx foodir
Geplaatst in Linux |
Geen reacties »
woensdag, 12 september, 2007
Eén van meest gestelde vragen die naar voren komt als mensen horen dat ik verstand van het internet heb is “Hoe kom ik bovenaan in de zoekresultaten bij een zoekmachine?”
.
Scoren in zoekmachines is geen absolute wetenschap. Het is ook geen truukje. Zoekmachines geven, met recht, niet alle details vrij die betrekking hebben op de sortering van sites in de zoekresultaten. Kennis van de achterliggende algoritmen zou het namelijk mogelijk maken om op een oneerlijke manier hoger te scoren in de zoekresultaten.
Je kunt wel een aantal zaken beredeneren uitgaande van het meest waarschijlijke doel van een zoekmachine: “Een zoekmachine heeft als doel die pagina’s voor te stellen die het meest waarschijnlijk passen bij de zoekopdracht van een gebruiker”. Ik noem een paar voorbeelden:
Het is aannemelijk dat pagina’s waar veel mensen naartoe linken, populairder zijn dan pagina’s waar niemand naar verwijst. Ergo, het is waarschijnlijker dat de gebruiker deze veelgelinkte pagina zoekt.
Een website wordt machinaal opgenomen in de index van een zoekmachine. Je moet er dus ook voor zorgen dat de broncode van een pagina zo in elkaar steekt dat deze eenvoudig begrepen kan worden door een machine. De HTML-source van een pagina geeft betere en meerdere ingangen voor de zoekmachine indien deze semantisch correct is opgesteld. Indien de tekstule betekenis van de broncode overeenkomt met de visuele weergave van je pagina is deze ook een stuk toegankelijker voor bezoekers die afhanklijk zijn van software programma’s voor het interpreteren van je pagina zoals blinden en slechtzienden.
Een zoekmachine komt af en toe terug op je pagina om te kijken of er nog iets nieuws is en heeft al snel door hoe ’spannend’ een pagina voor een bezoeker is. Een nieuwspagina heeft misschien elke dag wel wat te melden terwijl een persoonlijke pagina over de woelmuis niet zo aan verandering onderhevig is. Het is aannemelijk dat een pagina die vaak nieuwe dingen vermeld frequenter bezocht wordt dat een statische pagina.
Zo zijn er nog een aantal zaken op te noemen die meetellen. Bijvoorbeeld de leeftijd van je pagina, de manier waarop het adres van de pagina is opgebouwd, etc.
Uiteindelijk komt het neer op het volgende. Indien je een webpagina maakt waar mensen vaak naar op zoek zijn omdat hij handig (informatief, interessant, leuk, etc) is en de zoekmachine ziet dit ook, dan kom je hoger in de zoekresultaten. Lukt dat niet, dan koop je een plekje.
Geplaatst in SEO |
Geen reacties »