Blog over (financieel) bewust leven

Label: javascript

Naar een Meerjarenspreadsheetstrategie

Soms moet je dingen even de tijd geven. Zeker als ze groot en ingewikkeld zijn en impact hebben. De vraag ‘hoe verder met mijn spreadsheets‘ valt in die categorie. Voor mij in elk geval wel. <Opa-Geldnerd-alert>Dat is misschien een beetje tegendraadse mening in de huidige gejaagde en oppervlakkige samenleving</Opa-Geldnerd-alert>.

In mijn hoofd werden de visioenen steeds woester. Een aanvulling op GnuCash moest ik bouwen, voor personal finance doeleinden, met opties voor het bijhouden van de administratie, je hypotheek, je beleggingen, en alle rapportages die ik ook in mijn spreadsheets heb. Leuk idee. Maar weinig realistisch. De benodigde programmeervaardigheden leren gaat nog wel lukken. Maar zoiets bouwen is een megatraject, en zoiets onderhouden is een levensvervulling. Niet mijn levensvervulling.

Doorgaan met de huidige spreadsheets?

Tsja, die eeuwige twijfel. Er zitten honderden uren programmeerwerk in mijn spreadsheets. Ze zijn helemaal afgestemd op mijn situatie en het stelsel is, sinds ik mijn integrale financiële dashboard heb, ook wel een beetje ‘af’. Natuurlijk kan het altijd mooier, moet er af en toe een foutje worden opgelost of iets worden omgebouwd als een bank of broker iets verandert, en zal ik zeker grafiekjes en indicatortjes bij blijven bouwen, maar er ‘staat’ wel iets.

Tegelijkertijd, die twijfel is er niet voor niets. Visual Basic is verouderd. Microsoft werkt al jaren aan een Javascript API maar dat gaat erg traag. Dat zou ook weer betekenen dat ik alles moet ‘verherbouwen’. En bottom line, ik wil gewoon van Office af, en waarschijnlijk ook van Windows. Het is een kwestie van tijd voordat we die allebei alleen nog maar tegen een maandelijks of jaarlijks abonnementstarief kunnen gebruiken, terwijl er uitstekende gratis alternatieven zijn. En Microsoft blijft een van de techgiganten. Eén van de uitgangspunten van Operatie Data Footprint is dat ik daar zo min mogelijk van afhankelijk wil zijn en zo min mogelijk informatie mee wil delen.

Gewoon doorgaan met mijn huidige spreadsheets is dus uitstel van het onvermijdelijke. En blijft wat mij betreft het minst wenselijke scenario.

Maar wat dan?

Zoals Nerd01 terecht opmerkte in de reactie bij mijn vorige post over dit onderwerp zijn bijna alle oplossingen voor mijn probleem gevoelig voor een of andere vorm van lock-in. Zodra je speciale producten gebruikt, zelfs al zijn ze open-source, zit je er aan vast. Migratie kost dan veel inspanning en kan zelfs problematisch zijn als je niet (meer) kunt beschikken over de brondata. Dat is bij mij gelukkig niet het geval. Ik heb de brondata van al mijn banktransacties en beleggingstransacties sinds 2000

Bovendien heb ik de afgelopen jaren ook mijn spreadsheets aan elkaar gekoppeld. Dat maakt het gebruikersgemak groter maar een oplossing voor mijn probleem ingewikkelder. En dan kun je, zoals terecht opgemerkt in de reacties, twee dingen doen: elke 5 à 7 jaar op het op dat moment courante pakket overstappen (scenario ‘Migreren’), en je werkwijze op die oplossing aanpassen. Of je eigen oplossing bouwen met een courante programmeeromgeving (scenario ‘Bouwen’).

In elke 7 jaar overstappen heb ik geen zin, en het aanpassen van mijn werkwijze aan de beperkingen van een pakket is al helemaal niet aan mij besteed. Dus kom je bij optie 2. Mijn eigen oplossing bouwen. Wat ik feitelijk nu ook al doe met Excel en Visual Basic. Maar wat overeind blijft staan zijn mijn bezwaren tegen Excel en Visual Basic. Ik wil overstappen op een open-source oplossing en een programmeertaal die courant zijn.

