Over Frank-ly

Frank-ly is de corporate weblog van Rhinofly en Tribewise. Twee rockende bureaus uit Utrecht met werelddominatie-ambitie op het digitale gebied.

Waarom?

Met gedeelde kennis wordt iedereen beter – dat was de gedachte in 2002 bij de oprichting van Frank-ly.

Een publieke plek waar iedere collega de gevonden parels van het web kan delen, zorgt voor een collectief hoger kennisniveau, wat weer netjes aansluit bij de ambitie voor werelddominatie.Nu (bijna) 10 jaar later staat die gedachte nog steeds en zijn we met 75 auteurs en meer dan 3200+ artikelen volgens onszelf én de awardshows 1 van de leukste blogs van Nederland.
over Frank-ly

Hieronder vind je alle artikelen van Erik Westra.

Het internet van vroeger met de APIs van nu

5 april 2013 om 15:38 door in Development, Inspiratie

Pas op, dit is een technisch stukje

Het internet zoals we dat nu kennen bestaat uit een setje met afspraken. Deze afspraken zijn vastgelegd in documentjes die ‘Request For Comments’ worden genoemd. Wij nerds noemen dat dus gewoon ‘rfctjes’. Eén van deze afspraken gaat over http://, dat is het stukje wat voor elk www adres staat.

De eerste voorzet voor HTTP is al in 1991 verschenen, dit was versie 0.9. In 1995 is versie 1.0 vast gelegd in een rfc en een paar jaar later (in 1999) is versie 1.1 vastgelegd. En daarna… Nee, dat was het, we gebruiken nog steeds HTTP versie 1.1 en dat bewijst dus  dat ze dat toen eigenlijk heel goed gedaan hebben!

Gratis applicatie om Jira OnDemand en Sladiator te koppelen

17 januari 2013 om 14:00 door in Inspiratie

Sinds kort zijn we aan het proefdraaien met Jira OnDemand. Jira is een bug tracker die we al jaren intern gebruiken. Het voordeel van de OnDemand versie is dat de mensen die het gebouwd hebben (Atlassian) ook zorgen dat het goed blijft draaien. Zij beheren de servers en doen de updates.

Aan al die voordelen zitten natuurlijk ook een aantal nadelen. Om te kunnen garanderen dat Jira goed blijft draaien zit er een restrictie op het gebruik van plug-ins. De allerbelangrijkste plug-ins zijn aanwezig, maar je kunt niet zelf plug-ins installeren.

Voor een aantal projecten gebruiken wij (met de interne Jira) een SLA (Service Level Agreement) plug-in, deze is echter niet aanwezig in Jira OnDemand. Gelukkig kwamen we na een tijdje zoeken Sladiator tegen. Sladiator heeft een API waarmee issues ingeschoten kunnen worden.

Jira OnDemand beschikt over twee handig features die integratie met de buitenwereld mogelijk maakt:

1. Een API – Kan gebruikt worden om informatie van issues op te halen
2. Webhooks – Dit zijn url’s die aangeroepen worden op het moment dat een issue veranderd

1 en 1 is 2 en dat heeft geresulteerd in de Jira to Sladiator applicatie. Dit een een gratis applicatie die gebruikt kan worden om Jira issues naar Sladiator issues te converteren.

De applicatie:

Cursus functioneel programmeren

20 december 2012 om 22:23 door in Development, Inspiratie

Misschien herinneren jullie nog mijn vorige bericht over mijn verbazing dat 26 jaar oud cursus materiaal nog steeds actueel is. Inmiddels heb ik de cursus succesvol afgerond met als bewijs een certificaat!

En ik moet je bekennen dat het geen makkelijk cursus is geweest. Functioneel programmeren bestaat misschien al heel lang, maar ik ben er wel achter gekomen dat mijn hersenen er niet echt voor gemaakt zijn.

Een aantal basisregels voor functioneel programmeren:

  • gebruik geen variabelen
  • gebruik geen loopjes

In mijn baan als programmeur heb ik al heel vaak getypt:


