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

Archive for the ‘Development’ Category

START: Start a program, **even if it is not on the PATH** ideal to start various versions of apps from DOS

Posted by jpluimers on 2013/01/29

A while ago, I had to adapt a DOS app that used one specific version of Excel to do some batch processing so it would support multiple versions of Excel on multiple versions of Windows.

One of the big drawbacks of DOS applications is that the command lines you can use are even shorter than Windows applications, which depending you how you call an application are:

This is how the DOS app written in Clipper (those were the days, it was even linked with Blinker :) started Excel:

c:\progra~1\micros~2\office11\excel.exe parameters
01234567890123456789012345678901234567890
          1         2         3         4

The above depends on 8.3 short file names that in turn depend on the order in which similar named files and directories have been created.

The trick around this, and around different locations/versions of an application, is to use START to find the right version of Excel.

The reason it works is because in addition to PATH, it checks the App Paths portions in the registry in this order to find an executable: Read the rest of this entry »

Posted in Batch-Files, Development, Encoding, Power User, Scripting, Software Development, Unicode, Windows, Windows 7, Windows 8, Windows Server 2000, Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2, Windows Vista, Windows XP | Leave a Comment »

.NET/PowerShell: Get-Host, quick way to get CurrentCulture and CurrentUICulture

Posted by jpluimers on 2013/01/28

A quick and easy way of getting the CurrentCulture and CurrentUICulture is to use the get-host cmdlet from PowerShell.

This is what PowerShell 2.0 shows on my system:

C:\Users\jeroenp>powershell get-host

Name             : ConsoleHost
Version          : 2.0
InstanceId       : 1ce173fb-70a7-403b-a2bd-3800fe740f7c
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : en-IE
CurrentUICulture : en-US
PrivateData      : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace

The SeaTools from Seagate can’t cope with that because they don’t manage the Resource Fallback Process properly.

My machine is on en-IE, as it is English, and USA as location.

The main advantage for me is to use the that it is a good mix between English and Dutch settings:

  • English language (so you get proper error messages that you can find back using Google)
  • USA as location (to force more search engines to use .com domains)
  • EUR money settings (most software in Western Europe expects EUR, but displays USD when using en-US)
  • decimal dot (far easier import/export with non-Dutch stuff)
  • DD/MM/YYYY date format (I tried ISO 8601 YYYYMMDD, but that breaks too much software)
  • 24 hour clock format (just as it should be)
  • comma list separator (too much software is not configurable to use a certain separator for CSV, especially Excel depends on the system settings for list separator and decimal)
  • metric system (just as it should be)

–jeroen

via: Get-Host.

Posted in .NET, CSV, Development, Excel, ISO 8601, Office, Power User, PowerShell, Scripting, Software Development | Leave a Comment »

New Micro Cornucopia issues on BitSavers (including the Final May 1990 issue)

Posted by jpluimers on 2013/01/26

Back in the days I started programming, Micro Cornucopia was a wonderful magazine, so I’m glad that BitSavers scanned a few more issues and put them online today, a week after some great PDF scans: Turbo Assembler/Debugger (1993/1994), Borland C++/Object Windows Library (1993):

They covered a lot of languages (x86 and 68k assembly, C, C++, Turbo Pascal and many more), and very interesting hardware designs.

–jeroen

via: Index of /pdf/microCornucopia.

Posted in Assembly Language, BitSavers.org, C, C++, Delphi, Development, History, Pascal, Software Development, Turbo Assembler, Turbo Pascal, x86 | Tagged: , , , | 2 Comments »

Best 404 page ever.

Posted by jpluimers on 2013/01/24

Very distracting: 404.

Thanks Julian (I just found out you also own a Dutch domain jmbk.nl/) for pointing to it (boy, some unproductive days ahead) and the cheat (in your browser, Open the JavaScript console, then paste and run the cheat code).

Thanks Romain for developing it.

When you read through his java script code files, remember that these french-english translations:

  • etat == state
  • tombe == fall
  • paraOpen == opened parachute
  • mort == dead
  • flocon == flake
  • taille == size
  • vitesse == speed
  • écrase == crash
  • marche == walk
  • neige == snow

--jeroen

via: Développeur Web sur Lille (59), Romain Brasier.

Posted in Development, JavaScript/ECMAScript, Power User, Scripting, Software Development, Web Development | Tagged: , , , , , , | Leave a Comment »

.NET/C#: do not do “if (!Directory.Exists(path)) Directory.CreateDirectory(path))”

