zsh-dwim: Most Recent Remote File Completion

| Comments

Progress on zsh-dwim has been pretty slow lately. It didn’t take long to mine my shell history dry, and I have been having some difficulty coming up with new ideas. That is, until I came across a post on Reddit asking about a good way to find the most recently edited file on a server for the purpose of pulling a copy down over scp.

This idea seemed useful enough to be worth pursuing.

Wouldn’t this be better server by a tab completion?

Maybe it would, but I’m quite pleased with how shoehorning this functionality into zsh-dwim worked out. I’m very happy with the way the progression from “ssh” to “scp” to “scp with latest file” is working with just a couple of presses of the zsh-dwim key.

When the command line reads “scp patshead.com:” and I press control-u, zsh-dwim queries the patshead.com server looking for the most recently modified (non-hidden) file in my home directory.

Some New Years Resolutions For 2013

| Comments

I’m pretty sure only one item on this list counts as a resolution. They aren’t life-changing in any way. Most of them are just small tasks that, for one reason or another, never make it to the top of my to-do list.

Generate new personal crypto keys

My GPG key was created on March 26, 2005. It should have expired a long time ago, but I never set an expiration date. The ssh key I use isn’t much newer than that… I should have done this a very, very long time ago.

This time around, I plan to put a reasonable expiration date on the GPG key!

Rework my persist system

My shell environment clean up ended up hitting a bit of a road block. When I built my little persist system to version my configuration files, I did it there, right in place. I manually created the git repository that persist stores my configuration files in, and I manually integrated that into my Prezto directory structure.

I haven’t had the gumption to tear that all back out and build some sort of installer script for persist. This is not only holding back my clean-up progress, it is also preventing me from writing more about it!

Continue working on zsh-dwim

I am still pretty excited about zsh-dwim and I most definitely plan to keep adding new features to it. A recent post on Reddit has inspired me a bit, but I haven’t quite figured out how, or even if, this fits into zsh-dwim.

Build a web interface for the arcade cabinet

This plan doesn’t have a lot of depth at the moment. Two things happened at about the same time that planted the seed for this idea. My friend Brian gave me a couple of his spare NFC tags right around the time that I was setting up my arcade table’s external monitor.

While configuring games to output correctly to the second monitor, I realized that the arcade cabinet is rapidly running out of “extra” buttons to use. I wanted a simple and intuitive way to switch some games between two player, mirrored cocktail mode and a single player mode using the external display.

I’m thinking that I can add some NFC tags and QR codes to the arcade cabinet that would point you directly to the arcade cabinet’s web interface. This way, anyone could use his phone or tablet to control the display or to kill a misbehaving game.

Buy fewer games for my arcade cabinet, spend more time playing them instead

Not long after completing my arcade cabinet, I learned that playing new arcade-style indie games are much more interesting than replaying old, emulated arcade and console games. I decided to set a goal of buying one game for the arcade cabinet every month.

That was over two years ago, and in that time I’m certain I’ve bought more than two dozen games. More than half of the Humble Bundles have included a platformer. I’ve bought a few of the Indie Royale bundles, but some of the games that looked interesting in these bundles just don’t work on Linux under Wine. More recently, I’ve had some luck with IndieGameStand.

Early on, I was worried that I wouldn’t be able to meet this goal. Today, I just have too many games to play. I spend too much time installing new games that I never get around to playing and not enough time playing the games I already have.

HP DV8T Core i7 Laptop Can Be Upgraded to 16 GB of RAM

| Comments

One of my friends recently upgraded his desktop computer, and he very nearly dragged me along with him. I was very close to joining him with a similar upgrade, but the performance increase just wasn’t going to be big enough. I was starting to feel like I was missing out on the fun, so I investigated the possibility of upgrading my laptop from 8 GB to 16 GB of RAM.

6384 MB of RAM: The BIOS's printf needs a %5d memtest86+ showing all 16 GB Windows 7 task manager showing 16 GB

I just want to note here that the model number printed on the sticker on my i7-720QM laptop just says “DV8T”. My parents’ i5-450M laptops both say “DV8T-1200”.

I didn’t find any information that I thought was terribly definitive. I found this forum post saying that his DV8T may or may not be working properly and that his BIOS only saw 6 GB of RAM after the upgrade. There are other similar laptops with Intel 720QM processors that ship from the factory with 16 GB, so I figured there is a good enough chance that it would work in mine as well.

