Skip to content

Instantly share code, notes, and snippets.

View rksm's full-sized avatar
🏗️

Robert Krahn rksm

🏗️
View GitHub Profile
@rksm
rksm / Dockerfile
Created April 14, 2015 21:50
docker setup for clojure / cloxp
FROM dockerfile/nodejs
MAINTAINER Robert Krahn <robert.krahn@gmail.com>
USER root
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update
RUN apt-get install -y \
python-software-properties \
curl wget git \
less manpages manpages-dev \
@rksm
rksm / gist:69b05f5f25e5078343e3
Last active August 29, 2015 14:21
Twitter message restrictions are annoying...
and static typing shouldn't go together with an interactive workflow and live programming.
On the contrary, static analysis can help interactive tooling a lot. Refactorings,
code browsing, dependency analysis that are implemented in main stream dev envs certainly
show that. And then there is "Hole-driven development" [1], code synthesis,
constraint and satisfiability solvers like [2] that can make programming more
declarative and require a powerful underlying meta system. From this
perspective Unison is an exciting project indeed.
For some reason, however, it seems to me that the Haskell community (apart from
Elm) doesn't really seem to be too interested in that topic. There is Don
@rksm
rksm / init.el
Last active August 29, 2015 14:22
windows emacs config
;; quite useful:
;; http://www.aaronbedra.com/emacs.d/
;; basic settings
(setq inhibit-splash-screen t
initial-scratch-message nil
initial-major-mode 'org-mode)
(scroll-bar-mode -1)
@rksm
rksm / stuff.sh
Created July 24, 2015 02:00
install cloxp newest version
wget https://github.com/cloxp/cloxp-install/releases/download/pre-0.0.8/cloxp-pre-0.0.8.zip
unzip cloxp-pre-0.0.8.zip
./install.sh
cd LivelyKernel
sed -i '' 's|+refs/tags/cloxp-pre-0.0.8:refs/tags/cloxp-pre-0.0.8|+refs/heads/*:refs/remotes/origin/*|' .git/config
git fetch origin clojure-support
git checkout clojure-support
npm update
cd ..;
./start.sh
var exec = require("child_process").exec;
var path = require("path");
var fs = require('fs');
var util = require("util");
var enabled = false;
var sslDir = path.join(process.env.HOME, "lively-web.org/http/ssl/");
var outDir = path.join(sslDir, "lively-web-CA");
var registerCertScript = path.join(sslDir, "register-cert.sh");
@rksm
rksm / install-all.sh
Last active June 13, 2016 08:07
lively.modules dev install
#!/bin/bash
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# 1. Install packages
if [[ ! -d lively-loader ]]; then
git clone -b master https://github.com/LivelyKernel/node-lively-loader lively-loader
pushd lively-loader;
npm install;
popd
@rksm
rksm / bundling-test.js
Last active May 1, 2016 02:08
Exporting bundles in register format from loaded modules in SystemJS, see register format spec https://github.com/ModuleLoader/es6-module-loader/wiki/System.register-Explained
/*global System, beforeEach, afterEach, describe, it*/
import { expect } from "mocha-es6";
import { removeDir, removeFile, createFiles, writeFile, modifyFile, readFile, inspect as i } from "./helpers.js";
import { registerPackage } from "../src/packages.js";
import { getSystem, removeSystem, printSystemConfig } from "../src/system.js";
import { bundle } from "../src/bundling.js";
var testDir = System.normalizeSync("lively.modules/tests/");
@rksm
rksm / bootstrap-test.js
Created May 1, 2016 03:13
lively.vm es6 + cjs
/*global require, before, after, beforeEach, afterEach, describe, it*/
import { expect } from "mocha-es6";
import { fork } from "child_process"
if (System.get("@system-env").node) {
describe("bootstrap", function() {
this.timeout(5000);
@rksm
rksm / index.html
Last active May 18, 2017 01:24
first-mate-web
<!DOCTYPE html>
<html>
<head>
<title>first-mate-web</title>
</head>
<body>
<h2>expected</h2>
<pre>
[ { value: 'var', scopes: [ 'source.js', 'storage.type.var.js' ] },
@rksm
rksm / foo.js
Created June 12, 2017 01:48
extractHTMLFromTextMorph (via dom range)
export function extractHTMLFromTextMorph(textMorph, range) {
// let html = extractHTMLFromTextMorph(this, this.selection);
evt.domEvt.clipboardData.setData("text/html", textLayerNode.outerHTML);
let node = textMorph.env.renderer.getNodeForMorph(textMorph),
textLength = this.document.stringSize,
firstLineNode = node.querySelector(".newtext-text-layer.actual"),
// _ = console.log(`START, looking for ${textMorph.positionToIndex(range.start)}`),
start = findNodeWithOffsetAt(textMorph.positionToIndex(range.start), firstLineNode, undefined, textLength, false),