TextPrint

maandag 28 februari 2011


In 2000 werkte ik als software ontwikkelaar in een project waar ik voor code-reviews regelmatig afdrukken moest maken. Het ergerde me dat ik niet beschikte over een programma waarmee ik de code netjes op papier kon krijgen. Met Notepad kon je weliswaar een afdruk maken, maar op de A4-tjes zweefde de code onsamenhangend in een grote zee van wit. Naast een rommelige lay-out, die het achterliggende ontwerp verduisterde, trof me direct de grote mate van papierverspilling. Ik was zeker niet de enige die op deze manier papier misbruikte. Bijna alle collega's hadden dezelfde gewoonte.

Op het internet vond ik het programma TextPrint gemaakt door Örjan Råberg. TextPrint is een kleine Windows-toepassing bedoeld voor maar één doel: het afdrukken van tekstbestanden. Door tal van instellingen, heb je nauwkeurige controle over de lay-out. Je kunt bijvoorbeeld meerdere pagina's op één vel papier afdrukken en regelnummers toevoegen. Örjan ontwikkelde niet meer actief aan het programma en droeg het project aan Datraverse over.

Het is 2011. Ik werk als software ontwikkelaar in een project waar we voor code reviews af en toe afdrukken moeten maken. Het valt me op dat een collega hiervoor Notepad gebruikt.

Sinds 2000 wordt TextPrint door Datraverse uitgebracht. Het werkt onder de nieuwste Windows versies en is als freeware te downloaden.

EekBoek

maandag 31 januari 2011


In 2006 was de maat vol. Na jarenlang enkele honderden euro's per jaar voor onderhoud aan Exact betaald te hebben, zonder er noemenswaardige services voor terug te krijgen, gingen we op zoek naar een ander boekhoudpakket.

Het was niet zozeer de financiële prikkel, maar vooral de irritatie over een gesloten en topzwaar software bastion, met heel veel ongebruikte toeters en bellen. Ook het feit dat extra software nodig was om de meest elementaire financiële gegevens (onze eigen gegevens!) uit Exact te exporteren, naar een formaat dat het pakket van onze accountant begreep, gaf niet echt een warm gevoel.

Wat hadden we eigenlijk nodig? In ons back-office was in de door onszelf ontwikkelde web-applicatie al een hoop geregeld. Alle relatie-, product-, verkoop- en licentie-gegevens worden vastgelegd. Ook worden facturen, herinneringen en licentie-verklaringen gegenereerd als PDF document en gemaild naar onze klanten. Het enige dat ontbrak was een pakket voor de meest elementaire boekhoudfuncties: grootboek, dagboeken, balans, verlies en winst rekening en BTW aangifte.

Verschillende pakketten hebben we vergeleken en getest. Uiteindelijk vonden we een fantastisch Open Source boekhoudpakket van Nederlandse bodem: EekBoek.

EekBoek beantwoordt aan al onze wensen. Het is een no-nonsense softwarepakket dat boekhouden tot de essentie terugbrengt. Het is verfrissend eenvoudig in z'n aanpak. Namelijk, alle EekBoek opdrachten worden uitgevoerd met een scriptable command line interface (CLI) waarin, geheel in de Unix filosofie, platte tekstbestanden als invoer en uitvoer dienen.

Enerzijds worden financiële mutaties in de CLI via een tekstbestand aangeboden. Anderzijds krijg je de gegevens via dezelfde CLI weer in mooie rapporten als uitvoer terug, naar keuze in CSV of HTML formaat, of als platte tekst. Overigens, er is een grafische interface, maar die gebruiken we niet: we hebben de HTML uitvoer van EekBoek eenvoudig geïntegreerd in het PHP framework van onze web-applicatie.

Vanuit onze verkoopgegevens genereren we een mutatie-bestand in EekBoek formaat. En ook de bankmutaties, die we downloaden bij onze bank, transformeren we met een sed script tot een EekBoek mutatie-bestand voor het bankdagboek. De bulk van de mutaties kunnen we op deze manier eenvoudig verwerken, en er resteren slechts een beperkt aantal handmatige acties. Al met al levert dit een enorme tijdsbesparing op in vergelijking met de wijze waarop we in Exact gedwongen waren te werken.

