So true, so true

6 Feb
2010

Kickin’ off a new tiny little project with macruby… ;)

rsnapshot is the TimeMachine for servers. Get it via macports.

Next, configure /opt/local/etc/rsnapshot.conf.

Change snapshot_root to a directory you like (probably within /Users/xxx/Backups/)

Uncomment cmd_ssh

Set the Backup Interval to
interval manual 20 (use tabs!)

Last, configure the server address. You want root for that, so be sure that public key auth is working on your remote machine.
backup root@yourserver.com:/ SubPathInBackupDir/ exclude=proc,exclude=sys,exclude=tmp

Done! Invoke with sudo rsnapshot manual.

This is some sort of voodoo hack. Symbolicatecrash sucessfully found the symbols of my app’s addresses (as i keep dSYM and .app around) but failed to symbolicate everything else – UIKit and the whole system stack. BIG FAT FAIL FROM APPLE.

stackoverflow to the rescue. Hassan Abdel-Rahman, I can’t thank you enough.

And Apple, shame yourself.

Apples Crash Reporting sucks. Period. Much too slow, and when you need it most (AdHoc) it’s not there at all.

And tell your Tester to zip and send the crash logs. They won’t even find it!

But there’s light! The combined powers of PLCrashReporter and Infinite Labs awesome implementation come to the rescue!

Everything is open source and you can download a real app as example. Be sure to check out the Mover App… there’s awesome stuff in it!

The Result: Your App crashes (oops) the user starts it again, a AlertView pops up (I call it the Crash Reporter) and the user has the possibility to send you the Crash Logs.

Once you have the data, plcrashutil (unter Tools in the PLCrashReporter dmg) converts the data into an iPhone Crash Report. (Be sure to copy plcrashutil to /usr/local/bin)

plcrashutil convert --format=iphone crashrep.plcrash | symbolicatecrash

If you have your App and the Symbolication File on your disk, symbilcatecrash will find it and show you the symbolicated stackstrace.

For certain Tasks I diplay an LoadingView that pops over my current view. (P31LoadingView to be exact)

The problem was, after the window disappeared, the scrollToTop-Feature didn’t work anymore.

After searching for an hour, this solved the problem. Put it in your code right after the hide-call of the loadingview.

  // reset scroll to top
  // the loading window (import all) breaks this functionality, so we reenable it here.
  [self.tableView setScrollsToTop:YES];
  [[self.tableView window] makeKeyAndVisible];

The key was to make the current window the keyWindow again.

top

Switch to our mobile site