Skip to content

Instantly share code, notes, and snippets.

View dvberkel's full-sized avatar
💭
Enjoying life, the universe and everything

Daan van Berkel dvberkel

💭
Enjoying life, the universe and everything
View GitHub Profile
@dvberkel
dvberkel / quine.pl
Created July 24, 2011 10:31
This gist is a Perl Quine
#! /usr/bin/env perl
use strict;
use warnings;
my $program = <<'EOP';
#! /usr/bin/env perl
use strict;
use warnings;
@dvberkel
dvberkel / address.rb
Created February 29, 2012 06:01
Ruby evaluates this snippet into my email address
puts ([["daan", "v", "berkel", "1980"],["gmail", "com"]].map {|e| e.join(".")}).join("@")
@dvberkel
dvberkel / gist:1950267
Created March 1, 2012 14:53
Duvals Algorithm for generating Lyndon words
"""Lyndon.py
Algorithms on strings and sequences based on Lyndon words.
David Eppstein, October 2011."""
import unittest
from Eratosthenes import MoebiusFunction
def LengthLimitedLyndonWords(s,n):
"""Generate nonempty Lyndon words of length <= n over an s-symbol alphabet.
The words are generated in lexicographic order, using an algorithm from
@dvberkel
dvberkel / candidate.magma
Created April 9, 2012 12:45
Magma code to determine possible candidates for Brands scheme for the Mammon project
p := 7; batchSize := 10;
for index in [1..batchSize] do
p := NextPrime(p);
phi := EulerPhi(p);
factors := Factorization(phi);
primitiveCount := EulerPhi(phi);
printf "%o, %o, %o\n", p, factors, primitiveCount;
end for;
@dvberkel
dvberkel / random-candidates.magma
Created April 10, 2012 09:57
Magma code to determine possible candidates for Brands scheme for the Mammon project in a random fasion
bits := 32; batchSize := 100;
p := -1; maxQ := -1;
for i in [1..batchSize] do
p := RandomPrime(bits);
phi := EulerPhi(p);
factors := Factorization(phi);
q, _ := Max([factor[1] : factor in factors]);
primitiveCount := EulerPhi(phi);
if (q gt maxQ) then
maxQ := q;
@dvberkel
dvberkel / germain.magma
Created April 13, 2012 11:58
Magma code to determine Sophie Germain primes, which are excellent candidates for Brands scheme for the Mammon project.
bits := 32; batchSize := 100;
maxQ := -1;
for index in [1..batchSize] do
q := RandomPrime(bits - 1);
if q gt maxQ and IsPrime(2*q + 1) then
maxQ := q;
print 2*q + 1, q;
end if;
end for;
@dvberkel
dvberkel / install-android-sdk.sh
Created April 29, 2012 18:12
Bash script to automatically install and update the Android SDK
#! /usr/bin/env bash
# This script downloads the Android SDK.
# It depends on the following
#
# * curl
# * tar
BASE_DIR=`pwd`
@dvberkel
dvberkel / Reflector.java
Created May 8, 2012 18:18
Enigma Code Kata
package nl.tdd.enigma;
import java.util.HashMap;
import java.util.Map;
public class Reflector {
private final Map<String, String> reflections = new HashMap<String, String>();
{
@dvberkel
dvberkel / RegisterDisplay.cpp
Created May 11, 2012 20:10
Arduino controlled 7-segment clock
/*
RegisterDisplay.cpp - Library for 74HC545 controlled 7-segment display
Created by Daan van Berkel, May 30, 2012.
Released into the public domain.
*/
#include "Arduino.h"
#include "RegisterDisplay.h"
RegisterDisplay::RegisterDisplay(int numberOfSegments, int clockPin, int latchPin, int dataPin) {
@dvberkel
dvberkel / random.ps
Created October 15, 2012 04:47
Random nmber between 0 and 1
/rrand { rand 16#7FFFFFFF div } def