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

Walts Lede – the disappearing computer.

Posted by jpluimers on 2019/12/23

I love this image so much: [WayBackWalts_Lede_v04_3.1495666767.gif (2040×1164)

It is how I learned about the word “lede” [WayBack].

It indeed is a perfect fit introducing the article by Nilay Patel “Mossberg: The Disappearing Computer – The Verge” [WayBack] which I only discovered quite a while after Walt Mossberg retired in June 2017: I was a regular listener to and thought he had completely stopped contributing to columns too. I was wrong: he occasionally still does.

–jeroen

Read the rest of this entry »

Posted in History, Power User | Leave a Comment »

Best practices how to mitigate #Emotet

Posted by jpluimers on 2019/12/21

Posted in Uncategorized | Leave a Comment »

OTT Box == Over-the-top media services – Wikipedia

Posted by jpluimers on 2019/12/20

Learned a new term while connecting a Chromecast to a Samsung TV: OTT Box. It is a device that can deliver [WayBack] Over-the-top media services – Wikipedia.

–jeroen

Posted in LifeHacker, Power User | Leave a Comment »

Offline XML Pretty Print

Posted by jpluimers on 2019/12/20

I wrote about [WayBackXML Pretty Print in Online XML Pretty Print many years ago.

That’s all fine for small XML file and on-line usage.

A while ago however, I had two cases where off-line XML pretty printing turned out to be much easier than online XML pretty printing:

  1. pretty-print many XML files in one go
  2. compare large (100 megabyte plus) XML files

So I went searching, especially for a solution that would be available for both nx based platforms (Linux/Mac OS X/etc) and Windows which got me a few options in [WayBack] unix – How to pretty print XML from the command line? – Stack Overflow.

I found [WayBack] tidy to be more practical than [WayBack] xmllint as tidy would split more lines which made it easier for  Beyond Compare (that is very much cross platform!) to spot and show the differences.

Not just easier in the sense that the (already excellent) diff engine from Beyond Compare (which really sets it apart from other differencing tools) but very much easier on the eyes as now differences where on lines below each other in stead of 1000s of character positions in one line you had to scroll through.

There is two important things to remember with tidy that both stem from its ancestry (it originates from an HTML):

  • you have to specify -xml
  • you have to specify the characterset (even though XML can specify it and without a definition, XML by default is UTF8, tidy does not know about that)

These were the command-lines I used on Windows to do the pretty printing:

tidy -xml -utf8 QCScaper.test@borland.com.cds.xml > QCScaper.test@borland.com.tidy.cds.xml
xmllint --format QCScaper.test@borland.com.cds.xml > QCScaper.test@borland.com.pretty-printed.cds.xml

Another trick is to write a small Delphi program centered around the FormatXMLData call which has been present since Delphi 2007 (see [WayBack] devnet.pdf), but documented since Delphi 2009 in [WayBack] XMLDoc.FormatXMLData Function.

Example code: [WayBack] delphi – How to reformat XML programmatically? – Stack Overflow.

An alternative is to use OmniXML: [WayBack] delphi – Nice bit of code to format an xml string – Stack Overflow

–jeroen

Related posts:

Read the rest of this entry »

Posted in Beyond Compare, Development, Power User, XML, XML/XSD | Leave a Comment »

Magic SysRq key – Wikipedia

Posted by jpluimers on 2019/12/20

Cool: Magic SysRq key – Wikipedia

The magic SysRq key is a key combination understood by the Linux kernel, which allows the user to perform various low-level commands regardless of the system’s state. It is often used to recover from freezes, or to reboot a computer without corrupting the filesystem.[1] Its effect is similar to the computer’s hardware reset button (or power switch) but with many more options and much more control.

Sometimes reading fluffy fluff posts teaches you new things, so be sure to read this one:

[WayBack] I just got trolled by my cat, hard. Last night i left my linux laptop open and running while watching TV in the other room. I came back to find Marley … – Stephen Shirley – Google+

I started looking through the kernel logs from last night, to see if there was any indication of the issue starting. And then i saw it. One innocent line that said:

Dec 18 21:26:52 x240 kernel: [373001.156356] sysrq: SysRq : Emergency Remount R/O

The fluffy dumbass had somehow hit the Sysrq [0] key combo to mount all filesystems read-only. This is an old, low-level when-all-else-fails facility for dealing with an linux unresponsive system, and fluff-for-brains Marley had somehow hit alt+fn+s+u.

Sigh.

[0] https://en.wikipedia.org/wiki/Magic_SysRq_key

Via: [Archive.is] I just got trolled by my cat, hard. Last night i left my linux laptop open and running while watching TV in the other room. I came back to find Marley … – Kristian Köhntopp – Google+

–jeroen

Posted in *nix, *nix-tools, Keyboards and Keyboard Shortcuts, Linux, Power User | Leave a Comment »

Examining Cross-functionality Bias on Software Development Teams | AgileConnection

Posted by jpluimers on 2019/12/19

Cross-functionality means having all the necessary people and skills on one self-organizing team. Unfortunately, the execution of cross-functionality is often biased. The main traps we fall into are misunderstanding the value of specialization, hero worship, and not “walking the cross-functional talk” as organizations. Let’s examine each of these pitfalls in the hope that your teams may avoid them.

Worthy tread at [WayBack] Examining Cross-functionality Bias on Software Development Teams | AgileConnection

Via: [WayBack] “Cross-functionality is much more than developers and testers working together. It goes against the biases we have of our personal and professional silos… – Marjan Venema – Google+

–jeroen

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

“A primary cause of complexity is that software vendors uncritically adopt almost any feature that users want.” – Niklaus Wirth

Posted by jpluimers on 2019/12/19

These quotes remind me so much of a project from a while ago I rolled into and forgot to ask them if they not just nodded “yes” when I asked them “do you understand de concept of technical debt”?

–jeroen

Read the rest of this entry »

Posted in Development, Fun, Quotes, Software Development | Leave a Comment »

Delphi: 2 things to check when FMX/VCL units are inserted when you use VCL/FMX components

Posted by jpluimers on 2019/12/19

On G+Tom Field bumped in the [WayBack] issue that the IDE would add VCL units to the uses list when putting FMX controls on a form.

I’ve observed it the other way around as well, and there are two things you need to check:

References:

David Nottage:

It has to do with whether there’s {$R *.fmx} or {$R *.dfm} in the unit. You may be able to get away with renaming the .dfm file to .fmx, and changing the directive in the unit.

Jeroen Wiert Pluimers:

 Your .dproj file tells you what kind of application it is (FMX or VCL) in the FrameworkType element and the IDE should respond to that correctly.

–jeroen

Source: [WayBackIn the Berlin Update 2 IDE. I’m working on a multi-device app I’m creating. …

Posted in Delphi, Development, FireMonkey, OS X FMX, Software Development | 3 Comments »

IOTAProjectNotifier.Modified notifies when when Project Options have changed…

Posted by jpluimers on 2019/12/18

From: [WayBack] Is there any way using Open Tools to detect when Project Options have changed? This link from +David Hoyle covers a whole bunch of other notifications: … – David Nottage – Google+

IOTAProjectNotifier.Modified

Note a direct “IOTAProjectNotifier.Modified” – Google Search revealed nothing relevant, but a parts “IOTAProjectNotifier” “Modified” – Google Search revealed [WayBack] RadStudioVersionInsight/SvnIDENotifier.pas at master · rburgstaler/RadStudioVersionInsight · GitHub: TProjectNotifier

Further reading are these excellent blog posts:

–jeroen

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

Visual Studio Code: enable Python debugging and selecting the Python version used

Posted by jpluimers on 2019/12/18

A few links and screenshots for my archive (assuming development on MacOS):

Enable Python Debugging

  1. Start the debugger: key combination Shift-Command-D, or click the debug icon 
  2. Click on the wheel with the red dot in the debugger pane: , which will generate and open a launch.json file in the current workspace, remote the red dot and fill the drop down with debug configurations

Via:

Selecting the Python version

  1. Key combination Ctrl-Shift-P
  2. Type Select Interpreter
  3. Select the Python version you want; on my system they were at the time of writing:

Via:

Setting command-line arguments

Commandline arguments are set in the same .vscode/launch.json file:

"args": [
    "--quiet", "--norepeat"
],

Though [WayBack] Python debugging configurations in Visual Studio Code: args could have been more clear that you should put that under the Python configuration section you are debugging with, for instance:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File (Integrated Terminal)",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "args": [
                "--quiet", "--norepeat"
            ]
        },

Setting the startup python program

The page above also has a section on [WayBack] Python debugging configurations in Visual Studio Code: _troubleshooting that you can use to start the same script each time you debug, for instance your integration tests:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File (Integrated Terminal)",
            "type": "python",
            "request": "launch",
            // "program": "${file}",
            "program": "${workspaceFolder}/snapperListDeleteFailures.FileTests.py",

Fazit

I should have read [WayBack] Get Started Tutorial for Python in Visual Studio Code first.

–jeroen

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