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,854 other subscribers

Archive for the ‘Software Development’ Category

The Piet programming language.

Posted by jpluimers on 2020/07/01

From a while back, an even older (2002, maybe even earlier) graphical programming language named after Piet Mondriaan: [WayBack] The Piet programming language. – Thomas Mueller (dummzeuch) – Google+:

–jeroen

 

Read the rest of this entry »

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

Just as “curl | sudo sh is not advised”, do not impose running http based scripts in your customers IDE

Posted by jpluimers on 2020/06/30

For a long time, it is advised against to curl | sudo sh or equivalent:

  • [WayBackwhy using curl | sudo sh is not advised? – Stack Overflow

    Because you are giving root access to whatever script you are executing. It can do a wide variety of nasty things.

  • [WayBack] The Security Spectrum of curl | sh

    By far the most irresponsible use of curl | sh is to use it with plain, unauthenticated, insecure HTTP instead of HTTPS. This is because it’s not only possible, but also increasingly likely, that the connection over which the shell script is delivered could have its contents silently modified by anyone in network position between the vendor and the installer—especially if you’re using public Wi-Fi. (If you don’t believe this is a real risk, consider that some companies’ business models revolve around modifying JavaScript delivered over HTTP in-transit—and anyone can hijack Wi-Fi with inexpensive, easy-to-obtain devices.)

So I’m surprised that companies still run content – include JavaScript – over an insecure http transport channel in their customers IDE instances.

Many developers run their IDE as Administrator, but even as regular user this is a large security risk: the transport layer is the easiest to hack and will eventually be hacked.

One such occasion was [WayBack] Delphi 10.2.3: Tools > Options Click OK = Script Error I have another weird situation with Delphi 10.2.3. Anytime I open up the options and click OK I … – Michael Riley – Google+ .

That one actually showed the script executed, but normally you do not see it happening at all.

So my advice:

Run the web-traffic from your development machines over a web-proxy like HTTP Fiddler, then disable all http based scripts.

–jeroen

Line 73: https://gist.github.com/jpluimers/40a60ca1e07bb91fa337ecfebe314d64#file-cf-common-js-L73

Read the rest of this entry »

Posted in Development, Power User, Security, Software Development | Leave a Comment »

Watch Kevlin Henney’s “Enterprise Programming Tricks for Clean Code” and drink The Singleton Single Malt Scotch Whisky

Posted by jpluimers on 2020/06/30

Watch Enterprise Programming Tricks for Clean Code by Kevin Henney and Agile is Dead by Pragmatic Dave Thomas.

Then (or at the same time) drink [WayBack] The Singleton Single Malt Scotch Whisky | The Singleton.

A few titbits:

I should watch more of his videos; luckily he has a playlist on YouTube.

There is also a Vimeo channel, and an InfoQ channel. These alle are not in sync, because, well, internet.

–jeroen

Read the rest of this entry »

Posted in Design Patterns, Development, Software Development | Leave a Comment »

Peeking under the hood of redesigned Gmail – Boris – Medium

Posted by jpluimers on 2020/06/25

From a while back, but still relevant as the speed of the GMail web-UI still has not improved.

[WayBack/Archive.is] Peeking under the hood of redesigned Gmail – Boris – Medium

Via:

–jeroen

Read the rest of this entry »

Posted in CSS, Development, GMail, Google, HTML, JavaScript/ECMAScript, Power User, Scripting, Software Development, Web Development | Leave a Comment »

Nick Craver on Twitter: “I see a lot of MyEnum.Member.ToString() in code reviews across various projects – instead you should use: nameof(MyEnum.Member)”

Posted by jpluimers on 2020/06/25

I love nameof (and wish many more languages had a similar feature), but since it got introduced so late in the C# language, there is still a lot of old idiom going around. Luckily most of that are not string literals, but you see the occasional reminder to get rid of that cruft: [WayBack] Nick Craver on Twitter: “I see a lot of MyEnum.Member.ToString() in code reviews across various projects – instead you should use: nameof(MyEnum.Member)”.

Luckily, there is a Roslyn analyser for it: [WayBack] Andy Edinborough on Twitter: “Roslynator: https://t.co/3LDUG9WRvE… “.

[WayBack] GitHub – JosefPihrt/Roslynator: A collection of 190+ analyzers and 190+ refactorings for C#, powered by Roslyn.

[WayBack] Antão Almada on Twitter: “I use Enums.NET https://t.co/YaIZWpYVxJ… “ which is a cool library that I’ve used a lot:

[WayBack] GitHub – TylerBrinkley/Enums.NET: Enums.NET is a high-performance type-safe .NET enum utility library

–jeroen

Read the rest of this entry »

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

browser – Clearing old browsing data in Chrome instead of newer data – Super User

Posted by jpluimers on 2020/06/25

[WayBackbrowser – Clearing old browsing data in Chrome instead of newer data – Super User had a few possibilities, but eHistory disappeared from the Chrome store (apparently due to some unknown violation), so the way that works best now is to hack the History database which is a SQLite file as mentioned in

[WayBackHow can I delete all web history that matches a specific query in Google Chrome – Super User: For literal values of “query”…You can even query your Chrome history using SQL. (Firefox too: see below. Of course, the appropriate file path will have to be changed).

If you really want you can hack the history frame chrome://history-frame/: [WayBack] How can I delete all web history that matches a specific query in Google Chrome – Super User

–jeroen

Posted in Chrome, Database Development, Development, Google, Power User, Software Development, SQL | Leave a Comment »

Go pick a leaf of that tree!

Posted by jpluimers on 2020/06/24

Still a very good (Dutch) read by mentor (not only Agile, also DCI and Marching) Robby Overvliet [WayBack/Archive.is] Go pick a leaf of that tree!:

Ben jij Agile? Weet je het zeker? Tuurlijk het whiteboard hangt en de stickies schuiven vrolijk van links naar rechts. Dagelijks is daar netjes de standup en andere feedback loops doen hun ding.

Via:

One of the cool things is that he learned a lot from Charlie Anderson, that I recollect from the Borland and Quattro Pro days. What a smal world (:

On Charlie:

–jeroen

Posted in Agile, Conference Topics, Conferences, Development, Event, Software Development | Leave a Comment »

On my research list: Unum – The End of (Numeric) Error

Posted by jpluimers on 2020/06/24

From about 4 years ago, so time to see how many development stacks support Unum by now: [WayBackThe End of (Numeric) Error

Crunching numbers was the prime task of early computers. The common element of these early computers is they all used integer arithmetic. John Gustafson, one of the foremost experts in scientific computing, has proposed a new number format that provides more accurate answers than standard floats, yet saves space and energy. The new format might well revolutionize the way we do numerical calculations.

Back then, I found these links through my G+ circles:

Read the rest of this entry »

Posted in Algorithms, Development, Floating point handling, Software Development, Unum | Leave a Comment »

Git – Credential Storage: caching for some time (and removing it)

Posted by jpluimers on 2020/06/24

From [WayBackGit – Credential Storage:

Git has a few options provided in the box:

  • The default is not to cache at all. Every connection will prompt you for your username and password.
  • The “cache” mode keeps credentials in memory for a certain period of time. None of the passwords are ever stored on disk, and they are purged from the cache after 15 minutes.

$ git config --global credential.helper cache

The cache helper accepts the --timeout <seconds> option, which changes the amount of time its daemon is kept running (the default is 900, or 15 minutes).

This is a one time config setting.

To remove it, use this command:

$ git config --global unset credential.helper cache

–jeroen

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

Ten Commandments For Naming Your Code

Posted by jpluimers on 2020/06/23

Be clear, be consistent, don’t be clever, and follow these rules for naming your code.

[WayBack] Ten Commandments For Naming Your Code investigates these:

  1. Thou shalt be specific.
  2. Thou shalt not use unnecessary words.
  3. Thou shalt not use abbreviations.
  4. Thou shalt use the code’s primary human language.
  5. Thou shalt not make up words.
  6. Thou shalt not include type.
  7. Thou shalt only use non-obvious words if the meaning is obvious.
  8. Thou shalt prefer active voice.
  9. Thou shalt use consistent syntax.
  10. Thou shalt break these rules if necessary.

–jeroen

Posted in Conference Topics, Conferences, Development, Event, Software Development | Leave a Comment »