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

Archive for the ‘Software Development’ Category

(mostly ASCII) List of emoticons – Wikipedia

Posted by jpluimers on 2021/03/17

Most searches for “ASCII emoticons” get you Unicode ones:

Luckily most are ASCII in List of emoticons – Wikipedia.

There are also shortcodes, which do not visually represent an emoji, but usually get translated to the image or Unicode character.

A few lists on them:

–jeroen

Posted in ASCII, Development, Encoding, LifeHacker, Power User, Software Development, Unicode | Leave a Comment »

A DUnit Folder Iterator Extension – The Art of Delphi Programming

Posted by jpluimers on 2021/03/17

Reminder to self: experiment with [WayBack] A DUnit Folder Iterator Extension – The Art of Delphi Programming.

This could be extended to virtual folders, allowing many integration tests to be run depending on some configuration hierarchy defined in a folder structure.

–jeroen

Posted in Conference Topics, Conferences, Delphi, Development, DUnit, Event, Software Development, Unit Testing | Leave a Comment »

Undocumented Plastic “cm status –hiddenchanged” to show hidden changes like the Plastic SCM GUI does by default

Posted by jpluimers on 2021/03/16

[WayBack] Undo changes to a hidden changes item from CLI – General – Plastic SCM Community.

Maybe I should start an undocumented Plastic SCM series just like I did for Delphi. (:

As soon as you have entries in your hidden_changes.conf, then entries matching will show up in your Plastic SCM GUI, but not included in the cm status --all command.

Luckily there is an the --hiddenchanged switch (maybe to keep naming inconsistent with the hidden_changes.conf file) which is only documented in cm changed --help, not on-line).

So my new cm-show-status.bat file contains this line:

cm status --all --hiddenchanged %*

Maybe more switches can be deducted from [WayBack] Plastic SCM version control · The Plastic SCM API: GET PENDING CHANGES IN WORKSPACE:

GET PENDING CHANGES IN WORKSPACE

GET /api/v1/wkspaces/:wkname/changes

Parameters

Name Type Description
types string A comma-separated list detailing the desired change types to display in the response. Available types: addedcheckoutchangedcopiedreplaceddeletedlocaldeletedmovedlocalmovedprivateignoredhiddenchangedcontrolledchangedall

Read the rest of this entry »

Posted in Development, Encoding, PlasticSCM, Power User, Software Development, Source Code Management | Leave a Comment »

Delphi use of FS segment: structured exception handling

Posted by jpluimers on 2021/03/16

A while ago, I had to trace through a lot of code in the CPU pane to track down some memory allocation related issues.

I wondered what the use of the FS segment was about, so via [Archive.is] delphi what is fs segment used for – Google Search, I found that it is related to Win32 Structured Exception handling and therefore not limited to Delphi, through these links:

A few disassembly parts to show how the Delphi Win32 compiler uses this for try finally blocks and try except blocks is below. Note that often, there are implicit try finally blocks when having managed method parameters or local variables.

–jeroen

Read the rest of this entry »

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

Supermicro | Products | Motherboards | Xeon® Boards | X9SRi-3F

Posted by jpluimers on 2021/03/12

I still like this board: Supermicro | Products | Motherboards | Xeon® Boards | X9SRi-3F.

It has been in a storage solution for a while, uses OK power, has not many SATA ports, but enough slots for expansion cards, and comes with two network connections and 8 slots which I fitted with a total of 256 gibibyte of memory.

Some links, as SuperMicro tends to hide them behind POST requests:

Note that IPMI over je Java Web Start.app runs into certificate signing issues, so better use Supermicro IPMIViewer for this:

IPMIView links via:

The errors when running the KVM Console from your web browser are waved away by SuperMicro, but more and more people bump into them:

–jeroen

Posted in Development, Hardware, Mainboards, Power User, Software Development, SuperMicro, Virtualization, VMware, VMware ESXi, X9SRi-3F | Leave a Comment »

Mikrotik: script to set clock to Amsterdam, enable ntp, then show latest ntp correction

Posted by jpluimers on 2021/03/11

For my script list:

/system ntp client set enabled=yes server-dns-names=0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org,3.pool.ntp.org
/delay 10
/system ntp client print

If the delay was long enough, you will see output like this:

             enabled: yes
         primary-ntp: 0.0.0.0
       secondary-ntp: 0.0.0.0
    server-dns-names: 0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org,3.pool.ntp.org
                mode: unicast
       poll-interval: 15m
       active-server: 149.210.230.59
    last-update-from: 149.210.230.59
  last-update-before: 29s290ms
     last-adjustment: 702us

If the delay was too short, the lines after mode will not be present.

–jeroen

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

GitHub – pastpages/savepagenow: A simple Python wrapper for archive.org’s “Save Page Now” capturing service

Posted by jpluimers on 2021/03/11

This makes it way easier to save WayBack content:

[WayBack] GitHub – pastpages/savepagenow: A simple Python wrapper for archive.org’s “Save Page Now” capturing service

A poor-mans alternative is the below bash script from [WayBack] Saving of public Google+ content at the Internet Archive’s Wayback Machine by the Archive Team has begun : plexodus:

For Linux, MacOS / OSX, BSD, and other Unix-like operating systems (including Android with Termux, or Windows, with a Unix/Linux environment), the following script (I’ve saved this as archive-url) will archive the requested URL:

#!/bin/bash
# archive-url
# Archive selected URL at the Internet Archive

curl -s -I -H "Accept: application/json" "https://web.archive.org/save/${1}" |
grep '^x-cache-key:' | sed "s,https,&://,; s,\(${1}\).*$,\1,"

