woensdag 16 december 2015

Microsoft en Spamklacht.nl

Hier komen details rondom een klacht ingediend bij
https://www.spamklacht.nl/

Ik kreeg deze e-mail, nogal een flinke Rich HTML e-mail. Dat is op zich irritant, maar de inhoud is dat nog meer. Het is een commerciele e-mail, geen informatieve:

De feiten:
  • Ik ben een klant.. Ik heb een product afgenomen bij microsoft. Namelijk windows 8. Na verloop van tijd, kreeg ik in windows 8 ongevraagd popups om windows 10 te installeren.
    Na flinke tijd (paar maanden) heb ik maar toegegeven, want ik vind het wel prettig ongestoord te werken en tenslotte horen updates erbij, ook als ze naggen..
    Bij het installeren van windows10, was het verplicht een account aan te maken en daarbij een email adres op te geven. Alle mogelijkheden die ik had om e-mail te voorkomen op dit e-mail adres, heb ik te benut.
  • Nu kreeg ik een mail, zonder unsubscribe erin
  • In de mail werd aangekondigd dat het om een serie e-mails gaat. 1/2
  • Ik heb geen opt-in aangeklikt of anderszins aangegeven dat ik hiermee akkoord was.
  • Het email adres, waaraan deze mail was gericht heb ik exclusief aan microsoft gegeven, voor mijn (verplichte) microsoft-account
  • Via een chat, aangegeven in de mail, kwam ik bij de verborgen subscription manager, ingebouwd in Edge. Hier bleek, dat ik geen e-mail subscriptions had. (Tenminste niet geregistreerd bij Microsoft)
  • Toen de medewerker dit hoorde, zei hij dat het dan geen mail van Microsoft kon zijn: die hebben altijd een unsubscribe en worden alleen met opt-in verstuurd.
    Nou, niet dus. Zie screenshot.
