Sunday, March 9, 2014
For the longest time, I’ve wondered if Humble Bundles and Steam sales were hurting or helping the video games industry.
There’s not a lot of data about this on the Internet but some indie gamemakers were kind enough to share some numbers on their blogs.
Jason Rohrer, explained in a post why he was refusing to participate in Steam Sales. He also gave a couple figures and graphs about his sales.
The creators of Dustforce, Hitbox Team, did a year in review post. Dustforce was featured in the Humble Indie Bundle 6. It seems to have made a pretty okay year.
PocketWatch Games – whose game Monaco was in last month’s Humble Bundle – wrote a postmortem.
In this post, I’ll try to show why I think Steam sales and bundles are mostly a good thing for video games developers.
A warning: this is mostly going to be some wild speculation, with a few facts peppered here and there. Also, it gets pretty hand-wavy toward the end.
Friday, February 28, 2014
My uncle is a teacher. When I was a kid, he would often slip into “teacher mode” even not in a school setting. Not only would he lecture us (which I’m glad he did), but he would also try to discipline us as if we were a classroom. Having to write a memoir during your holidays is not fun.
This is to say we often forget how much stuff we unconsciously pick up from work.
This week Github released a new text editor. I haven’t tried it yet, but I’ve seen a lot of negative reactions toward it (“It’s webkit, it’s going to be slow”, “Why would you even use coffeescript”, etc.)
I saw much the same reactions to LightTable a few months ago.
Wednesday, February 26, 2014
I spent the past afternoon wrestling with fabric, Apache, Virtualenv and PostgreSQL.
I was going to write a long post about how Unix is old, creaky and mostly designed to be used with a text editor, when I heard about Augeas.
Augeas is a tool to modify UNIX config files from the commandline. It’s used by a lot of projects, notably Puppet.
This is how you add an entry in /etc/hosts with augeas:
set /files/etc/hosts/01/ipaddr 192.168.0.1
I’m not a fan of representing everything as a tree, but it beats
echo "192.168.0.1 ipaddr" >> /etc/hosts;.
I guess I’ll have to hold on this rant for another day.
Saturday, February 22, 2014
I’m learning rails at the moment. Coming from python, the ruby community seems markedly different. One thing doesn’t change, though: package managers suck. I was so confused by rbenv, rvm, bundler and gems that I thought it’d be safer to install it in a virtual machine.
Since it didn’t want to waste my time poking in the dark, I wrote a small tool to do this: vagrant-rails. It’s a set of shell scripts to setup a vagrant box with a recent ruby and the latest stable rails version.
Tuesday, February 18, 2014
I’m just noting this in case I forget. You should
left-align text most of the time.
Monday, February 17, 2014
An ex-fog creek intern remembers how he wrote the fog creek billing system.
Key takeaway is: don’t work on stuff that isn’t your core competency.
In all, thousands of developer hours were spent developing and maintaining something that had nothing to do with the software our customers were paying us for.
Time that we could have spent on writing new features and fixing bugs for customers was instead spent digging into stringy old billing code.
What’s worse, the system always was and, unless some great rewrite happens, will always be a mess.
(Little known fact: The odds of such a rewrite happening on such a critical system are 2276709 to 1 against.) The fact is, writing billing software is not Fog Creek’s core competency.
Also, since this was 2005, it’s possible that no good solution existed for handling SaaS billing.
Thursday, February 6, 2014
Just a quick thought. RSS is very obviously in a bad shape. Mailing lists on the other hand are as good as ever.
Wednesday, January 22, 2014
Rands in repose has an interesting article about becoming too attached to one’s tools.
No. I’m not saying that your love of an ancient editor is going to suddenly make you irrelevant… what I’m talking about is a state of mind. A crufty tool is a sign that the nimble thinking that made you a great engineer in the first place is fading. Yes, you need familiar tools to your job and XYZ editor is a fine tool, but there are different tools out there and some of them actually might be better than yours
He’s right, but on the other hand, it’s hard to let go of something you’ve spent so much time on. It’s not rare for people to have hundreds of lines of lisp in their .emacs or in their .bashrc.
The answer to this is probably using your apps with as little config as possible. Using apps with sensible defaults is important too. Sadly, spending hours finetuning your favorite app is the norm in the linux world.
Saturday, January 18, 2014
I recently discovered the practice of price anchoring, which is based on a cognitive bias we all have called… anchoring.
Put simply, when presented with choices, our brains have a natural tendency to take a decision based on the first choice we’ve seen.
Tuesday, January 7, 2014
I just realized that my last status report was exactly one month ago. Well, so much for having semi-regular status reports…
Anyway! Last month was an exciting one. I’m really close to releasing Kite v0.2!
The most important features are:
- easy deployment. Deploying a fully-featured mail server is litterally one command away
- Emails are now grouped by thread.
- Partial multiple user support. There’s no auth done yet, so everyone can read your email, but most of the backend works.
I’m really excited because if everything goes right, I’ll be able to start dogfooding kite and to get people to, you know, start using it.
Saturday, January 4, 2014
“It was a hard, hard job, ER. We were working sixteen-hour days, five days a week. We were learning Latin, you know, to do the show. But you knew that you were never going to get a second chance to introduce yourself to a wide audience.
And I was thirty-three. I wasn’t the young one there; I was the oldest one there. So I knew this was my opportunity.
I think all the actors were given a bit of an opportunity that summer on a film. I think every one of them was given an opportunity. And I think most of them were so exhausted from the work that they wanted their summer off.
“In fairness, they were also doing a lot. I had the smallest part in the show. And when [Robert Rodriguez’s] Dusk till Dawn came around . . . well, it was a great part for me, because it was a complete departure. And that movie changed everything for me, temperaturewise. It made it so I was going to be allowed to do some films, you know?”
Friday, January 3, 2014
More than ten years ago, Joel Spolsky wrote a great post about how software implementation details influence online communities.
One tidbit caught my eye: here’s how Joel’s forum signals to the user if there are replies to a topic. It’s really smart!
Q. Why don’t you have some kind of system so I can see what posts I’ve already read?
A. We have the best system that can be implemented in a distributed, scalable fashion: we let everyone’s browser keep track of it. Web browsers will change the color of the links you’ve already visited from blue to purple. So all we have to do is subtly change the URL for each topic to include the number of replies available; that way when there are additional replies the post will appear in the “unread” color again.
The rest of the article is also very interesting.
Saturday, December 7, 2013
I get a lot of emails asking about my progress on kite, so from now on I’ll regularly share a quick status report.
Saturday, October 19, 2013
I recently tried redshift, a program to adjust the screen temperature (the proportion of red and blues) according to the hour of the day.
However, I was bitten by a small bug on the old version of Ubuntu I was using : Redshift would fail to start and complain that it couldn’t find my location.
Tuesday, March 12, 2013
I’m working on a couple django apps which use separate virtualenvs and I very often have to source the virtualenv activation script.
It got so tedious that I had to write a small script to automate the finding of the activation script.
Wednesday, February 20, 2013
Last week I had to add support for i18n to a django application. Everything went swiftly, except for one thing : I needed to output a translated JSON structure in my HTML and doing this simple with json.dumps triggered a TypeError exception, with the message : “<django.utils.functional.__proxy__ object at 0x987a86c> is not JSON serializable”.
Wednesday, August 22, 2012
I’ve recently started to use the excellent Zurb
Foundation CSS framework, and I like it a lot. There’s
one problem though: like most grid frameworks, it expects you to use non-semantic class names in your HTML to specify the placement of the elements.
Wednesday, June 6, 2012
I recently had to implement a django filter. My problem was that I had an event page similar to the github feed. I wanted to format a date diferently whether the event occured in the current week or at another date. Instead of doing it in code or in the template (bad), I decided to write a filter for that.
Thursday, May 3, 2012
I recently encountered a problem with django userena : the django server was unable to serve user mugshots even though they were correctly uploaded.