Skip to content

Instantly share code, notes, and snippets.

@simenbrekken
simenbrekken / add.js
Created November 24, 2011 14:21
Backbone.js form submission
define([
'backbone',
'underscore',
'project/views/form'
], function(Backbone, _, ProjectFormView) {
var View = Backbone.View.extend({
events: {
'submit form': 'submit'
},
@simenbrekken
simenbrekken / project-item.js
Created November 28, 2011 09:11
Backbone.js child views example
var View = Backbone.View.extend({
tagName: 'tr',
template: Handlebars.compile($('#project-list-item').html()),
events: {
'click .delete': 'destroy'
},
initialize: function() {
this.model.bind('change', this.render, this);
this.model.bind('destroy', this.remove, this);
@simenbrekken
simenbrekken / touchhandler.js
Created December 2, 2011 14:24
Create touch-friendly jQuery event handler
var touchHandler = function(handler) {
return function(e) {
handler.call(this, e.originalEvent.touches ? e.originalEvent.touches[0] : e);
};
};
// Example
$('foo').on('mousedown touchstart', touchHandler(function(e) {
console.log('Touch/Mouse coordinates, top:', e.pageY, 'left:', e.pageX);
});
aggregator: bin/aggregator
web: bin/app
store bin/store
@simenbrekken
simenbrekken / s3test.js
Created February 13, 2012 09:33
Amazon S3 PUT test
var http = require('http'),
uri = require('url'),
mime = require('mime'),
aws2js = require('aws2js');
var settings = {
s3: {
key: 'cat',
secret: 'bus',
bucket: 'fonyfw',
@simenbrekken
simenbrekken / imaginator.js
Created February 13, 2012 19:42
Retrieve entry from database, fetch image, store original to S3 along with two different thumbnails.
Entry.findOne({type: 'photo', photo: null}).done(function(entry) {
var thumbnailSize = entry.authorTypeName == 'Photographer' ? 500 : 250;
var options = uri.parse(entry.photoUrl);
var req = http.get(options, function(res) {
if (res.statusCode != 200) return next(new Error('Could not fetch: ' + entry.photoUrl));
var type = res.headers['content-type'];
var length = res.headers['content-length'];
var extension = mime.extension(type);
var path = settings.s3.path + entry._id + '.' + extension;
@simenbrekken
simenbrekken / Default (OSX).sublime-keymap
Created March 1, 2012 13:42
Make Norwegian/Swedish keyboards better for coding
{ "keys": ["super+8"], "command": "insert", "args": {"characters": "{"} },
{ "keys": ["super+9"], "command": "insert", "args": {"characters": "}"} }
@simenbrekken
simenbrekken / README.md
Created March 8, 2012 06:39
Super simple Backbone + Express + MongoDB REST backend application

Requirements:

If you're on OSX you're probably best off using Homebrew to install this stuff:

$ brew install node mongodb

Usage:

@simenbrekken
simenbrekken / labeled-marker.js
Created March 12, 2012 13:57
Labeled Google Maps Marker
var LabeledMarkerOverlay = function(marker) {
this.marker = marker;
this.el = document.createElement('div');
this.el.className = 'marker-label';
};
LabeledMarkerOverlay.prototype = new google.maps.OverlayView();
LabeledMarkerOverlay.prototype.onAdd = function() {
@simenbrekken
simenbrekken / app.js
Created March 30, 2012 19:06
Store and retrieve binary file in MongoDB from Express via Mongolian
// Create
app.post('/api/attachments/stage', function(req, res) {
var attachments = db.gridfs('attachments');
var file = attachments.create({
filename: shortid.generate()
});
var stream = file.writeStream();
stream.on('close', function() {
var attachment = {