Skip to content

Instantly share code, notes, and snippets.

View aseemk's full-sized avatar

Aseem Kishore aseemk

View GitHub Profile
@aseemk
aseemk / buggy_.coffee
Created July 16, 2011 01:12
Streamline bug due to switch case w/out a break (CoffeeScript optimization)
async = (_) ->
setTimeout _, 1000
switch true
when true
alert 'about to start async'
async _
# this never executes!
alert 'done w/ async'
@aseemk
aseemk / types.coffee
Created July 14, 2011 01:28
CoffeeScript's awesome inheritance model lets you strip boilerplate type checking.
# WARNING: This will no longer work with CoffeeScript 1.3.2 in IE:
# http://coffeescript.org/#changelog
class Animal
@is: (node) ->
if not @TYPE then return true
node.type is @TYPE
@isnt: (node) ->
not @is node
@aseemk
aseemk / app-dev.js
Created July 6, 2011 23:39
Handler for efficiently caching compiled Coffee and/or Streamline files.
// app-dev.js
// Helper script to register CoffeeScript and Streamline extension handlers
// before running an app during development.
//
// Uses https://github.com/aseemk/coffee-streamline for efficient require(),
// caching compiled files between runs. Sweet!
//
// Usage: instead of `_coffee app`, just do `node app-dev app`.
//
// Also works great w/ node-dev <https://github.com/fgnass/node-dev>:
@aseemk
aseemk / require-watcher.coffee
Created June 29, 2011 08:12
Node require watcher: exits the process when any require()'d files are changed.
# require-watcher.coffee
# Watches files that have been require()'d, and if they change, exits the
# current process, assuming that node-supervisor will then restart it.
fs = require 'fs'
# watch handler to exit the process on file changes:
watchFile = (filename) ->
fs.watchFile filename, (oldStat, newStat) ->
@aseemk
aseemk / mkdirp.coffee
Created June 29, 2011 08:04
My implementation of a synchronous `mkdir -p` for Node.
# synchronously creates the directory at the given path, including all
# intermediate directories, if it doesn't already exist. (like `mkdir -p`)
mkdirpSync = (dir) ->
# normalize and resolve path to an absolute one:
# (path.resolve automatically uses the current directory if needed)
dir = path.resolve path.normalize dir
# try to create this directory:
try
@aseemk
aseemk / amazon-search-indices.md
Created June 17, 2011 23:44
Amazon Product Advertising API - search indices not in the "blended" index

Search indices not available in the "Blended" search index:

  • Appliances
  • ArtsAndCrafts
  • Baby
  • Beauty
  • Blended
  • Classical
  • DigitalMusic
  • Grocery
@aseemk
aseemk / images.css
Created May 27, 2011 18:21
Image constraining tests
h1 {
font-size: 1.5em;
font-weight: bold;
margin: 1em 0;
}
h2 {
font-size: 1.25em;
margin: 1em 0;
}
@aseemk
aseemk / colon.html
Created May 11, 2011 10:15
Eco comments ending in colons
<h1>Comments ending in colons</h1>
<% # This comment ends in a colon: %>
<p>
That shouldn't be a problem for Eco! But it is. ;)
</p>
@aseemk
aseemk / foreach.html
Created May 11, 2011 09:51
Eco forEach iteration
<h2>For-Each</h2>
<p>
This should print a list of names, no?
(It does in EJS.)
</p>
<% names = ['Alice', 'Bob', 'Carol'] %>
<ul>
@aseemk
aseemk / multiline.html
Created May 11, 2011 09:43
Eco multi-line blocks and comments.
<h1>Multi-Line Blocks</h1>
<p>
It would be great to support multi-line blocks.
Here are some use cases:
</p>
<%
# Documentation via multiple lines of single-line comments.
# Like so.