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

svn – Where does TortoiseSVN save password cached files in Windows 7? (via: Stack Overflow)

Posted by jpluimers on 2014/07/09

If you ever had a Windows SVN tool like TortoiseSVN remember your password on Windows, then look under this directory (thanks ee.):

%AppData%\Subversion\auth

Part of the trick is %AppData%, which points to your user profile (which might not be on your C: drive, or not on a drive at all).

Under that directory, is a set directories creating credentials that depend on the authentication method (thans M4N who pointed me to the TortoiseSVN authentication section on the docs): Read the rest of this entry »

Posted in Development, Software Development, Source Code Management, Subversion/SVN | Leave a Comment »

which.bat (in case I don’t have CygWin on a system)

Posted by jpluimers on 2014/07/08

Small batch file that shows you the files on the path. It is a simple version that does not take into account built-in commands of cmd.exe, DOSKEY macros or PATHEXT environment variable: it just matches a name of an executable. Rob van der Woude has a complete which.bat (text version here) that does take into account all of the above. This is the poor man’s version:

@echo off
for %%f in (%1) do @echo. %%~$PATH:f
goto :eof

It uses this little trick from the FOR command:

%~$PATH:I Searches the directories listed in the PATH environment variable and expands %I to the fully qualified name of the first one found. If the environment variable name is not defined or the file is not found by the search, this modifier expands to the empty string.

–jeroen

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

Interesting comment by Joseph G. Mitzen delphi on my “Delphi – for … in on enumerated data types” post

Posted by jpluimers on 2014/07/03

Joseph G. Mitzen posted a very interesting (and elaborate <g>) comment on a post from me in 2009: Delphi – for … in on enumerated data types « The Wiert Corner – irregular stream of stuff.

The crux of his post is about consistency of your tools. And clearly, the Delphi team has some work to do in that regard especially when compared to the Python world where consistency is key (and takes a lot of time to introduce new features as a side effect).

He refers to the ADUG post For-in Enumeration | Australian Delphi User Group Members by DaddyHPriest that lists a number of areas where Delphi does not have enumerator support for.

Which reminds me I promised to publish some more enumeration demos showing what kind of code could be eliminated if things became more consistent.