Opties

GnuCash of LibreOffice als basis. Daar komt het dan op neer. Skrooge en KMyMoney, die ik noemde in mijn vorige blogpost, zijn kant-en-klare pakketten die eigenlijk bij scenario Migreren horen. En die vallen dus af.

Overstappen naar LibreOffice

Hier ben ik al eens aan begonnen. Ook dit betekent het volledig verherbouwen van mijn spreadsheets. Waarbij ik wel opties heb, want LibreOffice biedt verschillende mogelijkheden aan. Er is een eigen BASIC variant, maar die is ook verouderd en minder gebruiksvriendelijk en doorontwikkeld dan Visual Basic van Microsoft. Dat is dus niet echt een wenselijk alternatief. Maar je kunt je macro’s ook bouwen in JavaScript en Python. Twee van de populairste programmeertalen ter wereld. En dat biedt daarna ook wel weer andere mogelijkheden. LibreOffice bestaat sinds 2010, toen het werd afgesplitst van OpenOffice. Dat bestaat al sinds 2002, toen versie 1.0 door Sun Microsystems open-source verklaard werd in een poging om te concurreren met Microsoft Office.

Overstappen naar GnuCash

GnuCash bestaat sinds 1998. De ontwikkelaarsgroep achter GnuCash een van de grootste open-source teams ter wereld. Het is een keurig boekhoudpakket volgens het dubbel boekhoudsysteem. Maar het biedt maar een deel van de functionaliteit die ik zoek, die ik nu heb.

Eisen en Wensen

Nog even terug naar mijn eisen aan de oplossing. Ik wil mijn beleggingen, hypotheek en administratie in één integrale omgeving kunnen voeren. Met automatische importmogelijkheden van banktransacties en aandelentransacties, en mogelijkheden om een kasboek en creditcard bij te houden. Mijn huidige data wil ik migreren. Minimaal wil ik de functionaliteit van mijn huidige spreadsheets handhaven, en daar op voort kunnen bouwen.

Er moeten voldoende rapportagemogelijkheden zijn, liefst kan ik zelf rapportages en grafieken inrichten. Die ik ook op mijn blog kan gebruiken. En idealiter is de software open-source. De gegevens en idealiter ook de oplossing wil ik in eigen beheer, niet in de cloud. En de software moet beschikbaar zijn op verschillende platformen, in elke geval Windows 10 en Linux. Voor mijn eigen situatie zou de software moeten kunnen werken met de Rabobank, ABN AMRO, Binck en Nationale Nederlanden. Idealiter is er een Nederlandse versie, maar dat hoeft niet.

Daarnaast is mijn huidige systematiek erg afhankelijk van de rapportages die ik kan downloaden. ING beleggingen is al gestopt met het bieden van die optie, hoorde ik onlangs van een (teleurgestelde) bloglezer. Binck doet dat gelukkig nog wel. Rabo, ABN, en Binck: als jullie hiermee stoppen ga ik weg! Eigenlijk wil ik in mijn nieuwe oplossing dus langs verschillende kanalen de gegevens kunnen importeren.

Overwegingen

Er zijn altijd onzekerheden als je een meerjarenstrategie kiest. Hoe lang bestaan LibreOffice en GnuCash al en nog? Wat gaat Microsoft doen met Office, Windows 10 en Visual Basic en wanneer? Allemaal dingen die ik me al jaren afvraag, en die ik niet weet. Nou zul je natuurlijk net zien dat al die vragen over een week beantwoord worden, maar toch…

Zowel GnuCash als LibreOffice vragen veel werk om te voldoen aan mijn wensen. LibreOffice kiezen komt neer op het herbouwen van mijn spreadsheets. GnuCash komt neer op het kiezen en inrichten van een echt boekhoudsysteem. Beiden vragen programmeerwerk. Die programmeerinspanning schat ik voor GnuCash zwaarder in dan voor LibreOffice.

