UIWindow* window = [[UIApplication sharedApplication] keyWindow]; UIView* snapshotView = [[UIView alloc] init]; snapshotView.translatesAutoresizingMaskIntoConstraints = false; [window addSubview:snapshotView]; [NSLayoutConstraint activateConstraints:@[ [snapshotView.topAnchor constraintEqualToAnchor:window.topAnchor], [snapshotView.leadingAnchor constraintEqualToAnchor:window.leadingAnchor], [snapshotView.trailingAnchor constraintEqualToAnchor:window.trailingAnchor], [snapshotView.bottomAnchor constraintEqualToAnchor:window.bottomAnchor] ]]; snapshotView.backgroundColor = [UIColor blueColor]; [UIView animateWithDuration:0.2 animations:^{ snapshotView.alpha = 0; } completion:^(BOOL finished) { [snapshotView removeFromSuperview]; }];

Rebase without re-checkout

TL;DR: when using multiple branches, prefer to use “git rebase –onto origin/master origin/master ${branch}” if you want to checkout and then rebase a branch. Let’s say you have the working history: /-*-* A *-*-*-*-*-*-* origin/master \-*-*-* B and you want to push the branch A because your CL has been approved. You have to rebase […]

How to print Chromium string16 values from lldb using python scripts

I found this here: http://stackoverflow.com/questions/12923873/how-to-print-wchar-t-string-in-lldb with a minor tweak of if -> elif Thanks stack overflow! Python file: $ cat ~/work/lldbscripts/unsignedshortptrsummary.py import lldb def unsignedshortptr_SummaryProvider(valobj, dict): e = lldb.SBError() s = u'”‘ if valobj.GetValue() != 0: i = 0 newchar = -1 while newchar != 0: # read next wchar character out of memory data_val […]

Git clean. No seriously, clean it.

Working on Chrome, there are lots of dependencies that get pulled, and when I make untracked temporary changes in those dependancies sometimes I just want everything back to normal. So, here’s the scorched earth method: git clean -f -f -x -d This blows away everything git doesn’t know about. Then I do another clean dependency […]

mach.h, dumping vm info

#import “mach/mach.h” …. – (void)logTimer { task_basic_info info; mach_msg_type_number_t size = sizeof(info); kern_return_t kerr = task_info(mach_task_self(), TASK_BASIC_INFO, (task_info_t)&info, &size); if ( kerr == KERN_SUCCESS ) { NSLog(@”task_info: %d.2MB\n”, info.resident_size / 1048576); } else { NSLog(@”task_info failed with error %d ( 0x%08d ), ‘%s’\n”, kerr, kerr, mach_error_string(kerr)); } }

Another weird git problem

Lately whenever I have to rebase I get a weird error about how I have a dirty tree and need to commit files. Falling back to patching base and 3-way merge… error: Your local changes to the following files would be overwritten by merge: Please, commit your changes or stash them before you can merge. […]

Recent git branches

Sometimes I forget to delete my old git branches, and I forget which is what and who is how. And so on and so forth. So I do this!: git reflog –date=local –all This outputs a nifty list of all the recent commits and which branches they were too. w00t.

iOS timing

Again, do as I say not as I do. Here’s a quick thing I like to do: NSTimeInterval start = CACurrentMediaTime(); [stuff…] NSTimeInterval end = CACurrentMediaTime(); NSLog(@”%f”, end-start);

git format-patch and git am

Occasionally I need to send a git patch between computers. Yes, I know there are more efficient ways of doing this, but occasionally it needs to happen. So here’s how I do it: git format-patch –binary master.. –stdout > the.patch and how to apply it: git am –signoff < the.patch

Sigh, GoDaddy

Well, it’s official. All my domains are now registered with GoDaddy. Why? Because while they have a website which makes my eyes bleed, they constantly have coupons like OMGWTF FREE DOMAIN TRANSFERS for 5 years. So, I pay nothing. I’ll revisit who to transfer my domains to in about 5 years. Any suggestions until then?