Hopefully this summer gives me a bit more time for that (:

–jeroen

via: Delphi – for … in on enumerated data types « The Wiert Corner – irregular stream of stuff.

Posted in Delphi, Delphi 2007, Delphi 2009, Delphi 2010, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Development, Software Development | 4 Comments »

VB.NET: If you want to cast use DirectCast or TryCast; if you want to convert, use CType

Posted by jpluimers on 2014/07/03

I’ve done quite a bit of VB.NET maintenance lately.

Most of that code was riddled with CType, both for conversions and casts. Quite a bit code had Option Explicit and Option Strict Off. A lot of those CType constructions had empty Try / Catch / End Try blocks around them.

Those empty catch blocks are a code smell. They pretend to be able to survive any exceptional disaster, but in practice you can’t. You have to indicate what kinds of disasters you can handle, for instance if a meteorite hits your data center (thanks George Stocker).

Turning off Option Strict can be OK under many circumstances (the default is off), but having Option Explicit off is usually a code smell as well, just like On Error Resume Next (which was also in plenty of the source code).

I do understand a lot of VB.NET source comes from people having programmed in VB 6, VBScript or VBA for a long time where those constructs were more common. But writing code in the 21st century is much more about writing code that you can prove to be right. Having proper error handling and compiler type checking is a big part of that.

It pays to go with the idiom, for example read the good and bad ways of vb.net – Safest way to check for integer.

Back to CType: basically you have do distinguish between conversions and casts. The reason is that when you know it will be a form of cast, CType is way to expensive. And if you know you will be doing conversions, than casting is not what you want.

Casting 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, Development, Software Development, VB.NET, VB.NET 10.0, VB.NET 11.0, VB.NET 7.0, VB.NET 7.1, VB.NET 8.0, VB.NET 9.0 | Leave a Comment »

Some notes/links on Windows Debugging CLR applications

Posted by jpluimers on 2014/07/02

I only need it every once in a while, so finding the right links and tips to help me usually takes too much time.

So here is a small list to get started:

Keywords: CLR, SOS.DLL, WinDbg, mscordacwks.dll, PSSCOR4

Some tips: 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, Debugging, Development, Software Development | Leave a Comment »

Windows: programmatically setting date/time stamps of files

Posted by jpluimers on 2014/07/01

For DOS programs, date and time stamps were used to mark versions of files. For instance, Turbo Pascal 6.0, had a 06:00 time stamp on every file.

You can still do this in Windows, but need to watch for a couple of things:

  • daylight saving time
  • more than one time stamp per file

There are various ways to do it. Besides a graphical Attribute Changer at www.petges.lu (thanks User Randolf Richardson), these are console approaches via How can I change the timestamp on a file?:
Read the rest of this entry »

Posted in *nix, Apple, Batch-Files, Cygwin, Development, Linux, Mac, Mac OS X / OS X / MacOS, Mac OS X 10.4 Tiger, Mac OS X 10.5 Leopard, Mac OS X 10.6 Snow Leopard, Mac OS X 10.7 Lion, MacBook, MacBook Retina, MacBook-Air, MacBook-Pro, OS X 10.8 Mountain Lion, Power User, PowerShell, Scripting, Software Development, SuSE Linux, 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 | 2 Comments »

.NET/C#: open source Nikon SDK C# Wrapper project at SourceForge.net

Posted by jpluimers on 2014/06/26

Interesting: about a year and a half ago, the Nikon SDK C# wrapper project started ad sourceforge.

Basically, it allows you to integrate the operation of your Nikon DSLR into your .NET projects.

It has some very interesting features:

  • Control your Nikon DSLR via USB
  • Capture Jpeg and Raw images directly to system memory
  • Receive ‘Live View’ images
  • Record Video
  • Query and change camera settings (Exposure, Aperture, ISO, etc.)
  • And much more…

Downloads: Nikon SDK C# Wrapper – Browse Files at SourceForge.net.

–jeroen

via: Nikon SDK C# Wrapper | Free Security & Utilities software downloads at SourceForge.net.

Posted in .NET, .NET 2.0, .NET 3.0, .NET 3.5, .NET 4.0, .NET 4.5, C#, C# 2.0, C# 3.0, C# 4.0, C# 5.0, Development, Software Development | Leave a Comment »

“Textmate.app would like to access your contacts”

Posted by jpluimers on 2014/06/25

Both TextMat 1.5 and 2.0 will ask you this upon the first time use:

“Textmate.app would like to access your contacts”

According to their Troubleshooting / MountainLion browse — TextMate Wiki it is valid, but the way they phrase it any sensible user should answer “No way!”.

If you ever want to reverse a decision to such an addressbook question, the only way is to reset it for all the times you answered it:

Perform “tccutil reset addressbook” in a Terminal window as shown in the man page tccutil section 1.

What TextMat should have done instead is customize the text of the question in order to show the intent. This isn’t difficult, as explained on Red Sweater Blog – Can I Get Your Address? by Daniel Jalkut:

In the info.plist, edit the value of the NSContactsUsageDescription key, as suggested by a Tweet from Cabel Maxfield Sasser.

Daniel points to the documentation PDF, where it indeed is stated when you read it very carefully: the detailed text indicates it is for iOS only, but in fact it is there in Mac OS X 10.8 and up as well.

It is also inside the Information Property List Key Reference: Cocoa Keys: the key tells it it for iOS 6+ and OS X 10.8+, but browsing to NSContactsUsageDescription only indicates iOS 6.

–jeroen

via Twitter / voidspace: “Textmate.app would like to ….

Posted in Apple, Development, Mac, Mac OS X / OS X / MacOS, Mac OS X 10.4 Tiger, Mac OS X 10.5 Leopard, Mac OS X 10.6 Snow Leopard, Mac OS X 10.7 Lion, MacBook, MacBook Retina, MacBook-Air, MacBook-Pro, OS X 10.8 Mountain Lion, Power User, Software Development, xCode/Mac/iPad/iPhone/iOS/cocoa | 2 Comments »

Hiding email behind a 30x redirect.

Posted by jpluimers on 2014/06/24

Last week, I thanked Jaykul for helping me out on PowerShell.

But he taught me another thing that was new for me: on his site, he has hidden his email address behind a 302-redirect.

I didn’t even realize that was possible until I saw his site start my mail program without initially showing a mailto in the url. A quick check showed me he was using a 302-redirect: Read the rest of this entry »

Posted in *nix, Apache2, bash, Development, Linux, Power User, Scripting, Software Development, SuSE Linux, wget | Leave a Comment »

Windows consoles: a small list

Posted by jpluimers on 2014/06/19

Many people confuse a shell with a console.

They are distinct: the shell executes commands, and the console hooks up video and keyboard to them.

Some products (like Take Command Console, of which Noah Coad is a huge fan) combine the two.

Some shells you can use for Windows: Read the rest of this entry »

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