I ended up buying two 8GB sticks of Patriot brand RAM at my local Fry’s. It was about the same price as Amazon, but I figured it would be easier to return in the event that my laptop didn’t like it. The part number on my RAM’s packaging matches the RAM at Amazon, but it differs slightly from what memtest86 displays.

Did it work???

At first, I sure thought it failed. I went straight into the BIOS and saw the dreaded 6 GB of RAM mentioned on the HP forum

So I booted right up into my operating system, a 64 bit Linux system. It seemed to see the full 16 GB of RAM just fine. I didn’t think of a quick way to consume and exercise 16 GB, so I restarted the computer and fired up memtest86. Memtest86 detected everything just fine, and I watched it walk through a few tests on all 16 GB. It seemed pretty happy, but I did not run an exhaustive test.

Does it work with Windows 7?

I don’t have Windows 7 installed on my laptop, but I do happen to have a 64-bit “Windows 7 Enterprise Trial” installation disc. I booted off the disc and worked my way through the recovery options until I found a command prompt. Once I found a command prompt, it was a simple matter of remembering the file name of the “Task Manager” executable.

“Task Manager” shows that all 16 GB of RAM is available. I took a picture of the “Task Manager” window and added it to the gallery.

Why does the BIOS see 6 GB?

The BIOS doesn’t actually see 6 GB of RAM. It displays 6384 MB of RAM. That is 240 MB more than 6 GB. It looks to me like the dopefish that wrote the BIOS said “9999 MB ought to be enough for anyone,” and truncated the field down to four characters. If you don’t want to do the math yourself, 16GB would be 16384 MB.

Other HP DV8T laptops

Shortly after I purchased my DV8T, I ordered one for each of my parents. Their DV8T laptops do not have quad core Intel i7 chips like mine. They have Intel Core 2 Duo i5-450M chips. That makes them very different beasts. I have absolutely no idea if the Core 2 Duo i5-450M of the DV8T will support 8 GB memory sticks.

I finally tested my parents’ i5-540M DV8T-1200 laptops

I was previously mistaken in saying that my parents’ dual core DV8T laptops were using Core 2 Duo processors. They are in fact using i5-450M processors.

The DV8T-1200 with the i5-540M will not support more than 8 GB of RAM. The machine did boot and run just fine with the two 8 GB sticks of RAM installed, but the BIOS and operating system only saw half of it.

The conclusion

I’ve been running with 16 GB of RAM now for a few days without any hiccups. I feel it was an inexpensive and worthwhile upgrade. Extra disk cache never hurts, and now I have a little more breathing room when I need to run a handful of virtual machines.

I Got a Set of Joulies for Christmas!

| Comments

I received a set of Joulies as a Christmas present from my old friend Brian, and I have to say I am pretty excited about them! I haven’t had them long enough to perform any real, proper science on them, but this has already been done with both positive and negative results, so I’m not too worried about it.

What I am interested in is whether or not they improve my daily coffee drinking experience. I have had them long enough to tentatively say that, yes, these are improving my coffee drinking experience.

The Joulies and their burlap sack The Joulies hiding in my latte The Joulies uncovered

My usual latte routine

I usually fill my mug with water and put it in the microwave for 60 seconds while I am making my latte. The “warming tray” on my espresso maker is basically useless, so this keeps everything from immediately cooling down when it hits the mug.

I know that I am technically supposed to steam the milk to about 140 degrees. I don’t do that. I know about how warm it needs to feel in the pitcher so that when I mix everything together in the mug it will be immediately ready to drink.

The problem with this arrangement is that I have to drink all 10+ ounces relatively quickly. I’m often forgetful and end up with about one third of a mug of cool, less tasty coffee.

What did I change?

I am still fine-tuning my process a bit, but I think I am nearly there. I am now nuking the mug full of water for 80 seconds, and I am steaming the milk until it is hot enough that the pitcher is uncomfortably warm to the touch.

A few months ago, my friend Brian and his wife brought us back a couple of mugs from Colorado. One of those mugs is quite huge. It easily holds a double shot of espresso, an entire pitcher of steamed milk, a copious amount of sugar, and all five Joulies.

