Run Mate – great little iPhone application

Code APlus: iPhone Run Mate applicationPersonally, I am not too big fan of iPhone, especially regarding earlier versions.

Than again, as a honest technology geek, I also must admit that iPhone 3GS set high standards both in arena of mobile devices as well as in arena of PDA and general mobile platforms; operating system is way better, development support (SDK, tools) gives you opportunity to create stunning applications, and on top of that, iPhone store can give necessary head start and much needed customer and community support.

I am not talking this “from thin air” but from second hand experience, closely watching development of one great little iPhone application – Run Mate, by my friend and colleague, Aleksandar Vacić.

Beautifully crafted, both from technical and design side, small, fast and (on top of everything else) very useful – Run Mate is real example how one mobile application should look like: it should follow all the standards of the underlying ecosystem (operating system), giving to end user maximum benefit for really, really affordable price.

If you are into any kind of walk recreation – running, jogging or just walk in different paces – this is the right application for you. Head to iPhone store, and follow updates on @runmate at Twitter; for any other details / support, here is main site: http://codeaplus.com/runmate/

How to use TortoiseSVN to access Mediatemple subversion over svn+ssh

How to use TortoiseSVN to access Mediatemple subversion over svn+sshOne of important aspects when I am selecting hosting provider is subversion support. My previous host provider, DreamHost, had it, as well as my current host, Mediatemple (I am using (gs) – Grid Service option).

However, while DreamHost was allowing access to subversion repository over http protocol, Mediatemple is more strict: it requires to use svn+ssh (svn protocol over ssh). It proved that setting up this kind of access using great Windows subversion client, TortoiseSVN is a bit of a pain.

So, here is what helped me to get that done.

Ingredients

I will assume following data:

  • your domain hosted with media temple is yourdomain.com
  • your admin account is [email protected]
  • your domain account is 12345 (you can find out right number in MediaTemple Account Center -> Server Guide -> System Paths)
  • you followed this Mediatemple kb article and created repository named myrep

Software prerequisites are:

Generating public/private pair of keys

In order to access your subversion repository over ssh, you need to create pair of keys: private and public key which will be used for authentication of access to repository. Public key should be stored on your host account, while private key is your own and you should take great care not to give access to private key to anyone else.

Do ssh to your host (you can use PuTTY for this) and make sure that you are in your .home directory (use pwd command):

[email protected]:~$ pwd
/home/12345/users/.home
[email protected]:~$

Now, create your public/private keys executing ssh-keygen -t dsa; you will get something like:

[email protected]:~$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/12345/users/.home/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/12345/users/.home/.ssh/id_dsa.
Your public key has been saved in /home/12345/users/.home/.ssh/id_dsa.pub.
The key fingerprint is:
0b:34:9e:2d:b4:d8:b1:ca:f4:a0:06:91:7f:18:15:0e

You can safely press Enter on all three questions (file / passphrase / passphrase repeated)

Previous process will create two files, located here:

/home/12345/users/.home/.ssh/id_dsa – private key
/home/12345/users/.home/.ssh/id_dsa.pub – public key

Than download (you can use FTP) file id_dsa to your computer (I will assume that you dowloaded into folder C:UsersDejanDocumentsKeys) and DELETE it from server:

[email protected]:~$ cd .ssh
[email protected]:~/.ssh$ rm id_dsa

While still in shell window, rename public key id_dsa.pub to authorized_keys:

[email protected]:~/.ssh$ mv id_dsa.pub authorized_keys

Converting private key to PuTTY format

One final step is converting private key id_dsa to .ppk format understandable by PuTTY; navigate to PuTTY folder and fire up PuTTYGEN.Exe, and:

  1. Load id_dsa to PuTTYGEN
  2. Give comment so that you know purpose of the key
  3. Assign strong key passphrase (more on this later on)
  4. Save private key as mt-svn.ppk file

Putty Key Generator

With of without passphrase?

Step 3. above has multiple implications to the rest of the process; if you select to have passphrase to protect your private key, you will need to enter that passphrase at least when logging in computer, in order to “unlock” your private key.

If you decide not to have passphrase, you won’t need to use Pageant or any other method for managing key. However, this is basically as having heavy iron doors w/o lock. I strongly suggest to assign strong passphrase to your key.

Testing access

Now it is time to check if the keys are ok, access ok, and that everything works as expected. Use CMD prompt, navigate to PuTTY folder and execute following:

PuTTY.exe -ssh -2 -i “C:UsersDejanDocumentsKeysmt-svn.ppk” yourdomain.com

When prompted, enter ONLY your username ( [email protected] ) – you should be logged on Mediatemple server WITHOUT need to enter password. If that is not true, some of the steps above were missed – check above.

Configuring TortoiseSVN

Ok, now is time to configure TortoiseSVN to access above repositroy. Right click anywhere on empty space in Windows Explorer, and select TortoiseSVN -> Settings; navigate to Network section and setup SSH client as:

"C:Program FilesTortoiseSVNbinTortoisePlink.exe" -i "C:UsersDejanDocumentsKeysmt-svn.ppk"

Update 2009-11-08: Also, you can try this as well:

"C:Program FilesTortoiseSVNbinTortoisePlink.exe" -i "C:UsersDejanDocumentsKeysmt-svn.ppk" -P 22

(adding port command, thanks to comment by Didier)

Setting TortoisePlink for svn+ssh access

(of course, this will vary depending where you installed TortoiseSVN and on location / name of your private key)

Why TortoisePlink when we were talking about PuTTY all the time? Well, TortoisePlink is just custom version of PuTTY, and it is part of TortoiseSVN and all above can be applied to it.