Posted by jpluimers on 2013/01/24

During code reviews, I often see people do things like this:

if (!Directory.Exists(directoryPath))
    Directory.CreateDirectory(directoryPath);

or this:

DirectoryInfo directoryInfo = new DirectoryInfo(directoryPath);
if (!directoryInfo.Exists)
    directoryInfo.Create();

You don’t need the if statements here. Read the rest of this entry »

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, Development, Software Development | 1 Comment »

Start of interesting interview series on Technical Debt

Posted by jpluimers on 2013/01/23

This is the first of a series of upcoming interviews on Technical Debt. Very insightful!

Ward Cunningham & Capers Jones Technical Debt Interview.

Apart from the transcript, there is also the video and the past Expert Interviews.

–jeroen

Posted in Development, Software Development, Technical Debt | Leave a Comment »

Tips, links & tools to help you out when you find yourself in .NET assembly hell

Posted by jpluimers on 2013/01/23

A while ago I found myself in .NET Assembly hell.

I inherited a bunch of interdependent .NET projects with no clear build instructions that were halfway ported between .NET 1.x and 4.x had various binaries here and there, a mix of of imported Office COM libraries and PIAs, links to various source code and binary versions 3rd party libraries like Microsoft Enterprise Library (which is very unforgiving when you get configuration wrong, and – because it uses dynamic loading and the version used was from before MEF – is painfully hard to track down wrong types and assemblies).

Basically the right assemblies got into the wrong places, the wrong assemblies in the right places, and a version mix up all over the place.

All in all it was a mess, and I was in .NET assembly hell.

It was a tedious and painful process to solve, so below are a few tips, links to posts and tools that helped me getting this solved. Read the rest of this entry »

Posted in .NET, .NET 1.x, .NET 4.0, Development, Software Development | Leave a Comment »

VBScript tips and tricks

Posted by jpluimers on 2013/01/22

I normally don’t do much VBScript stuff, but sometimes I have to, and these tips helped me big time:

–jeroen

This was the script in question (mimicked a bit after Prnmngr.vbs): Read the rest of this entry »

Posted in Development, Scripting, Software Development, VBScript, Visual Studio 11, Visual Studio 2005, Visual Studio 2008, Visual Studio 2010, Visual Studio and tools | Leave a Comment »

Interesting: Project “W” game “Phase 2” and multi-platform version on the 2013 agenda of Sascha Willems

Posted by jpluimers on 2013/01/20

On my interest list: game written in Delphi and now being ported to FreePascal under Lazarus for multi-platform reasons: Agenda for 2013 | www.SaschaWillems.de.

–jeroen

Posted in Delphi, Development, FreePascal, Lazarus, Pascal, Software Development | 9 Comments »

If your system is configured as Metric, then any app not honouring that have a UX #Fail

Posted by jpluimers on 2013/01/19

I love Google:

Especially since there is still software like Garmin Training Center for Mac on Mac OS X with – in the System Preferences – the Measurement Units set as Metric, insists on entering weight as lb, and workout distance in miles.

The reason is that Garmin Training Center on Mac OS X has its own “Measurement Units” settings. Where Mac OS lets the system wide setting be either “Metric”  or ” US”, Garmin choose between “Metric” and “Statute” (the latter is default, not the OS X setting).

The problem is twofold:

Garmin has head offices and most of their customers outside the USA, so why insist on US units being default, and why not link the setting to the Mac OS X Preference?

UX #fail.

Oh BTW: if you connect your Garmin device, and GTC still indicates “no fitness device was found”, then use a different USB Cable and don’t connect it through a hub: the device is very picky on talking over USB (charging over USB works with virtually any USB cable).

Garmin Training Center on Mac OS X insists in imperial units, even though the system is configured as metric.

Garmin Training Center on Mac OS X insists in imperial units, even though the system is configured as metric.

Garmin Training Center on Mac OS X has its own

Garmin Training Center on Mac OS X has its own “Measurement Units” settings. Where Mac OS lets the system wide setting be either “Metric” or ” US”, Garmin choose between “Metric” and “Statute” (the latter is default, not the OS X setting).

Even after setting the Garmin Training Center to

Even after setting the Garmin Training Center to “Metric”, it still lists “Miles” in your workouts.

–jeroen

Posted in Google, GoogleSearch, Opinions, Power User, User Experience (ux) | Tagged: , , , , , , , , , , , , | Leave a Comment »