Ik kan hieruit niet anders concluderen, dan dat Microsoft zich niet houdt aan de Nederlandse privacywet uit juli 2009, waar een opt-in en een unsubscribe verplicht werden gesteld.
(meer info: http://www.frankwatching.com/archive/2009/05/18/de-nieuwe-wetgeving-rond-e-mailcommunicatie/)
Deze wet had een terugwerkende kracht, dus al had men mijn e-mail adres langer al in bezit bij het passeren van de wet, dan had men tot augustus 2009 om alsnog mijn opt-in te verkrijgen.
Dit is echter niet het geval, mijn opgeven van mijn e-mail adres aan windows is van na 2013 (preciezere datum weet ik helaas niet).

Als het puur en alleen informatie was, dan had ik het wellicht laten gaan, maar het gaat om een zeer wervende, commerciƫle mail, met loze kreten als "Het windows dat je kent, maar dan beter"
"Je apparaat gebruiken" (Sorry, maar windows, ook windows10 is NIET mijn apparaat!) Reclame voor microsoft Edge (maar gek genoeg geen informatie, hoe je uitsluitend via Edge bij de unsubscribe pagina komt) "Wij zijn er om je te helpen" "Ontdek alles wat je als microsoft-account kunt doen" en  "Laten we contact houden" en tenslotte nog een "volg ons op" voor diverse sociale media.
Verder was er weinig feitelijke informatie, maar wel allerlei links, die algemeen toegankelijke toepassingen probeerden op te starten. Het nut daarvan is zeer discutabel.
Zelfs al was het alleen informatie, dan nog was het informatie, waarom ik niet had gevraagd.

Ik kan alleen maar zeggen: foei, Microsoft, niet meer doen, anders zie ik mij genoodzaakt het aan u verstrekte e-mail adres te blokkeren, waardoor we echt niet meer kunnen communiceren.

Echter, na enig googlen, (niet bingen) kwam ik op spamklacht.nl
We kunnen dus WEL meer doen.
Ik heb mijn klacht ingeleverd, hopende, tegen beter weten in, dat Microsoft zijn leven betert.
Een operating system is geen handig sales-kanaal, maar zo ziet microsoft het wel.

Dit is het derde bewijs op rij,

  1. Druk maar eens op prt-scrn en je krijgt reclame voor microsoft-drive, de printscreen functie is uitgeschakeld totdat je hier opt-out.
  2. Installeer Windows10 en je standaardbrowser is opeens EDGE, ook al wil je dat niet en heb je dat expliciet aangegeven.. 
  3. Installeer Windows10 en je standaard zoekmachine is BING, ook al heb je deze eerder verwijderd als zelfs maar een optie.
Alles bij elkaar, denk ik dat we deze problemen nog wel een paar keer tegenkomen.
En ik persoonlijk heb er genoeg van.

Hieronder nog de chat met Christian van Answer Tech, naar eigen zeggen de factureringsafdeling. Volgens Christian was er geen afdeling die zich bezig hield met privacy. 

 

Overigens zeg ik hier dat het gaat om een wet uit augustus 2012, maar dat was een Europese wet, die er niet door is gekomen. Ik vergiste me.

dinsdag 24 november 2015

Snoep Games test Legenda

Dit zijn de devices waarop wij onze games actief testen.
Over het algemeen moet gelden: nieuwste browser werkt.
Er zijn echter veel oude apparaten in omloop.

Test Legenda 

Devices en browsers in testing as of today..

Mobiele devices


  • Android phone - Honor Holly (android v KitKat)
  • [APD] Default browser  (Chrome 30)
  • [APC] Chrome 46 



  • Android Tablet - Samsung Galaxy Tab3 lite SM T110 (android Jellybean)
    • [ATD] Android Default Browser 4
    • [ATD] Chrome 46
  • Ipad
    • [IPS] Safari (IoS8)
  • Desktop devices

  • Windows7
    • [W7C] Chrome
    • [W7IE] Internet Explorer
    • [W7IE] Firefox
  • Windows8.1 (met touch-screen)
    • [W8C] Chrome 46 
    • [W8IE] IE 11 
    • [W8FF] Firefox 42
    • [W8FF] Opera 33
  • Windows10 desktop zonder touch screen
    • [WXFF] Firefox
    • [WXS] Safari
    • [WXC] Chrome 46 on Windows 10
    • [WXE] EDge (nieuwe browser windows 10)
  • Mac Airbook laptop zonder touch screen
    • [MCC] Chrome
    • [MCS] Safari
  • NET GELUKT!

    Ik had dit jaar een zware hernia, waardoor de spelletjes van het Sinterklaasjournaal iets minder lekker en snel gingen dan gemiddeld. Gelukkig waren het er maar zes dit jaar.

    SnoepGames test pagina..

    Maar hier zijn ze dan, 1 uur voordat het laatste spelletje live gaat (dagkadootje van vanavond om.
    Eerder vanmiddag 16:00pm had ik al een versie geleverd, die misging met Firefox, Internet Explorer en Edge.
    De rest van de browsers werkte wel en iets is beter dan niets.
    Maar na nog drie kwartier debuggen met Edge is de fout eruit.

    Hij krijgt groene vlaggetjes op ALLE testplatforms.


    Morgen ga ik aan de support werken voor het Sinterklaasjournaal. Er zijn al wat klachten binnen gekomen, maar ik krijg vooral dit soort 'bugs':

    ------------------
    Contact info
    ------------------
    platformstring: Mozilla/5.0 (Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.2; Media Center PC 5.0; OfficeLiveConnector.1.5; OfficeLivePatch.1.3; SLCC1; .NET4.0E; Tablet PC 2.0; GWX:QUALIFIED; HYVES; rv:11.0) like Gecko
    HybridVersion: 1.2.2
    GameVersion: 1.0
    ------------------
    bug: over 1 week is het pakjesavond!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    ------------------

    Leuk, maar het zijn er ondertussen al een stuk of 40, dus ik heb meer tools nodig om het kaf van het koren te scheiden. Morgen heel benieuwd of er nog 'echte' bugs overblijven.



    vrijdag 6 november 2015

    DrakenCurve

    9e generatie drakencurve

    Wat is de drakecurve?

    Je begint in een willekeurige richting en op een willekeurig punt op een ruitjes papier en slaat volgens recept linksaf of rechtsaf.
    Zo'n recept ziet er zo uit:
    r r l r r l l r r r l l r l l
    Als je het recept volgt, krijg je dit:
    (in dit geval begonnen we op de rode punt en in de richting naar rechts, 
    je slaat als eerste af, (r=rechtsaf), dus dat wordt een streepje naar beneden!
    Daarna nog eens rechtsaf, dus streepje naar links, dan linksaf, dus streepje naar beneden.. etc etc.)

    Dit is een 3e generatie drakencurve.
    Hoe hoger het aantal generaties, hoe langer het recept wordt en hoe complexer de curve.

    generatie 1) r
    generatie 2) rRl
    generatie 3) rrlRrLl
    generatie 4) rrlrrllRrrlLrll
    generatie 5) rrlrrllrrrllrllRrrlrrlLrrrllrll

    Formule voor het maken van het drakencurve recept:

    0) begin met r.
    1) Schrijf de vorige generatie in zijn geheel opnieuw op
    2) voeg r toe (de vette R in het recept)
    3) schrijfvorige generatie nog een keer op, maar verander de middelste van de reeks (van R naar L of andersom) (de rode L in al bovenstaande stappen)
    4) begin weer bij stap 1)

    Het gaat vrij snel, met 9 generaties, heb je al 2047 bochtjes te tekenen. Maar de figuur wordt steeds mooier.


    Zelf tekenen?

    Er zijn mensen die voor de lol deze curves tekenen. Volgens mijn vrouw, Marjolein, is het leuker dan puzzelen. Het is een uiterst secuur werkje. Je weet al vrij snel of je het fout doet, want een drakencurve gaat NOOIT TWEE KEER OVER DEZELFDE LIJN!
    Voor mij zou het niks zijn, ik schrijf voor dat soort dingen een programmaatje, zoals hieronder.

    Download dit plaatje en print het zo groot mogelijk op een A4.
    Maar goed, probeer het zelf: Download het bovenstaande hokjes vel, waar precies een negende generatie op past en probeer hem te maken. Begin bij het puntje en volg de richting van het eerste streepje.
    Het recept voor een 9e generatie drakencurve kun je hieronder vinden.
    Vul een cijfer in voor het recept en druk maar op GO! (maar wees voorzichtig, voor meer dan 9 kon het wel even gaan duren en loopt hij van het papier af..)

    Meer info:
    https://en.wikipedia.org/wiki/Dragon_curve

    Generaties:

    Audio element aansturen met javascript

    Van een van mijn studenten bij de LOI kreeg ik deze vraag. Het doel is om bij spelletjes geluid te maken, dus er moet een functie komen: playSound, die op ieder gewenst moment (bijvoorbeeld bij een botsing) een geluid afspeelt.

    Er zijn meerdere manieren om dit te doen, maar de eenvoudigste en best ondersteunde door de meeste browsers is het audio-element.
    Het is eenvoudig, maar toch ook weer niet. Het audio-element wordt vaak wel ondersteund, maar niet alle formaten audio.
    In praktijk is gebleken dat als je 44,1 Mhz stereo audio aanhoudt en dan deze in mp3 EN ogg aanlevert, dat het geluid meestal wel afspeelt.

    Zie dit voorbeeld en druk op de knoppen. Dud speelt in veel browsers (maar niet in een wat oudere Firefox), interesting in de meeste. Safari op de Mac heeft in mijn ervaring de slechtste ondersteuning.
    Hieronder zie je hoe het eigenlijk werkt:
    Er zijn eigenlijk, twee audio elementen, met controls uit (dus je ziet ze niet).
    Deze worden door de javascript functie PlaySound ingeschakeld.

    donderdag 29 oktober 2015

    AABB collission

    Ok, this may be me being stupid, but I was looking for the fastest way to check if two bounding-boxes overlap.
    Given a rectangle taking the shape of {x,y,w,h}
    If read somewhere on the internet the fastest way to do it was:
    function BoxesIntersect(a,b)
    {
       return (Math.abs(a.x - b.x) * 2 < (a.w + b.w)) &&
             (Math.abs(a.y - b.y) * 2 < (a.h + b.h));
    }
    
    
    Looks amazingly compact. But the result isn't very accurate. Especially if the bounding boxes differ in size much.


    So I thought a bit and I came to this. Which is ALWAYS accurate. Maybe not as fast and certainly not consistently fast, because it bails out at the first sign of failure, but pretty fast anyway.

    And here is the algorithm, but it would seem it would be faster, if instead of rectangles, you'd keep a minx-maxx and a miny-maxy.

    function _hybridGameBoxIntersect(a,b)
    {
      if((a.x+a.w)<b.x) return false;
      if((a.y+a.h)<b.y) return false;
      if((b.x+b.w)<a.x) return false;
      if((b.y+b.h)<a.y) return false;
      return true;
    }
    

    donderdag 22 oktober 2015

    8-bit graphics on a canvas

    This is just to show you how old I am.
    When I started programming on a C-64, you could make your own fonts if you did the math.

    You just drew a grid like this:
     128   64   32    16     8     4       2     1
    [     ][     ][  x ][  x ][  x ][     ][     ][     ] =  32=16+8= 56
    [     ][  x ][  x ][     ][  x ][  x ][     ][     ] = 64+ 32+ 8+4=108
    [  x ][  x ][     ][     ][     ][  x ][  x ][     ] =128+64+4+2=198
    [  x ][  x ][     ][     ][     ][  x ][  x ][     ] =128+64+4+2=198
    [  x ][  x ][  x ][  x ][  x ][  x ][  x ][     ] =128+64+32+16+8+4+2+1=255
    [  x ][  x ][     ][     ][     ][  x ][  x ][     ] =128+64+4+2=198
    [  x ][  x ][     ][     ][     ][  x ][  x ][     ] =128+64+4+2=198


    [     ][     ][     ][     ][     ][     ][     ][     ] =0
    And you would get the letter A from just 56,108,198,198,255,198,198,0. Just 8 numbers;
    We called this a BITMAP and it was actually the only way, to create monochrome graphics on the screen of my C-64. Even if you used the whole screen, it would just mean more adding up.

    Now as you may know, those days are LONG gone.
    These days we still use basically the same techniques, only no more counting the pixels and adding up powers of 2. Bitmaps are now also RGB bitmaps with millions of colours and billions of pixels.
    But it was a great way, to get a lot of graphic in a very small amount of number.

    Great for games. It was why these 8-bit games looked like that.
    Now if you use 8-bit graphics on a HTML5-canvas, it will automatically blur your image.
    That actualy looks very bad with small graphics blown up big.

    This fact has been making it very hard to do 8-bit HTML5-games, but never fear.
    (Mis)using SVG, which is now supported in all major browsers to create little blocks on the places where we put the numbers in the grid (and doing some number crunching in javascript)
    we can now reuse all byte-coded fonts we had on the C-64.

    With one added bonus, we can actually rotate the images and they will remain crystal clear.
    Ain't that a nice bonus for a otherwise completely useless excercise.

    Well.. I say useless, but animations are still quite big and this might be a very nice way to let kids create small animations to use in their own games on MakingGames.org.
    I will give them a paint-like program to do the actual animation, I'm not a monster..