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

Archive for the ‘Software Development’ Category

SQL Server 2008: restoring backup of previous SQL Server version

Posted by jpluimers on 2010/09/21

When restoring a backup made in SQL Server 2005 to a SQL Server 2008 environment, you don’t see the underlying upgrade of the on-disk physical version in the UI (you only see the percentage completion moving from 0% to 100%).

When performing the same on the command-line you can actually follow the physical version gets updated:

C:\SCRIPT>"%sqlcmd%" -S . -E -Q "RESTORE DATABASE [MyDBA] FROM DISK = N'C:\BACKUP\MyDB.bak' WITH REPLACE, STATS = 10, MOVE N'MyDB' to N'C:\DATA\MyDB.mdf', MOVE N'MyDB_log' to N'C:\DATA\MyDB_log.ldf' ;"
19 percent processed.
29 percent processed.
39 percent processed.
49 percent processed.
59 percent processed.
69 percent processed.
78 percent processed.
88 percent processed.
98 percent processed.
100 percent processed.
Processed 1296 pages for database 'MyDBA', file 'MyDB' on file 1.
Processed 2 pages for database 'MyDBA', file 'MyDB_log' on file 1.
Converting database 'MyDBA' from version 611 to the current version 655.
Database 'MyDBA' running the upgrade step from version 611 to version 621.
Database 'MyDBA' running the upgrade step from version 621 to version 622.
Database 'MyDBA' running the upgrade step from version 622 to version 625.
Database 'MyDBA' running the upgrade step from version 625 to version 626.
Database 'MyDBA' running the upgrade step from version 626 to version 627.
Database 'MyDBA' running the upgrade step from version 627 to version 628.
Database 'MyDBA' running the upgrade step from version 628 to version 629.
Database 'MyDBA' running the upgrade step from version 629 to version 630.
Database 'MyDBA' running the upgrade step from version 630 to version 631.
Database 'MyDBA' running the upgrade step from version 631 to version 632.
Database 'MyDBA' running the upgrade step from version 632 to version 633.
Database 'MyDBA' running the upgrade step from version 633 to version 634.
Database 'MyDBA' running the upgrade step from version 634 to version 635.
Database 'MyDBA' running the upgrade step from version 635 to version 636.
Database 'MyDBA' running the upgrade step from version 636 to version 637.
Database 'MyDBA' running the upgrade step from version 637 to version 638.
Database 'MyDBA' running the upgrade step from version 638 to version 639.
Database 'MyDBA' running the upgrade step from version 639 to version 640.
Database 'MyDBA' running the upgrade step from version 640 to version 641.
Database 'MyDBA' running the upgrade step from version 641 to version 642.
Database 'MyDBA' running the upgrade step from version 642 to version 643.
Database 'MyDBA' running the upgrade step from version 643 to version 644.
Database 'MyDBA' running the upgrade step from version 644 to version 645.
Database 'MyDBA' running the upgrade step from version 645 to version 646.
Database 'MyDBA' running the upgrade step from version 646 to version 647.
Database 'MyDBA' running the upgrade step from version 647 to version 648.
Database 'MyDBA' running the upgrade step from version 648 to version 649.
Database 'MyDBA' running the upgrade step from version 649 to version 650.
Database 'MyDBA' running the upgrade step from version 650 to version 651.
Database 'MyDBA' running the upgrade step from version 651 to version 652.
Database 'MyDBA' running the upgrade step from version 652 to version 653.
Database 'MyDBA' running the upgrade step from version 653 to version 654.
Database 'MyDBA' running the upgrade step from version 654 to version 655.
RESTORE DATABASE successfully processed 1298 pages in 0.738 seconds (13.736 MB/sec).

Ain’t command-lines cool :-)

A few notes on version numbers:

655 – 2008
661 – 2008 R2

http://www.sqlskills.com/BLOGS/PAUL/post/Search-Engine-QA-13-Difference-between-database-version-and-database-compatibility-level.aspx
http://www.sqlskills.com/BLOGS/PAUL/post/SQL-Server-2008-R2-bumps-the-database-version.aspx
http://serverfault.com/questions/58039/sql-server-2008-2008r2-backup-compatibility
http://social.msdn.microsoft.com/Forums/en/sqldatabaseengine/thread/f8f8db38-3c20-45e4-ae8b-4cc097eb7f0d

–jeroen

Posted in CommandLine, Database Development, Development, Software Development, SQL Server | Leave a Comment »

Dropbox – Why cant I establish a secure connection? –

Posted by jpluimers on 2010/09/16

Dropbox can show you this message when it can’t update (and the icon in the system tray gets a red cross ):

can’t establish a secure connection

In my case, it was because I was using the Fiddler2 tool to debug some web-traphic.
Fiddler intercepts the WinInet API layer by putting itself as a proxy in it.
The great thing is that Fiddler2 can hook HTTPS traffic.

The not so cool thing is that I forgot that DropBox routes its’ HTTPS traphic through the WinInet API too :-)

Disabling Fiddler2 enabled DropBox to start connecting again and finally making a good connection .

As soon as DropBox has a good connection, you can restart Fiddler2 again to debug your internet traffic.

–jeroen

via: Dropbox – Why cant I establish a secure connection? –.

Posted in Development, Fiddler, Power User, Software Development, Web Development | Leave a Comment »

