Nederlands (NL-nl)English (United Kingdom)
Processing Workshop
Written by Felienne Hermans   

Dit verslag is geschreven door Mark Giesen (@markgiesen). Dankjewel!

Op 2 juli kwamen we met een man (en vrouw) of 15 bij elkaar in (voor mij het verre) Breda. We waren daar te gast bij Codecentric en dat is alvast erg goed bevallen. Het eten was fantastisch en zelfs nog warmer dan het weer. Volgens mij was bijna iedereen van Codecentric aanwezig, daarmee heb ik weer veel nieuwe gezichten leren kennen. Eentje bleek zelf een oud collega uit Arnhem en dus kon ik mee terugrijden door het prachtige onweer! Naast de thuisspeler waren er natuurlijk ook de usual suspects en met z’n allen waren we benieuwd naar wat Processing te bieden heeft.


Adriaan Wormgoor kwam ons een inleiding geven in deze ontwikkelomgeving. Weinigen kennen het, maar het is best groot in het gebied tussen technologie en kunst. Daarnaast wordt het regelmatig gebruikt op IT opleidingen om de eerste beginselen van het ontwikkelvak onder de knie te krijgen. Het is namelijk een heerlijke “lik op stuk” omgeving gebleken. Processing maakt het erg eenvoudig om grafisch interessante kunsten te tonen. Je hebt erg snel iets leuks op het scherm. Door een beetje pielen en draaien aan wat variabelen voel je je na een kwartiertje toch al bijna een kunstenaar. Na een uurtje had ik toch al 3 balletjes over het scherm rollen en onderling met lijnen verbonden. Toen we de balletjes onzichtbaar maakten en de achtergrond niet meer verversten bleken we een spirograaf te hebben gebouwd. Adriaan had al wat organische vetplant achtige monsters getoond, die op zo’n zelfde spelende manier tot stand waren gekomen. Dat belooft nog wat als we ons een avondje boos gaan maken hierop. Misschien hebben we die avond de nieuwe van Gogh wel wakker geschud?


Ik spreek denk ik namens allen als ik zeg dat dit vooral leuk was om te doen. Snel resultaat van je ideeën en leuke vormen die als vanzelf ontstaan. Ik snap nu ook wel waarom dit in het onderwijs gebruikt wordt, het is met weinig ervaring en kennis toch al snel leuk. Eerst 500 pagina’s lezen en vervolgens een Hello World bouwen spreekt de gemiddelde 18 jarige toch minder aan. Vanaf september kan ik jullie vertellen of het inderdaad zo goed werkt, ik geef dan het intro vak aan de Hogeschool van Arnhem en Nijmegen en inderdaad met Processing. Dit was dus naast leuk, vooral ook een zinnige kennismaking.

De slides van Adriaan staan hier: http://devnology.nl/images/aw.pdf

 
Domain modelling with the F# type system: Make illegal states unrepresentable
Written by Angelo vd Sijpt   


A review of the Devnology F# Meetup with Scott Wlaschin by Aage ten Hengel

Monday’s meetup focusing on domain modeling with F# was hosted by Infi, at their offices located near the city center of Utrecht. Their kind hospitality, the free pizza and F# stickers got things off to a good start.

Around seven o’clock everybody made their way to the beautiful, old-fashioned lecture hall where Scott would have his talk. After a brief introduction on who the Infi-Team is, Scott began the topic at hand: Domain modeling with F#.

Scott addressed the fundamentals of F# (and functional programming) fast pacing through a couple of slides, but giving room for questions at all times. Scott comes across as a kind, passionate and funny man (“for those who don’t know what a service is, it’s just a microservice without the ‘micro’ in front of it” – addressing the current microservice fad). He has a clear and visual way of explaining what makes functional programming unique.


Functional programming focusses on a few central building blocks: Functions (well, yeah), Composition (chaining functions makes a service, chaining services makes a use-case) and Types, which is the topic of this meetup.

One of Scott’s main points is that Types help you express your domain model in a very concise and explicit way. He has an example of an entire domain model (with about 10 types) on a single slide, as fully functional code. A key point he makes is that you can (and maybe should) type everything; a RegisteredCustomer is something else than a GuestCustomer and this should not be determined by setting (or forgetting to set) a flag on a Customer.

The other main point is that F# allows you to type your domain model in a way so that you could literally could not write incorrect code. He shows a type Payment type which has an Amount field of type PaymentAmount, where the PaymentAmount is of type decimal. At first I thought you could just make the Amount of type decimal, but the way Scott types this model makes sure you can’t accidentally set this field with a value of another type of type decimal. This ability eradicates the necessity of some unit tests and guarantees compile-time correct code.

