Skip to content

Instantly share code, notes, and snippets.


Andrew Sardone andrewsardone

View GitHub Profile

Thoughts and complaints on GarageBand 10

I just recently started using GarageBand 10 for the first time since its October 2013 release. Up until now I had been doing occasional work in GarageBand 6.0.5, from the iLife ‘11 suite (also known as GarageBand 11, which isn’t confusing at all).

I decided it was time to get on the “newer is better” bandwagon and [start a new project][coptp] in GarageBand 10. Historically GarageBand has been one of my favorite Apple apps because I’ve used it a lot for some really fun tasks (read: making songs with my high school and college bands). Because of this, I was eager to try GarageBand 10 for superficial reasons (cleaner look, retina assets FTW), but thinking that it’s previously been a relatively strong app that they’ve probably only made it better.

Boy, was I wrong.


andrewsardone / gist:9993488
Last active Aug 29, 2015
Desired assertion for testing that KVO info isn't leaked when system-under-test is dealloc'd
View gist:9993488
@interface FooKVOTests : SenTestCase
@implementation FooKVOTests
#pragma mark Observation info leak regression
- (void)test_observation_info_is_not_leaked
Foo *__weak foo = [Foo new]; // dealloc foo immediately

Keybase proof

I hereby claim:

  • I am andrewsardone on github.
  • I am andrewsardone ( on keybase.
  • I have a public key whose fingerprint is 7138 F183 6AAB D05C 361F 4FB6 EBDC 1C42 BA58 1B68

To claim this, I am signing this object:

andrewsardone / imperative.m
Last active Aug 29, 2015
Animating UILabel
View imperative.m
static void *kContext = &kContext;
- (void)viewDidLoad
[super viewDidLoad];
[self.viewModel addObserver:self

Here's a quick attempt at trying to build off of some quick tweets:

@cdzombak @vitalekj @a_j_r nice! Another underlying point is that the delegate example is easy. I've seen experienced devs struggle w/ it.

— Andrew Sardone (@andrewa2) February 15, 2014
<script async src="//" charset="utf-8"></script>

@cdzombak @vitalekj @a_j_r I think many devs' love of callbacks helps demonstrate this

— Andrew Sardone (@andrewa2) February 15, 2014
<script async
andrewsardone / bookmarklet.js
Created Dec 17, 2013
Tweetbot bookmarklet. I'm sure other people have better, more robust ones, but this bookmarklet works for me.
View bookmarklet.js
View faraday_stub_spec.rb
require 'rubygems'
require 'rspec'
require 'faraday'
describe Faraday do
it "stubs HTTP responses" do
conn = do |f|
f.adapter :test do |stub|
stub.get '/example' do
[200, {}, 'hi world']
andrewsardone / gist:7130116
Last active Dec 26, 2015
Using a compound statement enclosed in parentheses to enclose scope of a local UIView that's added to your view controller's view hierarchy and held as a weak reference. In response to
View gist:7130116
#import "ViewController.h"
@interface ViewController ()
@property (nonatomic, weak) UILabel *label;
@implementation ViewController
andrewsardone / gist:6969549
Last active Dec 25, 2015
Elixir doctests
View gist:6969549
defmodule AndrewEnum do
@moduledoc """
A reimplementation of the standard `Enum` module.
@doc """
Invokes the given `fun` for each item in the `collection`.
Returns `:ok`.
andrewsardone / gist:6458455
Created Sep 6, 2013
script/sort-xcodeproj for handy Xcode project organization
View gist:6458455
# Usage: script/sort-xcodeproj to sort all root-level Xcode projects.
# This helps keep the Xcode project layout neat and consistent while
# aiding in the prevention of [merge conflicts][mc].
# [mc]:
SCRIPT_DIR=$(dirname "$0")
cd "$SCRIPT_DIR/.."