This gist shows how to create a GIF screencast using only free OS X tools: QuickTime, ffmpeg, and gifsicle.
To capture the video (filesize: 19MB), using the free "QuickTime Player" application:
// gopher.js - a minimal gopher implementation using node.js | |
// Released under the 3 clause BSD license by Matt Croydon <[email protected]> (http://postneo.com) | |
var net = require('net'); | |
net.createServer(function (socket) { | |
socket.setEncoding("ascii"); | |
socket.on("data", function (data) { | |
if (data === '\r\n') { | |
console.log('Serving index.'); |
Each of these commands will run an ad hoc http static server in your current (or specified) directory, available at http://localhost:8000. Use this power wisely.
$ python -m SimpleHTTPServer 8000
Things that make everything better: | |
• 🟪 Purple | |
• 🍫 Chocolate | |
• 🧱 LEGO | |
• ✨ Glitter | |
• () LISP | |
• 👗 Velvet | |
• ❌ Cancelled meetings | |
• 🌶 Spicy food |
Short version: I strongly do not recommend using any of these providers. You are, of course, free to use whatever you like. My TL;DR advice: Roll your own and use Algo or Streisand. For messaging & voice, use Signal. For increased anonymity, use Tor for desktop (though recognize that doing so may actually put you at greater risk), and Onion Browser for mobile.
This mini-rant came on the heels of an interesting twitter discussion: https://twitter.com/kennwhite/status/591074055018582016
function pulse(node, time) { | |
if (!node) throw new Error("node was falsy"); | |
if (node.constructor && node.constructor == NodeList) { | |
var nodes = Array.prototype.slice.call(node); | |
nodes.forEach(function (node) { pulse(node, time); }); | |
return; | |
} | |
if (!node.style) return; |
Updated: Just use qutebrowser (and disable javascript). The web is done for.
We pulled off the road, a highway dating to 14 years before my birth, to switch drivers. A swap of the two front occupants put me | |
behind the wheel, and I rested my foot on the clutch for a moment as I fastened myself in and finally pulled away. It would now be | |
my responsibility to convey us, 2 women, a man and a dog, toward the city. | |
I noticed that he quickly nodded off beside me; Meanwhile, she and I chatted. We'd just met a few days prior. I knew little of her | |
background, just as the converse was true. But we'd been sharing experiences since the beginning of the conference that had ended | |
the previous day, and now finally had the opportunity to speak of things with less urgency. | |
I couldn't tell you how we got where we did. Something she asked led me where I went. Having gone there, and with the benefit of | |
the preoccupation of three freeway lanes staring me in the face, I told her a 42 year story I knew well. It was a story I'd had |
'use strict'; | |
// Licensed under a CC0 1.0 Universal (CC0 1.0) Public Domain Dedication | |
// http://creativecommons.org/publicdomain/zero/1.0/ | |
(function() { | |
// Update 'version' if you need to refresh the cache | |
var staticCacheName = 'static'; | |
var version = 'v1::'; |