DynDaCo

Over

Ik ben Bart Duchesne. Ik schrijf software beroepshalve sinds 1998, het jaar waarin ik DynDaCo oprichtte, en ik doe het nog altijd zelf en even graag.

Het meeste van mijn werk is voor machinebouwers en technische bedrijven — organisaties waar software niet het product is, maar wel datgene waar het product van afhangt. Dat bepaalt hoe ik bouw. Een lijn valt niet stil omdat een uitrol slecht afliep, en een systeem dat het netwerk nodig heeft, is een systeem dat faalt op de dag dat het ertoe doet.

Ik werk in twee ecosystemen. Ruby on Rails, voor bedrijfstoepassingen die jarenlang moeten blijven meegroeien. En .NET, voor de diensten die tegen de installatie aan zitten, waar toestellen onafhankelijk en voortdurend uitvallen en elk toestel op zichzelf moet kunnen falen.

Veel van het werk begint als een vervanging. Legacy-databanken die uitgegroeid zijn tot systemen voor een hele afdeling, mod_perl- en VB6-toepassingen die door één iemand onderhouden worden, hulpmiddelen rond een bestandsformaat dat iemand in 1999 gekozen heeft — software die nog werkt, en net dat maakt vervangen zo lastig. Ik heb genoeg tijd doorgebracht in propriëtaire en verouderde opslagvormen om daar ontspannen in te zijn: PDM- en CAD-databanken, ERP-tabellen, projectbestanden, mailarchieven. De data er ongeschonden uit krijgen is doorgaans het hele werk.

In beide ecosystemen thuis zijn is ongewoon, en dat is bewust. Wanneer één platform van de fabrieksvloer tot een rapporteringsscherm loopt, betekent vlot zijn aan beide uiteinden dat elke laag de runtime kan gebruiken die er echt bij past, in plaats van de runtime die ik toevallig ken.

PostgreSQL, standaard

Zowat alles wat ik bouw bewaart zijn gegevens in PostgreSQL, en niet uit gewoonte. Bijna elk project op deze site leunt op iets dat PostgreSQL kan en een gewone SQL-opslag niet: JSONB die configuratie en berekende scores als bron van waarheid draagt, PostGIS die beantwoordt of een schip binnen een zone ligt als echte geometrie in plaats van een benadering met een kader errond, zoeken in volledige tekst over installaties, en timeseries.

Het praktische voordeel is minder bewegende delen. Een tweede opslag is weer iets om uit te rollen, te back-uppen, te bewaken en consistent te houden — en naar mijn ervaring is ernaar grijpen meestal een teken dat de eerste nooit helemaal begrepen is.

Tot in de installatie

Ik werk ook onder de applicatielaag, aan de automatisatie zelf — vooral Siemens-PLC's en Fanuc-robots. Dat begon met meetsystemen aan het einde van de lijn in de automobielsector, waar de software het tempo van een lopende band moet volgen, en het is sindsdien nuttig gebleven.

Dat telt meer dan het klinkt. De meeste integratieproblemen tussen een fabriek en haar software zijn eigenlijk geen softwareproblemen: het zijn meningsverschillen over wat de installatie effectief kan leveren, hoe vaak, en met welke garanties. Omdat ik de PLC-kant even goed geschreven heb als de applicatiekant, kan ik doorgaans zeggen welke helft van dat gesprek fout zit — en kan ik een aanpassing aan de besturingskant voorstellen in plaats van er in de applicatie voor altijd omheen te werken.

Dezelfde reflex geldt voor verbonden producten in plaats van fabrieksuitrusting. Ik heb de besturingskant van elektrisch laden gebouwd: de digitale meter van een gebouw uitlezen via zijn seriële poort, uitrekenen hoeveel vermogen er per fase echt over is, en dat als OCPP-laadprofiel terugschrijven naar de laadpunten, zodat een wagen zo snel laadt als de aansluiting toelaat zonder iets te doen vliegen. Andere schaal, hetzelfde werk — lees het echte signaal uit de installatie, beslis daaruit, en antwoord in het protocol van de installatie zelf.

Ik neem projecten van begin tot eind op — architectuur, uitvoering, en de uitrolketen die het in productie zet. Ik draag liever het hele traject dan een repository over een muur te gooien. Deze site draait zoals de systemen van mijn klanten: in containers, uitgerold met Kamal, op een server die ik zelf onderhoud.

Open source

resource_form is een Rails-formulierbouwer die detecteert welk CSS-framework een toepassing gebruikt en de bijhorende partials rendert, zodat formulieren declaratief blijven in plaats van frameworkspecifieke opmaak te verzamelen.

DynDaCo BV

DynDaCo staat voor Dynamic Data Consulting. Ik koos de naam in 1998, en hij blijkt het werk beter te beschrijven dan de meeste namen lukt: zowat elk project op deze site is een of andere vorm van data loskrijgen uit een plek waar ze vastzat — een PLC, een propriëtaire databank, een mailbox, een plannenarchief — en ze ergens zetten waar ze bruikbaar is.

Het is een Belgische besloten vennootschap, opgericht in datzelfde jaar. Contracten, facturatie en aansprakelijkheid zitten daar; het werk is van mij.