O ja, EekBoek is gebouwd in Perl en werkt net zo gemakkelijk onder Linux, Mac OS of Windows. Door het gebruik van een transactionele database, naar keuze PostgreSQL of SQLite, is bovendien de integriteit van de gegevens netjes gewaarborgd.

Inmiddels werken we 4 jaar tot volle tevredenheid met EekBoek. De accountant kan voor zijn jaarverslag prima uit de voeten met de door EekBoek gegenereerde CSV exports. En zelfs de Belastingdienst was tevreden bij de laatste inspectie.

EekBoek heeft zich als stabiele oplossing inmiddels ruimschoots bewezen, en daarom gaan we vol vertrouwen deze maand met EekBoek een nieuw boekjaar in.

Hardware

vrijdag 31 december 2010


Datraverse's back-office draaide tot voor enkele maanden geleden naar volle tevredenheid op een 10 jaar oude server met de nieuwste Debian distributie. Maar na vele jaren trouwe dienst maakte een defecte hard disk een abrupt einde aan de snorrende metgezel in de hoek. Hoe nu verder? Weer investeren in hardware? Na vele alternatieve beoordeeld te hebben, is de keuze gevallen op een Linux Virtual Server bij Linode. Linode biedt een fantastisch service voor een zeer redelijke prijs. De Linode van Datraverse staat in London en beschikt over 512MB RAM, 16GB storage. Voor $19.95 per maand mag er 200GB doorheen gejaagd worden, een oceaan aan bytes die bij lange na niet wordt verbruikt. Natuurlijk is er volledig root access, en dus alle vrijheid om de Linode naar eigen inzicht in te richten. Namelijk: Ubuntu 10.04 LTS Server met Apache, MySQL en PHP. De Linode service is zeer betrouwbaar (na 170 dagen non-stop draaien nog geen downtime gehad), er is veel documentatie, en er is een prachtige web-based Linode manager om de virtuele machine te beheren. Naast Datraverse's administratieve back-office is ook Subversion en Mantis geïnstalleerd. De laatste loot aan de stam is Datraverse's Support applicatie. Omdat klanten zich hier met userid en wachtwoord aanmelden werkt de applicatie over een secure verbinding met een COMODO SSL Certificaat: https://secure.datraverse.nl/support/

Het virtuele is inmiddels ook doorgedrongen op de desktop. Na een systeem crash van Windows op een 4 jaar oud systeem was ook hier de vraag "hoe nu verder?". Het antwoord is een riante PC geworden met Ubuntu 10.10 Desktop Edition 64-bit als host OS en diverse VirtualBox instanties met (Windows) test systemen. Zo zijn alle tools voor het dagelijkse werk geconsolideerd op een enkel systeem. Voor de technici, dit zijn de hardware specificaties van een feilloos werkend Ubuntu systeem:
Moederbord: MSI P55-GD65
Processor : Intel i5-750 Quadcore 2.66GHz 4 x 2mb
Geheugen : 8Gb (2x4Gb) DDR3 - 1333 MHz
Video : MSI N250GTS Twin Freezer 1Gb DDR3 DVI (Nvidia GeForce GTS 250)
Audio : Realtek® ALC889 (True Blu-ray Audio) / ALC888S VC2
LAN : Realtek® RTL8111DL Dual LAN (10/100/1000)
DVD : Samsung SH-S223F 22x Dual Layer Sata
HDD : 500Gb/16Mb Sata
OS : Ubuntu 10.10 Desktop Edition 64-bit
Naar volle tevredenheid werkt Datraverse nu al enkele maanden met het hoofd in de wolken. Als MVO Partner hebben we weer een stapje gemaakt. Hardware wordt efficiënter gebruikt en daarmee de belasting op het milieu gereduceerd.

Image “labyrinthine circuit board lines” by quapan / CC BY

