Skip to content

Instantly share code, notes, and snippets.

Verifying that +samuli is my blockchain ID. https://onename.com/samuli
@haadcode
haadcode / Software Development Process and Managing It - PL Team Week Lisbon 2016.md
Last active July 17, 2016 17:08
Software Development Process and Managing It - PL Team Week Lisbon 2016.md

Software Development Process and Managing It

Introduction

  • We're growing in terms of team and the product
  • We're moving from "prototyping" to "production" --> our needs change
  • Need to shift our mindset to "delivering"
  • Need a way to manage all the 1001 endeavours we have

Introduction to Methodologies

ImmutableDB

An interface for immutable databases

ImmutableDB is an abstract interface for content-addressed databases that:

  1. save the same blob of data to the same key every time (write)
  2. return the same blob of data with the same query key every time (read)

The difference to a a traditional key-value store is that the key doesn't get specified explicitly. Instead, the key gets calculated based on the data using a hashing function. This is also called content-addressed storage.

'use strict';
// const ipfsd = require('ipfsd-ctl');
const IPFS = require('ipfs')
const ipfsd = require('ipfsd-ctl');
const OrbitDB = require('../src/OrbitDB');
const Timer = require('./Timer');
// usage: benchmark.js <network hash> <username> <channel>;

clients

  • orbit-electron
  • orbit-textui (--> orbit-terminal?)

core

  • orbit-core (orbit_)
    • orbit-crypto
    • orbit-db
      • orbit-db-store
  • ipfs-log
fs.init(1 * 1024 * 1024, (err) => {
if(err) {
logger.error("Couldn't initialize file system:", err)
} else {
logger.debug("FileSystem initialized")
}
})
@haadcode
haadcode / pubsub.js
Last active November 24, 2016 06:28
'use strict'
const PubsubMessageStream = require('ipfs-pubsub-message-stream')
class Pubsub {
constructor (send: Function) {
this._subscriptions = {}
this._send = send
}
/* Components for Orbit */
'use strict'
const styles = {
layout: {
flex: {
display: 'flex',
},
row: {
<!DOCTYPE html>
<html>
<head>
<title>Hello, WebVR! - A-Frame</title>
<meta name="description" content="Hello, WebVR! - A-Frame">
<script type="text/javascript" src="lib/aframe.min.js" charset="utf-8"></script>
<script type="text/javascript" src="lib/orbitdb.min.js" charset="utf-8"></script>
<script type="text/javascript" src="lib/ipfs-browser-daemon.min.js" charset="utf-8"></script>
</head>
<body>
'use strict'
const path = require('path')
const AccessController = require('./access-controller')
class OrbitDBAccessController extends AccessController {
constructor (orbitdb) {
super()
this._orbitdb = orbitdb
this._db = null