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

Delphi: turn off column or line block selection mode – via: Default IDE Shortcut Keys; Delphi Programming

Posted by jpluimers on 2015/07/30

The Default IDE Shortcut Keys – Delphi Programming was a good starting point to find out how to disable column or line blocks.

Since the table there is incomplete (even the Embarcadero documentation is wrong as some shortcuts can turn on and off a mode), here are the relevant shortcuts keys:

Ctrl + O + C Turns on/off blockcolumn selection mode Delphi 5 and up
Ctrl + O + K Turns on/off block selection mode Delphi 5 and up
Ctrl + O + L Selects current line (and turns off block selection mode) Delphi 5 and up

This is especially useful when the block selection is stuck (this happens every now and then: it’s a known bug).

–jeroen

Posted in Delphi, Delphi 10 Seattle, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 5, Delphi 6, Delphi 7, Delphi 8, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Software Development | 6 Comments »

Repeating the same expression multiple in RegEx search, and replace it only one time – via: Stack Overflow

Posted by jpluimers on 2015/07/29

I’m really really glad that Lucas Trzesniewski has answered this:

While most regex flavours have roughly a similar syntax for the basic features, there is not a clear standard as to the syntax of the replacement strings. Some tools use \1 for referencing strings, others use $1 and so on.

As you use Notepad++, you should know it uses the boost library for its regex implementation, and it uses the Boost-Extended format string for the replacement pattern.

In particular, the placeholder for the nth capture group is $n.

And my comment:

Thanks a lot for that. I found a bit more information about back references and capture groups in various libraries on regular-expressions.info/replacebackref.html.

on my question: Read the rest of this entry »

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

As of Visual Studio 2012, the option “Find Shelveset” is hard to find – via: Stack Overflow

Posted by jpluimers on 2015/07/28

Shelving work into a shelveset is easy in Visual Studio. Until Visual Studio 2010 it was easy to find the shelveset.

As of Visual Studio 2012 this is much more difficult. To get the shelveset back in Visual Studio 2012 and up:

  1. Go to the “Team Explorer” pane
  2. Click the “Home” icon
  3. Choose “Pending Changes”
  4. Click the topmost “Actions” item
  5. In the pop-up menu, click “Find Shelvesets”
  6. Type a search phrase

–jeroen

via: Can anybody find the TFS “Unshelve” option in Visual Studio 2012? – Stack Overflow.

Posted in .NET, Development, Software Development, Visual Studio 11, Visual Studio 2010, Visual Studio 2013, Visual Studio 2014, Visual Studio and tools | Leave a Comment »

Example of xsd2code only handling xsd annotations for attributes, not for elements, types and other places where they can be used in an XSD.

Posted by jpluimers on 2015/07/22

See the gist below:

Example of xsd2code only handling xsd annotations for attributes, not for elements, types and other places where they can be used in an XSD.

Steps to reproduce:

  1. Install xsd2code and Visual Studio.
  2. Put all these files in one directory.
  3. Run `generate-C#-from-XSD-annotations.bat`.
  4. Diff `annotations.xsd.exe.cs` and `annotations.xsd2code.exe.cs`.
  5. Observe only 1 spot in `annotations.xsd2code.exe.cs` has the annotations converted to C# comments.

Gist: Example of xsd2code only handling xsd annotations for attributes, not for elements, types and other places where they can be used in an XSD. Steps to reproduce.

Read the rest of this entry »

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, C# 6 (Roslyn), Development, Software Development, XML, XML/XSD, XSD | Leave a Comment »

How to determine XML type in Powershell – via: Stack Overflow

Posted by jpluimers on 2015/07/21

Brilliant! Cast to xml, if it is nil, then the second cast to bool will give false, otherwise true:

Thanks Shay Levy!

[bool]Get-Content c:\Path\To\xml_file.xml -as [xml]

–jeroen

via How to determine XML type in Powershell? – Stack Overflow.

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

Boolean parameters usualy are a sign of weakness (via: Avoiding Booleans)

Posted by jpluimers on 2015/07/16

