Self-Hosted Cloud Storage: ownCloud vs. SparkleShare vs. BitTorrent Sync vs. Seafile vs. Pydio - 2013 Edition

| Comments

Update: This post has gotten pretty obsolete. I’ve written a newer, more thorough cloud-storage comparison post. There may still be some useful information in the post you are currently looking at, but my advice is to skip ahead to the newer post.

In the days before Dropbox, roughly five years ago, just about the only way to share files and store them remotely was to use a file server. When you saved a file, you had to wait for it to be written to your file server. If the file server was outside of your local area network, this might have taken quite a while.

Dropbox made this simple.

Why bother hosting your own Dropbox style service?

I don’t really trust Dropbox, because if you sync a file that another user already has, it would be uploaded instantly. This was a red flag that indicated that you aren’t the only person with the keys to decrypt your data.

Maybe you trust Dropbox and their competitors, we have no way to be certain that our data is being safely encrypted, and we have no way of knowing exactly who has keys that can unlock our data.

Self-hosting might be less expensive

The choices are pretty slim, but there are some virtual private server providers out there that offer backup-oriented servers. These are always very light on memory and CPU, but usually offer quite a bit of disk space. These kinds of plans can sometimes be found for rates a bit better than Dropbox requires you to buy.

I am going to be cheating a little here, though. I have my own server hardware sitting out there in a data center, and there are terabytes of free disk just waiting to be used up.

Hosting your files out in a random data center may not be ideal for everyone. It seems like almost everyone these days has a pretty reliable and speedy Internet connection at home, so you could always build your own NAS and keep your “cloud” storage at home.

What will I be syncing?

If I am going to take the time to set up and maintain my own self-hosted, file-syncing cloud storage service, I am going to need to store enough data up there to make it worth the effort. The home directory on my laptop holds roughly 30 GB of data, and my music collection takes up a similar amount of space.

I’m not certain that I care about storing my music up there. I hardly ever listen to music these days, and Google Music already does a great job of letting me listen to my music on my phone, tablet, or computer.

SparkleShare

SparkleShare was the first solution I looked at. One of the things that I find very interesting about this project is that it stores all your data in a Git repository. That means it ought to be very easy to quickly and efficiently replicate your data to multiple servers. It looks like SparkleShare will also let you easily access the version history of a file, and it will even automatically merge changes made to text files from multiple locations.

SparkleShare’s client side encryption doesn’t look ideal, though. File names are not encrypted on the server, and you can only set up a single password, which can never change. This isn’t a deal breaker, but it would be nice to have a more configurable encryption system.

The SparkleShare client for Android is at a very early stage of development. All it can do at this point is download files.

Update: I’m crossing SparkleShare off my list due to this bug report. SparkleShare’s design doesn’t allow it to properly sync directories that contain Git repositories. This makes it completely unusable for my purposes.

ownCloud

ownCloud is a much more mature project than SparkleShare. I remember hearing about it on a SourceTrunk podcast episode back a couple of years ago. If my memory serves me correctly, at that time there was no Dropbox server as a network drive using webdav. This deficiency went away at some point in the last couple of years, though.

ownCloud seems to have a much richer set of features than SparkleShare. ownCloud’s web interface has photo galleries and a built-in music player. You can also connect the ownCloud server to external data sources, like Dropbox, Amazon S3, or Google Drive.

The ownCloud Android client is much more advanced than the SparkleShare client. Much like Dropbox Android client is able to automatically upload photos as you take pictures.

I’m pretty sure that ownCloud’s encryption plugin won’t meet my needs. It looks like ownCloud encrypts your data on the server side. If your ownCloud server is compromised, then all your data is at risk.

BitTorrent Sync

BitTorrent Labs just released the first alpha of their BitTorrent Sync application today. For my purposes, BitTorrent Sync has one huge advantage over SparkleShare and ownCloud: it was designed from the ground up with security and encryption in mind. If all you’re really interested in is secure and efficient file synchronization, then BitTorrent Sync might be a good fit.

Unfortunately, you must have complete trust in every machine in computer your are syncing between. With BitTorrent Sync, the data is transferred securely, but the files are stored in the natural, unencrypted state.

BitTorrent Sync uses the cloud in its most literal definition. You don’t need a centralized server. You just need to make sure that at least one of the other devices is also connected to the Internet in order for your data to sync.