Als programmeertaal heb ik de keuze tussen Python en JavaScript. Tsja. Daar worden ideologische oorlogen over gevoerd. Een onmogelijke keuze. Ik lees wel dat Python wordt omschreven als makkelijker te leren. GnuCash en Python zijn samen bruikbaar, LibreOffice werkt met JavaScript en Python. En met LibreOffice Basic, maar dat is zelfs een stap achteruit ten opzichte van Visual Basic. Python wordt ook beschouwd als beste taal voor kunstmatige intelligentie, een thema waar ik mij ook nog eens meer in wil verdiepen..

Tsja, en mijn droom van een aanvulling op GnuCash , voor personal finance doeleinden, met opties voor het bijhouden van de administratie, je hypotheek, je beleggingen, en alle rapportages die ik ook in mijn spreadsheets heb? Hoe realistisch is dat?

Meerjarenstrategie

Op dit moment lijkt het beste scenario: Het opnieuw opbouwen van mijn spreadsheets in LibreOffice, waarbij ik Python gebruik als programmeertaal. Dat wordt een project van jaren. Maar dat was het opbouwen ook. En het is wel leuke tijdsbesteding, vind ik. De naam Geldnerd draag ik immers niet zomaar.

Zomaar wat losse gedachten tot slot…

Uiteraard is er ook een vierde scenario, namelijk stoppen met mijn spreadsheets en stoppen met het bijhouden van mijn financiën. Maar dat voelt zo tegennatuurlijk, dat ga ik zeker niet doen.

Iemand vroeg mij overigens waarom ik zoveel tijd aan programmeren besteed. Simpel, twee redenen. Ik ben dol op puzzelen. programmeren lijkt daar ook op, en is nuttiger dan sudoku’s invullen. En als ik mijn tijd besteed aan programmeren, voorkom ik daarmee dat ik steeds nieuwe beleggingstransacties uitvoer die alleen maar mijn rendement om zeep helpen.

Misschien ga ik GnuCash toch wel gebruiken voor onze gezamenlijke administratie. Gewoon omdat het kan. Want een echte boekhouding is wél leuk.

En ik word getriggerd door de slotopmerking van Nerd01: Voor iemand die Visual Basic al leuk vindt moet Python zoiets zijn als overstappen van een Fiat in een Rolls Royce. Daar verheug ik mij op!

Wat zou jij kiezen?

Programmeer-seizoen is begonnen!

Seizoenen zijn toch een prachtig iets. In het Verre Warme Land waren ze er niet echt. Het was er 365 dagen per jaar zonnig en warm. Ja, er waren maanden waarin het nog warmer was dan normaal, er waren maanden met meer of minder wind, en er waren zelfs maanden met iets meer kans op regen dan normaal, maar dat was het dan ook wel. Nee, dan onze Nederlandse seizoenen! Alhoewel ze dit jaar natuurlijk wel een beetje in de war zijn geweest, met de lange, warme en vooral droge zomer. Die ook nog eens duurde tot ver in oktober!

Wisseling van seizoenen is altijd aanleiding voor veel discussie. Je houdt juist wél van de lente / zomer / herfst / winter *, of je houdt juist absoluut niet van de lente / zomer / herfst / winter * (* = doorhalen wat niet van toepassing is). Er horen rituelen bij, zoals de voorjaarsschoonmaak, of het wisselen van de zomer- en winterkleding. We eten verschillende dingen (stamppot, jummie!). Kortom, er verandert veel in onze leventjes bij de wisseling van de seizoenen.

De afgelopen maanden heb ik me natuurlijk ook beziggehouden met een ‘zomerproject’: de aanleg van onze tuin. Daar is toch best veel tijd in gaan zitten. En ook op mijn werk was (is) het een drukke tijd. Dat betekent dat andere hobby’s eronder geleden hebben.

Mijn postzegelverzameling is bijvoorbeeld niet bijgewerkt. En ook mijn sigarenbandjesverzameling loopt hopeloos achter.

