Skip to content

Instantly share code, notes, and snippets.

@ammmir
ammmir / modelfactory.js
Created November 27, 2010 09:31
Client model factory (node.js)
// generated user.js
function User() { // @extends Backbone.Model
return Backbone.Model.apply(this, arguments);
}
User.prototype = Backbone.Model.prototype;
User.EMAIL_REGEX = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
User.prototype.validate = function validate() {
var email = this.get('email');
@ammmir
ammmir / nginx.conf
Created November 30, 2010 07:50
nginx and node deployment config
upstream myapp_new {
server unix:/tmp/myapp-new.sock;
}
upstream myapp_old {
server unix:/tmp/myapp-old.sock;
}
server {
location / {
@ammmir
ammmir / deploy.sh
Created November 30, 2010 08:06
live deployment
mv /tmp/myapp-new.sock /tmp/myapp-old.sock # still only v1
mv /tmp/myapp-v2.sock /tmp/myapp-new.sock # v1 + v2 hybrid
rm /tmp/myapp-old.sock # v2 remains in prod
@ammmir
ammmir / proxy.js
Created May 27, 2012 05:28
simple HTTP proxy server
var http = require('http'),
url = require('url');
var PORT = process.argv[2] || 1337;
process.on('uncaughtException', function(error) {
console.error('uncaughtException', error);
});
http.createServer(function(req, res) {
@ammmir
ammmir / UIControl+BlockActions.h
Created December 12, 2012 07:38
A category on UIControl that makes it easy to handle control events with blocks, instead of target-action selectors.
#import <UIKit/UIKit.h>
@interface UIControl (BlockActions)
- (id)addHandlerForControlEvents:(UIControlEvents)controlEvents block:(void(^)(id))aBlock;
- (void)removeHandlerForControlEventsWithToken:(id)aToken;
@end
@ammmir
ammmir / gist:1210728
Created September 12, 2011 06:58
Compile GraphicsMagick on Mac OS X 10.7 (Lion)
# download libpng 1.4.x (1.5 didn't work yet with GraphicsMagick 1.3.12)
./configure --prefix=$HOME/INST && make && make install
# download libjpeg
./configure --prefix=$HOME/INST && make && make install
# download GraphicsMagick
CFLAGS=-I$HOME/INST/include LDFLAGS=-L$HOME/INST/lib ./configure --prefix=$HOME/INST --disable-openmp --disable-openmp-slow && make && make install
@ammmir
ammmir / telegram-bot.php
Last active January 27, 2022 14:25
Telegram admin bot for PHP apps
<?php
// include this at the top of your index.php router
require __DIR__ . "/telegram.php";
// send all exceptions to stderr and Telegram
function exception_handler($ex) {
$sessionVars = var_export($_SESSION, true);
$requestVars = var_export($_REQUEST, true);
error_log($ex->getMessage());
@ammmir
ammmir / go-cgi.go
Created February 23, 2023 15:49
ExecAPI samples
// tinygo build -target=generic -target=wasi -gc=leaking -no-debug go-cgi.go
package main
import (
"fmt"
"net/http"
"net/http/cgi"
)
func main() {