Seafile

Seafile is looking like it might be the best option for my purposes. It has client side encryption, so I don’t have to have complete trust in my host. The Seafile server has a rather spiffy looking web interface that gives you easy access to old versions of files, deleted files, and lets you view the differences between different revisions of the same file.

Seafile does have some minor restrictions on file names, but they shouldn’t be nearly as problematic as SparkleShare’s restrictions. Seafile has an Android client, but it looks pretty basic.

Earlier today, I set up Seafile server, and I installed the client on my laptop. I asked it to push my entire home directory up to the server. I came back to check on it 12 hours later, and it had seemingly finished indexing about 23 GB of data. I checked on it a few hours later, and it didn’t seem to have made any significant progress.

I found a handful of responses on the Seafile forums implying that Seafile doesn’t work so well with “large” libraries, and it sounds like file count is the primary problem and not file size. My home directory takes up 32 GB and contains 274,568 files.

Pydio and Pydio Sync

Pydio reminds me of ownCloud because it has an extremely featureful web interface. It seems to have an add on called Pydio Sync that provides Dropbox style file synchronization. The Pydio Sync page states that it can scale to 20-30k files and tens of gigabytes of data.

It looks like Pydio Sync uses the rsync protocol, so file synchronization should be fast and efficient. Unfortunately, Pydio Sync does not appear to support client-side encryption of your data. It will only protect your data while it is in transit.

Is there a winner?

This is a difficult question to answer. This blog entry started out as a cursory comparison of just two cloud storage solutions. I’ve already added two more since then. There are others that I didn’t feel were usable for me, and others that I just haven’t found yet.

That said, Seafile has client side encryption, and it is the most Dropbox lets you sync multiple clients up with a centralized server. That server has a web interface, and it allows you to share files and folders.

In my mind, Seafile would be the clear winner, if it could just manage to handle hundreds of thousands of files without breaking a sweat. Even with that limitation, I feel that it would be a good direct replacement for Dropbox.

Are you already hosting your own cloud storage? Do you have concerns regarding the security of services like Dropbox?

More Powerful Zsh Incremental History Search Using Zaw

| Comments

Zaw is a Zsh widget that works much like Emacs’s Helm or anything.el modules. I don’t use Helm or anything.el, and I don’t actually make full use of Zaw in that fashion, either. The only piece of Zaw that I do use is its excellent history search. I bound Zaw’s zaw-history function to control-r instead of the default built-in history-incremental-search-backward.

What makes Zaw’s history search better than Zsh or Bash’s built-in history search?

The default incremental history is very handy, but it is also very rigid. You can keep flipping back through all the matching commands in your history, but you only get to search for a single substring. Zaw lets you search for multiple substrings, each separated by a space.

Back in the decade when I still used Bash, there were innumerable situations where I wished that I had exactly this kind of functionality. The most common cases were probably trying to find an rsync or scp command with a particular server as the target. With the default incremental search, the best you could do was search for the server name or the rsync command, and then flip through results until you found the one you were looking for.

Sometimes you luck out, and it is only a few entries away. Other times, you end up tapping that control-r over and over for what seems like eternity.

Zaw is a bit too visually intrusive

With its default settings, Zaw takes up quite a bit of vertical terminal real estate. If you primarily operate in standard size 80x24 terminals-like I do, Zaw will end up pushing almost everything up and off of your screen. I ended up limiting mine to just three lines. This way, it isn’t nearly as intrusive, and I still get a bit more information than I would from the default incremental history search.

“Better” keys for moving through search results

I needed to bind a few extra keys to make Zaw behave more like the function it was replacing. I bound control-r to Zaw’s down-line-or-history. This is intuitively backwards, but it perfectly fits my muscle memory.

I also needed a key to complement control-r for moving in the opposite direction. Since control-s is usually bound to history-incremental-search-forward, I thought it would be reasonable to use control-s for moving in the opposite direction.

Editing the command before executing

This is another situation where I had to appease my muscle memory. When using the default incremental search, I always hit control-e to accept the result and move the cursor to the end of the line. By default, the same action with Zaw is accomplished by hitting alt-enter.

I’m just too old to retrain myself. I ended up binding control-e to Zaw’s accept-search command.

