Jon Thysell

Father. Engineer. Retro games. Ukuleles. Nerd.

Tag: gaming

New Year, New Game Boy

One of my many hobbies is collecting and playing retro video games, especially portable / handheld systems, and especially those from Nintendo. I try to get one of every model where I can, however my rule is to only ever buy systems that I actually intend to play.

A couple years ago I bought an original Game Boy that had been modded with a backlit screen. I didn’t have an original Game Boy in my collection, and the mod itself, while inexpensive, involved a very delicate peeling apart of the original LCD and replacing specific layers – something I did not feel up to doing. So I bought a finished one off eBay.

But at the end of the day, it was just, okay.

What I hadn’t realized was that the backlight changed the color palette from pea-soup green to a gradient of blues over white. It worked, but it took a lot of the charm out of the system. Also, while the modder had replaced the original lens with a nice, scratch-resistant glass one, it didn’t sit flush with the system. The edge stuck up sloppily along one side, and it would catch my finger when I wiped it off.

I decided to accept it for what it was, but it did spend more time on the shelf than my other handhelds. When I did take it down to play, I started noticing weird splotches under the lens. I assumed it was water condensation getting inside, but it turned out to be pressure marks from the unevenly applied lens pressing against the LCD underneath. I didn’t know how to fix it, so it spent more and more time on the shelf.

Then, finally, when I took it out this past winter, it wouldn’t even turn on. The power LED lit up, but not the screen, and there was no sound. It was, for all intents and purposes, dead.

I started to think maybe it was going to just be an unfortunate shelf piece – with so many other smaller and lighter models to choose from, I didn’t really need an original to play. But the modding scene today is further along than it was a couple years ago, and the latest innovation has been a slew of drop-in replacement IPS LCDs.

I’m also a lot more proficient at repairing and restoring vintage electronics than I was a couple years ago. So I decided to take the plunge and try and rescue my poor dead Game Boy. I hit up Hand Held Legend and ordered a fancy new IPS display kit.

Since the system wouldn’t turn on I also picked up a set of replacement capacitors, and as some people complained that the IPS screen introduces some noise into the audio output, I also picked up the proscribed audio amp.

With all the parts in hand, the first step was to open the system up and remove the old backlight mod.

As you can see, the system separates into two parts – the front board with the LCD and buttons, and the back board with CPU and batteries. The new kit comes with an entirely new front board, so I set the old one aside for now and focused on the back board.

At the top was a “bivert chip” that needed to be removed. See, just adding a backlight to the original LCD produces a very washed out image – but modders figured out that if you rotated the polarizer (one of the LCD layers I mentioned before) it produced better contrast, but inverted the image. So they created a bivert chip to invert the image to start with – the result being the correct image with good contrast.

The chip was pretty easy to remove, the hard part was where a few pins from the LCD ribbon cable connector had been bent up off the board to connect to the chip. It was very finicky work to bend the pins back down and resolder them without touching the other pins.

After the chip was out I removed a set of patch wires connecting to the headphone jack. I vaguely remember the original listing for the system saying it had some kind of audio mod, but I couldn’t for the life of me figure out what they’d actually done, other than re-route some wires.

In fact, I was annoyed at the quality of the work – the soldering was weak and held on with globs of hot glue, and they’d straight up snipped some of the original wires.

Thankfully I asked around online, and a modder was kind enough to explain that it was called the “Pro Sound mod” where the audio to the headphone jack was re-routed to avoid the noise from adding the backlight. They also explained that the “IPS causes noise” issue was overblown, and that I probably should try out the existing mod before wasting time installing the new audio amp.

So I took their advice and reapplied the Pro Sound mod to my own soldering standards.

Now that that was done, I set about putting together the new IPS kit. As per their instructions, I connected everything together without permanently mounting it, and fired it up to make sure it hadn’t been damaged during shipping.

It didn’t work.

