Skip to content

Instantly share code, notes, and snippets.

View cabal architecture.md

ARCHITECTURE

cabal clients
  cabal-core

cabal-core
  discovery-swarm
    dat-swarm-defaults
  kappa-view-level
  kappa-core
View gist:418c7ea38391ec58a3329c3d75d7b42c
function isValidMessage(msg) {
if (!msg.value.type) msg.value.type = "text/chat"
return msg.value && typeof msg.value === "object"
}
@cblgh
cblgh / neat-example.js
Created Jul 4, 2018
testing neat-log's re-rendering on resize
View neat-example.js
var neatLog = require('..')
var output = require("diffy/trim")
var log = neatLog(headerView, {fullscreen: true})
log.render() // force an immediate render
function headerView (state) {
return output(`
Hello World!
rows ${process.stdout.rows}
@cblgh
cblgh / dat-quickstart.md
Last active May 1, 2018
make the p2p web with dat's primitives
View dat-quickstart.md

low level primitives (in ascending abstraction)

  • hypercore works with individual posts in an append-only feed
  • hyperdrive abstracted filestore / works with files
  • hyperdiscovery create p2p swarms for hypercores, hyperdrives, and hyperdbs
  • hyperdb key-value database

higher level abstractions

  • webdb database; basically a document(?) store
  • dat-node built ontop of hypercore & hyperdrive, abstracts a bunch of stuff; less complex but also less flexible
@cblgh
cblgh / alarm.js
Last active Aug 10, 2017
tiny alarm for when you're cooking on your comp
View alarm.js
if (process.argv.length < 3) {
console.error("usage: alarm.js <time (defaults to seconds)> [optionally: minutes|hours|days|years]")
console.error("example:")
console.error("\tnode alarm.js 2 // trigger alarm in 2 seconds")
console.error("\tnode alarm.js 2 minutes // trigger alarm in 2 minutes")
process.exit()
}
var time = parseInt(process.argv[2])
var unit = "seconds"
var factor = 1000
@cblgh
cblgh / hyperconnect.js
Last active Jul 10, 2017
connect & read between two hyperdb instances across a network
View hyperconnect.js
// COMPUTER 1
var ram = require("random-access-memory") // store remote db in ram. it's nice for testing bc doesnt create a bunch of files
var hyperdiscovery = require("hyperdiscovery")
var hyperdb = require("hyperdb")
var hypercore = require("hypercore")
// local.key is d5d0b189af6b981ab7942c3d71103e9a1cbfa32e203220e830b7a16deac6cc43
var local = hypercore("./local-db", {valueEncoding: "json", sparse: true})
// pass in feeds in same sequence on both machines
var db = hyperdb([
View raspador.py
import urllib2
import sys
import json
import codecs
from bs4 import BeautifulSoup
sys.setrecursionlimit(2500)
html = urllib2.urlopen("http://wordsgalore.com/wordsgalore/languages/spanish/spanish1000.html").read()
base_url = "http://wordsgalore.com/wordsgalore/languages/spanish/"
soup = BeautifulSoup(html, "html.parser")
@cblgh
cblgh / letter-to-the-void.py
Created Sep 13, 2016
a letter to the void
View letter-to-the-void.py
import random
def geo_print():
void_string = ""
for i in xrange(32):
for i in xrange(15):
rand = random.random()
ch = "A"
if rand > 0.6:
ch = " "
void_string += ch