~/.zprezto/modules/zaw/init.zsh
1
2
3
4
5
6
7
8
9
10
source $HOME/.zprezto/modules/zaw/external/zaw.zsh
bindkey '^R' zaw-history
bindkey -M filterselect '^R' down-line-or-history
bindkey -M filterselect '^S' up-line-or-history
bindkey -M filterselect '^E' accept-search

zstyle ':filter-select:highlight' matched fg=green
zstyle ':filter-select' max-lines 3
zstyle ':filter-select' case-insensitive yes # enable case-insensitive 
zstyle ':filter-select' extended-search yes # see below

zsh-dwim Now Works on Mac OS X and FreeBSD

| Comments

A few weeks ago, I received my first pull request on the zsh-dwim GitHub repository. Much to my surprise, it was a change to make zsh-dwim work on Mac OS X. I made a mistake that I’ve made a few times in the past, he sort of mistake that goobers me up once every five years or so.

Never assume that UNIX command line tools are compatible with the awesome GNU versions

I encountered this “problem” on my first few Sun Solaris servers. It was painfully obvious there during interactive shell sessions. I was constantly hitting command line switches that didn’t exist. I’ve always preferred the long form “double dash” command line arguments over their single letter equivalents, but at the time those were seemingly nonexistent on Solaris.

This time, though, my problem was that the BSD version of the sed command doesn’t support the -r command line switch like the GNU version does. This is required to support the regular expression capture groups that most of zsh-dwim’s transformations use.

The solution

The solution in Lepht’s pull request was to use the gsed command if it was available. This worked great, so I immediately accepted the pull request. I didn’t give it much thought again until I was updating the documentation.

I originally decided to use sed for the regular expression substitutions in zsh-dwim because sed is very lightweight, and the regular expression substitution engine built into zsh didn’t feel up to the challenge. I also figured that everyone would have it installed.

That last part was very important. I realized as I was updating the documentation that I didn’t want anyone to have to go through the trouble of installing additional software to use zsh-dwim. I talked to Lepht about the idea of swapping out sed for perl, since pretty much every UNIX flavor has Perl installed already.

Changes to zsh-dwim related to sed

I think we came up with a pretty reasonable solution. zsh-dwim will now use sed if it supports the -r argument. If not, it will check and see if gsed is installed. Failing that, it will just use perl. That means it should use the most efficient regular expression engine available, and most people won’t have to think about it at all.

Many thanks to Lepht for pointing out my oversight!

Getting Solarized Working with emacsclient in both GUI and Terminal

| Comments

Some time last year, I decided it was finally time to try out a new color theme in my terminals and text editor. I have been a long time user of the old, standard “Linux console” colors for a very long time. Those were the colors they gave me when I installed Slackware 3.0 in 1996, and they were pretty much the same as the ANSI colors my 8088-based MS-DOS machine back in the late 1980s. I guess that I had been clinging to those rainbow colors for over twenty years.

Solarized

I’m not sure exactly what finally made me give up my old color theme and give Solarized a try, but I do remember listening to The Changelog’s interview with the creator of Solarized, Ethan Schoonover. I do know that I set my terminal emulator to the Solarized Dark colors, and I installed the Solarized Emacs theme and I forced myself to stick with it long enough to get used to it.

That wasn’t easy, though. For many, many weeks, every time I opened a terminal I would think to myself, “this doesn’t look right!” These days, I am more likely to say that when I happen to see a gray-on-black terminal. I’m going to call that progress.

emacsclient and Solarized

I’ve had a lot of trouble getting my Solarized terminals and emacsclient to play nicely together. When I first set things up, it was just awful. Opening Emacs in a terminal would make the colors go weird in any existing Emacs GUI instance and vice versa. It was just a mess.

I did manage to straighten that out pretty well, but things still weren’t quite right. Everything looked fine in the GUI, but most of the colors were pretty far off in the terminal. I do most of my heavier editing in the GUI, so the “wrong” colors were pretty easy to tolerate. Those bright red comments in the terminal were pretty horrible, though:

Some very wrong colors Correct colors

Finally making it work

First of all, I had to set up the correct colors in my terminal. I use Gnome Terminal, so I used Sigurd Gartmann’s scripts to configure my Gnome Terminal with the Solarized colors. I have tried running emacsclient in other terminals that aren’t configured with the Solarized colors, and the result looks very bad.