In the past, if I steamed the milk to this more extreme temperature, it would take forever for it to cool off enough to be drinkable. Now, even in combination with the extra 20 seconds of microwave time, I am able to start drinking as soon as I walk upstairs to my desk.

I’m also able to take my time sipping at my tasty beverage, and I haven’t had any large amounts of left over coffee in my mug yet. I’ve only had them for five or six days now, though, so we’ll see if this keeps up!

Should I put the Joulies in the mug first?

The Joulies website seems to recommend putting the Joulies in the mug first and then pouring in the coffee. I use an espresso machine, so I don’t do this. I have to imagine that pulling a shot of espresso directly on top of the cold Joulies would instantly cool off the espresso.

I just drop them in like ice cubes after I have everything else mixed together.

Joulies are a lot like ice cubes

More like heavy, sinking ice cubes. If you slosh your mug around you can hear them clinking around, just like ice cubes. Joulies also make it a little big harder to drink the last of the coffee because they want to slide out of the mug and into your face when you get to the bottom of the mug.

I may not be leaving behind a full third of a mug’s worth of coffee anymore, but I am certainly missing out on a little bit every time now.

Storing the Joulies

The first time I used my Joulies, I rinsed them and wiped them clean, then I just dropped them in an empty mug. They were still a bit wet the next day. Since then, I have been putting them back into the little burlap storage bag they came with. Even if they’re still wet when I put them in, they are always dry by the next day.

Performance in an insulated mug

I sent Chris off to work this morning with a latte in our leak-proof Nissan travel mug. When I make her a coffee like this, I try to pull the double shot as close to her departure time as possible. The timing wasn’t right for that today, so I ended up making her coffee about an hour before-hand.

As always, I filled the thermos with hot water—much hotter than usual—to warm up the inside while I made the espresso and steamed the milk. I also steamed the milk to a higher temperature than I normally would.

I got this instant message from her after she got to work:

Chris: You would never know the coffee was sitting around an hour. :–)

The pair of Joulies must have done their job lowering the temperature of the coffee, since she didn’t complain about how much hotter I made it today. Then I received this message over an hour later:

Chris: These joules are DA bomb

We haven’t used any science yet, but she seems convinced that they are helping. Maybe I’ll have to be sneaky and leave the Joulies out some time and see if she notices!

Whole Disk Encryption with an SSD

| Comments

I’ve been wanting to encrypt the drives in my laptop for quite some time now. I was putting it off for a couple of reasons. I know that the processor in my laptop can’t decrypt fast enough to keep up with my Crucial M4’s 300+ MB per second read speeds. I also wasn’t too excited about the extra CPU overhead reducing my already limited amount of battery run time.

I finally decided to give it a try anyway. There are a few security-related issues to watch out for, and I have some specific problems that I have to work around with my particular laptop.

Much of this should apply to almost any SSD or operating system. I am currently running Ubuntu 12.10, and I am almost positive I am using the Ubuntu installer’s default encryption options. Whatever you are using, be certain to choose a good, long pass phrase.

Show:

Performance and battery life

I have effectively cut my maximum sequential read speeds in half. My Crucial M4 can read at 330 MB per second, and my old Intel X25-M was only about 30 MB per second slower than that. The Intel Core i7-720QM in my laptop does not have Intel’s new encryption acceleration instructions. It can only encrypt at about 140 MB per second.

Sequential read performance is the only benchmark statistic that breaks that 140 MB per second barrier. In day-to-day use, my laptop isn’t noticeably slower now than before I encrypted it.

Just about the only thing that might be noticeably slower would be copying large files around. Most of the time, when I do this a slower device is the bottleneck, like my second 7200 RPM drive, or a network drive. Even a copy from one location to another on the SSD is going to be bottlenecked quite a bit by the slower write speeds.

I haven’t done any properly scientific battery life tests. The battery life of my big, old desktop replacement style laptop was never good to begin with. I’m pretty confident that battery life under normal use hasn’t been significantly impacted, though. I just don’t do all that much disk I/O on the rare occasions that I am away from my desk.

Security and TRIM/discard

Solid-state drives have a feature that allows the operating system to alert the drive that a disk block is now empty. This lets the drive reclaim unused blocks. These reclaimed blocks can be erased while the drive is idle. A well TRIMmed SSD tends to perform better than an unTRIMmed one. Some drives are more reliant on TRIM than others, though.

This creates a small problem for encryption, though. Normally, an encrypted drive is one big solid block of seemingly random data. Once you start TRIMming that drive there will be “holes” full of zeroes almost anywhere that you have deleted a file.

Depending on how far you lean to the side of paranoia, this could definitely be a problem. I’m also under the impression that this might damage TrueCrypt’s “hidden volumes.”

I am not one with this level of paranoia. I also don’t have anything on this laptop worth protecting from the “lead pipe” password crackers.

If you want to enable TRIM support, you will need to make sure it is enabled in both your /etc/fstab file AND your /etc/crypttab file. I hadn’t thought to check the latter when I first set this up.

A snippet from my own /etc/crypttab file:

sda5_crypt UUID=f329fc5a-04ab-43cf-b762-0db126b31c26 none luks,discard

I am unhappy with the performance of on-the-fly TRIM on my Crucial M4. I just run fstrim manually every once in a while. I am pretty sure you will still need the discard pass through option enabled in your /etc/crypttab file in order for fstrim to function.

NVidia’s stupid drivers

This particular problem most likely only affects a very small number of users. NVidia’s proprietary driver does not yet allow me to activate any external screens during the boot process. My laptop spends most of its time hiding away in its little cradle connected to a pair of external monitors. This means that I can’t see the pass phrase prompt if I boot my laptop while it is “docked.”

The open source Nouveua drivers will do this just fine automatically. Unfortunately for me, they aren’t up to my requirements for gaming performance.

I imagine that on some random day in the future this won’t be a problem anymore. Then I will get to discover whether or not my Bluetooth keyboard is functional that early in the boot process. I expect that it isn’t, but that should be easy enough to fix.

It is a good thing I rarely turn this thing off…

Setting Up a Piwik Notification on Android with Tasker

| Comments

Update: You might want to skip all of this. My friend Brian took what I had here quite a bit further, and he has made a much more comprehensive Piwik notification for Tasker. You should definitely check it out!

I’ve been using Piwik to monitor and analyze web traffic for quite a while now. The Piwik app for Android is pretty good, but I was hoping to be able to see a quick overview without opening and drilling down into the Piwik app.

Luckily for me, my old friend Tasker was more than capable of helping me out here. Tasker was one of the first two apps I bought for my HTC Dream, and I’ve been relying on it ever since. I mostly use Tasker for things like turning my phone’s Wi-Fi on when I get home and automatically turning off Bluetooth when my headset is disconnected. One of my friends uses it to automatically open his OBDII logger when he plugs his phone into his car.

This time I am using Tasker to periodically download data from Piwik and create an Android notification out of the important bits. Most of this was pretty simple. Piwik will export data in a number of different formats. Tasker seemed to be best suited to parsing a CSV file but the way I ended up doing it would most definitely be considered cheating.

I’m all right with that, though, because it works!

On the tablet On the phone

You will want to edit these lines before you import this profile:

<Str sr="arg0" ve="3">YourHostName.com</Str>
<Str sr="arg1" ve="3">/piwik/?module=API&amp;idSite=2&amp;date=today&amp;period=day&amp;method=VisitsSummary.get&amp;format=csv&amp;token_auth=YourAuthTokenGoesHere</Str>

You will want to supply the correct Piwik server name, site id (idSite=), and auth token (token_auth=…). These can be modified in Tasker after the profile has been imported, but it is probably less effort doing so with a real keyboard and text editor.

The Tasker site very briefly explains how to import a profile. You can download my Tasker Piwik profile here:

Piwik.prf.xml

A Small Update to `zsh-dwim`: rsync and dstat

| Comments

I recently added transformations for two more commands, dstat and rsync, to zsh-dwim. These new transformations aren’t exactly in line with zsh-dwim’s original goal.

Almost all of zsh-dwim’s transformations up to this point have been about laziness. If you untar something, zsh-dwim will let you cd right into the directory it was extracted to without having to guess at the directory name. If you fail to ssh into a host, it will construct the command to remove that host from your known_hosts file for you.

These new transformations aren’t just about laziness. They are also about memory. They’re helping me spend less time referring to man pages and more time running commands.

The new, simple rsync transformations

I use rsync quite a bit. Most of the time I only care about moving some data around and I don’t care one bit about permissions, hard links, or crossing file system boundaries. Once every few months, though, I do care about these things, and when I do, they are VERY important.

I always know off the top of my head to run rsync -a for “archive,” but when you’re trying to effectively clone a drive, this isn’t really enough. You might very well need to copy ACLS and extended attributes. You will almost certainly want to handle sparse files correctly.

I don’t know about you, but on the rare occasions when I need these options, I end up checking and rechecking the rsync man page to make sure I didn’t miss anything. Having the whole set of options (-aHAXS in my case) pop up at the press of a button is handy. It’ll be even handier in a few months when I forget all this and need to do it again.

The new, simple dstat/vmstat transformations

I started using dstat some-time last year instead of vmstat. It has much nicer, colorized output and it can monitor quite a bit more things than vmstat. In fact, I have vmstat aliased to dstat (specifically dstat -cpgdms -D total).

The two things I tend to want to monitor with dstat are the usual vmstat numbers and disk I/O. I would often build up a dstat command to monitor a specific block device, but lately I have found that dstat -f is all I really need, so at this point zsh-dwim toggles between vmstat and dstat -f.

Why not just use aliases?

I had already given this a lot of though, even before reading comments about using aliases instead of zsh-dwim on Reddit. Aliases are wonderful and I use them all the time. I have two problems with them, though.

First of all, I have to remember that I have the alias that I need. For commands that I use daily or weekly this should be pretty easy. I don’t make “perfect” clones with rsync often enough to remember that I have an alias for that.

The other problem with aliases, and this is my biggest concern lately, is that they hide the command that you’re actually running. Most of the time, this opacity is welcomed. I really don’t care that when I run vmstat it is actually running a more complex dstat command, but I most definitely want to see which switches are being passed to rsync. It makes it easier to modify them or add more switches.

There are ways around some of this opacity but I’m only willing to do it with my global aliases. Automatically expanding much else would just be too noisy.

Future plans for zsh-dwim

I’m keeping my eye open for more commands that I tend to run in series so that I can turn them into transformations. I’m running pretty low on ideas, though. I’ve optimized my own workflow pretty nicely already. I’m more a sysadmin type, though. I’d really be interested in hearing from some programmer types. There have to be some git-related workflow ideas that I could add to zsh-dwim, but I’m just too light of a git user to know what they are.

If you have any ideas please, don’t hesitate to leave a comment or send me an email! Thoughts and opinions are probably worth more to the zsh-dwim project than code contributions at this point.

SSD Upgrade: Intel X25-M to Crucial M4

| Comments

Back in June I decided that we should put an SSD in Chris’ laptop (a.k.a. my old laptop). I ended up buying a new solid state for myself and moving my Intel X25-M into her laptop.

Shopping for an SSD this time was a very different experience. When I bought my first SSD there was really only one drive worth buying; I just had to wait until I saw the best possible price on that drive. These days the majority of solid-state drives are fast and well made. I just had to find a reasonably priced drive of the size I want and Google a bit just to make sure that it isn’t a lemon.

Show:

Version 1.03c                             ------Sequential Output------- --Sequential Input-  --Random-
                                          -Per Chr- --Block-- -Rewrite-- -Per Chr- --Block--  --Seeks--
Machine                              Size K/sec %CP K/sec %CP  K/sec %CP K/sec %CP K/sec %CP  /sec %CP
Xen Server (4x400 RAID 10)             1G 68909  97 128789 45  48402  18 55770  91 106948  24   326   0
Intel X25-M 80 GB                      8G 56415  89  87157 11  39827   9 69707  98 298590  29 16150  45
Crucial M4 128 GB                     16G   954  98 183205 20 105877   9  4858  99 327088  16  4306 120
Crucial M4 128 GB aes-256, nodiscard  16G   604  94 152764 16  63475   6  4064  98 145506   6  2380  46
Crucial M4 128 GB aes-256, pre-trim   16G   794  97  56071  6  58384   7  3861  98 121742   8 10462 167
Crucial M4 128 GB aes-256, discard    16G   724  94  28447  2  22498   2  3948  96 134872   5  2361  45
Crucial M500 480 GB aes-256           63G   483  99 406072 55 150005  34  1362  99 309761  38 +++++ +++

The Crucial M4 128 GB

I ended up settling on the Crucial M4 128 GB solid state drive. It really isn’t much of an upgrade over the Intel X25-M. It is measurably faster, but I can’t notice the difference. The leap from a traditional hard drive with glacial seek times to a solid-state drive was very noticeable. The X25 is already so fast that the incremental upgrade isn’t easy to feel.

The extra 48 GB of space is very, very noticeable. My gargantuan laptop has room for two hard drives. I was using symlinks to move some larger directories out of my SSD and onto the extra disk, mostly things like my downloads directory, virtual machine images, and larger games like Team Fortress 2.

The Intel X25 usually ran about half full because of this. Today, with all that cruft moved back to the SSD, the Crucial M4 tends to hover right around 75% full.

What the benchmarks say

First I would like to note that something has changed somewhere between my documented X25-M benchmark and today. I don’t currently know why the “per character” speeds on these benchmarks are so low. I do know that I’ve gotten similar results this year from the X25-M, but I didn’t save any of those results.

The Intel X25-M and the Crucial M4 have very comparable read performance on my SATA 2 controller. When I benchmarked the X25-M a few years ago I thought for sure it was maxing out the SATA 2 port. The Crucial M4 proved me wrong, though. It is able to eke out an extra 10%.

The Crucial M4 definitely performs writes faster than the Intel X25-M. It is too bad Bonnie doesn’t measure the small random writes that most early solid-state drives were so terrible at.

Why do I use Bonnie for benchmarks?

I’ve been using Bonnie forever. I remember some scores from almost a decade ago and I bet I could even dig some up out of old backups. I remember watching the folks from 3Ware running Bonnie benchmarks at Linux Expo back in 2001. I’m mostly still running and comparing Bonnie benchmarks for historical reasons.

The Crucial M4’s horrendous TRIM speed

At some point in the last five months I’ve encrypted my entire laptop. This is only partially relevant here because it turns out that I forgot to enable TRIM “pass through” on my encryption layer. I noticed this when my first benchmark for this article came out way slower than I thought it would. I did run a benchmark right after I encrypted the drive, but I either misplaced it or didn’t save it.

The first thing I did when I noticed this was to enable TRIM/discard everywhere I could, manually run fstrim, reboot, and ran another benchmark. That is when I got the horrible, horrible 20 to 30 MB/sec write speeds. It was so awful that I couldn’t even use the laptop while the benchmark was running.

After disabling the discard option, the write speeds improved by 300% and 500%. A freshly trimmed drive with discard turned off runs about as fast as I would hope, right around the maximum speed my CPU can perform AES-256. My laptop was still responsive during the benchmark.

I will definitely be leaving discard turned off on this drive. I’ll just have to manually run fstrim every once in a while. TRIM on the X25-M did not incur this much of a performance penalty.

Was it worth the trouble and cost of upgrading from the Intel X25-M?

No. It was not. The X25-M is still an excellent drive. My real goal here was to remove the spinning drive from another computer. If I weren’t doing that, this wouldn’t have been worth the time, effort, or money.

I firmly believe that the biggest day-to-day advantage of an SSD in a desktop computer is the vastly improved seek times. That order of magnitude leap from a 7200 RPM hard drive to an SSD is the difference you’ll be likely to notice. The other performance improvements are nice, but you’ll never notice them without a stopwatch.

If you’re still using an old-school spinning platter hard drive I think the Crucial M4 is a great value. It is quite speedy and well under a dollar per gigabyte.

(Not Quite) Native Linux Games for an Arcade Cabinet: Arcadia, Omega Race, Star Castle, Zektor and More

| Comments

I recently saw a tweet from Rob Fearon that pointed me towards all of Sokurah’s awesome games over at tardis.dk. I’ve had fun playing Rob’s wonderfully colorful games, most of which have been on my arcade cabinet for a long time. That was a good enough reason for me to check out Sokurah’s games, and boy am I glad I did!

The list of games he’s made is quite large, and so far I’ve only gotten through most of the ones that use vector graphics. I sure do like vector graphics!

Every game from tardis.dk that I tried ran perfectly under Wine. I won’t be at all surprised if the ones I haven’t gotten to yet run just as well.

Most, if not all, of these games are remakes of classic games. They’re remakes of games from computers I never had the chance to see, so I don’t recognize many of them.

Arcadia is on the menu Star Castle on the big screen Zektor screenshot Omega Race 2009 screenshot

Arcadia

This is the one I’ve played the most. It looks easy, but I’ve been playing rather poorly. I died quite a few times before ever finishing the second level. I was very excited to see level three, though, and once I got there I seemed to be on level 5 before I knew it. I must be improving.

Arcadia very much reminds me of playing Parsec on my TI 99/4a when I was a kid. Parsec definitely didn’t use vector graphics, but your ship and some of the enemy ships were wire frames. In Arcadia the enemies attack vertically, in Parsec they attack horizontally. So maybe they’re pretty different. I don’t care, though; it still triggered a memory…

Omega Race 2009

I have no idea what the original Omega Race was like. This game looks like Asteroids with a big rectangular obstacle blocking the center of the screen. It definitely fits in nicely on the arcade cabinet.

Star Castle

This is the only one I recognized, and it is quite an awesome remake of the original. It looks great and plays exactly how you’d expect it to. I’m not sure what else I can say about this one, it is remade so well that anything I would say about this I would probably say about the original!

Zektor

This one is interesting. The first thing that popped into my mind when playing Zektor was “Asteroids as a scrolling shoot ‘em up.” The enemies come at your from the top and, mostly, move towards the bottom. You control a ship that steers and shoots just like in asteroids. Every few levels there is a boss inside a Star Castle-like fortress.

Mapping the Controls

Sokurah did an awesome job here. All the controls were simple enough to map to the arcade buttons. I was able to use a single mapping for all of his games. He even made it extremely easy to exit the games. When you hit escape it asks you to confirm that you would like to quit. He has yes and no mapped to left and right, which is incredibly convenient!

Team Fortress 2 - Linux Steam Beta

| Comments

Native Steam client on Linux

It has been a while…

Steam tells me I haven’t played Team Fortress 2 since March 7th, so my abilities and my memories here may be a little rusty. The Steam Linux Beta seemed like a good excuse to play again, though!

Performance under Wine, eight months ago

The relevant specification of my laptop:

  • Nvidia GT 230M
  • Intel Core i7 2640QM (1.6ghz, 2.4ghz max turbo)

In March, under Wine, I had to run the game at 1280x720 to consistently get more than 30-40 frames per second or more. I remember a specific instance where the frames per second would drop under 20. On the “Upward” map, when waiting to spawn it sometimes shows you a view of pretty much the entire map. That view would drop to under 20 frames per second.

Native performance, today

With the native Linux Team Fortress 2 client I am able to play at 1920x1080 without any problems. I’m mostly seeing better frame rates than I had in March under Wine. I did check out that wide-angle view on the “Upward” map and I’m seeing 25 frames per second there now.

What else changed besides Wine vs Native?

This is exactly the same laptop I was using back in March. I’m running the 304.51 revision of the NVidia driver now; back in March I was likely running 290.x or 295.x.

Valve got multihead right!

I am running with a pair of 1080p LCD panels connected to my laptop. I expected it to do something stupid when I fired up Team Fortress 2. I was pleasantly surprised when it actually did the sanest thing possible.

It opened up a full-screen, borderless window on one of my displays. I had no trouble using my usual window manager hot keys to move the window over to the other monitor. I was completely free to click around the Team Fortress 2 menus or my other open windows. The game didn’t grab the cursor until I was actually actually playing. If I wanted to do something outside the game, all I had to do was hit escape to bring up the in-game menu.

This is exactly how full screen games should work.

Update: A recent update made full-screen support a bit less ideal. Now, when you click away to another window, you “full-screen” Team Fortress 2 is automatically minimized! I fixed this by adding export SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS=0 to my .zshenv file. Now I can comfortably poke around in my web browser in between rounds again!

I might have to put our Team Fortress 2 server back up!

Update: Use the 310.14 driver

I upgraded to the 310.14 driver last night. I installed it the lazy way (apt-get install nvidia-experimental-310). I’m now getting just shy of 70s frame per second on that wide-angle death view on “Upward” instead of 25!

Update: I started using the dx9frames configuration again. I seem to be too used to the lower quality graphics settings. With the default settings, I had kept mistakenly thinking that BLU team players that were on fire were actually on the RED team. I probably could have gotten used to this, but now my frame rates aren’t dipping down as low.

If you use the dx9frames configuration, I highly recommend that you flip the value of glow_outline_effect_enable from “0” to “1.” If you don’t, you’ll have an awful time using “The Scottish Resistance,” and you’ll never know where the cart is.