Hi, Danf
 New device for now
Hi Dan, my roommate lilly has borrowed me her MindWave Mobie. It has the same ThinGear chip, but talks over bluetooth, not RF. I have a bluetooth receiver on my laptop, but I reckon the dream machine does not. Either way we can use it to debug the plexer code you're writing. Also see https://github.com/robintibor/python-mindwave-mobile for an object oriented approach to reading data off sent by the ThinkGear. robintibor is more maticulous about data rows than akloister. See you at the pwn meeting tomorrow. User:bfb
 whatsup hacka?
Nothing going tonight. Up late, needing sleep. See you tomorrow. PS found a light read on mind/brain sleep research in the 20th century, linked under current readings. -kevin
 this is an example of a note to say hello via wiki because email is a broken protocol, considered harmful, and depracatable
say what ??? --Danf (talk) 01:18, 22 August 2013 (UTC)
 Good stuff
By golly have a listen
 Connectivity Restored...
to switch 31, aka the collaboration station.
def egcd(a, b): if a == 0: return (b, 0, 1) else: g, y, x = egcd(b % a, a) return (g, x - (b // a) * y, y)
I've never seen anything like it.
 hey dan
Chris here. Good talking last night. Here's the deep learning site I mentioned. deeplearning4j.org. Curious to hear what you think.
 Bluetooth Dongle
I think we have a BS009 from BlueSoleil
 HTML5 Canvas Element
Thought you might like to play around with this.. I just stumbeled on this shape hacking a grid together.
from random import shuffle # from itertools import combinations def combinations(iterable, r): pool = tuple(iterable) n = len(pool) if r > n: return indices = list(range(r)) yield tuple(pool[i] for i in indices) while True: for i in list(range(r))[::-1]: if indices[i] != i + n - r: break else: return indices[i] += 1 for j in range(i+1, r): indices[j] = indices[j-1] + 1 yield tuple(pool[i] for i in indices) def deck(): r = list(range(3)) d = [(a,b,c,d) for a in r for b in r for c in r for d in r] shuffle(d) return d def deal(d, n): if len(d) < n: return  return [d.pop() for i in range(n)] def is_set(trio): att = lambda x: set(y[x] for y in trio) atts = (att(x) for x in range(4)) return all(len(x) != 2 for x in atts) def sets(h): return [trio for trio in combinations(h, 3) if is_set(trio)] def pare(h, cards): for c in cards: h.remove(c) def replace(h, d): n = 12 - len(h) if n == 0: n = 3 h.extend(deal(d, n)) def round(d, h): found_sets = sets(h) while found_sets: first_set = found_sets yield first_set pare(h, first_set) found_sets = sets(h) replace(h, d) def play(): d = deck() h = deal(d, 12) found_sets =  num_rounds = 0 while len(d) > 2: num_rounds += 1 print("round %d" % num_rounds) for x in round(d, h): print(x) found_sets.append(x) print("%d sets found in %d rounds" % (len(found_sets), num_rounds)) play()