PaperCut en Pcounter

dinsdag 30 november 2010


Tien argumenten om te kiezen voor PaperCut.

  1. Pcounter gebruikt tekstbestanden om afdruk-historie op te slaan, en slaat het saldo van gebruikers op in ouderwetse dBase bestanden. PaperCut gebruikt een moderne relationele database. U kunt kiezen uit MS SQL Server, Oracle, MySQL, PostgreSQL of Apache Derby.
  2. Pcounter gebruikt platform afhankelijke GUI applicaties. PaperCut is volledig web-gebaseerd.
  3. Pcounter heeft voor iedere Windows print queue een handmatig geïnstalleerde poort monitor nodig. PaperCut ziet automatisch elke print queue die aan een print server wordt toegevoegd.
  4. Pcounter biedt standaard geen web print functie voor remote werkstations of voor draadloze laptop gebruikers. PaperCut bevat deze functie standaard. Pcounter gebruikers kunnen PrinterOn kopen om deze functie te krijgen, voor de prijs van circa €700 per printer!
  5. Pcounter ontwikkelt niet haar eigen applicaties die embedded op een Multi-Functional Printer draaien. PaperCut ontwikkelt al haar embedded applicaties zelf. PaperCut ondersteunt meer MFP fabrikanten met embedded software dan Pcounter.
  6. Pcounter ondersteunt alleen Windows en NetWare print servers. PaperCut ondersteunt Windows, Mac, Linux en Novell OES print servers.
  7. Pcounter biedt pop-up boodschappen op Windows, PaperCut biedt dezelfde functionaliteit op Windows, Mac en Linux.
  8. Pcounter vereist een licentie voor elke print server. Met PaperCut kun je een onbeperkt aantal print servers gebruiken.
  9. Pcounter volgt standaard geen locale printers, dit is een extra optie. PaperCut volgt standaard een onbeperkt aantal locale printers.
  10. PaperCut geeft vrije toegang naar haar openbaar gepubliceerde API, met Pcounter heb je een licentie nodig om toegang te krijgen tot haar Pcounter Pro API, of moet je de Custom Data Kit (CDK) aanschaffen.
Image “Calculator” by Ansik / CC BY

ITS Fast Release Terminal voor PaperCut MF

zondag 3 oktober 2010

De ITS Fast Release Terminal integreert twee populaire PaperCut MF functies. Namelijk, Secure Printing met Smartcard authenticatie bij de printer, en Follow-me Printing waarbij de gebruiker afdrukt naar een virtuele queue om vervolgens bij een willekeurige printer zijn afdrukopdrachten vrij te geven.

Hoe werkt het voor de gebruiker?
  1. Het unieke nummer van de smartcard is in PaperCut gekoppeld aan de identiteit van de gebruiker.
  2. De gebruiker drukt af naar een hold/release queue of een virtuele Find-me queue.
  3. De gebruiker zwaait met zijn kaart over de ITS Fast Release Terminal naast de printer van zijn keuze.
  4. Als de kaart geldig is, worden al zijn opdrachten vrijgegeven en afgedrukt. Als bevestiging knippert er een groen lichtsignaal op de terminal.
Hoe werkt het achter de schermen?
  1. ITS Fast Release Terminals zijn naast printers opgesteld en verbonden met het Ethernet Network.
  2. Elke terminal heeft een eigen IP adres.
  3. Terminals zijn door beheerders gekoppeld aan een print queue in de PaperCut Admin Web Interface.
  4. Het unieke nummer van een gelezen Smartcard wordt opgezocht in PaperCut’s database en de identiteit van de gebruiker vastgesteld (gegevens in de database worden periodiek gesynchroneerd met Active Directory of LDAP).
  5. De opdrachten van de gebruiker worden voor afdrukken vrijgegeven.

pdfFactory en FinePrint ook onder Citrix als shared printer beschikbaar

vrijdag 3 september 2010


