Seth Godin on The Tim Ferriss Show

Tim Ferriss has done a bunch of great interviews or, more to the point, interviewed a bunch of great people well. On the latest episode, he interviewed well-known marketer Seth Godin. I enjoyed the whole show, even the bit about how to make chocolate at the end. This part about education at about 1 hour 35 minutes into the show resonated strongly with me:

Sooner or later, parents have to take responsibility for putting their kids into a system that is indebting them and teaching them to be cogs in an economy that doesn’t want cogs any more.

I’m a huge fan of public school, I sent my kids to public school. I think everyone should go to public school. It’s the great mixmaster of our world, but from 3 o’clock to 10 o’clock those kids are getting homeschooled and their either getting homeschooled watching the Flintstones or they’re getting homeschooled in learning something useful, and I think we need to teach kids two things:

1. How to lead

2. How to solve interesting problems

Because the fact is there are plenty of countries on Earth where there are people who are willing to be obedient and work harder for less money than us. So, we cannot out-obedient the competition. Therefore, we have to out-lead or out-solve the other people. […] The way you teach your kid to solve interesting problems is to give them interesting problems to solve. And then, you don’t criticize them when they fail. Kids aren’t stupid. If they get in trouble every time they try to solve an interesting problem, they’ll just go back to getting an A by memorizing what’s in the textbook.

Remix OS for PC: Android on the Mac

I don’t have any Android devices at present, but I am sometimes curious about various things going on with Android. For example, it would be nice to be able to try out the Khan Academy app for Android. Remix OS is a way to run Android (with a desktop-like UI) on various Intel-based computers. People have had some success getting it to work on Macs and here are instructions for creating the disk on the Mac.

Update: dizzyviolet on Hacker News notes that the EULA for Remix OS is crazytown.

The Jai Programming Language

Jon Blow’s videos about the development of his new game are really interesting. To build the game he wants to build, he decided to create the language he wanted to use to build the game (kind of like Mozilla created the language they wanted to use to build a browser). Blow’s language Jai has not been released, but Jorge Rodriguez has created a primer for the language based on Blow’s videos:

Jai is a high-level programming language developed by Jonathan Blow, creator of indie games Braid and any-time-now-to-be-released The Witness. It is an imperative static/strongly typed C-style language, but with a variety of modern language that C lacks. Blow began work on Jai in late September 2014. It is still in development and as of yet is unavailable to the general public. Blow developed it with an eye towards video games, but in fact it’s a general purpose programming language that could be used for any task.

Ditching Scrum for Kanban

I’ve blogged about the switch we made on the Brackets project from Scrum to Kanban and also, more recently, on our use of Kanban at Khan Academy. This article by Grant Ammons mirrors my own experiences:

Peter told me that indeed, many companies follow the same path that we did. They go from no system to Scrum, which teaches them the disciplines they need to properly develop software. Then, as teams fully understand Scrum, its disciplines and rituals, teams have the option to move to Kanban.

The Changelog talks about TypeScript

Our guests this week are Anders Hejlsberg and Jonathan Turner. Anders is the language architect and Jonathan is the Program Manager for TypeScript, a typed superset of JavaScript that compiles to plain JavaScript from Microsoft.

I think Microsoft’s approach with TypeScript has been great. Check out this podcast episode for a detailed view into the project: #152: TypeScript with Anders Hejlsberg and Jonathan Turner from Microsoft – The Changelog

Measuring and patching phase for React components

On the latest episode of JavaScript Jabber, Amit Kaufman and Avi Marcus talk about how your web app performance is killed if you interleave your reading and writing from the DOM. For their now React-based app, they needed to measure certain elements for their layout work. Their solution sounds clever: components specify what information they’re going to need and they batch up all of the DOM reads and do them all at once and then they do all of the adjustments that come as a result of those reads all in one separate pass. This minimizes the amount of churn and recalculation that the browser needs to deal with.

Custom messages for Jasmine expectations

jasmine-custom-message gives you a “custom failure message on any jasmine assertion”:

describe('the story', function() {
  it('should finish ok', function() {
    since('all cats are grey in the dark').
    expect('tiger').toEqual('kitty'); // => 'all cats are grey in the dark'
  });
});

Overall, I like Jasmine as a testing library, but this particular limitation has really bothered me.

Data Visualization with JavaScript

Data Visualization with JavaScript is a nice looking online book by Stephen A. Thomas:

If you’re developing web sites or web applications today, there’s a good chance you have data to communicate, and that data may be begging for a good visualization. But how do you know what kind of visualization is appropriate? And, even more importantly, how do you actually create one? Answers to those very questions are the core of this book. In the chapters that follow, we explore dozens of different visualizations and visualization techniques and tool kits. Each example discusses the appropriateness of the visualization (and suggests possible alternatives) and provides step-by-step instructions for including the visualization in your own web pages.

Faster Yosemite Upgrades for Developers

Faster Mac OS X 10.10 Yosemite Upgrades for Developers

Your Yosemite upgrade may take many hours if you’ve got anything non-Apple in your /usr folder (Homebrew, Texlive, or Mactex for example).

I don't think the solves the problem I had with the Yosemite install, but this article has good suggestions for anyone using Homebrew, etc. Note that this also applied to Mavericks so this might be useful advice again in a year.