• The Tao is Silent

    Tim Pope is generously matching donations between now and Christmas on any of his Github projects. All money goes to Vim’s charity, ICCF Holland, that helps children in Uganda. Thanks Tim!

  • Sometimes I fall into the trap of reading about programming and not programming. I can’t always find an interesting project to work on, even though I know there are a sea of opportunities. If you have the same issue, here are some tips that might help.

    1. Hang out with other programmers. This is the best source of inspiration because, naturally, they’ll have ideas that you won’t. It doesn’t matter if it’s just some coder friends, a programming group, or even a conference. The mixing of all those ideas is sure to give you a fresh perspective.
    2. Hang out with non-programmers, too. First of all, it’s healthy to be around people that make you happy or challenge your thinking, whether or not they code. Second, they can give you inspiration from a user’s perspective. What frustrates them about their computer? Can you come up with a solution?
    3. Have a dedicated workspace. If it’s not possible to have a dedicated space, at least make sure it’s quiet and you can focus on the computer without distractions. Make it your cave. Make sure your chair is comfortable and supports your back. Have water handy. Don’t sit without moving all day — stay healthy.
    4. Have a good development environment. The software version of the previous tip. I don’t care which editor you use (though I recommend vim) but make sure you’re using one that gives you some power and flexibility. Always use source control – in particular, I recommend you learn git because of the concepts it will teach you. Always back up your work. All of this will prevent the massive demotivation you will experience if you don’t use them and you lose your work.
    5. Keep your ears open. Read the twitter feeds and blogs of the programmers you respect. (Look at my twitter feed if you want – it’s mostly programmers.) RSS aggregators, such as Ruby Inside, or the old-school Planets, can be great sources of news because they add prominent new programmers without you having to search. Pick a few blogs on topics you wouldn’t normally read, and subscribe to them too.

      Yes, this can get you sucked into the trap of reading code and not writing it, but being plugged into the larger coding ecosystem is good for you and can be the source of many ideas.

    6. Read good code. Think of some software you love and look at the source code. What problems did they have? How can you learn from it, or better yet, how can you improve that software? There are many sources of good code, but GitHub has to be one of the best. The GitHub Rebase series on the GitHub blog lists a number of notable new projects if you want some specifics.
    7. (more…)

  • Android contest

    I’m a fan of Google’s Android effort – here’s a contest to win a T-Mobile G1 to try it out.

  • Please – if you’re making the website for a programming language, show some code. What could possibly be more important?

  • Masyu

    Highly recommended logic puzzle – the Masyu series by Tootsweet for iPhone. I’ve beaten Masyu Bug and Masyu, and I’m on to Monster Masyu…

  • How to fix an Ubuntu crash

    Ok, this isn’t specifically related to Ubuntu, but I’m hoping it can help someone. Maybe you won’t have to spend a week cursing at your computer like I have.

    Here’s a summary of the problem. I wanted to try Ubuntu to see what all the hype was about. I downloaded the latest LiveCD for 8.10 (Intrepid Ibex) and booted it up. Liking what I saw, I started the install process. From that point, until just before the install was completed, my computer would lock up hard. Every time.

    It’s important to note that the same computer never crashes in Gentoo or even *gasp* Windows. Also, the “alternative mode” (text) installer works fine, and booting into Ubuntu recovery mode (single user) works fine as well.

    If I just used the LiveCD without installing, sometimes it would be OK – but it would always lock up eventually. Usually this would happen when there was a high level of activity, but occasionally it would freeze when sitting idle as well.

    At first, I thought it was caused by the hard drive I was installing to, because I’ve had some issues with it in the past. After unplugging every drive, and having the OS crash with the same frequency, that was quickly eliminated. This also eliminated problems with the drive controller.

    Then I thought it had to be an incompatibility between Ubuntu and my motherboard chipset, which is an nVidia nForce 570 SLI. I tried all kinds of advice on disabling apic (noapic and nolapic kernel options) to no avail. I tried noacpi, but that disabled my keyboard and mouse and I don’t have any PS/2 ones lying around. I tried updating my BIOS to the latest version – no dice.

    Then I thought it was an incompatibility with the video card, an nVidia GeForce 7950 GT. After all, it works in the alternative installer and recovery mode, so it has to be something graphical, right? Nope. I tried the “nv” and “vesa” drivers for Xorg with the same results. Any difference in time-to-crash was coincidental.

    I tried to think of issues I’ve had in Windows in the past. Then, of course, it hit me. Whenever I tried to turn on AMD’s Cool’n’Quiet feature, the system became very unstable. I had to go through a lot of pain to remove that driver without crashing the system.

    The equivalent software in Linux is powernowd, also known in Gnome (and, therefore, Ubuntu) as “CPU Frequency manager”, which takes advantage of the different CPU power-stepping features to slow down your processor when you don’t need it. This fits the pattern of crashing on high activity (when the CPU steps up) and occasionally at idle (when the CPU steps down after high activity).

    The fix: Go to System -> Administration -> Services and uncheck the option for powernowd. This will permanently stop the daemon. You can also run “/etc/init.d/powernowd stop” on Ubuntu and several other distributions to stop the daemon temporarily. (Distributions vary as to how to permanently stop a daemon. In Gentoo, for example, you’d run “rc-update del powernowd default”.)

    So, it seems that the chipset on many motherboards (mine is an Asus M2N-SLI Deluxe), or perhaps the processor (mine is an AMD Athlon 64 X2 5200+), is incompatible with power stepping. The same advice applies to Ubuntu 8.04 (Hardy Heron) and probably previous releases as well.

  • A Good AOL Product?

    I didn’t discover it until finding their iPhone app, but AOL Radio is actually really good. It’s the only online radio I’ve found that has real metal stations.

  • Broken Pixels

    Highly recommended: the Broken Pixels podcast. Hilarious reviews of 15+ year old games. The default player name in China Warrior was “fuckchop.”

  • Kindles finally available

    You can actually buy a Kindle from Amazon now… I’d love to try one, but I’m still not sure on the interface.

  • And now, for the continuation of part one of the mother of all Wii game reviews…

    8. Super Monkey Ball: Banana Blitz: 1/5

    This is another easy place to start, because Super Monkey Ball is terrible. For your own sanity and wallet, do not even rent this game.

    Super Monkey Ball has two game modes. The first is classic Monkey Ball, where you roll your crazy little monkey down a Marble Madness-esque course encased in a balloon. The only challenge is in trying to master the frustrating controls. Level design is boring, frustrating, or both.

    They didn’t even make the Wii remote enjoyable to use in such an obvious avenue for motion sensitivity. The controls were fairly responsive, to the point of oversensitivity, but were not customizable. You have to hold the remote pointing toward the television, as opposed to sideways like an NES controller, which would make much more sense to me. It became uncomfortable after only two levels. On top of the discomfort, your wrist is just not designed to make quick movements in the manner they intend, which could even lead to RSI.

    So, let’s ignore the first game mode. The second is even worse. Sad, really. It’s a collection of 50 minigames a la Wii Sports or Wii Play, though shorter, not replayable, and less fun in general. In fact, most of the games don’t even behave as the (briefly shown, opaque) instructions claim. Several don’t work at all. I can only remember two or three of the 50 minigames. My only guess is that the “monkey ball” portion was in development when an executive saw the success of minigame-style Wii titles and insisted on their inclusion. The result is truly painful.

    9. Super Smash Bros. Brawl: 4.5/5

    Great little fighter. I don’t think Brawl is as expansive as most other reviews say, but there is a lot of content. The main fighting mode is great. There are at least 40 characters and 50 levels, and with the level editor you can make interesting new ones. If you’re new to Super Smash Bros., you might be surprised to find that fights aren’t just melee combat. Levels come alive and present various obstacles throughout the fight. They’re also much larger than in most fighting games and present multiple areas and tiers for variety. Many aspects of the rules of combat can be adjusted to your liking. Some are serious, some for fun, like wearing a flower on your head or breathing fiery curry breath.

    On top of standard combat, one of my favorite challenges is the Event mode. There are different events for single player and multiplayer, and there’s a good amount of variety in the goals. One mode involves killing 50 enemies in one loop around the course. Another involves beating all of the original Smash Bros. characters in one round. Another involves beating colored koopa troopas in a certain order. They’re challenging and they offer difficulty levels and trophies to keep you coming back.

    There is a single player mode, called Subspace Emissary, but it feels… odd. It’s reminiscent of an old-school platformer with new graphics. Honestly, this is my only complaint about the game, and it’s why I can’t give a perfect 5/5 score. There just isn’t enough unique about this mode to keep my interest. It has its moments – I particularly like the Donkey Kong levels – but there are just as many annoying moments. You can’t pick your characters for a large portion of the mode, and you often get stuck with Pit. Since Pit is a new addition to Brawl, I can understand the reason for this, but he’s also not as polished as the returning characters and tends to annoy.

    There are a few other mini-modes, like a coin-shooting game and sticker collection, but they’re not really worth discussing. Feel free to ignore them and enjoy the Brawl and Event modes, which really are classic. Recommended for almost anyone, though I’d strongly advise you play with a friend or three.