for (var i = 0; i < array.length; i++) {
  var element = array[i]
  element.doeIets()
}

Hetzelfde stukje code zonder variabelen en loopjes zou er dan zo uitzien:

Vroeger: toen de mannen van staal en de boten van hout waren

31 augustus 2012 om 00:15 door in Development, Inspiratie

Ik ben ooit bij Rhinofly begonnen als ActionScript programmeur. Eerst in ActionScript 1 (een soort van JavaScript), toen in ActionScript 2 (een paar nieuwe woordjes die achter de schermen omgezet werden naar ActionScript 1). Op een gegeven moment werd alle kennis die was opgedaan met ActionScript 1 en 2 gebruikt om een nieuwe taal van de grond af aan op te bouwen: ActionScript 3. Omdat bij Rhinofly ColdFusion gebruikelijk was voor interactie met de database heb ik dat er per ongeluk bijgeleerd. ColdFusion is zelf geschreven in Java en daardoor ben ik steeds meer met Java gaan doen.

Op een gegeven moment ontdekte ik dat het eigenlijk niet zo veel uitmaakt welke programmeertaal je gebruikt, er zijn eigenlijk maar twee soorten:

  1. Domain specific languages: talen die gemaakt zijn met een speciaal doel, denk aan SQL, CSS en HTML
  2. General purpose languages: talen die gemaakt zijn om van alles mee te kunnen, denk aan JavaScript, ColdFusion en Java

 

Na deze ontdekking ben ik gaan kijken welke programmeertaal (General purpose language) ik eigenlijk het leukst vond om mee te werken. Hierdoor ontdekte ik dat daar wederom twee soorten van zijn:

  1. Statically typed: talen waarin dingen hetzelfde soort ding bevatten. Stel ik heb een la met het opschrift “pennen” en ik spreek af dat ik er alleen pennen in kan doen, dan zal dat altijd zo blijven.
  2. Dynamically typed: talen waarin dingen mogelijk andere soorten dingen kunnen bevatten. In het geval van de la met het opschrift “pennen” zou ik er prima stiften in kunnen doen, maar ook een pennenbak.

 

Er zijn heel veel discussies gevoerd over welk soort taal beter is. Mijn mening is dat de ‘programmeertaal geschiedenis’ van de programmeur de grootste invloed op zijn mening heeft. In plaats van beter zeg ik dan ook dat ik statische programmeertalen fijner en leuker vind om mee te werken.

Ik zal de rest van mijn zoektocht achterwege laten; uiteindelijk ben ik terecht gekomen bij Scala. Scala is een moderne programmeertaal waar allemaal (voor mij) toffe dingetjes in zitten. Het is een taal waar heel beknopte en expressieve code mee kan worden geschreven. Daarnaast heeft Scala nog een interessante eigenschap, het verbindt twee belangrijke stromingen in het programmeren:

  1. Object oriented programming: Een stijl van programmeren waarin dingen centraal staan
  2. Functional programming: Een stijl van programmeren waarin werking centraal staat

 

De meeste programmeertalen focussen op één van deze stromingen. Scala is één van de weinige talen die beide combineert en waarbij de combinatie ook echt goed werkt.

Dit zorgde bij mij voor nogal wat verwarring aangezien ik programmeren tot op dat punt alleen met een object georiënteerde bril had bekeken. Ik had op eens te maken met een enorme wereld van kennis en technieken die voor mij compleet nieuw was. Gelukkig bestaan functionele programmeertalen al heel lang en leerde ik die wereld langzaam kennen.

Een tijdje geleden ontdekte ik dat er een cursus wordt gegeven door de maker van Scala: Functional Programming Principles in Scala. Voor deze cursus raden ze aan om te zorgen dat je een bepaald beginners niveau hebt en stellen ze een aantal boeken voor. Michel (een collega bij Rhinofly) attendeerde mij op een setje met video’s die gebaseerd zijn op één van die boeken: Structure and Interpretation of Computer Programs

