Multi-threading met Futures

6 January 2012 13:18 Lennaert van der Linden Algemeen, Java

In dit artikel wordt aan de hand van een concreet voorbeeld getoetst of we java applicaties multi-threaded kunnen maken zonder bijkomstige complexiteit te introduceren met behulp van futures.

Enkele jaren terug heb ik voor een klant een functionaliteit om een afbeelding samen te stellen uit deelafbeeldingen gerealiseerd. Ik hanteerde daarbij een implementatie die recht toe recht aan was: de afbeeldingen werden één voor één geladen om vervolgens op elkaar geplakt te worden. De aanpak werkte prima en voldeed aan de performance-eisen. Maar het bleef daarna knagen bij mij… is een efficiëntere manier mogelijk zonder extra (technische) complexiteit te introduceren? Lees verder

Reageer

Komt een man bij de dokter…

28 November 2011 16:32 Niels Talens Algemeen

Komt een man bij de dokter:
“Zeg dokter, kunt u me even Pulsatilla voorschrijven want ik heb last van een gevalletje otitis media acuta. U hoeft niet te kijken hoor. Ik heb het namelijk zelf al uitgezocht op Google. Pulsatilla is het beste wat er is. Ik ga morgen op vakantie dus kunt u het recept nu even uitschrijven?” Lees verder

8 reacties

Agile denken

17 November 2011 14:50 Lennaert van der Linden Agile, Algemeen

We zijn allemaal bekend met ontwikkelmethodieken als Scrum, XP en Crystal Clear, maar het is goed om af en toe stil te staan bij wat de essentie is van agility. En wat we ermee willen bereiken. In dit artikel wordt ingegaan op agile denken en waarom agile meer is dan een verzameling van software ontwikkelmethodieken.

Lees verder

Reageer

Testen is niet voor emo’s

29 August 2011 13:48 Iain Hecker Algemeen

Het schrijven van (unit) tests kan soms erg pijnlijk zijn. De reden is nagenoeg altijd: “You’re doing it wrong!”. Dat meen ik serieus: als iets moeilijk te unit testen is, dan doe je iets verkeerd. Vaak niet in de unit test zelf, maar in de implementatie.

Lees verder

Reageer

Contentmigratie met Drupal

8 August 2011 15:57 Lennaert van der Linden Algemeen, Drupal, Migratie, PHP

De afgelopen weken hebben we onze website vernieuwd. Behalve een nieuw, fris gezicht dat onze nieuwe focus weerspiegelt hebben we ook onder de motorkap wijzigingen gemaakt. Door over te stappen op Drupal 7 kunnen we nu veel eenvoudiger aanpassingen maken in pagina lay-out en pagina inhoud.

Een deel van de content is hierbij herzien, maar een deel van de content moest over en dan het liefst zonder onnodig handwerk. In dit artikel ga ik in op onze aanpak, laat ik de gebruikte import module zien en beschrijf ik hoe het importeren voor ons verliep. Lees verder

Reageer

De zuigkracht van voortschrijdend inzicht

7 July 2011 19:47 Iain Hecker Agile

Veel projectteams strijden tegen het voortschrijdend inzicht van de gebruiker. De ontwikkelaars en diens managers verschuilen zich graag achter de requirements. Staat het niet in de requirements? Dan wordt het niet gemaakt. De originele schatting blijft intact en de deadline kan zo nog steeds gehaald worden. Dit lijkt in eerste opslag eerlijk en terecht, maar niets is minder waar.

Door je krampachtig vast te houden aan het originele plan benadeel je iedereen. Zowel voor de gebruiker als de ontwikkelaar. Sterker nog: Dit kan juist de reden zijn dat het project te laat en over budget wordt opgeleverd. Als het überhaupt opgeleverd wordt.
Lees verder

3 reacties

Programs with Wolves

27 June 2011 14:48 Robbert Brak Agile, Methodieken

Van 12 tot 15 juni was ik bij de SPA Conference 2011, een jaarlijks terugkerende conferentie in Londen over Software Practice Advancement. De sessie die de meeste indruk maakte was getiteld: Wolf Pack Programming. Lees verder

Reageer

Shuhari: de weg naar meesterschap

14 June 2011 12:38 Niels Talens Agile, Methodieken, Scrum

Shu Ha Ri is een manier van denken die gaat over het proces van leren en het zich eigen maken van een kunst of vaardigheid. De naam komt van het Japanse Noh theater en werd door Alistar Cockburn geïntroduceerd als manier van denken over het aanleren van technieken en methodes binnen de software ontwikkeling. In dit artikel laat ik zien dat je met een methode als Scrum deze manier van leren erg goed kan toepassen.

Lees verder

2 reacties

Hippo is going to REST

23 May 2011 12:07 Brian Snijders Algemeen, Java, Liferay