Zo heb ik deze zomer nauwelijks naar mijn spreadsheets omgekeken. Ja, ik heb de beleggingsrapportage wekelijks gedownload en verwerkt. En eens in de paar weken de financiële administratie. Maar er is nauwelijks geprogrammeerd. Terwijl ik zoveel ideeën had en heb. Mijn integrale dashboard is nog steeds geen stap verder. En ook mijn beleggingsspreadsheet is dringend aan een grote onderhoudsbeurt toe. Ik heb allerlei ideeën voor nieuwe grafieken, functies en rapportages. Die heb ik allemaal verzameld, als ik een idee heb dan schrijf ik het op. Die lijst is inmiddels behoorlijk lang.

Het enige programmeerprojectje dat ik wel heb afgerond, is de eerste versie van mijn FIRE Calculator voor Loonslaven. Maar ook daarvoor heb ik nog een stapeltje e-mails en berichtjes met verzoekjes tot verbetering/verandering en foutmeldingen. Sorry, beste lezers die de moeite nemen om te reageren! Maar ik ben er nog niet aan toegekomen.

Maar er is hoop. Want nu de bladeren vallen en het buiten kouder wordt, is het weer tijd voor binnenactiviteiten. Oftewel: het programmeerseizoen is weer begonnen. Waar de een het heerlijk vindt om onder een dekentje met een kop thee voor de televisie te zitten, of een boekje te lezen, vind ik het daarnaast ook heerlijk om me een aantal uren vast te bijten in een puzzel. Oftewel: al die ideeën te vertalen in programmacode die werkt. Daarnaast heb ik ook nog steeds mijn voornemen om JavaScript te leren, daar wil ik dit komende programmeerseizoen ook mee verder. En ook Python wil ik uit gaan proberen. Ik heb er zin in!

Wat verandert er bij jou bij de wisseling der seizoenen?

Is er toekomst voor mijn administratie?

Sinds 2003 gebruik ik Excel om mijn financiën en beleggingen bij te houden. En sinds 2013 zijn mijn spreadsheets uitgebreid met macro’s om zoveel mogelijk handmatig werk weg te automatiseren. Kan ik zonder? Vast wel. Maar ik WIL niet zonder. Het geeft me rust om te weten hoe ik er financieel voor sta, en ik hou van het ‘puzzelen’ als ik weer een nieuwe macro of functie uitwerk. Zonder de spreadsheets zou Geldnerd er nooit geweest zijn.

Ik heb dus een afhankelijkheid van Microsoft. Visual Basic, de macro-programmeertaal, is al ruim 25 jaar oud. Tot en met Office 2016 wordt dat keurig ondersteund. Heel veel organisaties gebruiken spreadsheets met ingewikkelde, over vele jaren opgebouwde, macro’s voor bijvoorbeeld planning en rapportage. Die zouden niet blij zijn als Microsoft die ondersteuning zou stoppen. De verwachting is dan ook dat Visual Basic in Office 2019 nog gewoon ondersteund wordt, maar officieel bevestigd is dat nog niet. Volgens de laatste berichten verschijnt Office 2019 (en dus ook Excel 2019) ergens in het najaar.

En naar verwachting wordt Office 2019 ook de laatste stand-alone versie. Microsoft heeft liever dat wij allemaal een abonnement nemen op Office365. Maar ten eerste heb ik geen zin om maandelijks een bedrag te betalen voor software die ik (behalve Excel) nauwelijks gebruik, in plaats van eens per 4 – 6 jaar eenmalig een licentie te kopen. Ten tweede: in Office365 zit (nog) geen ondersteuning voor macro’s. Het is onduidelijk of die er komt en zo ja, wanneer. En ten derde is het hoog tijd om open-source te gaan. Ik heb al geëxperimenteerd met LibreOffice, dat voldoet uitstekend. Daarbij hoopte ik dat de macro-taal van LibreOffice een waardige vervanger zou zijn van Visual Basic in Excel.

Maar dat laatste viel een beetje tegen. Macro’s programmeren in LibreOffice is een stuk bewerkelijker dan in Excel. Ik heb er de nodige tijd ingestoken, en mijn ‘oude’ administratie volledig omgebouwd naar LibreOffice. Maar ik zag het niet zitten om ook de beleggingsspreadsheet volledig te herbouwen. Ik wil iets moderner en robuuster dan wat deze macro-talen mij kunnen bieden.