This was a great talk, despite the 5 min. one-on-one Scott has with one of the audience members, much to the annoyance of some others (for which he apologized afterwards). I’m very much intrigued by F# and functional programming and looking forward to see whether the promises it makes (Conciseness, Rapid development, High Quality software and Fun!) hold up and if I can wrap my brain around it. Some of the tips Scott had I’m even taking back to my cozy OO world.


 
Learn a new language: Pharo
Written by Angelo vd Sijpt   

Dit verslag is geschreven door Kees Kremer (@kremerk). Bedankt Kees!

Learn a  Language: Pharo

Op 1 April mochten we in Arnhem kennis maken met de taal Pharo. Luminis had voor ons haar faciliteiten beschikbaar gesteld.  De meeting werd afgetrapt met pizza en een drankje. 

Daarna begonnen Stephan Eggermont en Diego Lont met de aftrap. Pharo is een open source Smalltalk implementatie met een actieve gemeenschap. Complexiteit van software is een steeds groter probleem, Pharo kan daar een oplossing voor bieden. Het bevat late-binding,  is volledig object georienteerd, gebruikt message passing en heeft goede ontwikkeltooling waarbij de omgeving een constante feedback geeft.

Bij de opdracht die we gingen uitvoeren kregen we direct de  ontwikkeltooling, te zien. De omgeving  was op te starten door het dowloaden van een Pharo-image. Die konden we openen en in dat image zat  zowel het deel van de opgaven als de ontwikkeltooling. We hoefden dus niet een compiler, IDE en opgaven te installeren. Het downloaden van een image voldoet.

De opgave bestond uit het implementeren van “1 euro + 100 cent = 2 euro” . Hiervoor gingen we een test schrijven waarvan het de bedoeling was dat deze ging slagen. Het bijzondere was bij het runnen van de test de Debugger (die ook in het Pharo Image zit) op kwam (1 does not understand: euro) waarna vanuit de debugger de methode euro op getal kon worden gedefinieerd.  Verschillende acties moesten worden uitgevoerd om de test te laten slagen, alles vanuit de debugger. Niet TestDrivenDesign maar DebugDrivenDesign. Blijkbaar kan een debugger hier ook kan worden gebruikt om nieuwe zaken te maken. 

Daarna gingen we op zoek naar mogelijkheden binnen het image. We zagen een deel van het metaprogrammeren, de tooling die de code visualiseert. Daarmee was de  complexiteit van de code in kaart gebracht. We zagen de classbrowser en gingen op zoek en vonden de implementatie van het if statement.

Naast dat we met de taal Pharo kennis maakten, was er ook voldoende ruimte voor discussie en vragen.  Smalltalk is geen mainstream taal, maar in bepaalde hoeken wordt het intensief gebruikt. Zoals plekken waar de software veranderende complexe zaken moet automatiseren  (zoals binnen het bankwezen) of grote database systemen (Gemstone op Pharo).  De Pharo ontwikkelaars gaven aan dat de productiviteit met Smalltalk/Pharo substantieel hoger ligt dan bij andere programmeertalen. Waarna we een discussie hadden over “Stel dat een programmeertaal bewezen efficiënter is  zou management hiervoor durven/moeten/kunnen kiezen?”. Ook hadden we het over de problemen waar we tegen aan lopen, zoals performance bij updaten van grote hoeveelheden gebruikers.  Een leuke levendige discussie.

Deze avond hebben we veel gezien. Het concept van het werken via een image biedt veel voordelen voor een avond zoals deze: iedereen was zo up en running en omdat het image een volwassen ontwikkel systeem aan boord heeft is het eenvoudig om opdrachten uit te werken. Verassend te zien dat hierbij zowel volwassen ontwikkeltooling als alle code beschikbaar is in zo weinig Mb’s.

Voor we het wisten was de avond ten einde. Een geslaagde avond bij Luminis (ze zoeken nog mensen!)

 
<< Start < Prev 1 2 3 4 5 6 7 8 9 10 Next > End >>

Page 1 of 31

Meetings

Pictures

Bekijk alle foto's van Devnology op Flickr.

Why meet up?

Devnology meetings are aimed to bring together passionate developers to exchange ideas and experience, to discuss and network - geek to geek.

About us

We focus on concepts of software development. For new developments we will dig into the underlying principles and concepts and try to place this in a broad perspective of existing platforms and solutions. Read more...