Deze set met video’s zijn eigenlijk klassikale lessen bij MIT die je stapje voor stapje Lisp leren. Maar nog belangrijker dan dat leren ze je de meeste fundamentele concepten van programmeren. En ik moet eerlijk bekennen dat ik hier best wel wat van geleerd heb. Bij de meeste video’s is het niet zo vreemd dat ik iets leer, deze video’s zijn echter opgenomen in 1986!

De docenten hebben nog een lichtblauwe bloes aan (met pennen daarin) en ze schrijven code op één van de vier groene schoolborden! Daarnaast praten ze over het onderwerp met passie en nemen rustig hun tijd om de concepten duidelijk uit te leggen.

Ik had nooit gedacht dat lessen over een onderwerp als programmeren, iets wat zo snel en zo veel veranderd, 26 jaar na dato nog zo actueel kunnen zijn.

Zelf een kijkje nemen?

Video lectures: Structure and Interpretation of Computer Programs

Adobe staakt ontwikkeling flash voor mobiel: slechte stap?

21 november 2011 om 14:12 door in Development

Onlangs kondigde Adobe aan om te stoppen met het ontwikkelen van de Flash player voor mobiele platformen (zie: Adobe stopt met Flash mobiel). Hierbij wordt er gewezen naar Apple, die roet in het eten heeft gegooid door flash niet te ondersteunen op de iPhone. Maar is dit nou wel zo’n kwalijke ontwikkeling?

Voordat mensen bang gaan worden: dit is super positief. Adobe heeft in het verleden meerdere varianten van de flash player gemaakt. Één soort hiervan is steeds geschikt gemaakt voor mobieltjes. Dit betekende dat ze op bepaalde vlakken minder functionaliteit en op andere vlakken wat extra functionaliteit hadden.

Apple maakt ontwikkelaars boos met nieuwe regels

9 april 2010 om 10:43 door in Inspiratie

In de licentie van het nieuwe iPhone OS van Apple staat de volgende clausule:

3.3.1 … Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

Dit maakt het onmogelijk om iPhone applicaties te maken met software als Flash CS5, Unity en Mono. Er zijn ondertussen al applicaties beschikbaar die met deze software gemaakt zijn. De volgende quote geeft het probleem hiervan duidelijk weer:

This could mean that all Flash CS5 exported applications, all Unity applications for iPhone, all Mono applications, and many more would now be in violation of the terms of service.  - Andrew Trice

Een andere quote omschrijft het probleem als volgt:

If this seems like a really nerdy joke (which it could be), try a few thought experiments. What if Ben writes a Flash app, shows it to Amy, who codes it up in Objective-C, compiles it and submits it to Apple? Should it be rejected since it was not “originally written” in Objective-C? If you think Apple’s answer would be “no” — a good guess — then substitute Adobe’s iPhone Packager for Amy. Now should it be rejected according to the rules? What, at the end of the day, makes Amy different from a machine translation tool? (Personally, I’d rather hang out with Amy than with iPhone Packager, but that’s another story.) – Joe Berkovitz

Naast de praktische problemen en onhandigheden die dit oplevert is het idee erachter niet echt iets wat spreekt voor de mentaliteit van Apple. In essentie zeggen ze: wij bepalen welke applicaties op de iPhone beschikbaar zijn (door de controle in de App Store) en we bepalen welke software je gebruikt om die applicaties te maken. In de praktijk komt het er op neer dat wanneer je iets voor de iPhone wilt gaan maken, je een Apple computer moet kopen.

Blijkbaar hadden ze bij Apple voorzien dat dit zou gebeuren. Het volgende staat in de licentie:

10.4 Press Releases and Other Publicity. You may not issue any press releases or make any other public statements regarding this Agreement, its terms and conditions, or the relationship of the parties without Apple’s express prior written approval, which may be withheld at Apple’s discretion.

Ondanks alle commotie gaat het hier om een beta van het iPhone OS, Apple heeft dus nog een kans om de clausules aan te passen voordat het product opgeleverd wordt.

Een aantal links naar berichten van boze en teleurgestelde ontwikkelaars:

