Sunday Selection 2018-10-14

Around the Web

After 5 years and $3M, here’s everything we learned from building Ghost

I’ve never used the Ghost platform, and though I’m still on WordPress, I’ve become a fan of more programmable publishing platforms lately. But this was still a very interesting read, and it was particularly heartening to see that the people involved had put their money where there mouth is and made the company behind Ghost a non-profit foundation. On the other hand, it was disheartening to read about GitHub’s negative influence on open source, and how hard it continues to be to fund good journalism, especially when we need it the most.

Grit: Bringing Passion Back

Grit has been the subject of much psychology research, TED talks, and I suspect pop-sci books in the last few decades. But much of the work appears to be focused on the self-discipline component of grit, whereas Angela Duckworth’s original definition of grit includes both self-discipline and passion. This articles makes a case for why the passion component is so important and points to recent studies that are looking at it.

In Praise of Mediocrity

I’ve never done well with hobbies. I played violin for a few years, and loved to draw as a kid. I haven’t kept up with either of them, probably in part because I started taking formal classes in both of them, and I quickly felt like I had to do well in the classes, rather than enjoying the activity itself. I’m only starting to unlearn those lessons and trying to come to terms with being only mediocre at some things.


Rams is a new documentary out about Dieter Rams—creator of some of the most easily recognized consumer product designs of the 20th century. The documentary is brought to you by Gary Hustwit, who you might know from previous documentaries such as Helvetica, Urbanized and Objectified.

Rams is currently showing at special events and will be released digitally in December. Hustwit has also partnered with Field Notes to produce a limited edition 3-pack of notebooks that I think captures the Rams aesthetic quite nicely.


Sunday Selection 2010-08-22


The James Franco Project This has nothing to do with computers, technology or programming. James Franco is an actor who is leading a very full life — he’s acting full time (on multiple projects) while working on multiple graduate degrees at different places around the country. Certainly not something that’s recommended for everyone, but it goes to show just how much one man can do if he puts his mind to it.


Dieter Rams – More is Less The design of technological objects has always fascinated me and Jonathan Ives might be the design man of the current times, but this video shows off Dieter Rams’ work and some of his key insights and you can see them reflected in the modern gadgets that we consider to be attractive.


Foursquare I’ve just recently started using Foursquare (yes, I know after Facebook announced places) which is an iPhone, Android and Blackberry app that lets you “check-in” to places you visit and gather points for traveling and visiting. It’s a fun little utility and makes for interesting games with friends (and probably helps generated revenue for local businesses). I’m hesitant to say if it’s actually useful, but it’s definitely worth trying out.

Note: I find that I’m starting to explore less and less and am considering retiring the software section in upcoming weeks. Let me know if you have any suggestions.

I’m making a language

Or as some would say I’m starting a new religion. But no, in all seriousness I am creating a new language as  part of my senior honors thesis. Why am I doing this? Because I need a good topic for my honors thesis and programming languages are what I’m really interested in. I also want to go to grad school next year for programming languages and I think the best way for me to learn about languages is to make one from the bottom up.

This is the first time that I’m making my own language, but I have been studying programming languages for the last 2 to 3 years. And I want to take those lessons learned and apply them. I’m trying to strike a balance between taking the best of what’s out there and putting in original ideas. There are a lot of great ideas out there but they’re spread across lots of different languages. Some languages like Ruby do a great job of pulling together the best of what’s out there. Under normal circumstances I would be perfectly happy with building a language that does nothing new. But this is an academic honors thesis and I would be really really disappointed with myself if I didn’t contribute anything new.

What am I going to do that’s new? I want to solve a problem that is actually being faced by programmers on the front line and though I admire the theory behind languages, I’m more interested in implementation than pure theory. One clear problem in our field is the rise of slower, parallel processors, multicore CPUs in particular. And we have very little idea of how to use all those cores probably. There are certainly solutions that are being proposed — threads, software transactional memory, Actors, so on and so forth. But these tools are generally considered beyond the reach of everyday programmers. What most programmers are acquainted with is object-oriented programming. My idea is to take an object oriented language and make it concurrent from the bottom up. The naive idea (that I have to significantly research and refine) is that each object is its own thread of operation. This is similar to the Actor model and I’ll need to study and think more to see how to differentiate between that and what I want to do.

But as I said there are a lot of good languages out there with great ideas and I’m going to shamelessly take as many of them as I can. Everything will be an object, but it will be prototype-based (a la JavaScript), not class-based. Syntax-wise it will be elegant and homoiconic: that is there will be as few special syntactical constructs as possible and programs will be data structures in the language itself. This is to lay the groundwork for macros, though I probably won’t be getting to that any time soon. However, it will have first class functions from day one and I’m going to try like hell to make everything (or make it possible to make everything) first-class. And this isn’t just for functions, I want to extend it to tests, constructs and even documentation. All of these are good ideas that have been tried and tested before, I’m just combining them in a new (and hopefully better) way.

Technology aside, the language will be completely open source, probably under the GPL v3. As for the name, I’m probably going to call it Parley. I want a name that implies discussion. Plus it opens up a whole world of pirate-related metaphors and names for later use and I love word-play. I don’t plan on really working on it until the end of August, though I will be reading up and throwing ideas around. Code will be on Github as soon as I have something that works.