The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My work

  • My badges

  • Twitter Updates

  • My Flickr Stream

    20140508-Delphi-2007--Project-Options--Cannot-Edit-Application-Title-HelpFile-Icon-Theming

    20140430-Fiddler-Filter-Actions-Button-Run-Filterset-now

    20140424-Windows-7-free-disk-space

    More Photos
  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,733 other followers

Archive for April 18th, 2017

When your markdown README files on GitHub are broken as of lately

Posted by jpluimers on 2017/04/18

Basically below gist tells it all.

Many repositories on GitHub do not have whitespace between the # and headings. This is against the specs, so GitHub fixed their rendering engine. Which means now many files do not render nicely any more.

So if you have headings like this:

##text

Fix them to be like:

## text

If your GitHub repository has less than 50 starts, you did not get an automatic pull request to fix it from https://github.com/bryant1410/readmesfix so you can either:

–jeroen

Posted in Development, DVCS - Distributed Version Control, git, GitHub, Software Development, Source Code Management | Leave a Comment »

Jan Barendregt is Looking for programmers to maintain existing Excel add-in software

Posted by jpluimers on 2017/04/18

Jan Barendregt is Looking for programmers to maintain existing Excel add-in software.

The reason is no fun (cancer without curative treatment and prognosis till death likely months).

