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

Small batch file wrapper around PowerShell to uniquely sort file based content

Posted by jpluimers on 2021/05/19

From my batch file library; note this PowerShell wrapper does not support stdin, but that is OK for me.

For Windows 10 and up, sort /unique works too and supports stdin.

:: note: does not work on stdin, unliqke sort which does support standard input
:: http://secretgeek.net/ps_duplicates
PowerShell Get-Content %1 ^| Sort-Object ^| Get-Unique
:: note that for Windoww 10 and up, there is a sort /unique switch, but Windows versions below it do not.
:: https://superuser.com/questions/1316317/is-there-a-windows-equivalent-to-the-unix-uniq

Related:

–jeroen

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

Much Turbo Pascal history (via What is a Delphi DCU file? – Stack Overflow)

Posted by jpluimers on 2021/05/19

Editing [WayBack] What is a Delphi DCU file? – Stack Overflow for more historic correctness and adding links prompted me to archive some older material and search for some more, basically because while historically very relevant, link rot makes a lot of that stuff harder and harder to find.

The legendary full page colour advert published in the 12th 1983 issue of Byte Magazine on page 456 is at the bottom of this post (Many BYTE magaine issues have been archived at https://archive.org/details/byte-magazine).

The smaller version below is from WayBack: Sip from the Firehose : November 2008 marks the 25th anniversary of Turbo Pascal v1.0! (this article is not available on the Embarcadero or Idera site any more).

I also included more adverts in reverse chronological order at the end:

The last two via [WayBack] saundby.com: Software for the Ampro Little Board.

--jeroen

Read the rest of this entry »

Posted in Conference Topics, Conferences, CP/M, Delphi, Development, Event, History, MS-DOS, Pascal, Power User, Software Development, Turbo Pascal, UCSD Pascal, Z80 | Leave a Comment »

Plastic SCM: add the current directory recursively

Posted by jpluimers on 2021/05/18

Since I always forget the command (I do not use it often enough) [WayBack] Plastic SCM – Branch per task guide:

cm add -R .

That adds the current directory (.) recursively, taking into account the ignore.conf file.

–jeroen

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

SQL Server: RowVersion is not the same format as BigInt

Posted by jpluimers on 2021/05/18

A while ago, I needed to get RowVersion binary data out of SQL Server. People around me told me it is stored as BigInt.

I luckily bumped into [WayBack] sql server – Cast rowversion to bigint – Stack Overflow.

That post explains RowVersion is not stored as BigInt. Both RowVersion and BigInt take up 8 bytes of storage, but RowVersion is big-endian and unsigned, whereas BigInt is little-endian and signed.

A few quotes from it:

In my C# program I don’t want to work with byte array, therefore I cast rowversion data type to bigint:

SELECT CAST([version] AS BIGINT) FROM [dbo].[mytable]

So I receive a number instead of byte array. Is this conversion always successful and are there any possible problems with it? If so, in which data type should I cast rowversion instead?

and

You can convert in C# also, but if you want to compare them you should be aware that rowversion is apparently stored big-endian, so you need to do something like:

byte[] timestampByteArray = ... // from datareader/linq2sql etc...
var timestampInt = BitConverter.ToInt64(timestampByteArray, 0);
timestampInt = IPAddress.NetworkToHostOrder(timestampInt);

It’d probably be more correct to convert it as ToUInt64, but then you’d have to write your own endian conversion as there’s no overload on NetworkToHostOrder that takes uint64. Or just borrow one from Jon Skeet (search page for ‘endian’).

Code: [WayBack] Jon Skeet: Miscellaneous Utility Library

Related:

--jeroen

Posted in .NET, Database Development, Delphi, Development, Jon Skeet, Software Development, SQL Server | Leave a Comment »

JclRTTI: type has not type info

Posted by jpluimers on 2021/05/18

[WayBack] Any idea why we get this error, or even better, how to fix it : [dcc32 Error] JclRTTI.pas(663): E2134 Type ‘<void>’ has no type info We compile same c… – Tommi Prami – Google+

So the JCL needs to have the compiler setting Emit runtime type information set to true (which is the default for projects, but can be turned off).

Thanks Stefan Glienke for reporting the fix.

–jeroen

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

When all your SuperMicro X9/X10/X11 IPMI sensors show N/A: the system is in a BIOS or boot selection screen

Posted by jpluimers on 2021/05/17

I have seen this happen on various Supermicro X9/X10/X11 systems including X9SRi-F/X9SRi-3F/X10SRH-CF/X11SPM-F boards:

 

I found this via:

  • [WayBack] IPMI no sensor readings and already reset | iXsystems Community
  • [WayBack] Supermicro X10 and X11 motherboard FAQ | iXsystems Community

    All the sensors read N/A 

    First of all, make sure you’re not in the BIOS setup menu. IPMI monitoring of sensors isn’t available there.

    If that is not the case, the procedures listed under “The CPU/PCH temperatures read N/A” may help.

    The CPU/PCH temperatures read N/A

    While the exact cause is unknown, the BMC may enter a faulty state, requiring a reset.

    The following options were recommended to me by Supermicro:

    • Start by power cycling the IPMI. This can be done from the web interface.
    • If that doesn’t work, reset it to factory defaults via the web interface and power cycle it (it will not work until it is properly power cycled).

–jeroen

Posted in Hardware, IPMI, Power User, SuperMicro | Leave a Comment »

ESXi 6.x download URL

Posted by jpluimers on 2021/05/17

Many of the ESXi download URLs get you to my-vmware in places that indicate you do not have a license.

This seems to be the only link that consistently gets you the license and downloads: my.vmware.com/en/group/vmware/evalcenter?p=free-esxi6.

For instance, the ones below with

–jeroen

Posted in ESXi6, ESXi6.5, ESXi6.7, Power User, Virtualization, VMware, VMware ESXi | Leave a Comment »

Chocolatey: vcredist 2005/2008/2010 updates succeeding again after Microsoft rebuilt the installers multiple times causing new hashes each time

Posted by jpluimers on 2021/05/17

Follow-up in my blog post Chocolatey: vcredist 2005/2008/2010 updates failing as Microsoft rebuilt the installers multiple times causing new hashes each time last Friday.

The chocolatey packages have been updated this weekend and work again. Hopefully Microsoft is done and no new updates are needed (:

New versions thanks to [Wayback/Archive.is] Chocolatey Software | jberezanski!:

–jeroen

Posted in Chocolatey, Power User, Windows | Leave a Comment »

ESXi: wrong IPv4 address after moving the ESXi boot USB stick and SSD devices to an identical motherboard with different MAC addresses

Posted by jpluimers on 2021/05/17

A while ago, I wanted to move the ESXi USB stick and SSD devices to another machine with identical motherboard as it had a larger physical case more suited for expansion.

To my surprise, the management network stayed at the same IPv4 address, despite it being being from a DHCP pool, and the new MAC addresses having different IPv4 addresses assigned in the pool (I run a kind of static dynamic address system where the DHCP server has the correct mapping between MAC and IPv4 addresses).

This appears to be a known issue: by default, ESXi copies the MAC address to the vmknic of the management network instead of following hardware changes. You can see this in the screenshot showing the right physical MAC, but the wrong virtual MAC:

The fix is actually quite simple:

After this, you have to perform a reboot for the new setting to take effect.

When booting is done, the virtual MAC has been copied from the physical MAC:

Note I did not have to fiddle with /etc/vmware/esx.conf as VirtuallyVTrue had to.

For more information, see these links (I copied the content of the final link below the footer as it cannot be saved in the WayBack or Archive.is archives):

–jeroen

Read the rest of this entry »

Posted in ESXi6.5, ESXi6.7, Power User, Virtualization, VMware, VMware ESXi | Leave a Comment »

Chocolatey: vcredist 2005/2008/2010 updates failing as Microsoft rebuilt the installers multiple times causing new hashes each time

Posted by jpluimers on 2021/05/14

The Microsoft rebuilt move affects these Chocolatey Microsoft Visual C++ Redistributable packages, usually multiple times:

You get error messages like this:

ERROR: Checksum for 'C:\Users\saroot\AppData\Local\Temp\chocolatey\vcredist2010\10.0.40219.2\vcredist_x86.exe' did not meet '66B797B3B4F99488F53C2B676610DFE9868984C779536891A8D8F73EE214BC4B' for checksum type 'sha256'. Consider passing the actual checksums through with --checksum --checksum64 once you validate the checksums are appropriate. A less secure option is to pass --ignore-checksums if necessary

The cause is [Archive.is] vcredist-all fails to install due to broken checksum of vcredist2005, vcredist2008 and vcredist2010 · Issue #105 · jberezanski/ChocolateyPackages

jberezanskicommented

Great, Microsoft is apparently on an in-place installer update spree.

Actually, this is not a problem with vcredist-all, but rather with those specific packages and should be reported to maintainers of those packages. It so happens, however, that I’m also one of the maintainers of vcredist2008 and vcredist2010 (which live in https://github.com/chocolatey-community/chocolatey-coreteampackages/tree/master/manual). I’ve already prepared a fix for 2010 and I guess I’ll do 2008 tomorrow.

As for 2005, I can see that it has the same maintainer as vcredist2010 had until very recently – when we took over that package because the maintainer did not respond. So we probably should take over 2005, too.

Progress

The vcredist2010 package has been modified two times for this:

Hopefully the vcredist2008 and vcredist2005 packages will follow soon.

–jeroen

Posted in C++, Chocolatey, Development, Power User, Software Development, Visual Studio C++, Windows | Leave a Comment »