It gave me the same problem as before – power LED lit up, but no screen, no sound. Just to be sure, I re-attached the old front board, with the same results.

So, assuming the new screen and front board I’d just bought were good, then something was wrong in the other half. Assuming it was a leaked capacitor, and thankful I’d bought replacements, I took out the back board to check.

But it looked absolutely fine. I gave it a good cleaning with some isopropyl alcohol, but still no dice. So it was time for the multimeter. I started poking around the board and found no obvious shorts, and looking at some schematics online, found plenty of points where there should have been power, but registered nothing.

That’s when I learned that the little board in the bottom left wasn’t part of the audio circuitry, but the main power board. Taking a closer look, I could see where some previous battery acid leakage had escaped the battery compartment, and gotten all over the power board.

I cleaned it off and started testing, and while it looked pretty bad, the only real damage was to the trace from the input voltage (the batteries or AC adapter) to the rest of the circuit. So I patched a wire across the two pins and crossed my fingers.

Success! The original front board lit up just fine (though inverted, since the bivert chip was gone). Now that power board may not last forever, and I may need to replace it entirely in the future, but after a couple hours of cleaning and troubleshooting I was more than ready to finish this project.

The penultimate steps were to install the new front board in the front shell. This required making some minor alterations to the inside of the shell, including trimming some posts that would be in the way of the new screen, which is actually larger than what appears through the viewport.

This was also when I saw why the previous lens didn’t sit properly – the plastic lip that it attaches to was covered in uneven globs of glue. The replacement lens I’d bought already came with its own pre-applied double-sided tape, so I just took the time to sand away all of the old glue and even out the surface.

After all that prep, it was finally time to install the new board and permanently affix everything into place. The new screen is mostly held in proper alignment by a bracket, but it’s also taped to the shell forming a seal to keep out dust.

Ah, dust. With everything screwed together, the last thing to do was to install the new glass lens, which meant getting the LCD as clean as possible. After everything else, this was the most nerve-racking part of the install. I knew once the new lens was on, any bit of dust, any smudge on the LCD, would be out of reach.

I spent a long time painstakingly wiping away specks with a microfiber cloth, using cans of compressed air, and reevaluating the screen at different angles. When I was finally ready, I quickly peeled the seal off the new glass lens and applied it straight away.

Victory! I’d done it! I’d saved my poor dead Game Boy. The buzzing concerns were unwarranted – only on the highest volumes to the speakers buzz slightly, and the headphones don’t buzz at all. Everything worked perfectly, and there’s no way this is going back on my shelf any time soon.

Anyway, I hope you enjoyed this little project,

/jon

State of Mzinga, November 2018

Mzinga is my open-source AI for the board game, Hive, and I last posted about it back in February 2018.

So what’s changed in the last nine months?

From an end user standpoint, the high-level highlights are:

  • The official expansion pieces (Mosquito, Ladybug, Pillbug) are now fully supported
  • Lots of Viewer updates, including:
    • Graphical bug pieces, rather than just the text names
    • Sound effects
    • Progress bars while the AI is thinking
    • Improved layout to maximize the playing area
    • Ability to “lift” pieces that are stacked to see underneath them
    • “BoardSpace” notation (the defacto way to record Hive games)
  • The Viewer now includes an “Internal” implementation of the Mzinga Engine, in case no engine executable is available
  • Engines can now expose their options to be set by the Viewer
  • There is now a “portable” release, ie. a simple zip file for users who can’t/won’t install
  • The “updater” now only checks for updates but doesn’t offer to download and install them (security issue)

From an engine / AI standpoint, the highlights are:

  • Switched to a Principal Variation Search, ie., assume that the best move from a previous, shallow search, is the best place to when starting a deeper search
  • Pre-sort moves to try moves with the most potential to upset the game first (ie moves that affect how surrounded the queens are)
  • Switched to tapered evaluation, ie. how you should play near the start of the game can be different than how you should play near the end of the game, so evaluate the board with different metric weights as the game progresses
  • Different metrics for different game types: one general set of metric weights for all game types (all the combinations of with/without expansions pieces) just isn’t effective, so the AI now has different specialized metric weights for each game type
  • Better usage of multi-threaded searches
  • Various perf improvements

