Skip to content

Instantly share code, notes, and snippets.


Jon Nordby jonnor

View GitHub Profile

Documentation is futile, make machines do it

Workshop proposal for

Fablabs, maker- and hackerspaces across the world all stuggle with a common problem: documentation. Projects made are consistently underdocumented, often missing one or more critical piece of information needed to understand, use and reproduce the project.

Current approaches to this problem are usually centered around setting up content management systems which make it 'easy' for users to upload & publish documentation, along with policies/guidelines for what to document and how. None seem to tackle the seemingly fundamental problem: that manually creating and uploading required documentation artifacts is a tedious, error-prone and not immediately rewarding process.

We propose to make the machines and software used to create the project do most of the work for us. That they should automatically gather and publish most parts of the required documentation, and to actively e

jonnor / microflo-fbcs-format-example-annotated.cpp
Last active Aug 29, 2015
MicroFlo command stream format (FBCS), annotated
View microflo-fbcs-format-example-annotated.cpp
// build/avr/firmware.cpp
#include <avr/pgmspace.h>
const unsigned char graph[] PROGMEM = {
0xa,0x0,0x0,0x0,0x0,0x0,0x0,0x0, // stop network, clear old graph
0xf,0x1,0x0,0x0,0x0,0x0,0x0,0x0, // configure debug level etc
0xb,0x7,0x0,0x0,0x0,0x0,0x0,0x0, // create node of component 0x7. This becomes node 0x1, next one 0x2 etc
jonnor / cocoaflow-engine-sketch.m
Last active Aug 29, 2015
Dataflow/FBP engine sketch in Objective-C
View cocoaflow-engine-sketch.m
#include <Foundation/Foundation.h>
#include <stdio.h>
#include <objc/objc.h>
TODO: Implement addNode,connect,addInitial for building network incrementally
TODO: Implement a component factory, to instantiate component from string name
TODO: Implement parsing of FBP .json format, build network from this
TODO: Implement queing of messages and asyncronous delicivery
View gist:f90df864e70faae31f7a
<!DOCTYPE html>
<meta charset="utf-8">
<script src="./noflo-noflo-runtime-iframe/runtime/network.js"></script>
var iframeRuntime = window.NofloIframeRuntime; //require('noflo-runtime-iframe');
View lgm2014-visualprog-bof
Visually programming libre graphics tools
Our current libre graphics tools are, like most software in the world,
predominantly "written" as imperative textual code; in languages like
C, C++, Python. At the same time, many users/artists perfer to
communicate visually. Tools like node/graph-based editors allow them
to "program" complex things: parametric 3d-models, animations, visual
effects and audio synths.
jonnor / noflo-list-components.js
Created Nov 6, 2014
NoFlo list components and metadata
View noflo-list-components.js
var noflo = require('noflo');
var rootdir = './';
var loader = new noflo.ComponentLoader(rootdir);
loader.listComponents(function() {
Object.keys(loader.components).forEach(function(name) {
loader.load(name, function(component) {
jonnor /
Created Oct 18, 2017
Innføring i dokumentasjon for verksteddrift referat

Referat fra møte "Innføring i dokumentasjon for verksteddrift"

Bitraf, Oktober 17 2017


Makerspacer/delte verksteder gir brukere tilgang på utstyr og maskiner som potensielt er farlige for brukeren (og andre personer i lokalet).

View gist:7c1b43e716dbe1a55672c44303d5bda5
# Notater
Oktober 31, 2017
Førstehjelpskurs for medlemmer. Spesielt ting som kan oppstå på verksted/labben
Nikolai kjenner ambulansesjåfør som kanskje kan holde kurs.
Norsk Luftambulanse o.l. kan holde slike kurs
import keras
def mlp(n_features, n_classes, first, hidden, activation):
from keras.layers import Dense
shape = (n_features, 1)
model = keras.Sequential()
model.add(Dense(first, input_shape=shape))
jonnor / AutomationCurveFloat.scp
Created Jan 4, 2022
Preset example for Ossia Score automation curves
View AutomationCurveFloat.scp
"Key": {
"Uuid": "d2a67bd8-5d3f-404e-b6e9-e350cf2a833f",
"Effect": ""
"Name": "Generated Curve Copy",
"Preset": {
"ObjectName": "CurveModel",
"id": 45345,
"Segments": [