Skip to content

Instantly share code, notes, and snippets.

View olg's full-sized avatar

Olivier Gutknecht olg

  • San Francisco, CA
View GitHub Profile
@steipete
steipete / gist:1397553
Created November 27, 2011 13:28
Ugly as hell workaround for UIWebView crashing on non-main thread dealloc (inside a UIView)
- (void)dealloc {
webView_.delegate = nil; // delegate is self here, so first set to nil before call stopLoading.
[webView_ stopLoading];
// UIWebView must be released in the main thread, or we get:
// Tried to obtain the web lock from a thread other than the main thread or the web thread. This may be a result of calling to UIKit from a secondary thread. Crashing now...
// This is less evil than the proposed http://stackoverflow.com/questions/945082/uiwebview-in-multithread-viewcontroller
// Calling removeFromSuperview in a dealloc is ugly and evil, but else UIView has a strong reference to UIWebView and our main-release call would be irrelevant.
if (![NSThread isMainThread]) {
[webView_ performSelectorOnMainThread:@selector(removeFromSuperview) withObject:nil waitUntilDone:YES];
@jtimberman
jtimberman / macbook.md
Created November 12, 2010 14:48
How I set up my workstation

My current workstation toolchain environment was set up with the following, roughly in order.

  1. Latest Xcode from Apple to get development tools.

  2. Homebrew.

  3. A few nice things with Homebrew:

    brew install git ack wget tmux sloccount ec2-ami-tools ec2-api-tools rds-command-line-tools

#!/usr/bin/env ruby
require 'rubygems'
require 'chef'
require 'chef/client'
require 'chef/run_context'
Chef::Config[:solo] = true
Chef::Config[:log_level] = :info
Chef::Log.level(:info)
@mdub
mdub / chef-bootstrap.rb
Created October 29, 2010 01:08
bootstrap a remote machine as a Chef server/client
#!/usr/bin/env ruby
require "rubygems"
require "erb"
require "fileutils"
require "json"
require "net/ssh"
require "net/scp"
require "optparse"
/*
In Gitbox (gitboxapp.com) there is a stage view on the right where you can see
a list of all the changes in the working directory: untracked, modified,
added, deleted, renamed files. Each change has a checkbox which you can click
to stage or unstage the change ("git add", "git reset").
When the change staging finishes, we run another task to load all the changes
("git status").
When the loading task is completed we notify the UI to update the list of changes.
All tasks are asynchronous.
@peplin
peplin / recipe.rb
Created July 10, 2010 01:30
S3 File Resource for Chef
# Source accepts the protocol s3:// with the host as the bucket
# access_key_id and secret_access_key are just that
s3_file "/var/bulk/the_file.tar.gz" do
source "s3://your.bucket/the_file.tar.gz"
access_key_id your_key
secret_access_key your_secret
owner "root"
group "root"
mode 0644
end
$ knife data bag show holding
[
"sword"
]
$ knife data bag show holding sword
{
"id": "sword",
"powers": "+1"
}