I think the biggest upgrades for users are the inclusion of the expansion pieces, the much friendlier Viewer, and the fact that it’s now portable. Technically all you need to play Hive is the single Mzinga.Viewer.exe from the portable release. You can throw it on a flash drive and play Hive on any Windows (Vista or higher) computer.

On the research front, the biggest discovery for me was of the TreeStrap self-training algorithm. I won’t go into details here, (I talk about it a little in this BoardGameGeek post), but suffice it to say that it provided a more targeted way to improve Mzinga’s AI. Rather than rely solely on my evolution-based model (which, due to the limitations of my population sizes and my “rough” implementation of genetics, produced an often homogeneous pool of AIs) TreeStrap let me force an individual AI to self-train by playing games against itself and intelligently updating its own metric weights.

It was through using TreeStrap that I created a decent AI for playing games with both the Mosquito and Ladybug expansion pieces. However, it was only in testing that AI against my existing pool of evolved AIs that I learned that it only excelled in that game type. In fact that AI did horribly in other game types, which lead me to believe that it might not be possible to create one set of weights that works in all game types. This propelled me to finally expand Mzinga to support specialized weights for each game type.

But now I have a pretty robust “pipeline” for improving Mzinga’s AI. First, I have eight special AIs, each self-training against for one particular game type. Then I push those AIs into my pool of other AIs and have them all fight each other (no more evolution, just the fighting) to evaluate their strength. Then I take the top AIs for each game type (usually, but not always, the self-trained AIs) and inject their weights into Mzinga’s Engine.

In theory, if I keep repeating that loop then Mzinga’s AI should get stronger and stronger. Also I can keep “snapshot” the AI every time I release a new version and keep it in the AI pool, so I can track that the newer AIs are objectively stronger than the older ones.

As this self-improvement loop is already starting to pan out, I’ve begun spreading the load across multiple computers. I can now have one set of computers that continuously run the self-training algorithm on the special AIs and push the results to OneDrive, while another computer regularly grabs those AIs and tests them in combat.

/jon

 

Introducing the RomSort utility

 

About a year ago I wrote a little command-line tool for sorting ROM files into alphabetical sub-directories. The main feature was it could intelligently combine the smaller sub-directories, which is useful when you’re browsing on low-resolution screens. However after I got the code working I never got around to sharing it.

So I took some time to re-package the code into a small .NET 2.0 WinForms app. It is pretty straightforward to use, and even gives you a live preview of what the end result will be before you use it. Note that filename collisions will be marked in red and it won’t let you perform the sort if there are any.

Source and binaries (under releases) @ RomSort on GitHub.

Enjoy!

/jon

The State of Mzinga, February 2018

Mzinga is my open-source AI for the board game, Hive, and I can’t believe that the last time I posted it was all the way back in Summer 2016.

So much has happened since then!

At the time, my focus was on the Mzinga Trainer, a tool for improving my board evaluation function, ie. if I look at a given board, how accurately can I answer: who is winning and by how much?

The Mzinga Trainer does this through a genetic evolution algorithm, whereby a population of AIs (each with their own evaluation function) endlessly battle one another, and the winners earn the right to “breed” new AIs (passing on a mix of both parents’ functions) while the losers get culled from the population.

So in July 2016, I was just getting AIs to battle one another. Fast forward to July 2017, and I had:

  • A feature-rich Trainer with dozens of options, including support for running multiple battles concurrently on different processors
  • A refactored AI, making it much easier to validate that I was implementing the algorithms properly
  • Some key performance tests to evaluate changes to the core code

