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 <mcroydon@gmail.com> (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::'; |