Imagine you want to connect via SSH to remote systems
hostC on an intranet behind
hostA. This could be achieved easily using port forwarding via
hostA, just pick two arbitrary ports on the local machine and forward them to ports 22 of
hostC. This works very well for a small amount of intranet hosts, but it get’s quite messy as the list of hosts grows. After some time you’ll have a rather huge amount of local ports to remember (or to lookup in your port forwarding script several times a day). It’d certainly be easier to just type
ssh hostB and have the tunnel setup automatically.
During the last two days I managed to setup a GitHub mirror of OCaml. It works by importing the changes from the official OCaml Subversion Repository using
git-svn and pushing them to the GitHub mirror. This is done automatically every hour by one of my servers. It works by setting up a Git branch for every
version Subversion branch and a Git branch with a
tags/ prefix for every
tags Subversion branch. Also note that the master branch is called
Next monthly meeting of the CocoaHeads Siegen scheduled for September, 13th 2011 at 19:00, feat: “iOS 5 - New and Noteworthy” (Benjamin Mies). Third meeting already and this time we also have a nice flyer!
I received several complaints about random crashes lately. The complaints of course did not mention any specific version of iOS nor any other useful details. So I had to digg into it myself. As it turned out the crashes were due to the use of
DISPATCH_QUEUE_PRIORITY_BACKGROUND, which is not only unavailable with iOS 4.2.1 (and earlier), but also causes
dispatch_async to crash - which is rather bad IMHO, a fallback to
DISPATCH_QUEUE_PRIORITY_LOW would be better from both the user’s and the developer’s POV.
I recently had to restore some PNG files from an iOS App Bundle, which apparently did not work very well, since they have been compressed automatically using Apple’s version of pngcrush when they were copied to the App Bundle folder during archiving. Fortunately it’s quite easy to revert the optimizations using the following command (assuming you have installed the Apple Developer Tools and the iOS SDK):
Inspired by a
of Joachim Bondo I decided to rework my versioning scheme for Xcode
projects as well. One of the major drawbacks of traditional versioning is that the so-called
marketing version (Apple slang) is kept twice, once in the project’s
file and once in the Git tag that is created after release. This redundancy
is not only inconvenient, but can also lead to mistakes, i.e. forgetting to bump the
CFBundleShortVersionString prior to tagging the new release.
Local snapshots for Time Machine is one of the new features in OS X Lion that looks really good on paper. But once you have used your new Lion installation for a few days, you will notice that you are running out of disk space. After some digging around I noticed that the
/.MobileBackups folder that is used by Time Machine for local snapshots was at nearly 50GiB, even though the external Time Machine backup disk was connected most of the time. I guess this is done to speedup Time Machine in the common case, and make backups available when not connected to the external Time Machine disk.