Posted second application to the AppStore

So now I have two: NHL Schedule 2009/10 and Vancouver 2010 Olympics Hockey.

Check out my new iPhone Applications section for detail description, screenshot and other details.

Safari. Single click opens new tab

Rather than new window... Another useful Mac setting not available via any UI. Open Terminal window and run following command:

defaults write com.apple.Safari TargetedClicksCreateTabs -bool true

Tested on Leopard 10.5, Safari 4.

RDC (remote desktop connection) from Mac to Windows

Some useful stuff to remember. To be able to do remote desktop from Mac machine to Windows you need two following things:

1. Create a ssh tunnel in the Terminal application:

ssh SSH_USER@SSH_HOST -LLOCAL_PORT:DEST_HOST:DEST_PORT

DEST_PORT most likely to be 3389 (standard port for RDC)

2. Download CoRD.

Enjoy.

Creating ISO images from DVDs on Mac

So, I started thinking about moving my movie collection from DVDs to a hard drive. HDDs are so cheap right now. You can get 2T disk for about $200. And it will fit most of my 500 movies if I simply convert them to ISO files. ISO format is very convenient, because you can mount it with one click in Mac OS (I use Mini as my media center) and then just run DVDPlayer.

In Windows world DVDShrink will create ISO from DVD and it's free. In MacOS I don't think there is free alternative program. However I found combination of two things that does exactly that:

1. MacTheRipper. Rip your DVD into a folder (with VIDEO_TS and AUDIO_TS underneath).

2. And then use this command in Terminal to create ISO file:
hdiutil makehybrid -udf -udf-volume-name MYDVD1 -o mydvd.iso DVD_FOLDER

Make sure DVD_FOLDER is a parent folder for VIDEO_TS folder.

Integrating .NET and Win32 DLLs (written in Borland C++ Builder)

About a week ago I had to write a wrapper to win32 DLL (written in Borland C++ Builder) to use it under Microsoft .NET platform. I've spend some time googling around, trying different things and finally I was able to do exactly what I wanted. Because it took me quite some time to gather all information together I thought it can be useful for somebody else. So here it is:

Problem:

1. We have a win32 DLL. We own this DLL, so we can add some interface functions if we want to.
2. We need to create several instances of this DLL inside .NET application.
3. We need to be able to pass back and forth to/from managed code complicated structures with integer, char arrays etc.
4. We need to be able to have .NET callbacks which we will be calling from that win32 DLL.

Read more »