Skip to content

Instantly share code, notes, and snippets.

Cefn Hoile cefn

Block or report user

Report or block cefn

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
import pytest
def checkHelper(value):
assert list(value) == list('foo')
@pytest.mark.parametrize("value", (
def testInline(value):
def mapInitArgs(cls, fromType, toType, translateFun):
oldinit = cls.__init__
def newinit(self, *args, **kwargs):
fields = cls.__dataclass_fields__
fieldIter = iter(fields)
for pos,arg in enumerate(args):
fieldName = next(fieldIter)
if fields[fieldName].type is toType and type(arg) is fromType:
args[pos] = translateFun(arg)
View interactive-debugging-flowchart.graphml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<graphml xmlns="" xmlns:java="" xmlns:sys="" xmlns:x="" xmlns:xsi="" xmlns:y="" xmlns:yed="" xsi:schemaLocation="">
<!--Created by yEd 3.18.1-->
<key"Description" attr.type="string" for="graph" id="d0"/>
<key for="port" id="d1" yfiles.type="portgraphics"/>
<key for="port" id="d2" yfiles.type="portgeometry"/>
<key for="port" id="d3" yfiles.type="portuserdata"/>
<key"url" attr.type="string" for="node" id="d4"/>
<key"description" attr.type="string" for="node" id="d5"/>
<key for="node" id="d6" yfiles.type="nodegraphics"/>
virtualenv myenv
pip3 install vgkits-vanguard
vanguard see firmware
vanguard brainwash circuitpython
vanguard shell
Launching Miniterm to connect to Vanguard Python Shell
Running ' --raw --eol CR --encoding ascii /dev/ttyUSB0 115200'
--- Miniterm on /dev/ttyUSB0 115200,8,N,1 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
View npm.log
0 info it worked if it ends with ok
1 verbose cli [ '/home/cefn/testnodeenv/bin/node',
1 verbose cli '/home/cefn/testnodeenv/bin/npm',
1 verbose cli 'install',
1 verbose cli 'startbootstrap-blog-post' ]
2 info using npm@5.6.0
3 info using node@v9.10.1
4 verbose config Skipping project config: /home/cefn/.npmrc. (matches userconfig)
5 verbose npm-session d7e556ded09c672c
6 silly install loadCurrentTree
cefn /
Created Jan 6, 2018
Checking how Micropython async generators work.
import sys
if == "cpython":
import asyncio
elif == "micropython":
import uasyncio as asyncio
async def count(bound=8,delay=0.1):
for num in range(bound):
await asyncio.sleep(delay)
cefn /
Created Jan 3, 2018
Properly cancelling scheduled asyncio tasks
import asyncio
import traceback
async def liver(lifeDelay):
while True:
print(" la la")
await asyncio.sleep(lifeDelay)
print("living() finished. Aaargh!")
cefn /
Last active Aug 9, 2016
Reference code for driving the microbit neopixel library through a rainbow effect
from microbit import *
import neopixel
# Setup the Neopixel strip on pin0 with a length of 8 pixels
np = neopixel.NeoPixel(pin0, 8)
def wheel(wheelByte):
wheelByte = 255 - wheelByte
if wheelByte < 85:
return (255 - wheelByte * 3, 0, wheelByte * 3)
View diagnostics.cpp
#include "MicroBit.h"
/* Raygun pin mapping - listed in Kitronik breakout order
* 0 : MO Motor low-side-switch NPN pin
* 5 : TS Trigger Switch (configured as ButtonA)
* 1 : L1 Light 1 high-side-switch NPN Base
* 8 : L2 Light 2 high-side-switch NPN Base
* 11 : RS Red button switch (configured as ButtonB)
* 12 : BL Blue LED
* 2 : PZ Piezo speaker
View testing_serial.c
The MIT License (MIT)
Copyright (c) 2016 British Broadcasting Corporation.
This software is provided by Lancaster University by arrangement with the BBC.
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
You can’t perform that action at this time.