Skip to content

Instantly share code, notes, and snippets.

@speier
speier / api.js
Created September 14, 2012 20:07 — forked from fwielstra/api.js
An example NodeJS / Mongoose / Express application based on their respective tutorials
/* The API controller
Exports 3 methods:
* post - Creates a new thread
* list - Returns a list of threads
* show - Displays a thread and its posts
*/
var Thread = require('../models/thread.js');
var Post = require('../models/post.js');
@speier
speier / ReportService.cs
Created August 30, 2012 10:51
ServiceStack MQ mockup
[Auth]
public class ReportService : RestServiceBase<Report>
{
public IReportRepository Repository { get; set; }
public override object OnGet(Report request)
{
using (var producer = MessageFactory.CreateMessageProducer())
{
producer.Publish(request);
@speier
speier / visitor.js
Created May 16, 2012 22:05
node-visitor recursively visits every required file using node-detective
var fs = require('fs');
var path = require('path');
var Module = require('module');
var detective = require('detective');
// node-visitor
function visit(request, parent) {
var fn;
try {
@speier
speier / cssincimages
Created May 4, 2012 14:04
Replace CSS images with inline base64 data
var fs = require('fs');
var path = require('path');
function cssIncImages(cssFile) {
var imgRegex = /url\s?\(['"]?(.*?)(?=['"]?\))/gi;
var css = fs.readFileSync(cssFile, 'utf-8');
while (match = imgRegex.exec(css)) {
var imgPath = path.join(path.dirname(cssFile), match[1]);
try {
var img = fs.readFileSync(imgPath, 'base64');
@speier
speier / package.json
Created April 11, 2012 14:14
Basic npm package for Meteor
{
"name": "Meteor",
"version": "0.3.2",
"description": "A new way to build apps.",
"author": "Meteor Development Group",
"homepage": "http://www.meteor.com/",
"repository": {
"url": "https://github.com/meteor/meteor"
},
"dependencies": {
@speier
speier / JS Util solution using underscore.js
Created September 8, 2011 21:14 — forked from HenrikJoreteg/JS Util solution using underscore.js
Rather than creating some other util global, just extend underscore.js with any additional methods you want.
// If you don't use underscore.js, use it (http://documentcloud.github.com/underscore/)
// Then, use underscore's mixin method to extend it with all your other utility methods
// like so:
_.mixin({
escapeHtml: function () {
return this.replace(/&/g,'&amp;')
.replace(/>/g,'&gt;')
.replace(/</g,'&lt;')
.replace(/"/g,'&quot;')
.replace(/'/g,'&#39;');
@speier
speier / rubicon.coffee
Created September 8, 2011 08:18
Simple HTTP proxy for our node.js development environment
#!/usr/bin/env ./node_modules/coffee-script/bin/coffee
sys = require 'sys'
express = require 'express'
assets = require 'connect-assets'
proxy = require 'http-proxy'
server = proxy.createServer (req, res, proxy) ->
if req.url.match /^\/?api/
backend =
@speier
speier / paginated_collection.js
Created September 8, 2011 08:17 — forked from io41/paginated_collection.js
Pagination with Backbone.js
// includes bindings for fetching/fetched
var PaginatedCollection = Backbone.Collection.extend({
initialize: function() {
_.bindAll(this, 'parse', 'url', 'pageInfo', 'nextPage', 'previousPage');
typeof(options) != 'undefined' || (options = {});
this.page = 1;
typeof(this.perPage) != 'undefined' || (this.perPage = 10);
},
fetch: function(options) {
@speier
speier / README.md
Created September 1, 2011 18:53 — forked from chrisjacob/README.md
QUICK setup Github Pages + Cloud9 IDE for HTML/CSS/JavaScript hacking

QUICK setup Github Pages + Cloud9 IDE for HTML/CSS/JavaScript hacking

GitHub + GitHub Pages

  1. Get a GitHub account: https://github.com/
  2. Github > Dashboard > New Repository ... https://github.com/repositories/new
  3. Enter a Project Name and Description; click "Create Repository"
  4. On the project page ignore the suggested setup instructions... instead click on the "Admin" button
  5. Check the "GitHub Pages" checkbox... You'll get a popup.
  6. Click the "Automatic GitHub page Generator" button.
  7. Choose a funky colour... or go safe with just white... then click "Create Page" button
@speier
speier / redis-counters.coffee
Created August 15, 2011 08:46 — forked from mythz/redis-counters.coffee
Create and increment multiple counters with express, coffeescript and redis
#1. install node, npm and coffeescript
#2. >npm install express
#3. >npm install node_redis
#4. >npm install -d
redis = require('redis').createClient()
redis.on 'error', (err) -> console.log "Redis connection error to #{redis.host} : #{redis.port} - #{err}"
app = require('express').createServer()
#create and increment multiple counters in redis, via: http://localhost:3000/counters/my-counter