Artificial intelligence

Wie het “tech” nieuws een beetje volgt weet dat er de laatste tijd langzaamaan meer aandacht is voor de ontwikkelingen op het gebied van AI, oftewel, kunstmatige intelligentie. De toon van deze berichten is in toenemende mate negatief, vooral de risico’s van een dergelijke ontwikkeling worden volgens velen grof onderschat.

Na een aantal van deze berichten te hebben gelezen had ik eigenlijk doorlopend het idee dat dit een probleem is voor in de (relatief verre) toekomst. Een probleem van het type dat we wel in de gaten moeten houden, maar geen concrete actie behoeft. Toch bleef het trekken en dus ben ik er maar eens meer over gaan lezen, van het een kwam het ander en nu heb ik even de fictie boeken opzij gelegd en heb ik na het boek wat ik nu aan het lezen ben (biografie Elon Musk) maar eens twee boeken over AI op het programma gezet.

Ik werd eigenlijk pas echt getriggerd tijdens het lezen van twee artikelen op waitbutwhy.com (The AI Revolution: The Road to Superintelligence) (The AI Revolution: Our Immortality or Extinction), samen goed voor ongeveer 55.000 woorden, dus eigenlijk al een (klein) boek op zichzelf.

In hoofdlijnen vallen er twee dingen op bij het lezen van deze stukken, allereerst is er de snelheid waarmee dit alles zal gebeuren onvoorstelbaar. Er is wat discussie over hoe lang het gaat duren voordat we daadwerkelijk een AI systeem hebben dat qua niveau vergelijkbaar is met de mens, maar er is geen discussie over het feit dat wanneer het eenmaal zo ver is het AI systeem met ongekende snelheid de mensheid zal inhalen. Daarnaast is de uitkomst van een ontwikkeling zoals die is ook wel redelijk concreet, of de mensheid maakt de spong naar onsterfelijkheid, of het is het einde van ons tijdperk.

Klinkt als een ver van je bed show, alleen de verwachting is dat deze stap ergens tussen 2025 en 2060 gezet gaat worden.. Grote kans dat we dat nog meemaken dus. In het tweede artikel staat in verhaalvorm ook wel een kort voorbeeld omschreven van hoe een dergelijke ontwikkeling in rap tempo, volledig onbedoeld, compleet de mist in kan gaan. Enerzijds denk je dan “dat zal allemaal wel meevallen, zo ver zijn we nog lang niet” maar als je terug denkt aan hoe snel de technologische ontwikkelingen in de afgelopen jaren gegaan zijn is het misschien toch nog niet zo onrealistisch.

Het is in ieder geval een interessant onderwerp, of ik er nou uiteindelijk positief of negatief over gestemd ben weet ik eigenlijk niet, maar het zal linksom of rechtsom in ieder geval een fascinerende ontwikkeling zijn, alleen in het negatiefste scenario hebben we niet heel erg veel tijd om van een superintelligente AI te kunnen leren :)

Naast de stukken over AI zijn de meeste stukken op  waitbutwhy.com overigens ook erg leuk om te lezen, ze zijn alleen over het algemeen erg lang, dus ga er even goed voor zitten.

Verhuizen!

Toen we ons appartement te koop gezet hadden was dat met het idee dat we het zo snel mogelijk zouden kunnen verkopen om niet te lang in onzekerheid te zitten. De lage prijs en een hoop kluswerk moesten het een generiek appartement maken wat voor zoveel mogelijk mensen aantrekkelijk zou moeten zijn.

Dat we vervolgens binnen 2 weken de eerste kijkers hadden was wel een aardige verrassing, dat was wel heel erg snel.. Een week later was er mondelinge overeenkomst over de verkoop en twee dagen gelden is de verkoop definitief geworden. Dan mogen we in ieder geval zeker niet klagen over de doorlooptijd :).

De kopers hadden wel de wens het appartement zo snel mogelijk over te nemen, dat is nu dus 17 juli geworden, wat voor ons betekend dat we 12 juli (doordeweeks geen tijd voor verhuizen) het appartement helemaal leeg moeten hebben. Nog 1,5 week te gaan dus.

We hebben een aantal zaken te koop gezet zodat we die niet hoeven te verhuizen, maar toch zal er een aanzienlijke hoeveelheid spullen ingepakt moeten worden. Vervolgens gaat een deel naar ons tijdelijke adres in Oirschot (alleen het noodzakelijke en de wat duurdere spullen). Als dan de hypotheekverstrekker ook nog een beetje mee wil werken kunnen we uiterlijk 1 september in ons nieuwe huis :) (weer alles verhuizen, maar het is het waard). We hebben dit huis (onder voorbehoud van verkoop) een tijdje terug al gekocht, maar ik bewaar de foto’s nog even tot de echte verhuizing :).

Hoofdstuk Dordrecht afgesloten, op naar hoofdstuk Utrecht :) (Mijn 4e provincie en 7e woonplaats)

Appartement te koop (Doornenburg 34, Dordrecht)

We waren al een tijdje aan het twijfelen of we ons appartement te koop wilden zetten, maar die stap hebben we nu uiteindelijk toch gezet. Het is uiteindelijk de bedoeling om een stuk dichter bij het werk van Lieneke te gaan wonen, maar daarvoor moeten we dus eerst ons huidige appartement zien te verkopen :).

Heb je interesse in een mooi gerenoveerd appartement in Dordrecht? Of ken je iemand die hier misschien interesse in heeft? Kijk dan eens even op deze Funda pagina!

 

AFAS Profit: Analyses mailen

Op dit moment spendeer ik 90% van mijn werkuren aan onze (Detron) AFAS Profit inrichting. De afgelopen jaren hebben we delen van het bedrijf gesplitst, andere delen samengevoegd, en bovenal de werkwijze zoveel mogelijk geharmoniseerd. Nu die zaken langzaamaan minder van onze tijd kosten hebben we meer tijd om aan de kleinere projectjes te kunnen werken.

Zo was er al een tijdje de wens om analyses uit AFAS Profit te kunnen mailen naar een of meerdere gebruikers. Dat was voor mij een mooie gelegenheid om eens te kijken of ik behalve met AutoIT dit soort “problemen” ook op kan lossen met het native aanwezige Powershell (Windows servers). Gezien ik daar helemaal zo goed als geen ervaring mee heb was het vooral een aardig uitzoekwerk, maar op een kleine stap na is het me uiteindelijk gelukt om zo goed als het hele proces vanuit Powershell te realiseren.

Het alternatief zou overigens zijn om analyses te publiceren op InSite, maar gezien deze analyses voor een hele kleine groep gebruikers bedoeld zijn en ook maar een zeer beperkte houdbaarheid hebben is dit geen goede optie. Daarbij kan het ook zo zijn dat een deel van deze analyses als “snapshots” bewaard worden. Ook dat zou niet nodig moeten zijn, maar soms is het niet anders.

Het systeem bestaat uit een aantal delen:

  • Een analyse in AFAS Profit bepaald wie welke analyse wanneer gemaild moet krijgen. Deze lijst wordt bijgehouden door het functioneel beheer team.
  • Deel 1 in Powershell: Publiceren en interpreteren bovenstaande analyse. Deze analyse wordt opgeslagen als CSV en omvat alleen het overzichttabblad, min of meer een to-do lijst dus.
  • Deel 2 in Powershell: Check of er regels in de eerder genoemde analyse binnen het huidige tijdvak vallen, regels die niet aan die voorwaarden voldoen worden verder genegeerd

Hier had ik wel een kleine uitdaging, op zich is het bepalen of een regel in het tijdvak valt nog niet zo lastig:

ControleTijdvak

Alleen die laatste regel bracht wel een probleem met zich mee, hoe bepaald je nou of de huidige dag de laatste dag van de maand is? Het zoekwerk voor oplossingen bracht ook eigenlijk alleen maar opties met zich mee die veel complexer waren dan dat ik nodig had.

Uiteindelijk heb ik dat als volgt opgelost (de naam van de variabelen verraad het wel een beetje):

ControleLaatsteDag

Ik gebruik hier twee variabelen, één met de huidge maand, en de andere welke de maand van één dag later bevat. Als die niet gelijk zijn is vandaag dus de laatste dag van de maand. Overigens had ik deze vergelijking ook wel in één regel kunnen stoppen, maar dit vond ik voor nu zelf even overzichtelijker.

We gaan weer verder..

  • Deel 3 in Powershell / AFAS Profit: Regels die in het huidige tijdvak worden opgepakt, er wordt een batch file (jammer..) aangeroepen die via de commandline de desbetreffende analyse laat publiceren. Dit publiceren gebeurt overigens met een macro van 4 regels die toegevoegd moet worden aan de analyse. De macro:
Sub PublishAnalysis()
Dim fileName As String
ActiveWorkbook.SaveAs fileName:="C:\Powershell\testanalyse.xlsx", FileFormat:=xlOpenXMLWorkbook
End Sub

De reden dat de macro PublishAnalysis heet heeft te maken met het feit dat ik het publiceren laat doen door AFAS Profit via de commandline, de publicatie wordt getriggerd via een batchfile en uitgevoerd door deze macro.

  • Deel 4 in Powershell: Na het genereren van de analyse (als .xlsx) wordt deze verstuurd naar het mailadres dat op de regel in de eerste analyse is ingevoerd.
  • Deel 5 in Powershell: Logging wordt bijgewerkt, als de log meer dan 2Mb groot is wordt deze opzij gezet, als er al oude logging aanwezig is wordt deze overschreven.

Op dit moment is het mogelijk om analyses te verzenden op een specifieke dag van de week, een specifieke dag van de maand, iedere dag, de laatste dag van de maand of tot slot de eerste dag van de maand. Dit lijkt me nu voldoende, maar gebruikers kennende is er vast nog een optie die ik nu nog niet bedacht heb ;).

De oplossing die ik nu geschreven heb zal qua efficientie nog wel het nodige te wensen over laten, maar het werk naar behoren. Ik heb nog wel een aantal wensen die ik in de komende tijd wil doorvoeren om vooral de kans op fouten bij de invoer te verkleinen. Daarnaast moet ik nog een filter maken die voorkomt dat we files proberen te mailen die groter zijn dan onze Exchange omgeving toelaat.

Mocht iemand interesse hebben in het script zie ik wel een berichtje verschijnen, als iemand nettere of andere oplossingen heeft hoor ik het natuurlijk ook graag . Verder is het voor mij zelf wel een mooie eerste echte ervaring met Powershell. Gezien dit een native systeem is zie ik wel wat voordelen die het waard maken om te gaan kijken of ik (een deel van ) de andere Profit koppelingen om kan zetten naar Powershell scripts. Deze worden nu over het algemeen ondersteund door AutoIT “applicaties” die ik in de afgelopen jaren gemaakt heb.

IoT – ESP8266 gepruts

Een tijdje terug ben ik bezig geweest met het aansturen van mijn KlikAanKlikUit lampen via een Raspberry, rond die tijd kwam ook ineens Andries met een reeks blogposts  over het draadloos aansturen / dimmen van ledverlichting. Dat triggerde mij om me eens te verdiepen in dat soort systemen en de mogelijkheden die daarbij komen kijken.

Als we bedrijven als Intel mogen geloven moet The Internet of Things (IoT) DE toekomst worden op technologisch vlak. Dat zou er op neer komen dat zo’n beetje alles om je heen is aangesloten op het internet, waardoor je altijd alles kan monitoren, je op afstand je lampen aan / uit kan zetten, je de wasmachine kan starten, thermostaat kan instellen enzovoorts. Er zijn meerdere mogelijkheden om dit te realiseren, maar WiFi is hiervoor het meest toegankelijk als je er zelf mee aan de slag wil.

Dit is waar de ESP8266 een rol gaat spelen, via de posts van Andries raakte ik bekend met het bestaan van dit platform (ESP8266)

esp8266 ESP-01

Door de chip te flashen met een NodeMCU firmware kan je de aansturing van het “systeem” in LUA schrijven. Mijn Lua kennis is ongeveer net zo groot als mijn kennis over curling, dus daar ligt nog wel een kleine uitdaging. Maar juist dat uitzoekwerk maakt het wel leuk om hier tijd aan te spenderen.

Als eerste project ben ik maar eens begonnen met het nabouwen van het project van Andries (met wat kleine aanpassingen), een mooie oefening om ook het solderen weer eens onder de knie te krijgen. Ondertussen heb ik gewoon om te proberen ook een printje gemaakt waarmee ik via WiFi en mijn Raspberry (als webserver) mijn lampen aan en uit kan zetten, het programma en de print zijn erg basic, maar het is wel bijzonder bevredigend om zoiets zelf te maken.

Heel kort samengevat wordt er een web request gestuurd naar de Raspberry op het moment dat een van de twee GPIO poorten op de ESP8266 naar High gaat (er dus spanning op komt te staan), dit gebeurt wanneer de drukknop ingedrukt is.

