- The Comprehensive Guide to Speaking at Technology Conferences in 2020 (https://www.cfpland.com/guides/speaking/)
- What I've learned after sending 147 proposals to 36 conferences in a year (https://drobinin.com/posts/what-ive-learned-after-sending-147-proposals-to-36-conferences-in-a-year/)
- Introduction to slides, a Clean Presentation Tool (https://zge.us.to/slides.html)
- A command-line based markdown presentation tool (https://github.com/visit1985/mdp)
- Giving a presentation with perfect UI/UX design (https://habr.com/en/post/471624/)
- Why Your Excellent Conference Talk Was Rejected (https://www.promptworks.com/blog/why-your-excellent-talk-was-rejected)
- Very Important Strangers (http://randsinrepose.com/archives/very-important-strangers/)
- Tips for Public Speaking (http://speaking.io)
- Presentation Skills Considered Harmful (http://seriouspony.com/blog/2013/10/4/presentation-skills-considered-harmful)
- Passionate Programmer: How to Give a Keynote (https://web.archive.org/web/20150211231805/http:/
;; based on http://talks.golang.org/2012/concurrency.slide#50 | |
(ns robpike | |
(:require [cljs.core.async :as async :refer [<! >! chan close!]]) | |
(:require-macros [cljs.core.async.macros :as m :refer [go alt!]])) | |
(defn timeout [ms] | |
(let [c (chan)] | |
(js/setTimeout (fn [] (close! c)) ms) | |
c)) |
//datomic clone | |
var log = db.sublevel('log') | |
var audit = db.sublevel('audit') | |
//var sha1sum = require('sha1sum') | |
//initialize current sha | |
db.pre(function (op, add) { | |
var ts = timestamp() //or get timestamp from a transactor service | |
//save this value at this timestamp. | |
add({ |
// The well-known callback pattern | |
fs.mkdir("some-path", function(err) { | |
fs.open("some-path/file", "w", function(err, fd) { | |
var buffer = new Buffer("hello world") | |
fs.write(fd, buffer, 0, buffer.length, null, function(err, bytes) { | |
console.log("Wrote " + bytes + " bytes") | |
}) | |
}) | |
}) |
// This is just an example of nested callbacks. I know you could achieve this | |
// goal with simpler code but I'm just showing an example | |
// The well-known callback pattern | |
fs.mkdir("some-path", function(err) { | |
fs.open("some-path/file", "w", function(err, fd) { | |
var buffer = new Buffer("hello world"); | |
fs.write(fd, buffer, 0, buffer.length, null, function(err, bytes) { | |
console.log("Wrote " + bytes + " bytes"); |
This is a short guide that will teach you the workflows that have been figured out by the voxel.js community for writing node modules + sharing them on NPM and Github. It is assumed that you have a basic understanding of JavaScript, github and the command line (if not you can check out an introduction to git and the command line or learn JS basics from JavaScript for Cats)
The voxel-tower repository on github contains all the example code from this guide.
21:57 < dook> You seem to be new to node, is that right?
21:57 < skidz> good to know... yes.. very
21:57 < skidz> but familar with JS but mostly a C# programmer
21:58 < dook> Ok so the basic premise is that to make Chrome run javascript fast, they made a JS->C++ compiler called V8
21:58 < dook> It makes JS compile into very fast, efficient code.
var mapLink = "http://maps.google.com/maps?z=12&t=m&q=loc:" + lat + "+" + lon | |
if ($.os.ios && navigator.userAgent.match(/iPhone OS 6_/)) mapLink = "Maps://?q=" + lat + "," + lon | |
if ($.os.android) mapLink = "geo:" + lat + "," + lon + "?z=12&q=" + lat + "," + lon | |
// assumes you have zepto and zepto.detect loaded | |
// also you should use target=_blank on your <a> tags |
function WindowController () { | |
this.id = Math.random(); | |
this.isMaster = false; | |
this.others = {}; | |
window.addEventListener( 'storage', this, false ); | |
window.addEventListener( 'unload', this, false ); | |
this.broadcast( 'hello' ); |
// Note: there are bugs in hygienic renaming, so this doesn't work all the time yet. | |
macro varr { | |
case [$var (,) ...] = $expr => { | |
var i = 0; | |
var arr = $expr; | |
$(var $var = arr[i++];) ... | |
} |