Skip to content

Instantly share code, notes, and snippets.

@markjenkins
markjenkins / d1p1.py
Created December 7, 2016 05:02
Functional solution to https://adventofcode.com/2016/day/1 part 1 with reduce() and lambda vs no lambda
#!/usr/bin/env python3
# Functional solution to https://adventofcode.com/2016/day/1 part 1
# with reduce() and lambda vs no lambda
# Mark Jenkins <mark@markjenkins.ca>
from functools import reduce
MOVEMENTS = ((0,1), (1,0), (0,-1), (-1,0))
DIRECTION_CHANGES = {"R": 1, "L": -1}
@markjenkins
markjenkins / d1p2.py
Last active December 7, 2016 07:05
solution to https://adventofcode.com/2016/day/1 part 2, uses reduce(), nearly functional
#!/usr/bin/env python3
# solution to https://adventofcode.com/2016/day/1 part 2
# in a functional style with python 3.3+ enhanced accumulate() and dropwhile()
# Mark Jenkins <mark@markjenkins.ca>
from itertools import accumulate, dropwhile, chain
MOVEMENTS = ((0,1), (1,0), (0,-1), (-1,0))
DIRECTION_CHANGES = {"R": 1, "L": -1}
@markjenkins
markjenkins / d2p1.py
Created December 8, 2016 08:36
Solution to http://adventofcode.com/2016/day/2 using reduce and accumulate
#!/usr/bin/env python3
# Solution to http://adventofcode.com/2016/day/2 part 1
# using reduce and accumulate for awesome functional programing style points
# Mark Jenkins <mark@markjenkins.ca>
from sys import stdin
from functools import reduce
from itertools import chain, accumulate, islice
#!/usr/bin/env python3
# functional solution to http://adventofcode.com/2016/day/3 part 1
# Mark Jenkins <mark@markjenkins.ca>
from sys import stdin
def possible_triangle(args):
assert(len(args)==3)
sum_args = sum(args)
#!/usr/bin/env python3
# Solution to http://adventofcode.com/2016/day/4 part 1
# Mark Jenkins <mark@markjenkins.ca>
from sys import stdin
from collections import Counter
from itertools import islice
CHECKSUM_SIZE = 5
from functools import reduce
def map( func, iterable):
def f(a, b):
return a + [func(b)]
return reduce( f, iterable, [] )
@markjenkins
markjenkins / example_ballots.txt
Last active August 5, 2020 04:03
Election of a single candidate by HMAC
Voter code yS2MuD4+iPrmZOoSIY76qLCMQWS/wQxnql8MmpN9AUY= votes for Pirates
non interactively
echo -e "yS2MuD4+iPrmZOoSIY76qLCMQWS/wQxnql8MmpN9AUY=\nPirates" | python3 hmac_vote.py
interactively
python3 hmac_vote.py
What's your code? > yS2MuD4+iPrmZOoSIY76qLCMQWS/wQxnql8MmpN9AUY=
Your code is:
yS2MuD4+iPrmZOoSIY76qLCMQWS/wQxnql8MmpN9AUY=
<p>
<a href="https://markjenkins.ca">Return to markjenkins.ca</a>
</p>
<p>
This contact form submits to my
<a href="mailto:mark@markjenkins.ca">mark@markjenkins.ca</a> email address.
</p>
@markjenkins
markjenkins / 2021-02-23_boardcandidates.txt
Last active February 24, 2021 00:25
2021-02-23 election
Elected by acclamation
Michael Kozakewich
Kyle Martin
Edwin Amsler
Thor Robinson
Pietra Shirley
@markjenkins
markjenkins / bip39_english.txt
Created April 17, 2021 18:23
Create an Electrum segwit (0x100) seed from a standard seed (0x01) using BIP39 english list
abandon
ability
able
about
above
absent
absorb
abstract
absurd
abuse