Archive for the ‘Software Development’ Category
com – Delphi [weak] reference attribute produces “Invalid class typecast” when implementation is in more than one library – Stack Overflow
Posted by jpluimers on 2016/09/21
Posted in Delphi, Delphi 10.1 Berlin (BigBen), Development, Software Development | Leave a Comment »
Delphi Code Monkey: Delphi Features I Avoid Using And Believe Need to be Gradually Eliminated from Codebases
Posted by jpluimers on 2016/09/21
Hear, hear! Delphi Code Monkey: Delphi Features I Avoid Using And Believe Need to be Gradually Eliminated from Codebases
Posted in Delphi, Delphi 10 Seattle, Delphi 10.1 Berlin (BigBen), Delphi 2007, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Software Development | Leave a Comment »
Tools to view Blue Screen info and Windows/Application Crash Reports
Posted by jpluimers on 2016/09/21
These NirSoft tools helped me finding out about some crashes that never made it to the event log:
- Blue screen of death (STOP error) information in dump files.
- WinCrashReport – Displays a report about crashed Windows application
- AppCrashView – View application crashes (.wer files) in Windows 7/Vista
- Get information about Windows software that stopped responding/freezing (hang)
At first I thought my own software development caused them, but In the end they were caused by buggy video drivers.
–jeroen
Posted in Development, Power User, Software Development, Windows | Leave a Comment »
Yes Dorothy, the .NET System.Array Class can throw you a NotSupportedException
Posted by jpluimers on 2016/09/21
It’s been in the System.Array class forever, but remarkably few people do know that it can throw you a NotSupportedException (for instance when calling Add, Insert, Remove, etc).
It does because it implements IList, but not all methods implemented from IList are valid.
And it also indicates that, as the IList Properties allows for IsFixedSize to return false.
A similar case is there for IsReadOnly: then you cannot even modify the values.
Ever since I started teaching .NET/C# classes almost 15 years ago, I warned:
beware when you use IList as not everybody implements all methods.
–jeroen
via:
Posted in .NET, .NET 1.x, .NET 2.0, .NET 3.0, .NET 3.5, .NET 4.0, .NET 4.5, C#, C# 1.0, C# 2.0, C# 3.0, C# 4.0, C# 5.0, C# 6 (Roslyn), Development, Software Development | Leave a Comment »
SysInternals sdelete: zero wipe free space is called -z instead of -c
Posted by jpluimers on 2016/09/20
In the 2009 past, sdelete used the -c parameter to zero wipe clean a hard drive and -z would clean it with a random pattern.
That has changed. Somewhere along the lines, -c and -z has swapped meaning which I didn’t notice.
This resulted in many of my virtual machines image backups were a lot larger than they needed to be.
The reason is that now:
-cdoes a clean free space with a random DoD conformant pattern (which does not compress well)-zwrites zeros in the free space
Incidently, -c is a lot slower than -z as well.
TL;DR: use this command
sdelete -z C:
Where C: is the drive to zero clean the free space.
–jeroen
Posted in Batch-Files, Development, Fusion, Hyper-V, Power User, Proxmox, Scripting, sdelete, Software Development, SysInternals, View, VirtualBox, Virtualization, VMware, VMware ESXi, VMware Workstation, Windows | Leave a Comment »
Batch files to show the User/System environment variables stored in registry – via: Stack Overflow
Posted by jpluimers on 2016/09/20
I wrote two tiny batch files that would dump the environment variables from the registry.
Various reasons:
- Environment variables can be stored in two contexts: System and User (SET will show them all at once and for instance combine PATH up to 1920 characters).
- Environment variables can be set to auto-expand or not, which you cannot see from a SET command (REG_EXPAND_SZ versus REG_SZ).
show-user-environment-variables.bat:
reg query "HKCU\Environment"
show-system-environment-variables.bat:
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
Filtered results:
Posted in Batch-Files, Development, Power User, Scripting, Software Development, Windows, Windows 7, Windows 8, Windows 8.1, Windows 9, Windows NT, Windows Server 2000, Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Vista, Windows XP | Leave a Comment »
Decompression libraries and tools for many formats
Posted by jpluimers on 2016/09/15
7-zip can uncompress a truckload of formats, but what if you need formats it doesn’t support or you want to integrate decompression in your own software?
Then some libraries can be really useful provided you regularly update them (otherwise you – like Symantec – can run in substantial security risks).
libmspack (license: GNU LGPL, version 2)
Formats supported:
| File format | Year | Algorithm | Supported? |
|---|---|---|---|
| COMPRESS.EXE (SZDD) | 1990 | LZSS | Decompression |
| Microsoft Help (.HLP) | 1990 | LZSS | To-do |
| COMPRESS.EXE (KWAJ) | 1993 | LZSS, Huffman, DEFLATE | Decompression |
| Microsoft Cabinet (.CAB) | 1995 | DEFLATE, Quantum, LZX | Decompression |
| HTML Help (.CHM) | 1997 | LZX | Decompression |
| Microsoft eBook (.LIT) | 2000 | LZX, SHA, DES | To-do |
| Windows Imaging Format (.WIM) | 2007 | LZX, XPRESS | To-do |
| Exchange Offline Address Book (.LZX) | 2008 | LZX DELTA | Decompression |
cabextract (license: GNU GPL)
Pre-compiled console wrappers around libmspack for many platforms.
WinRAR archiver, a powerful tool to process RAR and ZIP files
Libraries and pre-compiled console applications for many platforms.
HTML Help (CHM) Index
Background on CHM files.
–jeroen
Via:
Symantec dropped the ball here. A quick look at the decomposer library shipped by Symantec showed that they were using code derived from open source libraries like libmspack and unrarsrc, but hadn’t updated them in at least 7 years.
Source: Project Zero: How to Compromise the Enterprise Endpoint
Posted in 7zip, Compression, Development, Power User, Software Development | Leave a Comment »
Converting sendmail .db files to text
Posted by jpluimers on 2016/09/15
If you want to inverse the work of newaliases, you can use makemap to convert them to text:
makemap -u hash access.db
This is quite handy to see if the newaliases indeed put all information into the db file (for instance if you use a script, you can verify it ran correctly).
It works for any db, but you need to be aware of the database format: hash type or btree type.
To my knowledge only one uses the btree type format:
- userdb.db
All others use hash type format:
- aliases.db
- aliases-maillist.db
- mailertable.db
- genericstable.db
- virtusertable.db
- access.db
- auth-info.db
- domaintable.db
–jeroen
Posted in *nix, *nix-tools, bash, Development, Linux, openSuSE, Power User, Scripting, Software Development, SuSE Linux | Leave a Comment »
ESXi: when esxtop shows garbage.
Posted by jpluimers on 2016/09/14
The ESXi console top to show processes is not available *, the alternative is esxtop. But that can show garbage because the ESXi console has a very limited support of terminals **.
For instance, when connecting from a Mac OS X terminal through ssh, this is my terminal:
# echo $TERM
xterm-256color
The solution:
TERM=xterm esxtop
–jeroen
via: VMware KB: Output of esxtop defaults to non-interactive CSV with unknown TermInfo.
Posted in *nix, *nix-tools, bash, bash, Development, ESXi5, ESXi5.1, ESXi5.5, ESXi6, Power User, Scripting, Virtualization, VMware, VMware ESXi | 2 Comments »
Firebird gbak backing up a remote database that has spaces in the path and is on a remote Windows machine
Posted by jpluimers on 2016/09/13
I will likely need a batch file like this again:
setlocal set gbakExe=C:\Program Files (x86)\Firebird\Firebird_2_5\bin\gbak.exe set dbPart=MyDatabase set dbSource=192.168.199.24:C:\Path with spaces\%dbPart%.fdb set dbUser=sysdba set dbPassword=masterkey "%gbakExe%" -verify -transportable -user %dbUser% -password %dbPassword% "%dbSource%" %dbPart%.fbk endlocal
You need the quotes around %gbakExe% and %dbSource% to ensure spaces in paths are preserved.
–jeroen
Sources:
Posted in Batch-Files, Database Development, Development, Firebird, Scripting, Software Development | Leave a Comment »