I had also spent several hundreds of hours of computing time in running experiments with the Trainer. Hundreds of AIs lived and died as I tweaked parameters and followed the most successful AIs (and their children). But by July 2017 I stepped away from Mzinga and started spending my spare time on other projects.

Then around December of last year, having not touched Mzinga for months, I suddenly had the inspiration for how to fix a particular performance bug I’d had, and by the start of the new year, I was back on the Mzinga bandwagon.

Since I’d spent so much time on the Trainer, from a regular user’s perspective, Mzinga hadn’t changed much since 2016. The Viewer (where you can actually play games) had seen some minor bug fixes, and while the Engine (with the core of the game and the AI), was technically faster and stronger, I doubt it was noticeable to most players. I regularly lose to people playing for the first time, and I could still beat the Mzinga AI.

I spent most of January focused on code performance – nothing AI-specific, nothing that needed any study or research, just analyzing the code and removing every little bottleneck I could find.

Then, after nearly eight years on my venerable, dual-core laptop, I finally bit the bullet and bought a new PC. A custom, fancy, rocking, eight-core beast with horsepower to spare. And wouldn’t you know, suddenly I had an interest in hitting the old chess AI sites and researching how the best chess AIs take advantage of multiple processors.

Now Mzinga’s AI is starting to get fancy:

  • It spreads its search across multiple processors, via “Lazy SMP”
  • It searches during your turn instead of waiting, aka “Pondering”
  • When it finds the “best move”, it peeks just a little further ahead to make sure, via “Quiescence Search”
  • It keeps you updated each time it finds a better move

On top of all that, everything is all nice and asynchronous, meaning I can cancel a search when I want to. I don’t have to say, “search 2 moves deep” or “search for 5 seconds” and then sit and wait for it to stop. If I want to stop it early, I can. If I want to just let it search, I can, and stop it when I’m good and ready.

Now sometimes the AI beats me.

I’ve also started addressing the Mzinga Viewer:

  • It’s faster and more responsive
  • It’s finally got some options, so you can tweak your experience:
    • Do you like your pieces with the flat or the pointy side up?
    • Do you want pieces that can’t move to be “grayed-out”?
    • Do you want to see certain things highlighted, like your opponents last move or what the valid moves are?

Some of these features are new, but some already existed in the Viewer and were always on because I liked them. Now you can turn them off if you don’t.

These are just a taste of how much Mzinga has changed, and there’s still more to come! Check it out today if you haven’t and send your feedback my way!

Stay tuned,

/jon

What I use in 2012, Part 2: Software

I like to see how people work; especially for those whose work is mostly on the computer. In part 1 of this series, I listed all of the tech hardware I use at home; now I’ll list all of the software I use on a regular basis.

Note: I don’t endorse anything here beyond the implicit “this is what I actually use at home.”

The Basics

OS: Ubuntu w/ Gnome Shell

I played with Linux as far back as high-school, but despite multiple partitions and many early distributions, I always came back to Windows. In college I realized that if I was serious about learning Linux, I needed to use it exclusively. I liked Debian, but it was always just a bit out of date, and I hated that it installed a lot of redundant stuff (ten text editors, five desktop environments, etc).

Then I found Ubuntu.

I started with Ubuntu 5.10 “Breezy Badger” and Gnome with it; and despite some early dalliances with Ubuntu’s many derivations, I’ve been an Ubuntu user ever since. I was skeptical of the trends post-Gnome 2; Unity was slow, customization-poor and untested, while Gnome 3 was taking a risky move away from the Windows-clone icons, desktop and taskbar. I loved the abandoned pre-Unity “netbook launcher”, so I understood that a new UI paradigm might not be a bad thing- so I buckled down and tested both Unity and Gnome 3 extensively to see what fit.

I fell in love with Gnome 3 and the Gnome Shell. It lets me manage all of my personal work effortlessly, all from one laptop screen. Multiple virtual desktops, with previews exposed by the Super key, along with search and a preview of my open apps. I prefer it over every desktop UI that I’ve ever used. (Sounds like something worthy of discussing in its own post).

