The always enthusiastic and knowledgeable mr. @jasaltvik shared with our team an article on writing (good) Git commit messages: How to Write a Git Commit Message. This excellent article explains why good Git commit messages are important, and explains what constitutes a good commit message. I wholeheartedly agree with what @cbeams writes in his article. (Have you read it yet? If not, go read it now. I'll wait.) It's sensible stuff. So I decided to start following the
DISCLAIMER: This could all quite plausibly brick your Chromebook, and I take no responsibility for any damage you might inflict on it or yourself. Follow along at your own risk.
Most Chromebooks can run some flavour of GNU/Linux using the Chrubuntu method, running off the kernel that comes with ChromeOS. I found, however, that the ChromeOS kernel didn’t play well with recent X.org versions, and would refuse to recover from suspend, and not deal very well at all with having an external screen attached to it.
I also wanted to replace ChromeOS entirely with Arch on my Chromebook, because only 16 gigabytes of eMMC isn’t very convenient for dual booting. To accomplish this, I needed an external installation medium.
First of all, you’ll need to get your Chromebook into developer mode if you haven’t already. This is model specific, although for most recent models holding the Escape and Reload keys while booting should do the trick. If not, ask Google.
(defmacro deftween [sym props getter valuer & setter] | |
(let [[start duration value target relative ratio uid] props | |
dot-duration (symbol (str "." duration)) | |
dot-start (symbol (str "." start)) | |
dot-value (symbol (str "." value)) | |
[_ [this] get-more] getter |
Recent improvements to the ClojureScript compiler have greatly simplified setting up development versus production outputs.
This example uses Figwheel as something that you want to exclude for production, but the pattern is general.
With this simple setup you only need one html file/view and it will work for developement and production.
(ns flock | |
(:use hard.core hard.input hard.spatial) | |
(:import [UnityEngine])) | |
(declare pump initial make-boid) | |
(def FLOCKS (atom {})) | |
(def HASH (bucket-hash 10)) | |
(arcadia.core/defcomponent Boid |
# List of all the valid pdf URLs ever posted to the #Clojure IRC channel. | |
# | |
# Many of them are interesting CS papers others are not that useful. What I've done: | |
# | |
# 1. crawled an IRC history archive for the channel | |
# 2. extract pdf list in a file with: grep -riIohE 'https?://[^[:space:]]+pdf' * > pdf-links.txt | |
# 3. remove dupes: cat pdf-links.txt | sort | uniq > pdf-links-uniq.txt | |
# 4. filter only HTTP 200: cat pdf-links-uniq.txt | xargs curl -o /dev/null --connect-timeout 2 --silent --head --write-out '%{http_code} %{url_effective}\n' | grep "^200" > valid-pdf-links.txt | |
# | |
# Now your choice to download them all or not. If you want, use: cat valid-pdf-links.txt | awk '{print $2}' | xargs wget |
- @fergbyrne
- HTM = Hierarchical Temporal Memory
- Slides
- big data is like teenage sex
- noone knows how to do it
- everyone thinks everyone else is doing it
require 'csv' | |
require 'sqlite3' | |
def setupDB(db, csv_file) | |
db.execute("drop table if exists stories") | |
db.execute("create table stories(id, labels, iterationend, created, accepted, size, requester, owner, type)") | |
CSV.foreach(File.path(csv_file), :headers => true) do |col| | |
db.execute("insert into stories(id, labels, iterationend, created, accepted, size, requester, owner, type) " + | |
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)", | |
[col['Id'], |