The hardest part was finding a version of the Solarized color theme for Emacs 24 that actually works well in a terminal. Michael Olsen’s fork of the Solarized color theme is working perfectly for me.

Cocktail Arcade Cabinet Build: Postmortem - The Things We Got Right

| Comments

I think I’ve had the arcade cabinet up and running for a couple of years now, and that has given me plenty of time to kick the tires. I’m very, very happy with how the project turned out. Everyone who sees it seems to be genuinely impressed with it, and I most definitely agree with them. We did a lot of things right, we did a lot of things wrong, and we made a lot of things harder than they needed to be.

Arcade cabinet joystick close up

The blackened plexiglas and glass

This is easily one of my favorite things about the cabinet. It looks great. You can paint the underside of acrylic or glass any color and it will look awesome—smooth and shiny.

We planned on blackening the surface glass and the acrylic control panel covers. We liked the way it looked so much that we also used it in two more places. We used it to cover the rear “wall” of each control panel and we also used it to put a shiny face underneath the control panels to hide the wiring.

Dry fitting cocktail arcade cabinet panels

Giving the cabinet legs

Most cocktail cabinets are boxes with a screen on top. They don’t allow much room for your feet. This wasn’t a problem at the Pac-Man table when I was seven years old. These days I’m around six feet tall, and standard cocktail cabinets don’t leave me much room for my size twelve Rockports

The small cut-outs on the player-one and player-two sides are just high enough to fit your foot under. It probably would have worked out just fine if we made shorter cut outs like that on all four sides.

I’m also very happy that we planned correctly and had just enough legroom under the control panel wiring. Twenty-four inches is just enough clearance to fit my knees under there while sitting in a standard-size dining room chair; we haul those chairs in here pretty frequently.

Completed cocktail arcade cabinet with the lid off

Over sized control panels

We made sure to leave plenty of room in front of the buttons to rest your palms. We’re not kids anymore, and we have adult-sized hands. I didn’t want to end up having to rest my hands on the edge where the panel meets the t-molding!

The button layout

I’m pretty happy with the compromise we came up with for our button layout. We have two rows of three buttons. The center column of buttons is set about a half-button width higher than its neighbors.

They’re about straight enough to comfortably play Street Fighter-style games while putting the bottom-center button in an almost natural position for blocking in Mortal Kombat games.

We also tried to get the buttons about as close together as we could. That makes them a little more comfortable than most real arcade layouts.

The color scheme and the shape

I am really happy with the light blue molding on a black cabinet. I felt that the table would look out of place in my office if we added a bunch of arcade-style artwork to it, but I still think it would look right at home in an eighties arcade.

The LCD panel

I’ve already talked about the problems we had with our choice of LCD panel, which make the player-three seat basically unusable. That is a problem that wouldn’t affect every cabinet, and even in a cocktail cabinet it can be fixed by using an LCD television instead of an LCD computer monitor.

The LCD is lightweight, and it left us with a ton of room in the cabinet for computer hardware. Having a 1080p display is great for playing more modern games, and a widescreen display is perfect for split screen two-player console gaming.

Surprisingly, the speakers in the monitor are adequate. I doubt an audiophile would agree with that statement, but they are reasonably loud, and they definitely sound good enough for pre-1995 gaming.

Up close while applying the sticky-back vinyl

Sticky-back vinyl!

I also included sticky-back vinyl in my list of things we got wrong, but I’m still very impressed with how the vinyl turned out, even if it was a time and money sink. It is holding up pretty well, except that bumping the table around has caused the carpet to slowly peel the vinyl away from the bottom in some spots. I’m sure we can fix that with some adhesive, but you wouldn’t even know it was happening unless you were down there on the floor with it.

The vinyl looks very nice and it has a nice texture. It makes things feel a little more real.

A simple, slotted wooden cage for 7 hard drives

Home office upgrades

This table takes up 42” by 32” of floor space in my home office. If it only played arcade games I might find it a bit harder to justify its use of the space.

I ended up using all the guts from my old home file server to drive the cabinet. Along with those guts came a RAID 6 array made up of five 1 TB hard drives. That gives me about 3 TB of usable space. That isn’t a ton of space by today’s standards, but it was when I originally bought the drives. I have room in the drive cage that we built to hold one more drive.

Connecting a wall-mounted LCD TV to the arcade table has also greatly increased its usefulness.

