Skip to content

Instantly share code, notes, and snippets.

@Deraen
Deraen / data.php
Last active January 4, 2016 08:19
DO NOT LOOK HERE
<?php
/**
*
* Author: Juho Teperi <juho.teperi@iki.fi>
* 2013
*
* Holy shit, PHP is horrible.
*
* Retrieve a post from PhpBB.
* Post is selected by 't' query params which is used to select id from $types array.
@Deraen
Deraen / foo-temp-angular-fileupload.js
Last active August 29, 2015 13:56
Angular function for fileupload
fun.uploadImage = function($files, $event, status) {
var def = $q.defer();
if (!$files) return def.promise;
status.error = null;
status.active = true;
status.perc = 0;
var req;
@Deraen
Deraen / obserable-array-throttled-push.js
Last active October 15, 2015 15:26
A way to render Knockout ObservableArray responsively
var newArray = [{foo: 'bar', ...}, ...];
// This will block the UI thread during the rendering. It will become problem if the array has around 1000 items.
self.obsArray(newArray);
// This way UI should be responsive during the rendering
throttledPush(self.obsArray, newArray);
function throttledPush(obsArray, array, items, timeout) {
items = items || 5;
@Deraen
Deraen / knockout-selectize.js
Last active August 29, 2015 13:57
Knockout + Selectize.js
// Use
// ko.bindingHandlers.fooSearch = createAutocomplete({load: ...});
// viewModel.idHere = "123";
// viewModel.objHere = {_id: "123", name: "foo"};
// viewModel.objHere.subscribe(function(val) { ... selected obj! ... });
//
// <input type="text" data-bind="value: idHere, fooSearch: objHere"/>
function createAutocomplete(override) {
return {
@Deraen
Deraen / angular-utils.js
Last active August 29, 2015 13:57
angular-utils.js
angular.module('fooApp')
.factory('Util', function() {
var utils = {};
// Would be passed by value if $scope.foo was given directly.
// As scope is object it is passed by reference.
utils.Pending = function(scope, target) {
scope[target] = false;
this.start = function() {
@Deraen
Deraen / angular-selectize.js
Last active August 29, 2015 13:57
angular-selectize.js
/* jshint camelcase: false */
/* global $ */
// TODO: multiple items
angular.module('fooApp')
.factory('autocompleteFactory', function() {
var factory = function(overwrites) {
return {
restrict: 'E',
replace: true,
@Deraen
Deraen / http-kit-restart.clj
Created April 5, 2014 18:31
http-kit-restart.clj
(ns seitti.server
(:require [org.httpkit.server :refer [run-server]]
[clojure.tools.namespace.repl :as ns-tools]
[seitti.env :as env]
[seitti.handler :as handler]))
(def http-app (atom nil))
(defn -main [& args]
(reset! http-app (run-server handler/app {:port env/port})))
@Deraen
Deraen / clojure_indent_test.clj
Last active August 29, 2015 13:59
Indent test
(defmethod restructure-param :path-params
[_ {:keys [lets letks parameters] :as acc}]
"restructures path-params by plumbing letk notation. generates
synthetic defs for the models. example:
:path-params [id :- long name :- string]"
(if-let [path-params (:path-params parameters)]
(let [schema (fnk-schema path-params)
model-name (gensym "path-params-")
_ (eval `(def ~model-name ~schema))
coerced-model (gensym)]
@Deraen
Deraen / foobar.clj
Created May 7, 2014 21:11
Random Core.async exercise
(ns foobar.core
(:require [clojure.core.async :as async :refer [chan go timeout >! alts! alts!! <! <!! close!]]))
(defn -main []
(let [running (atom true)
num-cars 20
ferry-queue (chan)
ferry (chan)
intersection (chan)
msgs (chan)
@Deraen
Deraen / gulpfile.js
Created May 22, 2014 11:17
Gulp & Usemin
/* jshint node: true */
var gulp = require('gulp');
var plumber = require('gulp-plumber');
var path = 'app/';
// Common
var less = require('gulp-less');
function compileLess() {
return gulp.src(path + 'styles/main.less')