The Wiert Corner – irregular stream of stuff

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

  • My badges

  • Twitter Updates

  • Pages

  • All categories

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

    Join 1,839 other subscribers

WSA: Web-Service Addressing

Posted by jpluimers on 2020/12/08

I don’t do SOAP that often any more, so here some links on it and some notes on how one site used some of the fields:

A few observations from real life:

  • Inside the WS-Addressing realm:
    • Action has a URI indicating what to execute inside the service
    • From is basically abused because it
      1. is not used as a source endpoint but
      2. has an Address element that contains both Action and authentication
    • MessageID uses a uuid: based URI
  • Outside the WS-Addressing realm, in the main SOAP body:
    • Since is implemented using a non ISO-8601 compliant timestamp: it barfs on the second fraction and on the time zone (neither Z nor an offset based time-zone are accepted).

I did not know you could have uuid based URIs, as they are not mentioned here:

But apparently they have been in use for quite a while:

–jeroen

Posted in Development, SOAP/WebServices, Software Development, XML, XML/XSD | Leave a Comment »

delphi “tproc” with “array of const” – Google Search

Posted by jpluimers on 2020/12/08

Reminder to self: remember which of the open source libraries have:

  • a generic TProc<T> alike with an const values: array of const T parameter
  • a generic TProc<T> alike with a const value: T parameter

Google returned none that stuck:

The Delphi RTL does not contain them, and because they forgot setting them up with const parameters, these can never be changed:

[WayBack] System.SysUtils.TProc – RAD Studio API Documentation

TProc = reference to procedure;
TProc<T> = reference to procedure (Arg1: T);
TProc<T1,T2> = reference to procedure (Arg1: T1; Arg2: T2);
TProc<T1,T2,T3> = reference to procedure (Arg1: T1; Arg2: T2; Arg3: T3);
TProc<T1,T2,T3,T4> = reference to procedure (Arg1: T1; Arg2: T2; Arg3: T3; Arg4: T4);

More people are annoyed by this, for instance [WayBack] SysUtils.pas Why parameters of these anonymous not const? TProc = reference to procedure (Arg1: T1; Arg2: T2); TProc = reference … – Jacek Laskowski – Google+

SysUtils.pas

Why parameters of these anonymous not const?

TProc<T1,T2> = reference to procedure (Arg1: T1; Arg2: T2);
TProc<T1,T2,T3> = reference to procedure (Arg1: T1; Arg2: T2; Arg3: T3);
TFunc<T,TResult> = reference to function (Arg1: T): TResult;
TFunc<T1,T2,TResult> = reference to function (Arg1: T1; Arg2: T2): TResult;

  • David Heffernan's profile photo
    Because the designer made a bloody terrible mistake 
  • Asbjørn Heid's profile photo
    To be fair, const-ness is a bloody mess in Delphi…
  • Hallvard Vassbotn's profile photo
    It could have been solved if the const’ness had been seen as a implementation detail by the compiler (which it really is) and made const and non-const signatures assignment compatible.
  • David Heffernan's profile photo
    +Hallvard Vassbotn indeed, and it pains me that this has never happened
  • Hallvard Vassbotn's profile photo
    +Marco Cantu Any chance of a compiler improvement in the future with regards to relaxing const matching in signature assignments…? :)
  • Vincent Parrett's profile photo
    I’ve taken to defining
    TConstProc<T1,T2> = reference to procedure (const Arg1: T1; const Arg2: T2);for cases where I have full control.

  • David Heffernan's profile photo
    +Vincent Parrett I’m sure we all have our own versions of this. But it’s not much use for composition of course.
  • Vincent Parrett's profile photo
    +David Heffernan Yup. Since it’s unlikely the compiler will every be updated to make const an automatic thing, perhaps they could add const versions to the RTL.
  • Allen Drennan's profile photo
    Yeah, we end up making our own versions of these to add the consts in all our projects.
  • David Millington's profile photo
    Do file a QP, please. Major releases like the upcoming 10.3 are the time to make interface-breaking changes.

–jeroen

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

Lifehack: solving jigsaw puzzles on whiteboards

Posted by jpluimers on 2020/12/07

I was a bit amazed that “lifehack” “jigsaw puzzle” “whiteboard” – Google Search returned zero meaningful results.

I got at this “lifehack” via two different paths.

The first one had been simmering in my head because my mentally retarded brother has periods where he loves solving jigsaw puzzles, and periods he does not.

