I've been thinking a lot lately on work and capitalism. Merriam-Webster defines capitalism as:
an economic system characterized by private or corporate ownership of capital goods, by investments that are determined by private decision, and by prices, production, and the distribution of goods that are determined mainly by competition in a free market.
In values I lean pretty heavily left, and I have issues with the free market having so much power, the massive inequalities between those with the most wealth and those without, and major issues with our current system of work in general. I'm especially worried about automation of low-skilled jobs, and finding an alternative way to give everyone meaning in their lives and the means to live comfortably. But what are our other options?
Yes, you read correctly. It's a pretty unusual position to take, I'll admit. Let me tell you the story of how this came to be, and why, in spite of my long love affair, I don't recommend a hardware keyboard any longer.
I quite enjoyed writing a review for 2015, so I thought I'd continue the ritual for another year. Here's a bunch of things about 2016.
As programming matures and shifts to higher-level abstractions, it becomes more and more about assembling
pre-made building blocks and less about writing new, novel solutions of your own. When I create web apps
(the bread and butter of my day job) I'm using an open-source OS, programming language, database, database
connector library, web server, web framework, authentication libraries, API libraries, payment service libraries...
You get the idea. Increasingly the code I write is "glue" code, simply binding together my building
blocks in the correct order, like a more complicated IFTTT, or textual Lego.
It's not surprising that this collection of building blocks is expanding to encompass ever-more-complicated
areas of programming. Today, it's possible to build a simple programming language in the same way you'd
build a web app.
I find it interesting to read others' reviews of the year and their progress and discoveries, so I thought I'd share my own. It's nice to be able to summarise everything that went on.
Earlier this year, I decided I would try to create my own toy language. I'd been reading about language design, compilers, interpreters, and seriously geeking out over it. Sometimes I can really get excited by an idea that just won't leave me alone, and I'll devour everything I can find that's related. When my interest hadn't dissipated for a few months I decided the best way to get it out would be to bite the bullet and actually do something — write my own language. I wanted to create a grammar for a language and an interpreter that could take in some source code in that language and execute it. In the end, I called it Braid — feel free to check out the source on GitHub.
I went into this project with a keen interest, some vague ideas from my research, but no academic background in language design and pretty much NO IDEA WHAT I WAS DOING!
In this first part I'll talk about the tools I've picked and the lexing and parsing steps. In the second follow-up post I'll talk about bytecode, interpreters, and RPython pitfalls.
This was originally posted on the Hello Code blog.
Some of the best solutions are born of laziness. To be a programmer, after all, is to find the laziest solution to a problem. So it's quite handy that my solution for our Hello Code email addresses turned out to have a valuable side effect.
In February, I decided I would get rid of my side project of the last two years, blaster.fm. I listed it on Flippa and hoped that someone would buy it, but if not, I would just shut it down.
I wrote a blog post about the experience that had led to this point and submitted it to Hacker News, hoping that it would give the listing more exposure.
I started blaster.fm in late 2010 with only a vague idea of what I wanted to do with it. Over the next two years I would work on it for at least a few hours every week; tweaking, refining, all-out rewriting, trying to get it as close as I could to the image in my head of what it could be. It was a one-man project and I was the only developer, though I had the support of friends and early users (with a large amount of the former making up the latter) to keep me going.
I finally updated the site to reflect current standards. It was starting to get a little long in the tooth.
The results are not aesthetically amazing, but it's now HTML5 and fully responsive, so I'm happy. For now.
Older posts >