Skip to content

Instantly share code, notes, and snippets.

View Centril's full-sized avatar
🏠
Working from home

Mazdak Farrokhzad Centril

🏠
Working from home
  • Sweden
View GitHub Profile
@Centril
Centril / _.objectMap.js
Created October 30, 2014 04:24
lodash: _.objectMap
/**
* Creates an object where each property is composed from
* an element of keys (key) and the value from callback(key).
*
* @param {array} keys The array of keys.
* @param {function} [callback=_.identity] The callback(key) that returns the object:s values.
* @return {object} Returns an object composed of the given keys and callback(key) for values.
*/
_.objectMap = function(keys, callback) {
callback = callback || _.identity;
@Centril
Centril / box_callback.rs
Last active May 17, 2017 15:05
Rust: Sending callbacks in struct to a scoped thread with Box
#![feature(core)]
#![feature(std_misc)]
use std::thread::{Thread, JoinGuard};
fn callback(v: usize) -> usize { v * 2 }
struct S {
cb: Box<Fn(usize) -> usize + Send>,
}
@Centril
Centril / scoped_parent.rs
Created February 20, 2015 06:43
Rust: scoped, accessing parent thread
use std::thread::{self, JoinGuard};
use std::option::Option;
use std::marker::Send;
fn callback(v: usize) -> usize { v * 2 }
type CB = Fn(usize) -> usize + Sync + Send;
type Callback = Box<CB>;
struct S<'a> {
@Centril
Centril / same.rs
Created February 23, 2015 20:27
Trait & struct have the same name for a method
fn main() {
let b = B;
(&b as &A).a();
}
trait A {
fn a( &self );
}
struct B;
@Centril
Centril / README.md
Created February 28, 2015 23:46
Old jQuery hack

Applied to jQuery 1.7 dev. This was just an idea i made long ago, dumping for keepsake.

@Centril
Centril / mousemovement.js
Created February 28, 2015 23:49
mousemovement.js
// Dumping old code as gists...
(function($) {
$.mouseMovement = {
stack: [],
clearInterval: 1000
};
var stack = $.mouseMovement.stack;
@Centril
Centril / philips-tv-unknown-sources
Created March 26, 2015 17:54
how to enable unknown sources in a Philips TV (android)
1. Download [terminal emulator] from playstore.
2. Open [terminal emulator] and execute the following: `am start --user 0 -n com.android.settings/.SecuritySettings`. This will launch the Security Settings which Philips has hidden.
3. Scroll down and: Enable unknown sources.
4. Profit.
<!-- references -->
[terminal emulator]: https://play.google.com/store/apps/details?id=jackpal.androidterm
@Centril
Centril / generativeFlatMap.groovy
Created October 25, 2015 22:49
generative flat map, groovy
List.metaClass.foldn = { init, closure ->
def l = delegate.clone()
def acc = init
def it = l.listIterator()
while ( it.hasNext() ) {
def e = it.next()
it.remove()
closure( acc, e, it )
}
return acc
@Centril
Centril / search.groovy
Last active December 10, 2015 06:07
Fuzzy predicate logic searching with relevance, HOF style.
interface SearchResult<T> {
T getResult();
double getRelevance();
// Just for being able to "clone" with other relevance...
SearchResult<? extends T> withRelevance( double relevance );
}
interface SearchCriteria<T> {
SearchResult<? extends T> apply( SearchResult<? extends T> result );
@Centril
Centril / test-indexed-state-monad.hs
Last active May 23, 2022 16:45
Testing indexed state monad transformers
--------------------------------------------------------------------------------
-- Copyright : (C) 2008 Edward Kmett, 2016 Mazdak Farrokhzad
-- License : BSD-style
--------------------------------------------------------------------------------
{-# LANGUAGE GeneralizedNewtypeDeriving, FlexibleInstances,
UndecidableInstances, MultiParamTypeClasses #-}
import Control.Applicative(Alternative)
import Control.Monad.Identity
import Control.Monad.State