Browsing repository for the first time

Finally, lets test access to repository; right click anywhere on empty space in Windows Explorer, and select TortoiseSVN -> Repo-browser and enter URL:

svn+ssh:[email protected]@yourdomain.com/home/12345/data/svn/myrep

You should be asked (twice) for your passphrase, and after short time, presented with your svn repository on Mediatemple.

Using Pageant for key store

Annoying part of ssh access is that every time you ask connection toward server (and that is basically ANY operation) you will be prompted for passphrase; that is not comfortable way of working 🙂

Solution to this is another PuTTY application – Pageant – SSH authentication agent; it holds your private keys in memory, already decoded, so that you can use them often without needing to type a passphrase.

You can either start Pageant manually, and press “Add Key” to import your private key, or you can make it part of the start up group, giving list of keys to be imported:

PageAnt.exe "C:UsersDejanDocumentsKeysmt-svn.ppk"

In that case, you would be asked just once when you log on for passphrase.

Now you are good to go with TortoiseSVN on Windows and Mediatemple subversion repository using svn+ssh 🙂

Vista 64 – First Experience

I am (happily) using Vista 32 bit for a year, both on my home (desktop) computer and on laptop. Both machines are mostly used for development (Visual Studio 2005 & 2008 and Visual Studio 2003 via Microsoft Virtual PC 2007) and usual Office tasks.

One of my tasks on work is to test new technologies – so, I decided that it is time to try new Vista: Vista 64 bit.

Hardware configuration used is pretty much standard one:

Dell Dimension E520 with Intel Core 2 Duo E4300 @ 1.8 Ghz and 2 GB RAM. Graphic card was NVIDIA GeForce 7300 LE.

Installation

Despite all my worries, installation went smoothly (apart for having 150Mb of fixes to download 😉 ) – all drivers were found and installed ok:

Vista 64 - all drivers found and installed ok

Basics

Once when all drivers are in place, you need software which will use your new operating system to the max. Most of 32bit software will work w/o any problems, via WOW64 technology, and it will benefit from better memory organization (you can utilize full 4Gb under Vista 64, which is not possible under XP) and more registers availabile.

You do need some native 64bit applications, for example, when mounting ISO image under Vista 64:

Mounting ISO image under Vista 64

While there is plethora of ISO software in 32 bit world (highly recommending Virtual Clone Drive, freeware), things are gloomy in 64 bit world.

Update Aug 2008: Virtual Clone Drive now does support Vista 64! so please use it instead of Daemon Tools.

There are some programs that state 64bit compatibility (MagicISO for example) but only one which proved as working under Vista 64 is Daemon Tools.

However, BIG WARNING – Daemon Tools comes with spyware / searchware! Good part is that you can select NOT TO INSTALL IT – so please do not follow click-click-click install logic but make sure to DESELECT following two options on this screen:

Daemon Tools on Vista 64 - install w/o sponsor

as well as SELECT DECLINE on next screen:

Daemon Tools on Vista 64 - decline change of home page

After that, you are fine.

Adding Vista 64 to network domain

There is no magic around this step; I just had little trouble to find right screen for adding computer to domain:

Control Panel -> System or even easier using keyboard shortcut: Win + Break (Pause):

Adding Vista 64 to Network Domain
(click for larger image)

Network printing (over HP LaserJet 4100)

There was a bit of a problem setting up network printer (ours is HP LaserJet 4100). There are 64 bit drivers on HP site, but Vista refused to get those installed from network location.

I even tried to fool it by installing ghost LPT1: printer and than to add network one – failed.

Finally, I installed network printer as “local” one, using TCP/IP connection and install program from HP. After that, printing is fine.

Applications

Microsoft Visual Studio 2008 Installation

This was, by far, most frustrating experience 😯 – with number of errors, stating that it can’t install .Net Framework 3.0, than it can’t install Web Authoring Component … all red, and apparently no solution 😕

Problems installing Visual Studio 2008 on Vista 64

In despair, I switched to local administrator account and all went fine! So, use your local administrator account when installing Microsoft Visual Studio 2008 on Vista 64 – it is not enough to be member of Administrators group (my initial attempts were with domain user which is member of Administrators group)

Paint.Net Installation

Paint.Net is brilliant example of quality program (and it is free) – elegant, efficient and does exactly what is intended for: various tasks around image editing; it is not Photoshop, but I found that I do not need anything “stronger” than Paint.Net – I highly recommend it.

I did not expected any problems with installation; however, I was getting error:

“Another installation is already in progress (Error 1618)” and failed installation; of course I used “Run as Administrator” option over Paint.NET.3.22.exe – that did not help.

Solution: start CMD prompt as Administrator, and run EXE file from there – installation will go smoothly.

Paint.Net - Brilliant Image Editor

QUEST Toad and Oracle

If your target database for applications is Oracle and main development tool Quest’s TOAD make sure to install 32bit Oracle client prior TOAD installation – TOAD does not support connection over native 64bit Oracle client.

Moreover, if you get cryptic error on a first connect:

Can’t initialize OCI. Error -1

make sure that you have correct version of Oracle Client; current good one is 10.2.0.3 Patch2 for Vista

Conclusion

Vista 64 is stable operating system, although it demands bit more of CPU and RAM than Windows XP/Vista 32. It has decent driver base, and if you have more than 2Gb RAM, or your primary application has native 64bit version and/or you are engaged in processing objects which require a lot of memory, it is good OS for you.

For more standard usage, I still recommend staying on Vista 32 or Windows XP – there is a wast support for drivers, software and games all around.