Skip to content

Instantly share code, notes, and snippets.

@rd13
rd13 / gist:7372334
Created November 8, 2013 15:09
Enigma Python
#!/usr/bin/env python
import string
_rotors = [ 'EKMFLGDQVZNTOWYHXUSPAIBRCJ',
'AJDKSIRUXBLHWTMCQGZNPYFVOE',
'BDFHJLCPRTXVZNYEIWGAKMUSQO'
]
_reflector = "YRUHQSLDPXNGOKMIEBFZCWVJAT"
_key = "ABC"
@rd13
rd13 / Gemfile
Created June 3, 2013 15:08
Rails / AngularJS / Chart.js - Line chart example directive
gem 'angularjs-rails'
gem 'chart-js-rails'
@rd13
rd13 / cartesian.js
Created April 25, 2018 18:31
Javascript cartesian product (power set) using bits
const input = 'abc'
const inputLength = 3
const powerSetSize = Math.pow(2, inputLength)
let result = []
for (let k = 0; k < powerSetSize; k++) {
let set = "";
let binaryDigits = k;
for (let j = 0; j < inputLength; j++) {
@rd13
rd13 / .zshrc
Created November 13, 2018 15:40
JIRA / GIT branch opener / alias
alias jira='open "http://jira-host.com/browse/$(git rev-parse --abbrev-ref HEAD)"'
@rd13
rd13 / gist:7372358
Created November 8, 2013 15:11
Enigma Perl
#!/usr/bin/perl
$|=1; #disable output buffering, this is necessary for proper output through pipe
my @rotors = ('EKMFLGDQVZNTOWYHXUSPAIBRCJ','AJDKSIRUXBLHWTMCQGZNPYFVOE','BDFHJLCPRTXVZNYEIWGAKMUSQO');
my $reflector = "YRUHQSLDPXNGOKMIEBFZCWVJAT";
my $key = "ABC";
sub li {
@rd13
rd13 / gist:3924792
Created October 20, 2012 21:01
PHP number_format in Javascript
//UK format - commas for thousands separator, full stop for decimal.
//d = number of decimal points.
String.prototype.number_format = function(d) {
var n = this;
var c = isNaN(d = Math.abs(d)) ? 2 : d;
var s = n < 0 ? "-" : "";
var i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
return s + (j ? i.substr(0, j) + ',' : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + ',') + (c ? '.' + Math.abs(n - i).toFixed(c).slice(2) : "");
}
@rd13
rd13 / gist:4454720
Created January 4, 2013 18:22
Simple Objective-C Timer Example
//Do something 2 seconds after view loads
- (void)viewDidLoad
{
[super viewDidLoad];
[NSTimer scheduledTimerWithTimeInterval:2.0
target:self
selector:@selector(theAction)
userInfo:nil
@rd13
rd13 / gist:f1c01c42b18b9e358223
Created March 26, 2014 22:20
Enigma C++ Perf
#include <iostream>
#include <cstring>
#include <array>
using namespace std;
const std::array<char, 27> alpha = {"ABCDEFGHIJKLMNOPQRSTUVWXYZ"};
const std::array<std::array<char, 27>, 3> rotors
{
{{"EKMFLGDQVZNTOWYHXUSPAIBRCJ"},
{"AJDKSIRUXBLHWTMCQGZNPYFVOE"},
@rd13
rd13 / gist:7372208
Created November 8, 2013 14:59
Enigma C++
#include <iostream>
#include <cstring>
using namespace std;
char alpha[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char rotors[3][27] =
{
"EKMFLGDQVZNTOWYHXUSPAIBRCJ",
"AJDKSIRUXBLHWTMCQGZNPYFVOE",
"BDFHJLCPRTXVZNYEIWGAKMUSQO"
@rd13
rd13 / iso8601_duration.js
Last active October 15, 2021 13:40
Encode an iso8601 duration in Javascript
/**
* Utility function to convert seconds to an iso8601 duration string.
*
* @param seconds int The number of seconds to encode.
* @return string iso8601 formatted duration
*/
const iso8601Duration = (seconds = 0) => {
let _seconds = seconds;