Upgrading from Autojump to Fasd

| Comments

I’ve had my eye on fasd for quite a while now. It does everything that autojump does and more. It didn’t look like it would be hard to use fasd in autojump’s place, but I am inherently lazy; I wouldn’t have been using Autojump if I weren’t, and I wasn’t in a hurry to switch, since Autojump had already bubbled all of my favorite directories to the top of its list

Shortly before I began my never-ending shell cleanup, I started having problems with autojump. It started showing me a Python stack trace every time I jumped. It was still mostly working, so I didn’t worry about it; I figured fixing it could wait until I started cleaning up my shell environment.

What do fasd and autojump do?

Autojump keeps track of the directories that you cd into, and how often you cd into them. Later, you only have to type a small part of those often-used directories to change into them:

1
2
wonko@zaphod:~$ g cfg
wonko@zaphod:~/Steam/SteamApps/oknowton/Team Fortress 2/tf/cfg$

Fasd keeps track of directories, just like autojump. In addition to that, it also keeps track of files, and it provides some interesting tab completion options for accessing those remembered files. For example, appending ,,f before hitting TAB will limit completion only to recent files:

1
2
wonko@zaphod:~$ emacs ,medic.cfg<TAB>
wonko@zaphod:~$ emacs /home/wonko/Steam/SteamApps/oknowton/Team\ Fortress\ 2/tf/cfg/medic.cfg

fasd and my go command

I’ve been using one of the ultimate tools for the lazy, a go command, for almost two years. A go command tries to infer your intent based on what it is given as an argument. If the argument matches a directory within the current directory, it will act just like the cd command. If the argument matches a file in the current directory, it may call xdg-open in order to open the file using the correct program; my particular implementation opens anything that might be a text file with a text editor. If all else fails, my go command hands things off to fasd.

My own go command very nearly worked without modification. My go command is fairly smart, and it won’t attempt to use features that aren’t available. Autojump sets up a function for the j command, while fasd sets up an alias. I was checking for the existence of the alias. Just to be on the safe side, I am now checking for both.

Retraining this old dog

I have been using fasd for almost two months now, and I rarely remember that I have these fancy, new comma prefix and suffix completion helpers. I’d be surprised if I’ve managed to remember to use them more than a half dozen times.

I’m much more likely to use my old autojump work flow, where I would “jump” to a directory before working a file. If I’m lucky, I’ll be trained by this time next year.

Repairing a PlayStation 3 with the Yellow Light of Death (YLOD)

| Comments

Update June 19, 2013: The YLOD has struck again! During the first month after its resurrection, Retro City Rampage, Quantum Conundrum, and played enough Just Cause 2 to get the last few, monotonous trophies. Then I left town for about three months, and in that time it was mostly used for watching Netflix and Hulu. Then, a few days after I got back, the PS3 died again. I finally got around to repairing it tonight. PlayStation Plus just gave me a free copy of Saints Row: The Third, among other games, so I’m impatiently waiting for that to slowly download. We’ll see how long the repair lasts this time. I attempted to pop the heat spreader off of the GPU, but it is on their pretty good. I didn’t want to really hork things up at one in the morning, so I just pointed the heat gun at it again.

Early in December, my PlayStation 3 died. When I tried to turn it on, it would beep and flash a bunch of red lights at me before powering back off. For some reason, this is referred to as the “yellow light of death,” even though the yellow flash is barely perceptible.

I was able to successfully repair my older, 60 GB PlayStation 3. All I needed was a heat gun, some thermal paste, and rubbing alcohol. The only thing I didn’t have on hand here was the heat gun.

The PlayStation 3 cracked open Automotive Dielectric grease: Pretty good CPU thermal compound

The working hypothesis

There are easily dozens of YouTube videos and websites making similar claims. They claim that the PlayStation 3 CPU or GPU is just running too hot and the solder joints are being damaged by this excessive heat.

They recommend applying heat to the CPU and GPU to “reflow” these weakened solder joints. I don’t have much confidence in this particular hypothesis. Wikipedia claims that the solder typically used on chips like these in a reflow oven has a melting point of between 211 and 220 ˚C.

That is more than double the typical safe operating temperature of most CPUs and GPUs. The PlayStation 3 would crash or shut itself off long before ever reaching those kinds of temperatures.

The heat gun fix still works

