The Wiert Corner – irregular stream of stuff

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

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

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

    Join 1,862 other subscribers

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.

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, jq, 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 (ux) | 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 Conference Topics, Conferences, Delphi, Delphi 10 Seattle, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Event, Software Development | 1 Comment »

When PV Bean Counter stops publishing Sunny Boy 2500TL results to the net

Posted by jpluimers on 2017/04/17

Every once in a while, PV Bean Counter stops reporting results of by Sunny Boy 2500TL. Usually the problem is with the SUNNY EXPLORER software which has (at least) two irritating bugs:

  1. Easy to spot: it can truncate the SunnyExplorer.sx2 file
  2. Harder to spot: corrupted SunnyExplorer.sx2 file

The latter results in these log messages from PV Bean Counter:

9/2/2016 8:16:34 PM :T12 DeviceMgr_SE - Inf :DeviceMgr_SE: Sunny Explorer - CSV Export Failed
9/2/2016 8:16:34 PM :T12 DeviceMgr_SE - Inf :DeviceMgr_SE: UpdateFromDirectory - SunnyExplorer did not retrieve the expected date: 9/1/2016 12:00:00 AM
9/2/2016 8:16:34 PM :T12 DeviceMgr_SE - Inf :DeviceMgr_SE: UpdateFromDirectory - SunnyExplorer did not retrieve the expected date: 9/2/2016 12:00:00 AM

My usual follow up is to open the .sx2 file in Sunny Explorer. In this case this resulted in a MessageBox containing Cannot find Central Directory. It indicates that Sunny Explorer uses SharpZipLib and the .sx2 file is likely using ZIP compression.

In this case, the SunnyExplorer.sx2 file was not truncated, but filled with zero bytes.

Luckily that file gets backed-up often, so it was easy to restore:

  1. Stop the PV Bean Counter service
  2. Restore the .sx2 file
  3. Start the PV Bean Counter service
  4. Wait a while before reports start trickling in.

–jeroen

via: Hooking up a Sunny Boy 2500TL to the net « The Wiert Corner – irregular stream of stuff

Posted in LifeHacker, Power User | Leave a Comment »

MacOS System 7.0.1 Compilation : Apple Computer : Free Download & Streaming : Internet Archive

Posted by jpluimers on 2017/04/17

