Opgelicht

Ik was bijna het slachtoffer van een Microsoft support call scam. Gisteren belde iemand me die beweerde bij Microsoft te werken. Mijn laptop verstuurde zogenaamd noodsignalen en hij belde op om het probleem op te lossen. Hij haalde me over om toegang te verschaffen tot mijn PC en vervolgens om via Western Union een betaalopdracht op mijn creditcard te plaatsen.

Western Union belde mij gelukkig op om de betaalopdracht te controleren. Ze constateerde dat het een scam was en annuleerde de betaling. Vervolgens heb ik mijn creditcard laten blokkeren. Ik heb geen geld verloren. Bij het opnieuw opstarten bleek dat mijn harde schijf van een wachtwoord was voorzien buiten mijn kennis. Dit probleem heb ik intussen opgelost. Ik heb mijn computer grondig gescand, maar geen virussen of malware aangetroffen. Ook softwarematig lijkt de scam dus te zijn mislukt. Ik heb mijn wachtwoorden aangepast, wat extra beveiligingen geïnstalleerd en de komende maand zal ik op de hoede moeten blijven.

Hoewel het slechts een dag geleden is vind ik het nu al moeilijk te begrijpen dat ik me heb laten overhalen. Het was denk ik een kwestie van kwantiteit en niet van kwaliteit: de oplichter had heel veel trucjes. Als ik er een doorzag dan was hij alweer met de volgende begonnen. Op al mijn kritische vragen had hij een antwoord. Voor alles wat ik moest doen en alles wat hij deed had hij een uitleg. Daarnaast was ik nieuwsgierig en ongeduldig en had ik weinig waardering voor wat ik te verliezen had. Daarom negeerde ik een hoop verdacht gedrag.

Toen ik mezelf het hele verhaal aan Western Union hoorde uitleggen schaamde ik me meteen voor mijn stompzinnigheid. De oplichter had net opgehangen omdat hij het wachten op een betalingsbevestiging van Western Union beu was. Hij hoopte wellicht dat ik mijn laptop onbeheerd zou achterlaten, zodat hij meer rottigheid kon uithalen. Of hij had een ander slachtoffer op het oog. Toen de muiscursor weer in beweging kwam, zette ik mijn laptop in de vliegtuigstand en zette de toegang tot mijn laptop stop. Kort daarna belde hij weer op om te vragen of mijn computer het nog deed, wat ik bevestigde. Hij hing snel daarna op.

In de hoop alle problemen voor te zijn heb ik meteen een systeemherstel gestart, maar die bleef steken tijdens opnieuw opstarten. Er was plotseling een nieuw wachtwoord nodig dat mij onbekend was. Waarschijnlijk was de oplichter van plan mijn laptop te gijzelen voor losgeld. Hij heeft het gedeelte van het register dat de gebruikersaccounts bewaart laten encrypteren en achter een wachtwoord geplaatst. Windows Recovery kan dan niet zoveel meer doen, omdat alle accounts–inclusief die met de nodige administratierechten–verborgen zijn.

De oplossing is in theorie eenvoudig. Windows maakt een back-up van het register als hij opstart. Door het register van buitenaf te benaderen en de back-up terug te zetten, kon ik mijn computer met hetzelfde register laten opstarten als gisterenochtend. In de praktijk moest ik eerst uitzoeken hoe ik mijn laptop vanaf een USB-stick kon laten starten en dat was met mijn laptop niet eenvoudig. Vervolgens moest ik een systeem op mijn USB-stick zetten waarmee ik op de harde schijf kon kijken. Windows was niet goed afgesloten waardoor de harde schijf niet direct toegankelijk was. In Windows Recovery kon ik Windows alsnog netjes afsluiten, zodat ik kon inbreken op mijn eigen computer. Tenslotte had ik weer geluk. sommige oplichters zijn zich bewust van deze oplossing en wissen alle back-ups van het register, maar dat was bij mij was daar geen sprake van.

Om mezelf te beschermen heb ik onder andere remote desktop uitgezet. Instructies staan op http://www.thewindowsclub.com/remote-desktop-connection-windows. De volgende oplichter zal me eerst moeten overtuigen die weer aan te zetten en mij zo herinneren aan mijn vergissing. Ik raad het iedereen aan.

Business Exception

Een programma in de programmeertaal Java bestaat uit methodes die beloven een bepaalde type data terug te sturen. Er zijn echter uitzonderingen (exceptions) waarmee een methode onder die afspraak uit kan komen. Een business exception is een uitzondering die onderdeel is van de business logic van het programma. Dit lijkt me een antipatroon, namelijk een vorm van “exceptions as control flow”.

Afgelopen weken heb ik me bezig gehouden met een bug van de volgende vorm. Een gebruiker vult een formulier in op een website en drukt op verzenden. Hij krijgt dan een foutmelding en een verzoek om de ingevulde informatie te verbeteren. De foutmelding luidt echter “No bean specified”, terwijl het formulier geen vakje heeft waar de gebruiker een boon kan specificeren.