Browser: Firefox

I have jumped around from browser to browser over the years. In the early days I evangelized about Opera– but then everyone copied their feature set, and opened themselves in ways that Opera just couldn’t keep up with. I lived in the extension-heavy hell of Firefox for years, then leaned down with a focus on bookmarklets, then jumped to Chrome as the hot new thing.

I switched back to Firefox at the beginning of the year, wondering how far they’d come since I jumped to Chrome. I was very impressed. I have very few extensions; five in fact, and I sync all of my computers with the same settings. It’s not a memory hog anymore, and as far as I can tell, it’s no slower than Chrome. Chrome is extensible too- but Firefox has just the right set of tweaks that I want.

Productivity: LibreOffice

I started with OpenOffice.org even before I switched to Linux full-time; who didn’t want a free office suite with MS-compatibility and PDF export? I’m a big supporter of open formats, and OOo gave us the Open Document standard. One of my most popular software projects is my weight-tracking Open Document Spreadsheet, Weight Tracker ODS. When the majority of the development group moved to LibreOffice, I went with them. I use it for all of my regular Office needs.

Productivity: Microsoft Office Web Apps

I prefer open-source but I’m not evangelical; all I care is that I have the tools I need to get my work done. I use Microsoft Office often enough when I’m on Windows machines, but with the exception of OneNote (don’t get me started on how much I love OneNote for note organizing) there’s nothing about Office that really enables me beyond what LibreOffice offers.

However I have come to be blown away by the Microsoft Office Web Apps. I keep a few documents saved to SkyDrive (namely a couple OneNote notebooks), and it amazes me how much I can do with them in a browser. Plus I can access those docs on my phone. (Sounds like I need to write a post about how awesome OneNote can be).

Email: Gmail

I’ve used Gmail since college, primarily though the web interface, though occasionally I’ve used IMAP clients. I love its features, I love its hacks, and I couldn’t live without its spam filter. It maybe misses one or two emails a year- and I put my email address up everywhere, without obfuscation.

Chat: Google Talk

I don’t IM as much as I used to, but these days when I do, it’s on Google Talk. I think Jabber is a pretty sweet protocol- and having a Google account nabs this for free. I’ve also found that it has the absolute best AV stack I’ve ever used; it sacrifices clarity for faster frame-rates, which in real-life, low-bandwidth conversations, is a much better trade-off. I don’t need to see every pore to read someone’s facial expression: a smooth frame-rate without skipping or audio hiccups means I can follow all of the non-verbal communication and everything feels much more natural, even if it’s out of focus.

File Sync: Dropbox

I use Dropbox for syncing a select few files that I want on every machine, like my encrypted password database, or when I’m lazy for a quick transfer. I don’t trust them for anything else, as they don’t encrypt user’s files well enough. (They save space by not duplicating files that multiple people have, which they know because they keep a copy of the keys so they can decrypt your files.)

Password Management: KeePass

I’ve been using a password manager for a decade, and I use KeePass because it works well and has clients on a ton of platforms.

RSS: Google Reader

I read a lot of things via RSS, and I’ve used Google Reader for years. The web client is great on the PC, and pretty much every mobile ecosystem has a compatible client, so I don’t have to keep track of multiple subscription lists.

Finances: GnuCash

I have OCD when it comes to balancing my checkbook, and for years now have been using the free GnuCash to do so.

Social: HootSuite

I’m on Twitter and Facebook, and believe me, I’ve tried every possible app on every platform I have access to. Right now I live inside HootSuite. It lets me see only the columns I want, and most useful, it lets me space out my posts with AutoSchedule so I don’t flood my followers every time I hop on Google Reader and start sharing links.

Entertainment

Ebooks

Management: Calibre

