This gist's comment stream is a collection of webdev apps for OS X. Feel free to add links to apps you like, just make sure you add some context to what it does — either from the creator's website or your own thoughts.
— Erik
| # sudo gem install bson | |
| # sudo gem install bson_ext | |
| # sudo gem install yajl-ruby | |
| # sudo gem install json | |
| # sudo gem install msgpack | |
| require 'rubygems' | |
| require 'benchmark' | |
| require 'yaml' | |
| require 'bson' |
| require 'set' | |
| class ExceptionTester | |
| class TestException < Exception | |
| end | |
| # Accepts a block containing the code you want to make exception safety | |
| # assertions about. | |
| def initialize(&exercise) | |
| @exercise = exercise |
| # MySQL. Versions 4.1 and 5.0 are recommended. | |
| # | |
| # Install the MySQL driver: | |
| # gem install mysql2 | |
| # | |
| # And be sure to use new-style password hashing: | |
| # http://dev.mysql.com/doc/refman/5.0/en/old-client.html | |
| development: | |
| adapter: mysql2 | |
| encoding: utf8 |
| #!/bin/bash | |
| function jsonval { | |
| temp=`echo $json | sed 's/\\\\\//\//g' | sed 's/[{}]//g' | awk -v k="text" '{n=split($0,a,","); for (i=1; i<=n; i++) print a[i]}' | sed 's/\"\:\"/\|/g' | sed 's/[\,]/ /g' | sed 's/\"//g' | grep -w $prop` | |
| echo ${temp##*|} | |
| } | |
| json=`curl -s -X GET http://twitter.com/users/show/$1.json` | |
| prop='profile_image_url' | |
| picurl=`jsonval` |
| # Do you ever define #method_missing and forget #respond_to? I sure | |
| # do. It would be nice if we could do them both at the same time. | |
| module MatchMethodMacros | |
| def match_method(matcher, &method_body) | |
| mod = Module.new do | |
| define_method(:method_missing) do |method_name, *args| | |
| if matcher === method_name.to_s | |
| instance_exec(method_name, *args, &method_body) | |
| else |
| #!/usr/bin/env ruby | |
| # A simply utility to show character counts for each line of input and | |
| # highlight lines longer than 80 characters. | |
| # | |
| # Written as an example for http://jstorimer.com/2011/12/12/writing-ruby-scripts-that-respect-pipelines.html | |
| # | |
| # Examples: | |
| # | |
| # $ hilong Gemfile |
| class PostsController < ActionController::Base | |
| def create | |
| Post.create(post_params) | |
| end | |
| def update | |
| Post.find(params[:id]).update_attributes!(post_params) | |
| end | |
| private |
| Latency Comparison Numbers (~2012) | |
| ---------------------------------- | |
| L1 cache reference 0.5 ns | |
| Branch mispredict 5 ns | |
| L2 cache reference 7 ns 14x L1 cache | |
| Mutex lock/unlock 25 ns | |
| Main memory reference 100 ns 20x L2 cache, 200x L1 cache | |
| Compress 1K bytes with Zippy 3,000 ns 3 us | |
| Send 1K bytes over 1 Gbps network 10,000 ns 10 us | |
| Read 4K randomly from SSD* 150,000 ns 150 us ~1GB/sec SSD |
| # | |
| # This file configures the New Relic Agent. New Relic monitors | |
| # Ruby, Java, .NET, PHP, and Python applications with deep visibility and low overhead. | |
| # For more information, visit www.newrelic.com. | |
| # | |
| # Generated June 16, 2012 | |
| # | |
| # This configuration file is custom generated for AT&T Interactive | |
| # Here are the settings that are common to all environments: |