Well, seems the tooting died down quickly 😐
Triaging an issue: 3 minutes
Fixing a simple bug: 2 minutes
Replying to an email: 3 minutes
Picking a font for slides: 2 hours
Digging deeper and deeper into a design for weeks. Not sure if I'm doing something amazing or hopelessly wasting time.
Correction: I'm actually going to Curry On https://mobile.twitter.com/heathercmiller/status/856606840271937537
With news of Unroll.me selling user inbox info to Uber, lots of people are repeating "if you're not paying for it, you're the product."
I've said before, and will continue to say, that that is the wrong formulation. Sometimes you pay for it and you're still the product – look at US ISPs. Sometimes you don't pay for it and you're not the product – free software.
The real question is whether a software or service empowers users, which can't be boiled down to whether you paid.
Had my talks rejected by all confs that I submitted to this season. Less talk-writing stress for me, I guess.
"We suggest that physical and situational inequality are built into people’s everyday environments—such as the modern airplane—and that exposure to these forms of inequality can trigger antisocial behavior. Analyses reveal that air rage is more common in economy class on airplanes, where inequality is physically present, and in both economy and first class when inequality is situationally salient."
Regular expressions: convenient string processing with exponential complexity lurking in every shadow
Three-phase code reviews are a helpful concept http://sarah.thesharps.us/2014/09/01/the-gentle-art-of-patch-review/
Three weeks of work and all I have is a 170-line prototype. This is fine.
Best variable name today: backtrackstack
After 20 years with emacs I still often accidentally fat-finger some key combo that triggers functionality I had no idea existed.
(This fact does not necessarily reflect well on Emacs' UX)
A series of great writeups about text editor implementation and rope data structures: https://github.com/google/xi-editor/tree/master/doc/rope_science
My grammar matcher's virtual machine pushes two return addresses on the stack for every call—one for success, one for failure.
Are there other systems with that kind of calling convention?
I know there's been a lot of work done on optimizing VM opcode dispatch in C. Is there any similar work for implementing a JS-based machine?
For some reason the majority of literature on Packrat parsing only uses Java and XML in benchmarks, which hardly require any backtracking
That's a bit like benchmarking a programming language by seeing how quickly it can add numbers