Save that to your execution path (I’ve chosen ~/bin, you might use /usr/local/bin or another location on your $PATH, and invoke as, say (again referring to the G+MM homepage):

$ archive-url https://plus.google.com/communities/112164273001338979772

If you have a list of URLs in a file (or pipelined from command output), you can request all of them to be archived in a simple bash loop. I’m using xargs here to run ten simultaneous requests from the file gplus-urllist:

cat gplus_urllist | while read url do xargs -I{} -P 10 archive-url {}; done

I’ve run this on over 10,000 URLs over a modest residential broadband connection in a hair over two hours.

Note that such requests trigger an archive by the Internet Archive from one of its archiving nodes, you’re not sending the page to the Archive yourself. In particular, archival from regions defaulting to another language may result in the Google+ site content (but not post or comments) being in a different language. I’ve frequently seen my pages turning up in Japanese, for instance.

–jeroen

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

GExperts grep search: skipping searching certain files, irrespective of their directory

Posted by jpluimers on 2021/03/11

Especially when including [WayBack] form files (dfm now, but in the past also nfm and xfm) in your search, you might want to exclude one or more of them, for instance when they do not adhere to the form file syntax.

One of such files is for instance [WayBack] jcl/ExceptDlg.CBuilder32.dfm at master · project-jedi/jcl · GitHub. It has the contents is NONE (by intent, just like the corresponding .h and .cpp files, as only the Delphi equivalents .dfm and .pas have been implemented).

Doing this was way easier than I thought: just put ExceptDlg.CBuilder32.dfm in the “Exclude Dirs” field – which also excludes files. How cool is that!

–jeroen

 

Posted in Delphi, Development, GExperts, Software Development | 1 Comment »

Applying .patch File From Git – Easyread – Medium

Posted by jpluimers on 2021/03/10

Next time I need to apply a patch file directly from git itself, I need to re-read [WayBack] Applying .patch File From Git – Easyread – Medium.

Without git, just run the patch command as per [WayBack] What is a patch in git version control? – Stack Overflow

The git workflow for the above git scenario is this one:

–jeroen

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

VS2017 Community .vsconfig file – Visual Studio Community workload and component IDs | Microsoft Docs

Posted by jpluimers on 2021/03/10

When I need to find out what components match my below installed .vsconfig component IDs for Visual Studio 2017 community edition, I can find them in: [WayBack] Visual Studio Community workload and component IDs | Microsoft Docs: Use workload and component IDs to install Visual Studio by using the command line or to specify as a dependency in a VSIX manifest.

{
    "version": "1.0",
    "components": [
        "Microsoft.VisualStudio.Workload.ManagedDesktop",
        "Microsoft.VisualStudio.Workload.NativeDesktop",
        "Microsoft.VisualStudio.Workload.Universal",
        "Microsoft.VisualStudio.Workload.NetWeb",
        "Microsoft.VisualStudio.Workload.Azure",
        "Microsoft.VisualStudio.Workload.Python",
        "Microsoft.VisualStudio.Workload.Node",
        "Microsoft.VisualStudio.Workload.Office",
        "Microsoft.VisualStudio.Workload.NetCrossPlat",
        "Microsoft.VisualStudio.Workload.VisualStudioExtension",
        "Microsoft.VisualStudio.Workload.NativeCrossPlat",
        "Microsoft.VisualStudio.Workload.NetCoreTools",
        "microsoft.net.componentgroup.targetingpacks.common",
        "microsoft.visualstudio.component.entityframework",
        "microsoft.visualstudio.component.debugger.justintime",
        "microsoft.visualstudio.component.vc.diagnostictools",
        "microsoft.visualstudio.component.vc.cmake.project",
        "microsoft.visualstudio.component.vc.atl",
        "microsoft.visualstudio.component.vc.testadapterforboosttest",
        "microsoft.visualstudio.component.vc.testadapterforgoogletest",
        "microsoft.visualstudio.componentgroup.web.cloudtools",
        "microsoft.visualstudio.component.aspnet45",
        "microsoft.component.azure.datalake.tools",
        "microsoft.visualstudio.componentgroup.azure.resourcemanager.tools",
        "microsoft.visualstudio.componentgroup.azure.cloudservices",
        "microsoft.visualstudio.component.azure.mobileappssdk",
        "microsoft.visualstudio.component.azure.servicefabric.tools",
        "microsoft.component.cookiecuttertools",
        "microsoft.component.pythontools.web",
        "component.cpython3.x64",
        "microsoft.visualstudio.component.teamoffice",
        "component.google.android.emulator.api27",
        "component.linux.cmake"
    ]
}

This comes in very useful when installing Visual Studio 2017 through chocolatey:

chocolatey install -yes visualstudio2017community
:: "Microsoft.VisualStudio.Workload.ManagedDesktop", 
chocolatey install -yes visualstudio2017-workload-manageddesktop
:: "Microsoft.VisualStudio.Workload.NativeDesktop", 
chocolatey install -yes visualstudio2017-workload-nativedesktop
:: "Microsoft.VisualStudio.Workload.Universal", 
chocolatey install -yes visualstudio2017-workload-universal
:: "Microsoft.VisualStudio.Workload.NetWeb", 
chocolatey install -yes visualstudio2017-workload-netweb
:: "Microsoft.VisualStudio.Workload.Azure", 
chocolatey install -yes visualstudio2017-workload-azure
:: "Microsoft.VisualStudio.Workload.Python", 
chocolatey install -yes visualstudio2017-workload-python
:: "Microsoft.VisualStudio.Workload.Node", 
chocolatey install -yes visualstudio2017-workload-node
:: "Microsoft.VisualStudio.Workload.Office", 
chocolatey install -yes visualstudio2017-workload-office
:: "Microsoft.VisualStudio.Workload.NetCrossPlat", 
chocolatey install -yes visualstudio2017-workload-netcrossplat
:: "Microsoft.VisualStudio.Workload.VisualStudioExtension", 
chocolatey install -yes visualstudio2017-workload-visualstudioextension
:: "Microsoft.VisualStudio.Workload.NativeCrossPlat", 
chocolatey install -yes visualstudio2017-workload-nativecrossplat
:: "Microsoft.VisualStudio.Workload.NetCoreTools", 
chocolatey install -yes visualstudio2017-workload-netcoretools

Visual Studio 2017 related Packages I still need to research from [WayBack] GitHub – jberezanski/ChocolateyPackages: Chocolatey packages maintained by me:

–jeroen

Read the rest of this entry »

Posted in .NET, Development, Software Development, Visual Studio 2017, Visual Studio and tools | Leave a Comment »