Ik ben van plan om dit najaar mijn laptop te vervangen. Die gaat inmiddels ruim 4 1/2 jaar mee, en begint behoorlijk traag te worden. Daar erger ik me aan. En er staat Office 2013 op. Dat wil ik dan dus vervangen door Office 2019 (en daarom wil ik dus wachten met de vervanging tot dit najaar). Uitgaande van een jaar of zes werken met Office 2019, geeft dit me in elk geval tot en met 2024 om een oplossing te creëren.

Officieel bevestigd is het nog niet, maar het lijkt erop dat het gebruik van JavaScript een optie wordt in Office. Dat kan al met een API. En het gebruik van JavaScript is ook al een optie in LibreOffice. Als dit klopt, dan zou een migratie naar LibreOffice eenvoudiger worden. Stapsgewijs bouw ik mijn macro’s om naar JavaScript. En daarna hoef ik alleen de ‘voorkant’ nog maar te migreren naar LibreOffice.

Dan moet ik nog wel JavaScript leren programmeren. Zoals ik eerder schreef ben ik daarmee begonnen met de hulp van de app Grashopper. Ook heb ik een lijvig JavaScript e-book aangeschaft en kijk ik naar voorbeeldjes van anderen.

Soms denk ik ook wel dat ik gewoon op moet houden met mijn eigen spreadsheets. Want het bijhouden van de administratie is dan weliswaar vrijwel helemaal geautomatiseerd, maar in het oplossen van fouten in de code en het ontwikkelen van nieuwe functionaliteit gast best veel tijd zitten. Ik kan natuurlijk ook gewoon kiezen voor een standaardpakket. Open-source heb je in elk geval GnuCash voor Windows, Mac en Linux. Maar eigenlijk vind ik het ‘klooien met softwarecode’ gewoon veel te leuk.

Tsja, en tegelijkertijd merk ik ook dat ik de afgelopen maanden (te) weinig prioriteit geef aan ‘klooien’. Leuk werk, vakanties en een voorjaar dat uitnodigt om naar buiten te gaan (en niet te vergeten Project Tuin) gaan op dit moment even voor. Ik ben zelfs nog niet verder gegaan met mijn Dashboard.

Hoe kijk jij naar de toekomst van jouw spreadsheets?

Spelenderwijs leren programmeren?

Veel mensen besteden veel (te veel) tijd aan spelletjes op hun tablet of telefoon. Geldnerd houdt daar niet zo van, ik vind het meestal tijdverspilling. Maar in een vakantie val ik er toch af en toe voor.

En ik ben dan wel weer dol op programmeren. Mijn spreadsheets, en lekker een beetje klooien met Visual Basic macro’s. Ik heb lopen experimenteren met de macrotaal van LibreOffice. Daar werd me vooral duidelijk dat die een stuk bewerkelijker is dan Visual Basic in Excel. Mijn macro’s ‘omzetten’ wordt dan al gauw ‘volledig herschrijven’. Daar had ik niet zoveel zin in, dus dat heb ik maar even laten rusten.

En ik speel al langer met het idee om ook andere, ‘echte’ programmeertalen te leren. JavaScript bijvoorbeeld. Maar ik heb minder tijd dan destijds in het Verre Warme Land, en had ook geen zin om eerst een stapel boeken door te lezen. Dus dat bleef vooral ‘een idee’.

Maar nu is er een oplossing voor! ‘Grasshopper’, een (gratis) app waarmee je spelenderwijs in JavaScript leert programmeren. Grasshopper is ontwikkeld door Area 120, een start-up van Google. De ontwikkelaars willen nog meer lessen toevoegen aan Grasshopper, en zijn niet van plan een andere programmeertaal dan JavaScript te gaan ondersteunen.

Ik heb de app gedownload en ben langzaam begonnen. Eens kijken welke nieuwe mogelijkheden dit mij gaat bieden! Want ik denk dat de toekomst van mijn spreadsheets en macro’s in JavaScript ligt.

Hoe heb jij leren programmeren?

© 2020 Geldnerd.nl

Theme by Anders NorenUp ↑