Als u de Server Edities van pdfFactory en FinePrint installeert onder Citrix of Windows Terminal Server (WTC) dan kunnen gebruikers die niet via Citrix of WTC werken, pdfFactory en FinePrint gewoon als shared printer installeren. Ook in deze situatie blijft u als beheerder dus vanuit één centraal punt het overzicht houden.

De Agile Organisatie

woensdag 4 augustus 2010
agile (bijvoeglijk naamwoord) - beweeglijk
able to move quickly and easily:
“The antelope is very agile.”

Als software ontwikkelaar gebruik ik de beste methoden en technieken om een product te maken met een zo hoog mogelijke kwaliteit. Mijn werk is vaak een intensief balanceren tussen deadlines, budget en wensen. Maar vrijwel altijd lukt het om het evenwicht te bewaren en is de klant tevreden. Echter, soms lukt dit onvoldoende en ben ik ontevreden. Het resultaat valt tegen. Er had zoveel meer ingezeten. Waar ligt dat aan? Wat geeft het ene project de flow waardoor het succesvol is, en waarom lukt dat bij andere projecten niet? Ik zal u een geheim verklappen. Al mijn succesvolle projecten van de afgelopen 25 jaar volgden een aanpak die al een tijd als Agile Software Development in de belangstelling staat.

Het Agile Manifesto vat de aanpak kort en bondig samen in een viertal uitgangspunten:

  1. Individuen en interactie zijn belangrijker dan processen en gereedschappen.
  2. Werkende software is belangrijker dan uitvoerige documentatie.
  3. Samenwerking met de klant is belangrijker dan onderhandelen over een contract.
  4. Reageren op verandering is belangrijker dan een plan volgen.
Inderdaad, in mijn succesvolle projecten maakten we onze eigen regels en afspraken, en kozen we de gereedschappen die de beste bijdrage leverden aan het gewenste resultaat. We brachten onze inzichten zo snel mogelijk als testbare software in praktijk, en konden daardoor tijdig corrigeren en nieuwe inzichten oppakken. We kregen allemaal de kans om creatief te zijn, en konden open, eerlijk en op gelijke voet met elkaar oplossingen uitwerken. Er was geen tegenstelling tussen opdrachtgever en opdrachtnemer. We werkten zij aan zij samen onder het motto “getting the job done”. En, niet het onbelangrijkste, we hadden allemaal veel plezier in ons werk.

Helaas, in mijn minder succesvolle projecten werden we beperkt door conventionele (ambtelijke) organisaties die qua software ontwikkeling nog steeds leunden op de waterval methode. In een typisch waterval project zoekt een gestage stroom van documenten haar laagste punt van Informatie Analist, via Functioneel- en Technisch Ontwerper, naar de Programmeur, die de software mag bouwen. Fouten in het ontwerp die de programmeur ontdekt moeten in een moeizame weg omhoog bij de functionaris met de juiste autorisatie (dat klinkt alweer heel ambtelijk) terecht komen, waarna de oplossing weer naar beneden sijpelt. U voelt het al: dit is een tijdrovend en zeer foutgevoelig proces, dat niet zelden leidt tot forse overschrijdingen van budget, deadlines en frustratie-tolerantie.

Waarom bestaan er nog steeds organisaties die projecten zo dwingend de waterval insturen? Gebrek aan kennis kan nauwelijks een verklaring zijn. Ook in de meest ambtelijke organisaties laten mensen zich op congressen en seminars informeren over de best practices van Agile en vergelijkbare methoden van Software Development.

Kennelijk is men onmachtig om het geleerde in praktijk te brengen, omdat het idee niet past op het fundament waarop hun organisatie is ingericht. Maar ondersteunt dit fundament de organisatie wel optimaal? De wereld verandert continue, en organisaties worden continue uitgedaagd om snel en adequaat te reageren. Misschien zijn zij daarom juist wel meer gebaat bij een flexibel skelet dan bij een rigide fundament. Een skelet dat hen in staat stelt om van hun plaats te komen en soepel en doelgericht te bewegen. Inderdaad, Agile dus.

-- Rijk Ravestein