Skip to content

Instantly share code, notes, and snippets.

View christian-oudard's full-sized avatar

Christian Oudard christian-oudard

View GitHub Profile
@christian-oudard
christian-oudard / braille.py
Created June 25, 2020 23:35
Use unicode braille characters to draw a picture in the terminal
import math
import shutil
# Braille bit order:
# 0 3
# 1 4
# 2 5
# 6 7
# bit: (x, y)

Please publicly post the following Gist, and name it keybase.md

Keybase proof

I hereby claim:

  • I am christian-oudard on github.
  • I am christianoudard (https://keybase.io/christianoudard) on keybase.
  • I have a public key ASDUW30p7kTHKwf_VGcYiMCC_iPMzpJVFihxm4EGJG3_Gwo
@christian-oudard
christian-oudard / luhn.py
Created February 8, 2012 21:11
Luhn validation algorithm for credit cards.
"""
Python implementation of the Luhn algorithm.
Refer to: http://en.wikipedia.org/wiki/Luhn_algorithm
>>> is_luhn_valid(79927398713)
True
>>> is_luhn_valid(79927398714)
False
>>> is_luhn_valid(4532990475689429)
@christian-oudard
christian-oudard / palindromes
Created March 15, 2011 16:51
Palindrome number investigations
def digits_of(n, base=10):
"""
Split the number into its digits.
>>> digits_of(0)
[0]
>>> digits_of(123)
[1, 2, 3]
>>> digits_of(0xabc, base=16)
[10, 11, 12]
"""
Flatten a nested list structure.
* Works for nested structures of lists, tuples, generators, or any other iterable.
* Special-cases string types and treats them as non-iterable.
* Is not limited to the system recursion limit.
* Yields items from the structure instead of constructing a new list, and can
work on non-terminating generators.
This is basically a non-recursive version of the following:
#!/bin/bash
SSHAGENT=/usr/bin/ssh-agent
SSHAGENTARGS="-s"
PARENT_JOB=pstat_master_unittest
KEY_PATH=$HOME/policystat/fabric/pstat_dev.key
PROJECT_ROOT=/var/www/pstattest.com/
if [ ! -z "$WORKSPACE" ]; then
WORKSPACE=/vol/fs/var/lib/hudson/home/jobs/pstat_master_deploy/workspace
import Data.List.Zipper as Z
main = do
let string = "yabbadabbadoo"
print $ maximum $ palindromeSizes string
-- Find the size of the largest palindrome centered at each location in
-- a string. There will be 2*n-1 locations, because we count even and odd
-- centers. Go along the zipper, checking the sizes of palindromes to the left
-- and right as we go.