Skip to content

Instantly share code, notes, and snippets.

@bazwilliams
bazwilliams / Makefile
Created April 22, 2016 20:53
Example Makefile for building .Net projects on mono for Docker containers to be pushed to Dockerhub
DOCKER_NAME := bazwilliams/serial-number-service
DOCKER_PROJECT := Service.App
SOLUTION := SerialNumberExample.sln
DOCKER_BRANCH_TAG := $(shell echo ${TRAVIS_BRANCH} | sed s/\#/_/g)
define tag_docker
@if [ "$(TRAVIS_BRANCH)" != "master" ]; then \
docker tag $(1):$(TRAVIS_BUILD_NUMBER) $(1):$(DOCKER_BRANCH_TAG); \
fi
@bazwilliams
bazwilliams / .travis.yml
Created April 22, 2016 20:54
Example Travis-CI configuration yml for building .Net projects, testing and building Docker images for pushing to Dockerhub
language: csharp
cache:
directories:
- packages
sudo: required
services:
- docker
before_install:
- make nuget
before_script:
@bazwilliams
bazwilliams / Dockerfile
Created April 23, 2016 00:15
Example Dockerfile for a .Net project which uses Nancy that has been compiled with a Release configuration
FROM mono:latest
EXPOSE 8888
ADD ./bin/Release/App.exe /app/
ADD ./bin/Release/*.dll /app/
ADD ./App.config.template /app/
ADD ./bin/Release/Content /app/Content/
ADD ./bin/Release/Views /app/Views/
ADD ./bin/Release/fonts /app/fonts/
@bazwilliams
bazwilliams / Dockerfile
Created April 23, 2016 00:36
Replicate solution build environment using Docker
FROM mono:latest
ADD . /usr/src/app/
WORKDIR /usr/src/app
ADD https://dist.nuget.org/win-x86-commandline/latest/nuget.exe /usr/src/app/packages
RUN apt-get update && apt-get install -y vim make
CMD /bin/bash
@bazwilliams
bazwilliams / App.config.template
Created April 23, 2016 17:59
Example App.config template for a self hosted Nancy application with Owin destined for Docker
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
<appSettings>
<add key="BaseUrl" value="http://+:8888"/>
<add key="SerialNumberSeed" value="${SERIAL_NUMBER_SEED}"/>
</appSettings>
</configuration>

Keybase proof

I hereby claim:

  • I am bazwilliams on github.
  • I am bazwilliams (https://keybase.io/bazwilliams) on keybase.
  • I have a public key whose fingerprint is DD90 D11B 3CAF D5B0 C6E9 BB9A 84FF 608A 3263 7D5D

To claim this, I am signing this object:

@bazwilliams
bazwilliams / brushTeeth.js
Created May 15, 2017 13:32
BBC Micro:bit Toothbrush timer project. Create a new project at https://pxt.microbit.org/, choose the javascript tab and paste this code in.
input.onButtonPressed(Button.A, () => {
music.beginMelody(music.builtInMelody(Melodies.PowerUp), MelodyOptions.Once)
basic.showNumber(3)
basic.pause(20)
basic.showNumber(2)
basic.pause(20)
basic.showNumber(1)
basic.pause(20)
basic.showString("Go!")
music.beginMelody(music.builtInMelody(Melodies.JumpUp), MelodyOptions.Once)
@bazwilliams
bazwilliams / trafficLights.js
Created September 26, 2017 19:43
BBC Micro:bit Traffic LIghts
while (true) {
pins.digitalWritePin(DigitalPin.P8, 1)
pins.digitalWritePin(DigitalPin.P12, 0)
pins.digitalWritePin(DigitalPin.P16, 0)
basic.pause(5000)
pins.digitalWritePin(DigitalPin.P8, 1)
pins.digitalWritePin(DigitalPin.P12, 1)
pins.digitalWritePin(DigitalPin.P16, 0)
basic.pause(1000)
pins.digitalWritePin(DigitalPin.P8, 0)
@bazwilliams
bazwilliams / puffinCrossing.js
Last active October 1, 2017 15:31
BBC Micro:bit Pedestrial User Friendly Intelligent Crossing
input.onPinPressed(TouchPin.P0, () => {
pins.digitalWritePin(DigitalPin.P8, 0)
pins.digitalWritePin(DigitalPin.P12, 1)
pins.digitalWritePin(DigitalPin.P16, 0)
basic.pause(1000)
pins.digitalWritePin(DigitalPin.P8, 1)
pins.digitalWritePin(DigitalPin.P12, 0)
pins.digitalWritePin(DigitalPin.P16, 0)
pins.digitalWritePin(DigitalPin.P13, 0)
pins.digitalWritePin(DigitalPin.P14, 1)
@bazwilliams
bazwilliams / coder_dojo_glasgow_nov17.py
Last active November 16, 2017 10:53
Our mobbed solution to the Codor Dojo set at Python Glasgow (https://www.meetup.com/Python-Glasgow/events/244377303/)
def addUp(contribution):
return sum(contribution) / len(contribution)
def calculate_new_contribution(contribution, delta, involvement):
return contribution - delta if involvement else 0
def calculate_overpayment(contribution, involvement):
d = addUp([c for c,i in zip(contribution, involvement) if i])
return [calculate_new_contribution(c,d,i) for c,i in zip(contribution, involvement)]