A while ago, he (and being his custodians: we too) had a few rough years that took us a while to help alleviate. There were a lot of symptoms, like anxiety, mixing fantasy and real life, much shortened attention span, mix-ups of both short-term and long-term memory, and a lot more. His life structure was falling apart, which resulted in a lot of puzzles to be started and abandoned shortly after.

It put a lot of pressure on us, which meant my idea of trying to “store” his unfinished puzzles somewhere never took form.

The second one came when towards the end of that period, he got back into a jigsaw puzzle solving period. But this time, he could retain solving focus for a few days in a row.

I tweeted about that in Dutch, showing my amazement. But he was still not back his former level of solving, nor level of understanding.

So close to the Christmas days, he got himself a duo-jigsaw puzzle: two 1000 pieces puzzles in one box. Not being aware of the consequences, he opened both plastic bags and put them in the box.

Back in the days (almost a “Once upon a time…“) quality puzzles had pieces with smooth backs, usually printed in one colour per puzzles. Those times are over, we live in a mass production world, where every penny – or less – is shaved off in a drip-feed method like way, meaning the backs are just roughened cardboard all in one colour.

So we needed to find a way to solve two puzzles at the same time, including a place to store them when he was not staying with us.

He had been using puzzle mats, which all have drawbacks, some of which are in the video below, including:

  • pieces get damaged
  • sticking mat material sticks dust even better than puzzle pieces
  • mats usually come folded and take ages for the fold to disappear
  • inflatable tubes deflate over time because their plastic is porus
  • elastic straps are too cheap for their elasticity to last
  • cannot be used on flat areas smaller than the mat

Basically I needed portable large flat areas with slightly raised edges.

While showering – always a great time to get ideas – it occurred to me: magnetic whiteboards are flat, had raised edges, relatively sturdy, portable, thin, easy to store (because stackable).

Being magnetic makes it easy to stick a cotton cloth (say a large bed pillow case) to top or bottom so they would not scratch the underlying table, or to protect the puzzle from dust.

I choose a 90×60 cm whiteboard, which Amazon.de does not deliver to The Netherlands, but Amazon might deliver it to yours:

