Skip to content

Instantly share code, notes, and snippets.

@joepie91
joepie91 / .js
Last active August 26, 2015 21:48 — forked from dsauerbrun/.js
function buildTranslations(message, originLanguage, destLanguages){
return Promise.try(function(){
translations = {};
destLanguages.map(function(currentLang){
translations[currentLang.code] = {}
db.model('Translation').translate(message,originLanguage.code,currentLang.code).then(function(translation){
console.log('build Trans function'+translation);
translations[currentLang.code] = translation;
});
});
@joepie91
joepie91 / .js
Last active August 27, 2015 20:50 — forked from dsauerbrun/.js
function bingTranslate(message,originLang,destLang,accessToken){
Promise.try(function(){
accessToken.then(function(bingToken){
options = {
headers:{
'Authorization': "Bearer "+accessToken
}
};
queryString="text="+encodeURIComponent(message)+"&from="+originLang+"&to="+destLang+"&contentType=text%2Fplain";
return bhttp.get("http://api.microsofttranslator.com/V2/Http.svc/Translate?"+queryString,options).then(function(data){
---
layout: post
title: "How to write proper PHP"
permalink: 2013/12/17/how-to-write-proper-php
postday: 2013/12/17
posttime: 05_57
tags: untagged
---
// models/user.js
module.exports = function(bookshelf) {
return bookshelf.define(/* blah blah blah */);
}
// app.js
var bookshelf = /* connection stuff goes here */
var User = require("models/user")(bookshelf)
@joepie91
joepie91 / gist:214be25a73df86cfd2f8
Created June 26, 2014 08:21
Generic gulpfile for Node.js (npm) packages
/* npm install --save-dev gulp gulp-util gulp-concat gulp-rename gulp-coffee gulp-cached gulp-remember gulp-plumber */
var gulp = require('gulp');
/* CoffeeScript compile deps */
var path = require('path');
var gutil = require('gulp-util');
var concat = require('gulp-concat');
var rename = require('gulp-rename');
var coffee = require('gulp-coffee');
@joepie91
joepie91 / gist:7c0dab92f64e192d2691
Last active August 29, 2015 14:03
AnonNews scoring algo
frontpageScore = (upvotes, minutes) ->
maxMinutes = (48 * 60);
maxMultiplier = Math.pow(1.001, maxMinutes);
if minutes > maxMinutes
minutes = maxMinutes
factor = 1 - (Math.pow(1.001, minutes) / maxMultiplier)
return factor * upvotes
@joepie91
joepie91 / gulpfile.js
Last active August 29, 2015 14:04
Gulpfile for Express + CoffeeScript + Theseus + Nodemon + LiveReload
var gulp = require('gulp');
var path = require('path');
var gutil = require('gulp-util');
var concat = require('gulp-concat');
var rename = require('gulp-rename');
var coffee = require('gulp-coffee');
var cache = require('gulp-cached');
var remember = require('gulp-remember');
var plumber = require('gulp-plumber');
@joepie91
joepie91 / util.coffee
Last active August 29, 2015 14:04
Newer AnonNews stuff
S = require "string"
Promise = require "bluebird"
request = require "request"
libxml = require "libxmljs"
longest = require "longest"
cld = Promise.promisifyAll(require "cld")
urlLib = require "url"
module.exports =
createTeaser: (input, length) ->
@joepie91
joepie91 / proxy.coffee
Last active August 29, 2015 14:04
AnonNews Image Proxy
Promise = require "bluebird"
express = require "express"
router = express.Router()
gm = require "gm"
util = require "../util"
fs = require "fs"
path = require "path"
moment = require "moment"
request = require "request"
urlLib = require "url"
@joepie91
joepie91 / save-changes.js
Created August 29, 2014 03:47
Bookshelf plugin for only committing changed attributes
module.exports = function(bookshelf) {
return bookshelf.Model.prototype.saveChanges = function(options) {
if (options == null) {
options = {};
}
options.patch = true;
return this.save(this.changed, options);
};
};