Je kan diverse sensors aan het systeem knopen waarvan je de output relatief eenvoudig naar een webserver kan versturen, deze informatie kan je dan vervolgens weer voor uiteenlopende zaken gebruiken.

Al met al leuk speelgoed, mocht ik ergens nog een keer een toepassing bedenken waarvan ik denk dat deze ook nuttig kan zijn voor anderen zal ik eens een uitgebreid verslag / instructie schrijven.

Wintersport 2015

Vorige week was het tijd voor onze winterpsort vakantie. Samen met Bo en Inge zijn we ruim 1.000 km naar het zuid-oosten gereden om deze keer uit te komen op het Landal park in Katschberg.

De heenreis verliep redelijk soepel, op wat kleine stukjes file na hebben we eigenlijk vrij vlot door kunnen rijden. Totdat we in Oostenrijk waren was de stemming ook super, echter naarmate we dichter bij onze bestemming kwamen begon het eerst te regenen, en vervolgens echt te storten. De gehele route hebben we geen sneeuw gezien, alleen regen, regen en vooral veel groene / bruine bergen en dalen.

Dit tot we de laatste weg naar Katschberg indraaien, de regen slaat om in sneeuw, en een kleine 500 meter verder ontkomen we er niet aan om de sneeuwkettingen op te leggen (voor alles is een eerste keer..). Gelukkig hadden we deze bij en konden we binnen 15 minuten na wat gedoe met wat Slovenen onze rit vervolgen.

Sneeuwkettingen

De laatste 5 km hadden we zonder sneeuwkettingen niet kunnen halen en bij aankomst is eigenlijk zo ver we kunnen kijken alles wit. Grappig hoeveel verschil een paar honderd meter kunnen maken. We hadden allemaal al een hele korte treurige vakantie in ons hoofd zitten, maar gelukkig is dat anders uitgepakt.

Uitzicht vanuit café

We hebben een week lang perfect weer gehad en alle dagen goed kunnen skiën, we zijn uit eten geweest en hebben van de mogelijkheid om in het huisje zelf te koken gebruik gemaakt. Verder hebben we herhaaldelijk aangetoond dat ik Carcassonne maar niet kan winnen van de andere drie aanwezigen.

Carcassonne

We hebben bewust voor deze week gekozen omdat dat een week is waarop zover wij kunnen vinden geen schoolvakanties te vinden zijn in Europa, en dat lijkt prima gelukt. We hebben dagen gehad waarop je het idee hebt dat er maar een man of twintig op de pistes te vinden waren. Lekker rustig en alle ruimte voor onszelf.

Na een week lekker rustig aan doen zijn we gisteren weer naar huis gereden, in tegenstelling tot de heenweg was zo ongeveer de hele terugrit alles wit en hebben we goed veel last gehad van sneeuw en files. Maar als je dan eenmaal thuis bent is het ook wel weer fijn om alles op te kunnen ruimen en lekker in je eigen bed te slapen.

Op naar de volgende vakantie, in April zoeken we de warmte van Las Vegas weer eens op :)

Joe syntax highlighting aanpassen

Soms loopt je tegen van die problemen aan die je eens in de zoveel tijd tegen komt, maar die net niet vaak genoeg voorkomen om de oplossing te onthouden.. In dit geval is het de kleur van de PHP Syntax Highlighting in Joe via Putty (volg je het nog?)

Standaard is de instelling voor “Constant_sq” blauw, donkerblauw om precies te zijn, en dat leest toch net niet lekker op een zwarte achtergrond:

Joe PHP Syntax

Dus daarom heb ik het liever zo:

Joe PHP Syntax aangepast

Gezien ik dus iedere keer weer op zoek moest naar hoe ik dit definitief aan kon passen (dus niet iedere keer handmatig een andere syntax highlighting selecteren) heb ik besloten er maar een korte blogpost aan te besteden zodat ik de volgende keer niet zo ver hoef te zoeken :).

De configfile staat op ubuntu op deze locatie:

sudo joe /usr/share/joe/syntax/php.jsf

Vrijwel boven in de config staat dit stuk:

# Define colors
=Idle
=Comment green
=Constant cyan
=Constant_sq blue
=Escape bold cyan
=Keyword bold
=Var red
=Methods bold

Je wil hier de dikgedrukte regel aanpassen, in mijn voorbeeld heb ik er dit van gemaakt:

# Define colors
=Idle
=Comment green
=Constant cyan
=Constant_sq yellow
=Escape bold cyan
=Keyword bold
=Var red
=Methods bold