Skip to content

Instantly share code, notes, and snippets.

@kitschpatrol
kitschpatrol / gist:3207582
Created July 30, 2012 14:58
Google Docs Spreadsheet to CSV
#!/usr/bin/python
# Script to automate downloading CSV files from GoogleDocs
#
# Expects a config file in the same folder called google_docs_to_file.cfg
# with the following format:
#
# [google_credentials]
# email = [email protected]
# password = *********
@eranation
eranation / gist:3241616
Created August 2, 2012 22:51
MongoDB Aggregation Framework way for "select count (distinct fieldName) from someTable" for large collections
//equivalent of "select count (distinct fieldName) from someTable"
db.someCollection.aggregate([{ $group: { _id: "$fieldName"} },{ $group: { _id: 1, count: { $sum: 1 } } } ])
@josephwecker
josephwecker / new_bashrc.sh
Created August 11, 2012 04:36
Replace .bashrc, .bash_profile, .profile, etc. with something much more clean, consistent, and meaningful. Now a repo: https://github.com/josephwecker/bashrc_dispatch
#!/bin/bash
# License: Public Domain.
# Author: Joseph Wecker, 2012
#
# -- DEPRICATED --
# This gist is slow and is missing .bashrc_once
# Use the one in the repo instead! https://github.com/josephwecker/bashrc_dispatch
# (Thanks gioele)
#
# Are you tired of trying to remember what .bashrc does vs .bash_profile vs .profile?
@crismanNoble
crismanNoble / Chrome to Kippt
Created August 28, 2012 19:41
Importing Chrome Bookmarks to Kippt
//Export Chrome bookmarks as html
//Manually add a id="target" to the <d1> under the <h3> of the folder you want to import
//Initialize your list
var list = '';
//save the children of your target
var target = document.getElementById('target').children;
//grab all the titles and links, format them for easy importation to Kippt API
@danieltreacy
danieltreacy / jvm-companies.md
Created September 26, 2012 02:40
Tech companies/startups migrated to the JVM

Tech companies who have migrated to the JVM

NB: Does not include companies that started with a JVM language. The purpose of this gist is to list the companies that decided to move their stack (or some part of it) to the JVM.

@rietta
rietta / domain_validator.rb
Created October 4, 2012 20:51
Rails 3 Bare Domain Validator
#
# Domain Validator by Frank Rietta
# (C) 2012 Rietta Inc. All Rights Reserved.
# Licensed under terms of the BSD License.
#
# To use in a validation, add something like this to your model:
#
# validates :name, :domain => true
#
class DomainValidator < ActiveModel::EachValidator
@domenic
domenic / promises.md
Last active July 17, 2025 03:03
You're Missing the Point of Promises

This article has been given a more permanent home on my blog. Also, since it was first written, the development of the Promises/A+ specification has made the original emphasis on Promises/A seem somewhat outdated.

You're Missing the Point of Promises

Promises are a software abstraction that makes working with asynchronous operations much more pleasant. In the most basic definition, your code will move from continuation-passing style:

getTweetsFor("domenic", function (err, results) {
 // the rest of your code goes here.
@jed
jed / rendering_templates_obsolete.md
Created October 19, 2012 05:07
Rendering templates obsolete

(tl;dr DOM builders like [domo][domo] trump HTML templates on the client.)

Like all web developers, I've used a lot of template engines. Like most, I've also written a few of them, some of which even [fit in a tweet][140].

The first open-source code I ever wrote was also one of the the first template engines for node.js, [a port][node-tmpl] of the mother of all JavaScript template engines, [John Resig][jresig]'s [micro-templates][tmpl]. Of course, these days you can't swing a dead cat without hitting a template engine; one in eight packages on npm ([2,220][npm templates] of 16,226 as of 10/19) involve templates.

John's implementation has since evolved and [lives on in Underscore.js][underscore], which means it's the default choice for templating in Backbone.js. And for a while, it's all I would ever use when building a client-side app.

But I can't really see the value in client-side HTML templates anymore.

@vinsonizer
vinsonizer / Pivot.scala
Created October 19, 2012 19:18
Sample Pivot Table starter implementation
package pivot
class Pivot(val rows: List[List[String]]) {
val headers = rows.head.zipWithIndex.map(_.swap)
val body = rows.tail
def addCalcCol(f: List[String] => String)(newColName: String) : Pivot = {
val newRows = (headers.map(_._2) :+ newColName) +:
body.map(row => { row :+ f(row)})
@wfaler
wfaler / cake-pattern-example.scala
Created October 22, 2012 16:57
simple-cake-pattern-example.scala
// simple example of the cake pattern
// abstract DAO trait
trait Repository[A, B]{
// saves an entity, returns an ID
def save(entity: A): B
// more features..
}
trait RdbmsRepository extends Repository[MyUserCaseClass, Long]{