Please follow-up on the forum if you can be of help: [WayBackEmbarcadero Discussion Forums: Looking for programmers to maintain existing Excel add-in software

–jeroen

Posted in Delphi, Software Development, Development | Leave a Comment »

Bash that JSON (with jq) — Librato Blog

Posted by jpluimers on 2017/04/18

 Glueing together APIs requires working with JSON: parsing it, extracting it, transforming it. JQ is a fast, lightweight, flexible, CLI JSON processor, that does the job well. Learn how to use it by getting your hands dirty with a JSON blob that represents the open issues in the public Docker GitHub repository.

Source: Bash that JSON (with jq) — Librato Blog [WayBackhttp://blog.librato.com/posts/jq-json

via: http://blog.librato.com/posts/jq-json – Joe C. Hecht – Google+

–jeroen

Source: http://blog.librato.com/posts/jq-json

Posted in bash, Development, JavaScript/ECMAScript, JSON, Scripting, Software Development | Leave a Comment »

(NL) Hoe de ABN-AMRO hun user-experience van de web-site sterk kan verbeteren

Posted by jpluimers on 2017/04/18

Beste ABN-AMRO,

Ik geef jullie in dit stuk een aantal belangrijke user experience tips die voor vele van jullie kanten het gebruik van jullie site het downloaden van afschriften en overzichten een stuk makkelijker maken. Hiervoor reken ik niets, maar ik weet zeker dat [WayBackStichting Zevensprong – die sport en recreatie voor gehandicapten organiseert – een bijdrage van jullie kan gebruiken dat ze [WayBackhebben ANBI status, dus dat moet voor jullie appeltje-eitje zijn.

Eerst even de aanleiding

Als curator van een verstandelijk beperkte broer moet ik jaarlijks voor de belastingdienst en de rechtbank aangifte doen en verantwoording afleggen.

Daarvoor heb ik alle finianciële gegevens die betrekking hebben over afgelopen boekjaar nodig.

Jullie assembleren de bijbehorende afschriften en overzichten van en met ongeveer december in het jaar daarvoor tot en met ongeveer maart in het jaar daarna. Een tijdspanne van pakweg 16 maanden, afgerond 18 maanden, dus anderhalf jaar.

Het jaaroverzicht hiervoor is niet gedetailleerd genoeg, dus ik moet de onderliggende stukken voor dat boekjaar allemaal voor alle rekeningen downloaden.

Ik heb al eens een kort voorschot genomen hoe dit bij de diverse banken enorm uiteeinloopt: (NL) fijn al die electronische rekeningafschriften, maar je moet ze of downloaden of 7 jaar bij je bank blijven @ABNAMRO @ingnl @Rabobank.

Tijd om wat specifieke zaken van ABN AMRO toe te lichten

Wat ik het liefste zou willen is met 1 knop:

Wat ik het liefste zou willen is met 1 knop, voor een bepaalde contracthouder:

  • een jaar selecteren en
    alle stukken downloaden
  • van alle rekeningen
  • voor een periode van 18 maanden rondom dat jaar

ABN AMRO maakt het downloaden een tijdrovend proces

Die ene knop is er helaas niet, maar als je handmatig de overzichten bij elkaar wilt downloaden ben je eindeloos lang bezig.

Hier heb ik al eens wat Twitter conversaties met het ABN-AMRO web-care team over gehad, telkens met een doodlopend resultaat. Die staan helemaal onderaan deze post: ter lering en vermaak.

Als je voor veel rekeningen over een lange periode de afschriften en overzichten wilt downloaden loop je teze deze beperkingen aan:

  1. De titel zegt het al “kies het gewenste afschrift of overzicht”. Wat het meest gedownloade is over het algemeen een “Rekeningoverzicht”.

    Daarom hier twee tips:

    • Onthoud altijd de meest recente keuzes onder het item dat de gebruiker als laatste wijzigt want dit scheelt enorm veel invulwerk:
      • Wijzigt een gebruiker “gewenste afschrift of overzicht”, toon dan de laatste keuze voor:
        1. “periode”
        2. details van de “periode” (zoals “jaar”, “volgnummer”, “van en met” datum en “tot en met” datum)
      • Wijzigt een gebruiker “rekeningnummer”, toon dan de laatste keuze voor:
        1. “gewenste afschrift of overzicht”
        2. “periode”
        3. details van de “periode” (zoals “jaar”, “volgnummer”, “van en met” datum en “tot en met” datum)
      • Wijzigt een gebruiker “rekening” (wat eigenlijk “rekeningsoort” zou moeten zijn, want je kunt hier niet direct de rekening zelf kiezen), toon dan de laatste keuze voor:
        1. “gewenste afschrift of overzicht”
        2. “rekeningnummer”
        3. “periode”
        4. details van de “periode” (zoals “jaar”, “volgnummer”, “van en met” datum en “tot en met” datum)
      • Wijzigt een gebruiker “wie” (de “contracthouder”), toon dan de laatste keuze voor:
        1. “rekening”
        2. “gewenste afschrift of overzicht”
        3. “rekeningnummer”
        4. details van de “periode” (zoals “jaar”, “volgnummer”, “van en met” datum en “tot en met” datum)
      • Als een gebruiker “wie”, “rekening”  “rekening
    • Kan dat allemaal niet, kies dan in ieder geval “Rekeningafschrift” in plaats van de huidige alfabetisch eerste in het lijstje “gewenste afschrift of overzicht”
  2. Over rendering en auto-refresh:
    1. Bij het kiezen van deze onderdelen ververst *bija* het hele scherm; laden en rendering kost ongeveer vier en een halve seconden:
      • “wie” (de “contracthouder”)
      • “rekening”
      • “rekeningnummer”
    2. Het enige stuk dat niet rendert is de lijst met PDF documenten (hoewel totale laadtijd met en zonder die lijst vrijwel even lang is: scheelt ongeveer 100-200 milliseconden op ongeveer vier en een halve seconde)
    3. Gebruikers klikken daarom meteen na het maken van een selectie uit de keuzelijstjes op de “OK” button om
    4. Als de gebruiker dan bovenaan het scherm

      verwacht en dat niet krijgt, klikt hij automatisch op de plek waar de “OK” button zou staan. Maar inmiddels staat daar “vraag dan een kopie aan”

      en komt de gebruiker na klikken hier terecht: https://www.abnamro.nl/nl/prive/betalen/bij-en-afschrijvingen/f_kopie-rekeningafschrift.html
  3. Je kunt slechts een periode van 6 maanden kiezen.
    Om aansluiting te hebben met vorige/volgende boekjaar moet je dus minimaal 3 perioden kiezen; om 2016 met aansluiting te hebben kom je dan uit op deze perioden (allemaal in dd-mm-yyyy formaat):

    • van en met 01-11-2015 tot en met 01-05-2016
    • van en met 01-05-2016 tot en met 01-11-2016
    • van en met 01-11-2016 tot en met 01-05-2017
  4. Bij het kiezen van 1 periode treden er meteen onduidelijkheden op: 
    • zonder afkorting wordt “van” gebruikt terwijl daar eigenlijk “van en met” bedoeld is. In het spraakgebruik wordt dat ook meestal bedoeld, maar het is goed dat eenduidig aan te geven.
    • met afkorting wordt “t/m” gebruikt; gebruik hier dan meteen “tot en met”
  5. Voor het makkelijk selecteren van de drie perioden zou het enorm makkelijk zijn om een einddatum in de toekomst te kiezen, dan krijg je echter een pop-up: 
    • Dit is onhandig want:
      • je moet die eerst moet wegklikken (extra werk)
      • daarna moet je de datum van vandaag intikken (nog meer extra werk)
      • later (bij de volgende rekeningsoort/rekening) die datum weer vervangen in een vorm 01-05 of 01-11 moet vervangen (het patroon “extra werk” *blijft* terug komen)
    • Veel makkelijker zou zijn als je:
      • een tekst bij de foute datum ziet waarom die fout is
      • de back-end ervoor zorgt dat het nooit afschriften/overzichten uit de toekomst kunt downloaden (de kans dat iemand tijdreizen realiseert zijn heel klein, dus die overzichten bestaan sowieso niet).
  6. De periode tussen begin- en einddatum mag maximaal 6 maanden beslaan:

    • Dat is eigenlijk niet meer van deze tijd:
      1. ten eerste niet omdat inmiddels de back-end de informatie binnen driekwart seconde als web-pagina genereert en over de lijn stuurt; dit valt in het niet bij de totale page-load cyclus van ongeveer vier en een halve seconde (zee screenshot helemaal onderaan).
      2. ten tweede omdat jullie conculega’s al lang afscheid van de “6 maanden” grens genomen hebben; voorbeeld ruim 7 jaar:

        • Deze conculega genereert en rendert deze totale periode trouwens sneller dan jullie 6 maanden doen.
    • Helaas vangt de back-end dit zelf ook af, want je kunt de parameters van de web-pagina via een achterdeur aanpassen en dan toch meer dan 6 maanden opvragen, maar dan krijg je dit bovenin de pagina: 
  7. Van diverse producten zijn veel overzichten niet eens beschikbaar, dus geef dan ook meteen aan dat ze er niet zijn.
    • Bijvoorbeeld voor de combinatie rekening “effectendepots” en rekeningnummer “Beleggingspolis” komt
      • bij dit keuzelijstje

        over het algemeen dit resultaat:
      • Het zou heel handig zijn meteen al in het keuzelijstje te tonen in welke perioden de resultaten er überhaupt zijn.
      • Hetzelfde geldt voor andere lijstjes zoals bijvoorbeeld voor diverse spaarproducten ik deze gezien heb terwijl alleen “Rekeningafschrift” daar relevant is:

  8. De eerste stap heb ik voor het laatst bewaard omdat die ontzettend goed het “van binnen naar buiten denken” weergeeft terwijl je een on-line platform “van buiten naar binnen” moet ontwikkelen: 
    • Overal wordt hier alles voluitgeschreven behalve bij “Fin.” De punt geeft ofwel einde zin ofwel einde term aan. Een “Fin” woont in Finland. Dus je kunt hier kennelijk drie dingen downloaden:
      • Afschriften
      • Fin
      • Jaaroverzicht
    • Als de tekst te groot is voor een button, maak dan een nieuwe button aan: er is plek zat om zowel een “Afschriften” als “Financieel jaaroverzichten” button onder “Downloaden” te hebben
    • Het is raar dat je voor “Mutaties” niet met een e-dentifier hoeft in te loggen, maar voor “Afschriften” wel (mutaties geven hetzelfde inzicht).

Een eindgebruiker zou dit allemaal kunnen ondervangen door op 1 mei, 1 november en 1 mei aan het einde van de de overzichten te downloaden.

Maar zeg nou eerlijk: welke eindgebruiker leeft nou zo’n geregeld leven? En de belastingdienst vind het niet leuk dat je pas na 1 mei aangifte doet.

Voorbeelden van de Twitter conversaties:

Page load bij 6 maanden aan data van een normale betaalrekening:

Posted in Power User, User Experience | 1 Comment »

Delphi and the joy of Compiler Intrinsics – I cant use “Length” as a TFunc…

Posted by jpluimers on 2017/04/18

One of the reasons I favour using RTL based functionality over Delphi Intrinsic Routines like Length, Abs and others is that you cannot use compiler intrinsics in Generics. For instance Length is not compatible with TFunc<string, Integer> unless you declare it yourself like function StringLength(value: string): Integer; as otherwise you get en E2029 error (in this case the cryptic '(' expected but ';' found).

It’s one of the many areas where the Delphi compiler developers took a shortcut, but in this case I think the results are somewhat good.

Other reasons for using the RTL over compiler intrinsics have to do with scoping: the intrinsics are in the global scope which can clutter what you’re trying to work on.

So I much rather use the file and stream related functions when I’m actually working with a file or stream. For instance Assign for me has nothing to do with a file outside of a file context (it’s the reason AssignFile exists in the first place).

–jeroen

via: I cant use “Length” as a TFunc (tested in XE and XE6), but if…

Posted in Delphi, Delphi 10 Seattle, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Software Development | 1 Comment »

 
%d bloggers like this: