a t e v a n s . c o m

(╯°□°)╯︵ <ǝlqɐʇ/>
On April 1, 2011, I was invited by UC Berkeley’s Computer Science Undergraduate Association to come give a speech. This was pretty interesting because that’s where I went to school, and I was once a member of the CSUA. I approached it this way: if I were going back to speak to my undergraduate self, what would I say to help him be most effective at making video games, programming-wise?

This talk perfectly sums up why I have always felt "dirty" coding video games and platform-specific applications. The contrapositive to it is the reason I like web-scale programming.

Still undecided if the right solution is to get over it and code a game, or to work on something more abstracted and "clean" like a game engine.

We all have multi-core machine these days, but most rspec suites still run in one sequential stream. Let's parallelize it!

Cool idea using in-memory databases for parallelized test suites. SQLite lacks too many methods, though. Might work better with more mongo / redis driven sites.

This is a topic that has really gotten out of hand. There are all sorts weighing in these days — along with far too much jowl waggling by middle managers and idealist super hackers.

So let’s cut the shit and get down to business, shall we? Here’s how to fucking hire a great developer:

This this this. A million times, this.

Variable arguments basics

Passing a variable number of arguments to a method is a convenient way to handle a list of variables that are in scope at compile time.

The Objective-C language handles variable arguments in the same way that Standard C does. Normally, you will encounter variable argument lists in one of two forms: "Format strings" or "Nil terminated lists".

Backgrounded provides a thin wrapper around any background processing framework that implements the Backgrounded handler API which makes it trivial to swap out processing frameworks with no impact to your code.

This is as great an idea as ActiveModel. Everyone whose framework includes some kind of background processing, please include this now. I'm looking at you, Sunspot.

Curb - Libcurl bindings for Ruby

Curb (probably CUrl-RuBy or something) provides Ruby-language bindings for the libcurl(3), a fully-featured client-side URL transfer library. cURL and libcurl live at http://curl.haxx.se/ .

Curb is a work-in-progress, and currently only supports libcurl's 'easy' and 'multi' modes.

Looks speedy.

Mac OS X: When in Expose mode, mouse-over a window and press the space bar. You'll get a large preview of the window, and you can mouse-over other windows to get previews of them. Great way to check on something in another window or make sure you're selecting the right one. Press space again to go back to normal.

Ruby/ProgressBar: A Text Progress Bar Library for Ruby

Ruby/ProgressBar is a text progress bar library for Ruby. It can indicate progress with percentage, a progress bar, and estimated remaining time.

Epic

Install and configure Jetty with Solr

As with all my server examples, I'll assume that we all have Debian/Ubuntu.

$ sudo apt-get install solr-jetty openjdk-6-jdk

Well, that was easy. This installs everything you need, and prepares it to run on the lightweight Jetty web server.

Now update some of the default settings in /etc/default/jetty:

NO_START=0
JETTY_HOST=0.0.0.0

This allows the thing to start up, and binds it to all network ports, rather than the default localhost. Use an appropriate public or private IP here for production purposes.

Now just fire it up:

$ sudo service jetty start

Visit the default Solr admin screen for the bundled example configuration at http://your.server:8080

No one else used the package manager to install Jetty. And no one, absolutely no one, mentioned changing the listening host to 0.0.0.0 -- I guess that's something sysadmins are intuitively aware of?

Big ups, Idea Wagon

cat /etc/issue

I can bash script, but there's a LOT I don't know about basic Linux fundamentals. Someday I hope to have more knowledge about this kind of thing.

Mastodon