During a recent code review, I bumped into a couple of C# constructors having boolean parameters, leading to the dreaded magic booleans code smell.

This reminded me of the infamous Avoiding Booleans post on Coding Horror, which now is almost 10 years old.

To celebrate, I will coin the Dutch phrase when marking these in a review:

Boolean parameters en literals zijn vrijwel altijd een zwaktebod. Een teken dat beter nagedacht moet worden over het doel van de code.

The Dutch word zwaktebod is used when bidding Bridge using the Acol system. It is the equivalent of a “weak takeout” response to a bid of 1 NT (notrump or no trump, in other languages sometimes sans atout).

The English translation is just about this:

Boolean parameters and literals virtually always are a sign of weakness. It indicates you need to give more thought to the goal of the code.

–jeroen

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 »

Jon Skeet’s speech “Back to basics” is really a good watch – via Jørn Einar Angeltveit G+

Posted by jpluimers on 2015/07/15

Thanks [Wayback] Jørn Einar Angeltveit for sharing this a while ago:

A session by Jon Skeet and Tony the Pony (which has strong teeth) presented during the Polish DevDay 2013 in Kraków, Poland.

[Wayback] +Jon Skeet’s speech [Wayback] “Back to basics” is really a good watch.

In a funny way, he explains why the simplest fundamentals of computer software text, dates and numbers can cause some real headache for the programmer…

In case you didn’t know: Jon Skeet is “Chuck Norris” on [Wayback] stackoverflow.com:

The subtitle is “the mess we’ve made of our fundamental data types”.

Some of the topics covered:

Read the rest of this entry »

Posted in .NET, C#, Conference Topics, Conferences, Delphi, Development, Encoding, Event, internatiolanization (i18n) and localization (l10), Java, Java Platform, Jon Skeet, Pascal, Scripting, Software Development, Unicode | 2 Comments »

Fixing 84b40000 error on SQL Server 2008 updates (like KB2977321 and KB2285068) via: Microsoft Community

Posted by jpluimers on 2015/07/14

When installing SQL Server 2008 Service Pack 3 related updates, some don’t like compressed directories (even if the database files themselves are uncompressed).

I found this holds at least for KB2977321 and KB2285068.

For x86 systems, ensure these directories are not compressed:

C:\Program Files\Microsoft SQL Server
C:\Program Files\Microsoft SQL Server Compact Edition

For x64 systems, ensure these directories are not compressed:

C:\Program Files\Microsoft SQL Server
C:\Program Files x86\Microsoft SQL Server
C:\Program Files x86\Microsoft SQL Server Compact Edition

–jeroen

via: Can not install KB2285068 Error Code 84B40000 – Microsoft Community.

Posted in Database Development, Development, Power User, SQL Server, SQL Server 2008, SQL Server 2008 R2, Windows | 1 Comment »

Windows < 8: User variables are not resolved correctly in Windows if they contain %APPDATA% or %LOCALAPPDATA%.

Posted by jpluimers on 2015/07/13

Older Windows versions than 8.x will not correctly expand %APPDATA% or %LOCALAPPDATA% in environment variables: User variables are not resolved correctly in Windows..

This even happens when the registry storage of the environment variables are marked as REG_EXPAND_SZ under these keys:

Basically there are four categories of Windows versions:

  • For Windows 10.x this is fixed.
  • For Windows 8.x and Windows Server 2012 R2, there are updates in KB2919355.
  • For Windows 7.x and Windows Server 2008 R2, there is a hotfix.
  • For older Windows versions, there is no solution.

–jeroen

via: User variables are not resolved correctly in Windows.

Posted in Development, Power User, Software Development, Windows, Windows 7, Windows 8, Windows 8.1, Windows 9, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Vista | Leave a Comment »

Turbo Pascal Compiler and IDE in JavaScript

Posted by jpluimers on 2015/07/09

A (hardly) limited Turbo Pascal Compiler (and large parts of the IDE!) in JavaScript.

Memories from the CP/M era (:

Code is on GitHub.

–jeroen

Posted in CP/M, Development, History, Pascal, Software Development, Turbo Pascal, Z80 | Leave a Comment »