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

Windows shells: a bit of history

Posted by jpluimers on 2014/06/18

I’ve a long history in DOS/Windows 9x COMMAND.COM and Windows cmd.exe shell programming.

The switch to PowerShell is steep, but for me it is worth it: it has so much more functionality than cmd.exe, and taps right into the .NET ECO system.

If you look for something intermediate, you might want to consider TCC. Formerly TCC was known as 4NT, which has its roots in 4DOS (I totally loved 4DOS back when cmd wasn’t there yet).

A small overview: Read the rest of this entry »

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

Thanks Jaykul for explaining me a custom PowerShell script that acts like DU (DiskUsage).

Posted by jpluimers on 2014/06/17

Thanks Joel Bennett (aka Jaykul) from Huddled Masses for answering my Stack Overflow question PowerShell Get-DiskUsage CmdLet: how to list from a different drive/directory?

In addition to answering it, he also added a complete new and lighter implementation of that script explaining why it was lighter and what idioms to follow in PowerShell.

After reading his aswer, I was even more aware of these two things than I was before:

  • I should emphasize the importance of the object pipeline even more than I already did.
  • You should try to cut down on the dynamically instantiated objects. Like any language with heavy objects, they provide the huge benefit of fast development, but also an inherent cost.

I wasn’t aware you can put your own crafted objects into the pipeline in a very easy way. But you can: Read the rest of this entry »

Posted in Development, PowerShell, Scripting, Software Development | 1 Comment »

TSQL: showing database level and server level permissions

Posted by jpluimers on 2014/06/12

A few short scripts checking out the cause for TFS Integration Tools refuses to start despite an admin being able to create a TEST database. Read the rest of this entry »

Posted in Database Development, Development, SQL Server, SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 | Leave a Comment »

Delphi `with` post and discussion revisited (via: wiert.me and LinkedIn)

Posted by jpluimers on 2014/06/11

A bit more than a year ago, I wrote about Delphi: you should avoid the with statement as it makes your code less future proof. That caused some nice comments on the blog, and some more on LinkedIn where Paul Foster mentioned it in a thread ‘Jeroen Pluimers makes a case against “with” statements.‘ Both interesting reads, especially the reasons that people use or avoid with, or keep its use in balance. There is one set of comments I want to emphasize: refactoring multiple with statements into a one function and a call per former with. Read the rest of this entry »

Posted in Borland Pascal, Delphi, Delphi 1, Delphi 2, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 3, Delphi 4, Delphi 5, Delphi 6, Delphi 7, Delphi 8, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Development, Pascal, Software Development, Turbo Pascal, With statement | 19 Comments »

StudioShell: integrating Visual Studio in PowerShell

Posted by jpluimers on 2014/06/10

Wow, it seems I’ve been living under a stond since early 2011: the first StudioShell checkin.

[WayBackStudioShell opens marvellous possibilities in Visual Studio 2010, 2012 and up.

Just look at the feature list: Read the rest of this entry »

Posted in .NET, .NET 4.0, .NET 4.5, C#, C# 4.0, C# 5.0, CommandLine, Development, PowerShell, PowerShell, Scripting, Software Development | Leave a Comment »

Some notes/links on Git-TF: the GIT/TFS bridge

Posted by jpluimers on 2014/06/05

TFS 2012 Update 2 and up can do GIT or TFS (now called TFVC for Team Server Version Control). It was improved in TFS 2013, but still it leaves two small problems:

  1. It cannot host the same repository as both GIT and TFVC.
  2. It cannot conver from GIT to TFVC or back.

Luckily there are two tools that can help: GIT TF and GIT TFS.

GIT TF  (now forked on github a few times) is a way to bridge TFS and GIT. It is different from GIT TFS (that only runs on Windows, it is provided by Microsoft).

You can use both for instance to move GIT to/from TFS, or to compare or leverage GIT against TFS Express and Team Foundation Service which are both free for up to 5 developers. A few notes and some more links: Read the rest of this entry »

Posted in Development, DVCS - Distributed Version Control, git, Software Development, Source Code Management, TFS (Team Foundation System) | Leave a Comment »

Team Foundation Server Express and Team Foundation Service: some links

Posted by jpluimers on 2014/06/04

I know covering TFS 2012 has been in the blog queue for way too long (:

A few links:

–jeroen

PS: Nowadays, Team Foundation Service is called “Visual Studio Online”. But many people still call it TFS. See www.visualstudio.com

Posted in CodePlex, Development, DVCS - Distributed Version Control, git, Software Development, Source Code Management, TFS (Team Foundation System) | 1 Comment »

Delphi multithreading and DLL exports: watch your exceptions (via: Stack Overflow)

Posted by jpluimers on 2014/06/03

Talking about Danny Thorpe: he also posted a nice hint on threading methods for ancient Delphi versions that equally applies to DLL exports in any Delphi version, even any programming environment.

Recently, I had to do some surgery in such a Pre-Delphi 6 application, and I was really happy to remember this answer: it instantly solved some process crashes, and the added logging allowed for investigating the actual cause.

Note that this tip isn’t just a good advice for old Delphi versions.

Even in younger Delphi versions, you have to watch methods that can be called from outside a regular Delphi context, for instance exported methods.

Heck, it applies to virtually any development environment: exceptions usually are very specific to that environment and should never cross a process boundary.

Summary

Take the approach below

  • for Execute methods in your own thread classes in Delphi 5 or earlier
  • for any method that can be called externally (like DLL exports) Read the rest of this entry »

Posted in Delphi, Delphi 1, Delphi 2, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 3, Delphi 4, Delphi 5, Delphi 6, Delphi 7, Delphi 8, Delphi x64, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Development, Software Development | Leave a Comment »

Registry keys to prevent Java installs from adding sponsors (Ask/Google/Yahoo Toolbar, McAfee virus, etc) via: Super User

Posted by jpluimers on 2014/06/02

One of the reasons I quit Java development a while ago is that for years, each and every Java client update on Windows wants to install “add-ons” like Ask/Google/Yahoo toolbars, McAfee viruses, etc.

Many people have complained about it, just to name a few and show an on-line petition against it:

There are many cumbersome ways around it:

Though suited for corporate installs, all of those are impractical when your friends keep calling “hey, how do I get rid of these toolbars” and you cannot control their complete install process.

Super User user Danilo Roascio made my day when wanting to get rid of that behaviour.

His registry way to prevent those installs is way easier!

It not only disables the installs of any sponsored add-on, the Java update does not even show the checkbox any more (so the install process is shorter).

This is what he answered: Read the rest of this entry »

Posted in Development, Java, Power User, Software Development | 5 Comments »

delphi – Is there a way to get a VCL Control’s name through the windows API? – Stack Overflow

Posted by jpluimers on 2014/05/29

Thanks Samaliani for posting a Delphi GetWinControlName function as answer to Is there a way to get a VCL Control’s name through the windows API?

The cool thing: it works across processes (as long as your own process has ReadProcessMemory rights).

It works from Delphi XE3 and up.

Be sure to also read the comments by Danny Thorpe on the automation framework in Delphi: that might also be a good place to get this information from.

–jeroen

via: delphi – Is there a way to get a VCL Control’s name through the windows API? – Stack Overflow.

Posted in Delphi, Delphi XE3, Delphi XE4, Development, Software Development | 3 Comments »