Java dankt haar naam aan Javaanse koffie. Daarom zijn in Java geprogrammeerde systemen nog wel eens opgebouwd uit bonen. Mijn afdeling is bezig met een upgrade van zo’n systeem. Daarbij is er dus een boon zoek geraakt. Terugvinden is geen probleem. Wel een probleem is dat de gebruiker een rare foutmelding te zien krijgt.

Achter de schermen gebeurt het volgende. Tijdens het verwerken van het formulier controleert het systeem of het formulier correct is ingevuld. Het systeem kijkt naar de inhoud van het formulier en naar de rechten van de gebruiker. Als er iets niet klopt maakt het systeem een business exception. De gebruiker krijgt vervolgens bericht dat hij de inhoud van het formulier moet aanpassen.

Soms kan het systeem het formulier niet verwerken omdat de servers of de verbindingen niet deugen. In dat geval maakt het systeem een technical exception. Na een technical exception krijgt de gebruiker bericht dat de service niet beschikbaar is. Het gaat hier immers om een probleem dat de gebruiker niet op kan lossen.

De rare foutmelding ontstaat doordat één onderdeel van het systeem technical exceptions–waaronder verloren bonen–ten onrechte markeert als business exceptions. Dat is slordigheid geweest, want het systeem kan het verschil tussen technical en business best zien. Het was echter beter geweest om de controle van het formulier helemaal niet met uitzonderingen te doen. Alle overgebleven uitzonderingen zijn dan automatisch technische uitzonderingen en verwarring is niet mogelijk.

Waarom Griekenland moet bezuinigen

Volgens een populaire interpretatie van Keynes’ economische theorieën zou Griekenland een stimuleringsbeleid moeten voeren tegen werkloosheid. Dat is vanwege het monetaire beleid van de Europese Centrale Bank een slecht idee:

The primary objective of the ECB’s monetary policy is to maintain price stability. The ECB aims at inflation rates of below, but close to, 2% over the medium term.

Dit beleid doet elk mogelijk stimuleringsplan teniet.

Een stimuleringsbeleid moet de werkloosheid verlagen door de totale vraag te verhogen. Werkloosheid betekent dat er meer mensen naar werk zoeken dan waar vraag naar is, dus het verhogen van de vraag is een voor de hand liggende oplossing. Een economie bestaan niet echter niet alleen uit een arbeidsmarkt. In markten waar geen overschot is stijgen prijzen met de vraag. Daarom is inflatie een onvermijdelijke bijwerking van elk effectief stimuleringsbeleid.

Omdat een Grieks stimuleringsbeleid de inflatie niet mag verhogen, moet de Europese Centrale Bank ingrijpen. Dat doet zij door het aantal euro’s in omloop te beperken. Die maatregel verlaagt de totale vraag zodat het stimuleringsbeleid geen nut heeft en Griekenland alleen maar meer de schulden brengt.

Dat een stimuleringsbeleid geen zin heeft als de centrale bank niet meewerkt, betekent nog niet dat bezuinigingen noodzakelijk zijn. Daarvoor zijn in het geval van Griekenland echter andere argumenten. Ze hebben reeds een grote schuld en moeten kredietwaardig blijven om niet failliet te gaan. Dat lukt niet door nog meer tekorten te maken, laat staan door het beleid te blijven voeren dat hen in de problemen heeft gebracht. Aan rentes valt te zien dat investeerders die hun geld op het spel zetten, zuiniger landen kredietwaardiger vinden. Fiscaal beleid is eenvoudigweg een kwestie van de tering naar de nering zetten als begrotingstekorten geen behulpzame macro-economische effecten hebben.

Als Griekenland in de euro blijft en de centrale bank prijsstabiliteit blijft garanderen, dan moeten Griekse lonen en andere arbeidsvoorwaarden (verder) omlaag om de werkgelegenheid te herstellen. Dat is de langzame en pijnlijke weg waar zowel de Trojka als de Griekse regering nu op aansturen. Onze bestuurders hebben helaas niet door dat de Europese Centrale Bank zou moeten streven naar een stabiele (groei van de) totale vraag in plaats van een stabiel prijsniveau.

Hallo wereld!

Ik heb tijdens gesprekken vaak moeite uit te leggen wat mij bezig houd en waarom ik bepaalde standpunten inneem. Dat heeft twee oorzaken. Ten eerste zijn de onderwerpen die mij interesseren–zoals de grondslagen van de wiskunde–intellectueel zeer uitdagend. Ten tweede ben ik nogal verstrooid, zodat mijn kennis gewoonlijk op een chaotische manier naar buiten komt. Dit blog moet helpen om die problemen op te lossen.

Ik ben van plan te gaan schrijven over alle zaken waarover ik pieker, uiteenlopend van actualiteiten, wetenschappelijke ontdekkingen en persoonlijke gebeurtenissen. Hier kan ik mijn gedachten rustig ordenen voordat ik ze uit en verhelderende links naar andere delen van het internet plaatsen waar dat nuttig is.