I did it myself. It absolutely works. You should be able to follow along with Gilsky’s YouTube video and fix your own PlayStation 3. The most complicated part is disassembling the PlayStation 3. It was much easier than I expected, significantly less complicated and puzzle-like than the PlayStation 2.

Why does the heat gun fix work?

I have my own hypothesis, and I only found two clues to support my thinking. Here’s one of them:

Can you see all that thermal goop between the GPU and the “heat spreader”? I’m pretty confident that this stuff is the problem. I remember older thermal compounds that used to ship with OEM AMD CPUs ten years ago. They shipped with a thin layer of a pink or gray material on the heat sink.

That material was very similar to what ships with the PlayStation 3, and I’ve had problems with it in the past. I’ve had computers that were in warmer environments slowly melt that gummy stuff away. I wouldn’t be at all surprised if the same thing is happening in the PlayStation 3.

I believe that when you heat up the CPU and GPU, that cheap, gummy thermal compound is softened up quite a bit, maybe even partially liquefied. To abuse some existing terminology, the heat gun is likely “reflowing” the thermal compound, allowing it to once again make more complete contact with the CPU/GPU and the “heat spreader.”

Dielectric grease? What kind of thermal compound is that?

I’ve been using dielectric grease from the auto parts store in lieu of “proper” thermal paste for many years. I have computers that have been running 24/7 for over three years that have automotive dielectric grease on their heat sinks. They’ve never given me any problems at all.

I once saw a chart comparing the thermal transfer properties of various brands of CPU thermal compound, and that chart included dielectric grease. Unfortunately, I can’t find that chart anywhere now. My memory tells me that dielectric grease performed within a few degrees Celsius of the best performer.

It is also ridiculously cheap. I probably paid less for my 85g tube than I would have paid for a tiny 3.5g syringe of Arctic Silver thermal compound.

How Long Does It Take to Make a Latte with an Espresso Machine?

| Comments

When I first started thinking about upgrading from my Moka Express pot to a proper, if low-end, pump-driven espresso machine I was worried that the whole process would be complicated and take a long time. I’m very happy that I decided to go ahead with the upgrade. It isn’t complicated at all, and it doesn’t take a long time.

If you asked me a few weeks ago, I would have told you that the process takes about five minutes. Since then, though, I’ve timed the whole thing with a video camera. I didn’t rush; I just went about my business just like I normally would. I wasn’t that far off; it takes just over six minutes go from turning the machine on to being finished, cleaned up, and drinking my coffee.

I do things just a little differently…

Most people empty out the portafilter after they are finished pulling their espresso. I leave it in there and clean it out the next time I use the machine. This means I get to start drinking my latte sooner, and it also saves me a bit of time, since I clean out the portafilter while waiting for the machine to heat up.

What I hope qualifies as a latte

I pull a double shot of espresso, then I steam and foam about six or seven ounces of milk until it almost doubles in volume. I combine them in a large mug, and I mix in four big old teaspoons of sugar.

I’m not certain that this officially qualifies as a latte. With this volume of foam it probably ends up somewhere in between a cappuccino and a latte. I don’t really care what it actually is; I just know that it tastes quite good.

My cheap little espresso machine

I don’t have a fancy, high-end machine. I have one of the least expensive pump-driven espresso machines you can find. It is a Mr. Coffee EMC50. I’m told that these cheaper machines with “pressurized portafilters” make it easy to “consistently pull mediocre shots of espresso.” I’ve never used a high-end espresso machine, so I’m not really certain how much better the espresso they make can taste.

I do completely agree with the first part of that statement; almost every shot I pull tastes equally good. For all I know, though, “good” is really “mediocre.” This machine most definitely makes a better tasting, less bitter coffee than my old Moka Express pot.

The Books I Read in 2012

| Comments

I am not entirely certain how comprehensive this list is. I’ve never bothered to keep track of the books I read, but I recently read an article telling me that 13% of Americans claimed to have read 11 to 20 books in the past 12 months. This made me curious as to where I might fit into these statistics, so I did my very best to figure out just what I managed to read this year.

I had a lot of trouble trying to decide which books I actually read early in the year and which ones I had read towards the end of 2011. I definitely read all ten books in this list last year. I have a suspicion that I read one other Discworld book, but I am pretty uncertain. I wish I knew for certain because I would have really liked to make it into the next bracket!

These should be, more or less, the books I read during 2012 in something close to the order in which I read them:

The surprising books from StoryBundle.com

Four of the books that I read last year came from StoryBundle.com’s first bundle, the “Big Bang Bundle.” I bought the bundle because I thought it was an excellent idea, but I didn’t actually expect to get around to reading any of it. The list of books that I want to read is already rather daunting. Fitting in more books from authors I’d never heard of didn’t seem like something that would happen.

After finishing up Kim Stanley Robinson’s “Red Mars,” I decided to give one of the StoryBundle.com books a try. It seemed to take no time at all to breeze through Joseph Lallo’s “Bypass Gemini,” especially reading it right after “Red Mars.” I enjoyed it enough to buy the sequel, “Unstable Prototypes.”

All the books that I’ve read so far from the “Big Bang Bundle” have been excellent. The folks at StoryBundle.com claim that they read all the books and choose the best ones to include in their bundles. I really like the idea of buying a set of curated novels.

I will be looking forward to their next Sci-Fi bundle!

Cocktail Arcade Cabinet Upgrade: Part 3 - The Conclusion

| Comments

The physical aspects of this upgrade project have been finished for quite a while now. This write up has just been on hold waiting for me to borrow a better camera than the one in my old Samsung Galaxy S phone.

Not much has really been done since my last update aside from the PVC pipe that is now hiding the wires. For that, I just took a length of ¾” PVC pipe that I already had and slit it right down the middle using a friend’s table saw.

Here is a collection of photos progressing from the earliest stages of the build right up to the present:

Four panels temporarily assembled Holes drilled for joysticks and buttons All the vinyl and most of the t-molding is applied The completed cocktail arcade cabinet Arcade cabinet joystick close up The finished cabinet with its new wall mounted TV

This is most definitely cheating

I don’t know if I should be allowed to call this thing an arcade cabinet anymore, but I am very happy with the results! I would have never thought to hang a TV on the wall behind my arcade cabinet in my previous home office: the layout of the room was all wrong.

Why not just build an upright arcade cabinet?

This whole project originally started because I was in need of some sort of table for my office. I could have just bought a cheap table or desk from Ikea. We most certainly could have built our own basic table out of wood, but I’ve always wanted my own arcade machine.

This ended up meeting both of my needs and it even gave me a place to hide my home file server. A purpose-built NAS box would probably be more power efficient, but now I have a ton of extra space to add more drives!

Grand Theft Auto: San Andreas Three quarter view of rRootage Psychonauts The current WahCade menu Mortal Kombat II

More than just arcade games

Now I have a screen that you can see while sitting comfortably on the other side of the room. I can watch movies and television in my office now. I had my BluRay copy of Super Troopers playing on there in the background while I was setting things up.

I can also play games from across the room using a gamepad. It would feel a little silly playing Super Mario Bros. on a television connected to an arcade cabinet, though. That would almost fit into a “yo dawg” meme

I started looking through my older Humble Bundles for games that require analog gamepads. So far I have only installed Psychonauts on the arcade cabinet, and it definitely feels like it was made to be played with an analog gamepad. Shank was previously a failure: my arcade cabinet just didn’t have quite enough buttons. Shank and Shank 2 both exist on the Playstation 3, so I’ll bet there’s enough buttons for either on a gamepad.

I bought the full Grand Theft Auto collection a couple of years ago on Steam. I have GTA 3, GTA Vice City, and GTA San Andreas all up and running at 1080p, and they look so much better than they ever did on the PlayStation 2. I tried to get Grand Theft Auto 4 up and running, but it ran like a slide show. I’m not sure if my CPU is just too underpowered for the game, or if it just runs poorly under Wine.

Playstation 2

I also installed PCSX2, a PlayStation 2 emulator, and I ripped a few of my games. Chris was excited about the possibility of playing her Final Fantasy X at 1080p with antialiasing. Unfortunately, my arcade cabinet’s CPU just isn’t fast enough. The best it could muster was 35 frames per second, which is a bit better than half speed. It was about the same speed at 1920x1080 and 640x480, so my graphics card is probably not the bottleneck.

Some final thoughts

I think this was a solid, inexpensive upgrade for both the arcade cabinet and my office. I don’t expect to watch many movies in here, but it is nice to have the option.