Skip to content

Instantly share code, notes, and snippets.

Erik Ferguson muraiki

  • Pittsburgh
Block or report user

Report or block muraiki

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
muraiki / reduce_in_r.R
Created Mar 27, 2018
Calculating a rolling sum in R using the Reduce function
View reduce_in_r.R
# Rolling sum using the Reduce function
EV <- c(1,.9,.8,.001,.001,.001,.001)
# Proportion of variance explained by each principle component.
prop_var <- EV / sum(EV)
# 0.3698224852 0.3328402367 0.2958579882
# 0.0003698225 0.0003698225 0.0003698225
# 0.0003698225
muraiki / pb.html
Last active Jan 22, 2018
Salesforce Process Builder: Generate formula code for matching multiple values
View pb.html
<label for="fieldName">Field name (include object):</label>
<input id="fieldName" name="fieldName" type="text" size="100" onkeydown="if (event.keyCode == 13) false">
<input type="checkbox" id="isPicklist" name="isPicklist" value="picklist">
<label for="isPicklist">Picklist?</label>
<input type="checkbox" id="isNot" name="isNot" value="not">
<label for="isNot">NOT?</label>
muraiki / my functional things
Created Sep 21, 2013
A concussion has prevented me from doing much coding these past 9 months, but in a fit of boredom I wrote this...
View my functional things
lazy semantics and lambda abstractions
point-free in style and pure computation
memoization gives simple caching
these are a few of my functional things
when the state bites
when the C stings
when impure is bad
I simply remember my functional things
and then I don't feel so mad
muraiki / 28.ijs
Created Jul 28, 2017
Generate series of 28 numbers in ascending order that total close to 1500 (J)
View 28.ijs
muraiki / 28.apl
Created Jul 28, 2017
Generate series of 28 numbers in ascending order that total close to 1500 (APL)
View 28.apl
muraiki / watch_source_files.p6
Last active Sep 4, 2015
Watch source files using Supplies
View watch_source_files.p6
# disclaimer: I'm a perl6 noob :)
my $out =;
$out.act: -> $s { say $s }; # actor model semantics; only ever execute this in 1 thread
my $watcher =$*CWD.abspath)\
.unique(:as(*.path), :expires(1))\ # unique paths over last second, to prevent double-triggering from metadata events
.map(*.path.IO)\ # convert event path strings to IO::Path objects
.grep(*.extension eq 'p6')\
muraiki / watch_and_chown.p6
Last active Aug 29, 2015
Watch a file and chown it once it exists
View watch_and_chown.p6
my $PATH = '.';
my $USER = 'muraiki';
my $GROUP = 'staff';
.unique(:as(*.path), :expires(1))\
.grep(* ~~ /\.sock/)\
.act(-> $socket {
say "Socket created: $socket"; # actually this happens for any I/O on the file, not just creation
muraiki / gist:077aef846a775028eec8
Created Jul 7, 2015
Intro to anonymous functions in Perl
View gist:077aef846a775028eec8
# Intro to anonymous functions in Perl
use strict;
use warnings;
use feature qw(say);
use utf8;
binmode STDOUT, ':utf8';
# You can declare a sub without giving it a name. Hence, "anonymous" function.
sub { say 'this sub will never be called' };
muraiki /
Last active Aug 29, 2015
merge two files
use strict;
use warnings;
open (my $foo, '<', 'foo.txt') or die;
open (my $bar, '<', 'bar.txt') or die;
open (my $merged, '>', 'merged.txt') or die;
print $merged '#!/bin/sh', "\n";
while (not eof $foo and not eof $bar) {
muraiki / gist:96d746eff5f564c32990
Created Mar 19, 2015
updating KO model from json
View gist:96d746eff5f564c32990
// map the keys in json to the properties on your model
var desiredKeys = {
"foo": "foo",
"bar": "bar"
Object.defineProperty(self, 'updateFromJson', {
enumerable: true,
value: function (data) {
You can’t perform that action at this time.