Calibre is an amazing piece of software. It works with practically every e-reading device, lets you format back and forth between formats, pull down metadata, create new ebooks; the list goes on and on. I keep it running almost all the time, because then I can browse my library remotely with my phone, and pick and choose what books to download when I want to read them.

Really, once you have Calibre, you don’t need any other ebook software on your PC.

Store: Smashwords

I prefer to buy my books on Smashwords whenever possible. You can’t beat DRM-free with access to every format. It’s why I chose to sell my own ebooks through them too.

Store: Kobo Books

When I need to buy more “mainstream” books, I typically find them on Kobo for the same price as everyone else, but with the “benefit” that their DRM (though DRM is always a middle finger to paying customers) is the standard “every device can read it and it’s really easy to make go away” Adobe DRM. Nothing fancy.

Video

Playback: VLC

VLC has handled every media file I’ve thrown at it for a decade. No extra codecs to install, no hoops to jump through- it just works. If you’re new to computers, and the web, you have no idea what it means to have a video player that can, you know, actually play video files. It was the wild west a decade ago.

Encoding: Handbrake

I rip digital backups of my legally-owned DVDs for easy searching and playback on all of my devices, including my Xbox 360. Handbrake enables me to do that perfectly.

Streaming: uShare

I keep all of my video files on my Ubuntu-based home server, and with uShare, I can play those videos on my Xbox 360. It’s wonderful.

Music

Playback: Rhythmbox

Though my music lives on my home server, I do keep a full copy local to my laptop so that I can disconnect and still listen to my music. I’ve used Rhythmbox for years and love it for organizing and playing my music.

Encoding: abcde & lame

Yes, I’m one of those few guys that still buys CDs. And when I do, the very first thing I do is rip them to my hard drive and throw the disc into a box in the closet for safe-keeping. I use abcde because it’s set to the lame settings I like, and it’s one command from CD to MP3s.

Tags: EasyTAG

Everyone has their own rules about MP3 tags, even if the rule is “don’t care as long as they play and I know what they are”. I’m very meticulous about my collection (read: OCD), and EasyTAG rocks for getting those unruly music files under control.

Streaming: Subsonic

Subsonic runs on my home server, and the free version provides a web interface that lets me to browse and stream my music, create playlists, from any computer with a browser. Even from multiple computers at the same time, and with auto-transcoding for different file types and for different machines (if say you want to minimize bandwidth at work).

There are even a bunch of native clients on different platforms to let me access my Subsonic server, and even video support via flash (ala YouTube) if you pay for it. Sometimes, a paid program just really is worth it, and I’ve never regretted the purchase. I’ve tried all the open-source alternatives, but none come close.

Store: Amazon MP3

When I do buy digital music, I buy MP3, and I buy from Amazon. No special client, just give me my files. Like I said above, I usually buy CDs, but every now and then I see an album I’m on the fence about, and the MP3s are usually cheaper. It’s been a slow acclimation for me to buy digital files without the backup of a physical item, but Amazon does a good job.

Software Development

IDE: MonoDevelop

Working in the software industry means I have to use a certain set of technology for my job, and a certain list of programming languages. I also program way more at work than I do at home, so those languages tend to take precedence for me to know. And for a while now, the language to know has been C#.

Don’t get me wrong, I’m not complaining- in fact I love C# and the .Net stack. It just doesn’t seem very Linux.

The real problem is, despite all of its power tools, especially for developers, I have never been happy with any of the IDEs for developing in any language in Linux. It seems either you use some variant of Eclipse (which I hate), or a text editor plus a bunch of command-line tools.

Then they made MonoDevelop… and it is just glorious.

I live in Visual Studio at work, and in MonoDevelop I feel right at home. It makes compatible binaries, uses compatible project files, has Intellisense and nUnit and a real debugger- it’s basically everything I need in one place with nothing I don’t. It makes cross-platform development fun and not a game of “find the tool”.

Text Editor: Gedit

When I’m in the GUI and I need a quick edit, I use Gedit. It’s got just enough spunk for what I need.