So I got a set of these: [WayBack] bol.com | Whiteboard Magneetbord 60x90cm which was EUR 27 back then, but immediately rose to EUR 28+ after buying (:

Related tweets

The last tweet is my brother after having spent like 40 hours on this 750 piece Ravensburger “bergbauernhof” puzzle over a couple of months, now spent 2 days in a row puzzling and making way more progress than the first 25+ hours. He was proud, and we were too, as this was the first time in about 2 years he could focus on such things for such a long time in a row.

The first tweet is on him getting a Jan van Haasteren 19083 set of two 1000 piece puzzles without him realising there are two:

Read the rest of this entry »

Posted in LifeHacker, Power User | Leave a Comment »

Running BBS Door Games on Windows 10 with GameSrv, DOSBox, plus telnet fun with WSL – Scott Hanselman

Posted by jpluimers on 2020/12/07

Reminder to self: see if I ever can resurrect my old BBS and FidoNet node that was based on at least:

  • FrontDoor (by Joaquim Homrighausen)
  • RemoteAccess (by Andrew Milner)
  • GoldED (by Odinn Sørensen)
  • A FOSSIL driver (forgot the name)
  • A Fidonet NodeList Compiler
  • a Message Tosser

Maybe a good place to start: [WayBack] Running BBS Door Games on Windows 10 with GameSrv, DOSBox, plus telnet fun with WSL – Scott Hanselman

I already wrote a few times about me being on Fidonet, and BITNET in the late 1980s:

A few email addresses I have been using in that era:

A tag-line from me in that era (I blanked out the phone number as it now belongs to someone else):

    o _   _  _   _   _             voice:  +31-2522-XXXXX (19:00-22:00 UTC)
   / (_' |  (_) (_' | |            snail:  P.S.O.
__/                                        attn. Jeroen W. Pluimers
                                           P.O. Box 266
jeroenp@rulfc1.LeidenUniv.nl               2170 AG Sassenheim
jeroen_pluimers@f521.n281.z2.fidonet.org   The Netherlands

Related:

–jeroen

Posted in BBS, dial-up modems, FidoNet, History, MS-DOS, Power User, Windows | Leave a Comment »

HMpaal.nl: exacte (Google maps) locatie van een hectometerpaal op een A of N weg

Posted by jpluimers on 2020/12/07

Handig: [WayBack] HMpaal.nl.

Behoorlijk exact (veel exacter dan andere bronnen) voor locaties van hectometerpalen langs A en N wegen die door rijkswaterstaat beheerd worden.

Zie ook:

Voorbeeld:

[WayBack/Archive.is] HMpaal.nl A9/R/36.9/a 

–jeroen

Posted in LifeHacker, Power User | Leave a Comment »

gpg creation and sign Gino’s Key ($1785651) · Snippets · GitLab

Posted by jpluimers on 2020/12/04

Boy it was a long time ago that I did anything with gpg. Here is how to generate and sign keys.

[WayBack] gpg creation and sign Gino’s Key ($1785651) · Snippets · GitLab

And here to check your email confguration:

[WayBack] Home – dmarcian Founded in 2012 by the primary author of the DMARC specification, dmarcian is dedicated to upgrading the entire world’s email by making DMARC accessible to all. dmarcian brings together thousands of senders, vendors, and operators in a common effort to build DMARC into the email ecosystem.

–jeroen

Posted in *nix, Power User, Security | Leave a Comment »

Why is “finite” in “infinite” pronounced differently than plain “finite”?

Posted by jpluimers on 2020/12/04

December thoughts: [WayBackWhy is “finite” in “infinite” pronounced differently than plain “finite”?… – Jeroen Wiert Pluimers – Google+

Q

Why is “finite” in “infinite” pronounced differently than plain “finite”?
As a partially word-blind person, those differences make natural languages very hard for me to grasp.
Especially because Dutch “eindig” is pronounced the same in “oneindig” (and German “endlich” the same in “unendlich“)

A

  • Randy Tapson's profile photo
    My guess is that it’s easier to say. They were probably pronounced the same 500 years ago but over time it became easier (lazier) to say 3 short vowels (because they are all the same sound) versus 1 short and 2 long. I’d be very interested in hearing what the old English pronunciation sounded like.
  • Wolfgang Rupprecht's profile photo
    Steven Pinker has a great talk on irregular verbs. In a nutshell certain words when put into a typical sentence are too much of a tongue twister. If the word or phrase is used enough people develop shortcuts to make them easier to say. The interesting aspect that he identified is that if some word falls out of common usage the pronunciation becomes regular again. People forget that they can say it the easier way. His talk is about irregular verbs, but the concept is much more general than that.
  • Kim Nilsson's profile photo

    Two great explanations, which both boil down to the truth and fact that people are lazy and languages adapt over time.

    English spelling is from the 15th century, but pronunciation has changed.

    Norwegian has tried to update their spelling to be closer to the actual use, and also removed duplicate “spelling” of the same sounds.

    Some languages are sponges, and fill up with words from other languages, and either keep the sounds or change them a little, even if they don’t conform to their own language. Others, like Icelandic, create brand new words for everything.

–jeroen

Posted in History, LifeHacker, Power User | Leave a Comment »

Wegstatus.nl – Home

Posted by jpluimers on 2020/12/04

This is so cool: a site showing live road status obtained through public APIs of roads in The Netherlands and Belgium covering closures, incidents (via P2000), open bridges, etc, communicating everything to Waze:

Wegstatus, een overzicht van actuele afsluitingen en incidenten in het verkeer.

[Archive.isWegstatus.nl – Home

Soo much information:

You can view new road closures through [Archive.is] Wegstatus.nl (@wegstatus) on Twitter

–jeroen

Posted in LifeHacker, Power User | Leave a Comment »

.NET: interfaces that inherit from multiple base interfaces

Posted by jpluimers on 2020/12/03

For my link archive:

Read the rest of this entry »

Posted in .NET, C#, Delphi, Development, Software Development | Leave a Comment »

Mike Cardwell’s Tech Blog: Twitter to RSS with Google Cloud Function – Grepular

Posted by jpluimers on 2020/12/03

Cool, on my list of things to tinker with: [WayBack] Twitter to RSS with Google Cloud Function – Grepular at Mike Cardwell’s Tech Blog

Source at [WayBack] Mike Cardwell / funcTwitter · GitLab, of which these are the most important bits:

Via [WayBack] Mike Cardwell on Twitter: “Twitter to RSS with Google Cloud Function”

–jeroen

Posted in Cloud Apps, Cloud Development, Development, Google, Google Cloud Function, Internet, Power User, RSS, SocialMedia, Software Development, Twitter | Leave a Comment »