Configuring a PPTP-VPN on iOS and Android

About a year ago, I wrote a blog posting about how to setup a PPTP VPN service on a Amazon EC2 node. This is a follow up to that posting which describes how to setup the VPN on an iOS or Android device.

Please note that some carriers might block PPTP traffic. I experienced problems with using the VPN connection via 3G, while connecting through Wifi works for me. On 3G I can connect to the server, but no data is being transferred. On the server I see a lot of messages of the type “Protocol-Reject”. So if your device seems to be connected to the VPN but you get no traffic, it might be blocked by your carrier. You then need to find a Wifi Hotspot to use the VPN.

Continue reading »

Speeding up ProFTPD logins

One year ago I have switched from PureFTPd to ProFTPD because it runs smoother on the virtual server I am running. The server is really easy to setup and maintain, but with the standard configuration it always takes around 5 to 10 seconds to log on to the server. After searching for a solution to these slow logins, it turns out that there is even a point in the FAQ on how to speed up the login process.

Just edit the file /etc/proftpd/proftpd.conf and add these 2 lines:

UseReverseDNS off
IdentLookups off

Lesson learned: I should read manuals more often.

Continue reading »

Lion and legacy AFP connections

I have just upgraded to Lion to find out that I could no longer connect to my Qnap NAS via the AFP protocol. Seems like Apple decided to disable an authentication mechanism in Lion which the Qnap device depends on. Whenever I tried to connect with my username, I received an error “There was a problem connecting to the server”.

Qnap is working on an updated firmware but my device will not receive this update, so I need another solution.

Thanks to Alexander Wilde there is a simple solution to reenable the now missing authentication schema.

Continue reading »

Recap: 4 months on the iOS App Store

App Store IconIt is now a little over 4 month ago that I have released Gigtool in the iOS app store. I was aware, that most applications in the app store don’t perform well without heavy promotion. I wrote Gigtool with a very small target audience in mind to test whether specialized applications might produce a steady revenue stream even without any promotion. The reasoning behind this is, that Gigtool will be found by its target audience using the search functionality of the app store.

I released Gigtool for a price of $1.99 in the music category of the store. As long as Gigtool was mentioned on the front page of that category under the “New & Noteworthy” section there was a steady stream of around 5 sales per day. This dwindled to next to nothing once Gigtool dropped out of the “New & Noteworthy” section. At that time I had only around 2 sales per week.

Continue reading »

Git hosting with gitolite

Git LogoNow that Xcode has native support for Git repositories, I finally decided to migrate my private Mercurial repository to Git. I have always been running my source code repository on my own server and I want to keep this practice with Git. When searching for options on how to setup a private Git repository, Gitolite seemed like a nice option.

In this small howto I will describe how I have setup Gitolite on my Ubuntu 8.04 server. Please note, that Ubuntu has included Gitolite in the 10.10 release, so that the installation is even simpler now. I will describe the manual installation procedure for Ubuntu releases prior to 10.10.

Continue reading »

Gigtool now available on the iTunes App Store

I have developed an iPhone application which contains some handy tools for live sound engineers. Nowadays the App Store is crowded with all kinds of games, utilities and applications. For a developer it is extremely hard to get the amount of visibility you need to make a small profit or even to break even. Gigtool is an experiment to find out, if addressing a niche target market helps in building up a customer base.

Today the application has been added to the App Store. In a couple of weeks I will write up about my experiences with Gigtool. More information about the app is available on the Gigtool website.

Continue reading »

Workaround for iOS 4.1 battery drain problem

It seems that Apple introduced a nasty battery drain problem with the iOS4.1 update in September. After I installed the update, my iPod Touch 2G drained the battery completely empty after about 8 hours of sleep. Resetting and reinstalling the device didn’t help. The problem was that it stayed connected to the wireless network even in sleep mode.

There exist 2 solutions which seem to work for me so far:

  • Switch the iPod into Airplane mode when network access is not needed
  • Go to Settings -> Notification settings and toggle all the settings of all applications in that screen to ON and back to OFF. It seems like some these applications have been using wrong settings even with global notification turned off. Toggling the individual settings has reset them to the desired state. You can see if this step was successful by opening the overview of connected WLAN devices in your WLAN access point and then putting your iPod to sleep. It should drop out of the list of connected devices after about 10 seconds of sleep. </ul> Let’s hope that Apple will fix this issue with iOS 4.2 due in November.

Update

The described fix did not prove to be permanent. Every now and the setting seems to reset itself and the iPod stays connected to the WLAN in sleep mode. So back to square one: turn on airplane mode whenever Wifi is not needed. Damn!

Continue reading »

Setting up a VPN-server on Amazon EC2

Amazon has recently announced the new Micro Instances in their Elastic Cloud service. A so called Micro Instance is a virtual machine with 620 MB main memory and CPU power in the area of an 1 GHz Opteron processor. The advantage of the Micro Instance is its low cost of only $0.02 per hour of operation (be advised, there are some additional costs for traffic and storage).

The EC2 Micro Instance is an ideal way to operate your own VPN-server, when you need it only a couple of hours per month. Let’s assume, that you want to use it for about 50 hours per month with around 10 GB of traffic, this means $1.00 for computation time + $1.50 for 15 GB of storage + $1.50 for 10 GB outgoing traffic. So for $4 this is quite a good offer. Granted, you can find commercial VPN providers for $5 per month, but it is more fun to do it yourself. In this article I will describe, how to setup an EC2 instance as a VPN-server.

Continue reading »

Prevent Time Machine Backup Resizing

If you are using Time Machine to backup your Mac onto a network share, you might have noticed, that since the Snow Leopard 10.6.3 update the sparsebundle image used by Time Machine has been resized to use the whole capacity of your network share.

I use a Qnap NAS as a central network storage for backing up mulitple Macs and therefore I want to define strict limits for the maximum size of each Time Machine backup. So after noticing the new image sizes, I tried to resize them with hdiutil:

hdiutil resize -size 500g MYBUNDLENAME.sparsebundle

Unfortunately Time Machine resizes the image size every time it runs, so it is necessary to prevent it from resizing the image.

The image size of a sparsebundle is stored in the Info.plist file inside the bundle directory, so I tried to remove write permissions to that file from the terminal:

cd /Volumes/MYSHARE/
chmod a-w MYBUNDLENAME.sparsebundle/Info.*

This wasn’t working either, because OSX seems to reset the permissions to Info.plist automatically.

The solution which is finally working for me was to login to my Qnap box via SSH and change the permissions there via chmod:

chmod a-w MYBUNDLENAME.sparsebundle/Info.*

Now, when Time Machine starts, it tries to resize the image but fails, as the Qnap server is preventing any changes to the Info.plist file. You can see this behavior in the system.log:

23.05.10 22:29:13	com.apple.backupd[378] Resizing backup disk image from 500.0 GB to 989.8 GB
23.05.10 22:29:13	com.apple.backupd[378] Could not resize backup disk image (DIHLResizeImage returned 35)

After this logging message, the rest of the backup runs fine. For me this is a nice workaround until there is an official way to limit the backup size.

Continue reading »