Text Editor: Vim

When I’m working in the command-line, I use Vim to edit text files. Emacs users… to each his own.

Source Control: Bazaar

I plan on writing more in the future about Bazaar, but essentially it’s a cross-platform VCS that works in any workflow configuration, or several all at once. I use it for my little projects on my machine, then when I want it on my own server repository, and then again when I want to show off to the world on Launchpad. And every time all I have to do is copy the repository over, then pull down a new branch, a checkout branch, whatever makes the most sense for the project.

Writing

Note: I plan on writing about the open-source software I use for writing in greater detail at a later date.

Writing: FocusWriter

Once a year when I sit down to write a new manuscript, I send the developer of FocusWriter a donation. It’s customized to look exactly how I need it to, with progress bars and word sprints and timers and statistics- all of which melt away when I actually write, giving me a distraction free zone to get the words down.

Editing: Geany

Geany is technically an text-editor / lightweight IDE, but I can’t use it for that anymore, cause I’ve customized it so much to support my writing. I may spend a month in FocusWriter to get that first draft, but the next year is in Geany making it shine.

Notes: Zim

I mentioned OneNote above for note organizing, and while it’s true I do use it for some initial story brainstorming, any big writing project eventually makes its way into Zim. It’s cross-platform, uses plain text files, and even uses Bazaar for version control. Right now the entirety of my Guineawick Tales notes and plans are in one giant Zim wiki. I find it indispensable for keeping track of everything.

Web Services

Hosting: WordPress.com

I started using WordPress in the early days of blogging, installed by myself on hosting I paid for while I was in school. I’ve been in and out of its code, and customized the hell out of it for previous websites. Nowadays, I let WordPress.com handle all of the dirty work, pay for enough customization to make my site pretty, and let them take care of the rest. Which they do really, really, well.

Domain Registrar: Namecheap

I’ve been buying domains from Namecheap for years. They’re not always the absolute cheapest, but their dashboard gives me everything I want, with no funny business.

Phone

OS: Windows Phone 7.5

It surprised me that Windows Phone 7 really lived up to its “you don’t need apps, everything is built-in” mantra. In fact I have very few apps on my phone, nowhere as many as I did on Android or webOS. Email, Facebook, Twitter, photos, music, video, whatever- the base OS does pretty much every single thing I need it do, with just a couple of exceptions, which I list next.

Ebooks: Freda+

Freda is the new standard by which I hold all mobile ebook reader apps. It’s silky smooth to use, customized just how I like it, and lets me grab books over the net from my laptop running Calibre. I’ve read a dozen books on it this year, and I love it.

RSS: Nextgen Reader

I need my RSS fix, and Nextgen Reader gives it to me on the go. It syncs with my Google Reader account, so I don’t have separate lists of (un)read content to maintain. Fast and easy to use.

Twitter: Twitter

I’ve tried every single Twitter client on the Windows Phone platform, paid and free, and every single one was either slow, bloated, had a funky UI, or was way too power-user for what I need. I’m not a social media maven, I just want all of the Twitter functionality in a fast client that looks good. Surprisingly, the official Twitter client works really well for my needs.

Everything Else

Most pieces of software are specialized tools (especially in the Linux world), the use of which depends on the kind of work you do regularly. I could write a post ten times as long with every piece of software I’ve used at one point or another for specific, one-time tasks, but that would be tiresome and probably a waste of time. (Of course, who knows if anyone even read this far).

“Too Long, Didn’t Read” Summary

I run Ubuntu at home, and I prefer to use open-source, cross-platform software whenever I can. I don’t like paying for software or services unless the value they provide clearly outstrips any free or roll-your-own alternatives. I avoid vendor lock-in like a plague, preferring file formats that I can crack if the software stops working.

And just like in part 1, remember: this is just what I use at home, not necessarily what I use in my job at Microsoft.

/jon

P.S. So what do you use at home? Leave a comment below!