Apple Is Being A Dick

Apple F%&c& you!!!

Apple Dev Program takes stand on nature of consciousness

Debatable Future for Flash CS5 iPhone Exporter?

New iPhone Developer Agreement – No More CS5 Compiler

Met z’n allen

26 februari 2009 om 23:35 door in Development

Ik dacht laatst per ongeluk terug aan vroeger, met name aan project genaamd SETI@HOME. Dit was 1 van de eerste en zeker 1 van de bekendste projecten waar mensen online zonder veel moeite kunnen samenwerken. Ze kunnen ‘computertijd’ doneren om te helpen met zoeken naar buitenaards leven. SETI staat voor ‘Search for Extraterrestrial Intelligence’. Er wordt enorm veel informatie verzameld via telescopen en die informatie moet geanalyseerd worden, SETI is een project wat dat doet met behulp van computers over de hele wereld.

Dit principe heet Distributed computing. Toen ik ging kijken hoe het met dat oude (SETI) project was, kwam ik op een pagina met een lijst van soortgelijke projecten. Een aantal van deze projecten sprak me erg aan; ik kan bijvoorbeeld mee helpen met het zoeken naar een medicijn tegen AIDS. Een ander groot project is ‘World Community Grid ‘, wanneer je ‘computer tijd’ doneert aan het World Community Grid kan je mee werken aan projecten die zij voor jou geselecteerd hebben. Een aantal van die projecten:

  • The Clean Energy Project
  • Nutritious Rice for the World
  • Help Conquer Cancer
  • FightAIDS@Home Project

Mee werken aan dit soort projecten is erg makkelijk. Je gaat naar de webpagina van een project, download een programma en installeert het. Verder hoef je niets te doen, alles gaat vanzelf. Wanneer je computer even niets te doen heeft, gaat een pakketje downloaden en analyseren. Wanneer de analyse klaar is stuurt hij het resultaat terug en vraagt hij een nieuw pakketje.

Een belangrijke vraag die vaak gesteld wordt met betrekking tot dit onderwerp is: “Maar is dat dan niet slecht voor het milieu?”. Het klopt dat je computer meer stroom gebruikt wanneer hij daadwerkelijk wat aan het doen is, dit is echter percentueel niet veel meer dan dat hij gebruikt wanneer hij niets aan het doen is. Als je er over nadenkt is het ook een beetje een gekke vraag: als je je zo druk maakt over het milieu, waarom staat je computer dan aan wanneer je er niets mee doet?

Om energie te besparen kun je beter zorgen dat je een screensaver hebt die je monitor uitschakeld, dan bespaar je meer dan dat je zou gebruiken wanneer je mee zou doen aan 1 van de bovengenoemde projecten. En voor de echte volhouders: er zijn projecten als ” The Clean Energy Project”. Dit soort projecten zorgen ervoor dat je in de toekomst niet alleen helpt met het reduceren van energie wat gebruikt wordt door computers, maar ook door andere apparaten.

Dus voor iedereen die wil bijdragen aan de evolutie en het welzijn van de mensheid: doe mee aan distributed computing!

Flash content wordt beter doorzoekbaar

1 juli 2008 om 11:42 door in Design

Adobe heeft vandaag een persbericht naar buiten gebracht waarin verteld wordt dat ze samen met de belangrijkste zoekmachines gaan zorgen dat Flash content beter doorzoekbaar wordt.

Jarenlang was het heel moeilijk om web applicaties gemaakt in Flash doorzoekbaar te maken. Dit initiatief zorgt ervoor dat zoekmachines alle content indexeren. De ontwikkelaars van applicaties hoeven hiervoor niets aan te passen.

Het originele persbericht: http://www.businesswire.com/portal/site/home/permalink/?ndmViewId=news_view&newsId=20080630006649&newsLang=en

Extra informatie: http://www.adobe.com/devnet/flashplayer/articles/swf_searchability.html

Voor de technische mensen: ook alle informatie afkomstig van flash remoting wordt geindexeerd.