Cool stuff to compare when I have my Macintosh SE/30 up and running again: [Archive.isMacOS System 7.0.1 Compilation : Apple Computer : Free Download & Streaming : Internet Archive

Everything can either:

There is quite a bite included:

System Programs: Applications: Games: Utilities: Toys:
HyperCard, BBEdit Lite, Risk, HD Setup, Alarm
Macintosh MacDraw, Cannon Fodder, Disinfectant, Clock,
Basics, MacPaint, Shufflepuck. Disk Copy, Calculator,
Control Panels. Microsoft Excel, ResEdit, Note Pad,
Microsoft Word, TeachText, Puzzle,
Microsoft Works, Compact Pro, Mac Gzip,
Orion, Mar, Scrapbook.
Pagemaker, Stuffit Expander,
ZTerm. Stuffit Lite.

The [Archive.is] downloads:

../
00_coverscreenshot.jpg                          04-Apr-2017 04:51     50.9K
00_coverscreenshot_thumb.jpg                    04-Apr-2017 04:51     3.0K
_screenshot.gif                                 04-Apr-2017 04:51     62.7K
hd1.img                                         04-Apr-2017 04:12     20.4M
hd2.img                                         04-Apr-2017 04:12     20.4M
mac_MacOS_7.0.1_compilation.gif                 04-Apr-2017 04:51     4.2K
mac_MacOS_7.0.1_compilation_archive.torrent     16-Apr-2017 21:33     4.5K
mac_MacOS_7.0.1_compilation_files.xml           16-Apr-2017 21:33     3.8K
mac_MacOS_7.0.1_compilation_meta.sqlite         04-Apr-2017 04:51     14.0K
mac_MacOS_7.0.1_compilation_meta.xml            04-Apr-2017 05:49     4.2K
mac_MacOS_7.0.1_compilation_reviews.xml         16-Apr-2017 21:33     633.0B
screenshot_00.jpg                               04-Apr-2017 04:51     50.9K
screenshot_00_thumb.jpg                         04-Apr-2017 04:51     3.0K

–jeroen

Via (and more background info at): [WayBackIn-browser Mac OS 7.0.1 emulation, compatible software suite arrives at the Internet Archive

A pair of 20MB hard drive compilations contain a full MacOS 7.0.1 environment that runs in a browser, and contains an assortment of applications spanning from 1984 to 1991 has appeared on the Internet Archive, with the entire bundle able to be run inside Safari.

 

Posted in Apple, Classic Macintosh, History, Macintosh SE/30, Power User | Leave a Comment »

Launch & Run Multiple Instances of Any Application in Mac OS X

Posted by jpluimers on 2017/04/17

I needed a second instance of Atom to run on a second monitor:

open -n /Applications/Atom.app

Or even shorter:

open -na Atom

I got there via: Launch & Run Multiple Instances of Any Application in Mac OS X

The reason is that searching for Mac OS X start second Atom instance does not reveal satisfactory results, as the tips in these links all fail:

–jeroen

 

Posted in Apple, atom editor, Mac OS X / OS X / MacOS, OS X 10.10 Yosemite, OS X 10.11 El Capitan, OS X 10.9 Mavericks, Power User, Text Editors | Leave a Comment »

Windows update errors you get when you have a bad network connection: 80244019 and

Posted by jpluimers on 2017/04/14

A while ago I had some intermittent network issues resulting in these Windows Update error numbers:

  • 80244019 (some traffic made it through)
  • 80072EE2 (no traffic made it through)
  • 8??????? (DNS traffic didn’t make it through)

–jeroen

Posted in Power User, Windows, Windows 10, Windows 7, Windows 8, Windows 8.1 | Leave a Comment »

Forcing Chrome to use google.com as search engine

Posted by jpluimers on 2017/04/14

I tried the obvious things to force Chrome on my Mac and Windows to use google.com as search engine when searching through the address/search box (omnibox). On Windows, this works fine, but Chrome on Mac (both are linked through my gmail account) keeps insisting to use google.nl no matter what, as all these fail:

There are tons of reports on the google.com/ncr not working (you see the https://google.nl domain, in that search right?).

For me, google.com/ncr redirects to https://www.google.com/?gws_rd=ssl, so it does redirect, but somehow doesn’t mark it to use as default.

In Chrome, my search settings in chrome://settings/searchEngines are these:

Google (Default) search settings

Google (Default) search settings

I’ve never changed it, so it still points to {google:baseURL}search?q=%s&{google:RLZ}{google:originalQueryForSuggestion}{google:assistedQueryStats}{google:searchFieldtrialParameter}{google:searchClient}{google:sourceId}{google:instantExtendedEnabledParameter}{google:contextualSearchVersion}ie={inputEncoding}

So basically, Chrome screws up the {google:baseURL} portion and there is no way to force {google:baseURL} to a certain value as the 2008 bug 1521 was marked “wontfix” in 2010 and nobody at Google seems to care (except a Google employee wanting expense paid trips abroad).

The totally odd thing is that when I start on https://google.com then search for say “Mac OS X start second atom instance”, I get to https://www.google.com/#q=Mac+OS+X+start+second+atom+instance

Poor mans solution

So I’ve defined two new search engine settings:

When Google.com lets you down, force it to use Google.com

When Google.com lets you down, force it to use Google.com

In case you want to copy the text:

Read the rest of this entry »

Posted in Chrome, Google, Power User | 2 Comments »

.bashrc generator: create your .bashrc PS1 with a drag and drop interface

Posted by jpluimers on 2017/04/13

Cool: .bashrc generator: create your .bashrc PS1 with a drag and drop interface

http://bashrcgenerator.com/

–jeroen

http://bashrcgenerator.com/ – Joe C. Hecht – Google+

Posted in bash, Development, Scripting, Software Development | Leave a Comment »

How bad is the Windows command line really?

Posted by jpluimers on 2017/04/13

How bad is the Windows command line really?

The Windows command line is bad. Very bad.

But it took until recently for old Windows versions – that out of the box had either no or poor PowerShell versions – to have slowly died.

So only now PowerShell finally has become an option that really works across all Windows versions I use. Go PowerShell!

–jeroen

Posted in Batch-Files, Development, PowerShell, Scripting, Software Development | Leave a Comment »