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.
I have been trying to find a basic proof-of-concept for twitter user streams. I couldn't find a complete example, so I rolled my own.
I wanted to avoid the external pyCurl dependency (which means curl needs to be installed separarely on Windows) so I switched the pyCurl callback method you might have come across with some rather naive urllib2 buffering.
It works, though, and that's the important part.
If you use Firefox 5, 6, 7, 8, or greater in Windows, without ClearType, you've probably noticed how abysmal the font rendering is.
However, there's an easy fix. In about:config, find the preference gfx.direct2d.disabled and toggle this to true. Restart and your fonts will now look as they used to, which is to say, not nearly as horrible.
I don't consider myself a designer at all, but I do enjoy pushing pixels. So recently I've done a tiny bit of work designing icons for various projects other than my own.
On the left is the icon for MahTunes, from The League of Paul. I think only the source is available at this stage.
On the right is the icon for Convertor, a webOS app by Coding Bees.
While not incredibly awesome, they're a start and hopefully something I can look back on in twelve months and laugh at scornfully because I'll be so much better.
Older posts >