Het koppelen van Hippo en Liferay is al enige tijd een hot-topic binnen Finalist. Verschillende succesvolle pogingen zijn ondernomen en Hippo heeft onlangs Hippo CMS 7.5 uitgebracht. Een van de speerpunten van Hippo CMS 7.5 is de integratie van een REST-api, waarmee de repository uitgevraagd kan worden. Standaard worden er een aantal REST-services meegeleverd en tevens wordt uitbreiding van deze REST-api met eigen REST-services ondersteund. Zo kun je op een vrij eenvoudige manier de repository via REST ontsluiten!

Lees verder

Reageer

Externe DSLs parsen met Scala

19 May 2011 22:13 Rob Schellhorn Scala

Domein specifieke talen zijn belangrijk, ze leggen de brug tussen programmeur en domein expert. Interne DSLs draaien binnen een gasttaal en zijn daardoor vaak snel te bouwen, de toolset van de gasttaal kan immers gebruikt worden. Het resultaat is vaak een bibliotheek. Mooie voorbeelden zijn Scala’s Actor Framework en de Hibernate Criteria API. Dat de DSL binnen een gasttaal moet draaien is ook een nadeel, je krijgt immers ook de syntax regels opgelegd. Externe DSLs hebben dit nadeel niet, maar de tools om iets zinnigs met de geschreven code te doen zijn er niet en moeten dus gemaakt worden. Scala biedt een mooie interne DSL om de code te interpreteren: het Parser Combinator framework.
Lees verder

Reageer

Top Tien Test Tips

16 May 2011 17:21 Iain Hecker Algemeen, Methodieken, Software beheer, Testen

Bij programmeren is het een vereiste dat je de code die je schrijft goed test. Dat weten de meeste programmeurs ondertussen wel. En omdat het testen met de hand te veel tijd kost, willen we dit graag automatiseren. Daarom schrijven we naast de productiecode nog meer code die de andere code uitprobeert en kijkt of het nog steeds werkt.

Lees verder

Reageer

Implicits: Zet de API naar je hand

26 April 2011 12:56 Rob Schellhorn Scala

Een goed geschreven Scala API leest alsof het onderdeel is van de taal. Dankzij een aantal technieken kunnen heel krachtige constructies geschreven worden. Ook bestaande (Java) APIs kunnen op deze manier omgetoverd worden in pareltjes. In deze blog wordt gekeken hoe de API van Vaadin, een framework ontworpen voor Java, verbeterd kan worden met Scala aan de hand van een stukje voorbeeld code.
Lees verder

Reageer

Stop met daily stand-ups!

28 March 2011 13:54 Iain Hecker Algemeen, Methodieken, Scrum

Tenminste, als je deze op de typische Scrum-manier invulling geeft. Denk eens serieus na over de informatie die in een typische daily stand-up wordt meegedeeld: Wat heb je gisteren gedaan? Wat ga je vandaag doen? Heb je nog blokkades? We zijn verteld dat we deze drie vragen moeten beantwoorden tijdens de daily stand-up. We moeten ook allemaal even gaan staan zodat het niet al te lang duurt, want stel je voor dat er wat nuttigs verteld wordt!

Lees verder

5 reacties

TDD en Externe API’s

21 March 2011 14:37 Iain Hecker Algemeen

Koppelingen met externe resources zijn erg lastig om te ontwikkelen. Zeker als je, zoals ik, een TDD fan bent. Dat komt omdat TDD van je verwacht dat je weet wat je doet voordat je het doet. Dat is vaak niet het geval wanneer we een koppeling maken met een dienst die we niet kennen. Welke requests moet ik maken? Welke gegevens krijg ik terug?

En daar blijft het niet bij. Tests tegen een externe API zijn traag en breekbaar. De data moet over het internet komen en verandert continu. Erg vervelend. Gelukkig is er een oplossing: VCR. De gem VCR kan http requests opnemen en later afspelen. Geheel automatisch.

Recentelijk hebben we VCR gebruikt om integratie met een aantal externe services helemaal TDD te ontwikkelen. Ik zal hier een voorbeeld geven hoe je TDD kan gebruiken om externe API’s te ontdekken en tot een implementatie kan komen.

Lees verder

2 reacties

Liferay en wat doen wij ermee?

21 March 2011 10:03 Jurn de Ruijter Java, Liferay

“Liferay delivers open source enterprise solutions for portals, publishing, content and collaboration.”

Een zeer beknopte en algemene beschrijving van een product met vele mogelijkheden en wat op verschillende manieren kan worden ingezet binnen een organisatie. Veel interessanter is eigenlijk, wat heeft Finalist al gedaan met Liferay?

Aan de hand van een aantal recente en succesvolle Liferay implementaties, zal ik per case de belangrijkste Liferay functionaliteit toelichten:

Lees verder

Reageer