Batch file trickery: finding the first file from a list in a certain directory

Posted by jpluimers on 2010/09/14

Using the Windows command shell, I recently needed a batch file that operated on the first occurrence of a file in a certain directory, where the filename was dynamically obtained from a list.

Wait: that sounds too complex; lets make this clear with an example. Read the rest of this entry »

Posted in CommandLine, Development, Power User, Software Development | Leave a Comment »

Apple on App Store Review Guidelines: relaxing all restrictions on the development tools used to create iOS apps, as long as the resulting apps do not download any code

Posted by jpluimers on 2010/09/10

To quote the Apple statement:

we are relaxing all restrictions on the development tools used to create iOS apps, as long as the resulting apps do not download any code. This should give developers the flexibility they want, while preserving the security we need.

Which seems to mean you can use both Mono (using MonoTouch) and Flex to develop your Apple iPhone and iPad apps.

–jeroen

via Statement by Apple on App Store Review Guidelines.

Posted in .NET, Delphi, Development, Software Development | Leave a Comment »

Delphi: Use TStrings to parse non-standard separated strings, and validate it with DUnit tests

Posted by jpluimers on 2010/09/08

Recently, I was at a client where in a project strings had to be split from:

'FI-150 1U; FI-049-I L=20 MM;LET OP LASVORM'

Into:

  • 'FI-150 1U'
  • 'FI-049-I L=20 MM'
  • 'LET OP LASVORM'

At first sight, this looks simple: Semicolon Separated Values and you are done.
Not so fast Mr Smart Alec: watch the optional spaces!

The best thing for problems like these is to start with an empty implementation that some units tests covering it.
I use DUnit for Delphi unit testing.

Unit testing should go with code coverage, but there are few Delphi code coverage articles.
I’ll get into code coverage later on, as I’m working with two of the code coverage people to get this to work nicely with Delphi 2010.

Mock objects can be a good addition to unit testing too, so in a future article, I will cover using mock objects with Delphi.

Read the rest of this entry »

Posted in Agile, Conference Topics, Conferences, Delphi, Development, DUnit, Event, Software Development, Unit Testing | 8 Comments »

Batch file tricks – double quotes splitting and downloading latest 7-zip

Posted by jpluimers on 2010/09/02

I needed a quick means to download the latest 7-zip from the command-line in Windows.

This batchfile makes use of these tools:

7-zip has a download page that contains lines like these:

    <TD class="Item" align="center"><A href="http://downloads.sourceforge.net/sevenzip/7z465.exe">Download</A></TD>

Read the rest of this entry »

Posted in *nix, 7zip, Batch-Files, Compression, Development, Power User, Scripting, Software Development, wget | Leave a Comment »

Delphi XE and RAD Studio XE got RTM and are available for ordering now

Posted by jpluimers on 2010/08/31

While writing this blog entry, I’m installing my new copy of Delphi XE (formerly called Delphi 2011 by some people).

Delphi XE and RAD Studio XE got RTM today, and are now available for purchase.

Contact my colleague Gwan Tan if you want to order it from Dutch speaking countries, and Thorsten Nannen if you want to order it from German speaking countries. Read the rest of this entry »

Posted in .NET, Delphi, Delphi for PHP, Delphi XE, Development, Prism, Software Development | 9 Comments »

Script to Restart VMware Tools Remotely | Daily Hypervisor

Posted by jpluimers on 2010/08/30

Sometimes the VMware tools need to be restarted in order to get the shared clipboard functionality working again.

From inside a Windows VM, you can do that like this:

net stop vmtools

This will create this output:

The VMware Tools Service service is stopping.

The VMware Tools Service service was stopped successfully.

Then start the service again:

net start vmtools

Giving this output:

The VMware Tools Service service is starting.

The VMware Tools Service service was started successfully.

From outside your virtual machine, you can do it like on this URL using schttp://www.dailyhypervisor.com/2009/03/25/script-restarting-vmware-tools-remotely/

–jeroen

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

Delphi: Optimizing extremely long compile times

Posted by jpluimers on 2010/08/26

Anthony Frazier mentions two very true paths for optimizing your Delphi compile times:

  1. Avoid units with the “read-only” attribute set.
  2. Avoid large circular dependency groups, particularly if you put everything in the interface’s uses clause rather than the implementation uses clause.

To get rid of the second, you should split your interface and your implementation.
Often, one of these two solutions work for that well:

  • Create the interface as a base class, then implement it in a descendant.
  • Create the interface as a Delphi interface, then implement it in a class.

Only if those options do not work, then start using Delphi SpeedUp by Andreas Hausladen.

–jeroen

Via: TPersistent.com » Blog Archive » The Power of Open Source.

Posted in Delphi, Development, Software Development | 19 Comments »

Delphi: Embarcadero RAD Studio Demos are on-line at sourceforge in an SVN respository

Posted by jpluimers on 2010/08/25

Be sure to watch the radstudiodemos project at sourceforge.

It contains the RAD Studio Demos from Embarcadero in this SVN repository.
Which means that the demos of the current RAD Studio version are there, and Embarcadero is filling  it with the Demos from the upcoming Delphi XE version.

In fact, quite a few Delphi XE demos have been checked in already.

John Kaster will put on the C# version of DbxUtils on-line there soon.

–jeroen

Posted in .NET, C#, Delphi, Development, Software Development | 4 Comments »