Archive for the ‘Hardware’ Category

Magic Mouse

Saturday, November 7th, 2009

Yesterday, Amazon finally delivered the Magic Mouse that I had pre-ordered a couple weeks ago. (Since I was in the market for a Bluetooth mouse anyway, this seemed like a perfect excuse to pick one up…)

The final verdict is still out, but I figured I’d share my initial impressions. Obviously, the biggest feature the Magic Mouse adds is Multi-Touch, very much like the iPhone or iPod Touch. And I can confirm that this indeed works flawlessly. Flicking the finger up or down to scroll through windows is an amazing improvement over using a mouse wheel, let along a scroll bar. Momentum scrolling works just like on the iPhone, feels very intuitive, and adds a tangible touch to most applications.

I haven’t gotten used to the two-finger sideways swipe yet, for example to navigate back and forward in the browser. It works well enough, but I’m used to using the keyboard to navigate back and forward or switch tabs, so I don’t typically reach out for the mouse for this task. But if you usually do, it should come in handy.

I’ve never owned a Bluetooth mouse before and wasn’t 100% sure what to expect, but I have no complaints at all about this. Pairing it with my Macbook was very easy, and it works just as well as a USB mouse, without any annoying cables. This is especially handy for me because I tend to frequently switch the mouse between my left and right hands to suppress RSI symptoms, and not having to deal with a cable definitely makes this easier.

Now for the things that are not that great:

Most importantly, the tracking is way too slow, almost to the point of not being usable at all. The acceleration is high enough, so when moving the mouse quickly it is possible to move it from one edge of the screen to the other without having to lift it. But this doesn’t help for finer movements, such as selecting an item from a menu or a toolbar. Many people are complaining about this issue, but thankfully this article describes a workaround in form of a terminal command to change the scaling factor. You can also use the MouseZoom tool to accomplish the same thing using a convenient preference pane. It’s old but works just fine in Snow Leopard.

I’m now running on the highest possible scaling setting, which is a major improvement over the standard configuration, though I might end up tuning things down a bit. Overall I’ve never been very happy with the mouse support in OSX. The acceleration curve just feels off to me — it starts off too slow, then accelerates too quickly. This article describes this issue in detail, and I agree with it. It also describes some solutions, such as USB Overdrive and SteerMouse. I have bought and used SteerMouse in the past, and it worked pretty well for me then. It doesn’t support the Magic Mouse yet, and according to the website they are currently evaluating whether to add this functionality. I’m not sure if any of these options are compatible with the Magic Mouse, which I’m sure requires its own driver to support the Multi-Touch functionality. I’ll have to experiment with this…

The mouse button (a single button that is sensitive to where it’s being touched and can therefore emulate left and right mouse buttons) works ok, but clicking requires a bit too much effort for my taste (my previous Logitech mouse was significantly more sensitive, requiring barely any pressure). In fact I find operations that require moving the mouse with the button pressed (such as when selecting several paragraphs of text in a document) somewhat difficult.

Last not least, I miss having a middle mouse button, mainly to open links in new browser tabs or copy & paste text in the terminal. I suppose I will have to get used to holding down the Command key instead. I wonder if the mouse surface is sensitive enough that it could differentiate between left, middle, and right clicks.

Moving the mouse over my wooden desk is fairly noisy. Unlike my Logitech mouse, which was quiet and smooth, the Magic Mouse almost feels like it’s scraping the surface. I may end up getting a mouse pad for this reason, but this seems to defeat the purpose of the new and improved laser technology that works on any surface.

In terms of ergonomics it’s not the best mouse in the world, but it’s not horrible either. It’s still too early to tell how well I adjust to it. We’ll see in a few weeks…

In conclusion, the Magic Mouse is definitely a fascinating piece of technology, and I am excited about future iterations of this or similar products. I absolutely love the touch based interface of my iPhone, and the Magic Mouse does a good job at bringing some of this to the desktop. But it certainly has its share of flaws. Hopefully a driver update will resolve the slow tracking issue soon, but in the mean time the workaround described above will need to suffice. As for the other issues: If you can, I recommend you try out the mouse in the Apple Store first, to see how it feels for you.

Upgrading an older MacBook Pro to 6GB of RAM

Saturday, September 5th, 2009

If you own a MacBook Pro and would like to upgrade to more than 4GB of RAM but think that your model does not support this, you may want to read the rest of this article.

I bought a MacBook Pro 17″ in April 2008, as my primary development machine. I knew that the standard config with 2GB of RAM wouldn’t be enough for my purposes, but I also wasn’t about to spend a ridiculous amount of money on an official memory upgrade from Apple, so I picked up two cheap G.SKILL 2GB DIMMs from Newegg.

This worked great for me so far, but even with 4GB of RAM, I occasionally ran into memory limits. For example I sometimes work on iPhone and complementary Rails apps at the same time, and having both Xcode (plus Interface Builder and the iPhone Simulator) and a Rails app, IDE, etc. running at the same time definitely uses a fair amount of memory. Especially if I use RubyMine (which is pretty nice, by the way, but a major memory hog). That’s one of the reasons why I often still work with a regular text editor such as TextMate. The situation gets even worse when I need to run a virtual machine, such as for IE browser testing. And of course there are all the other memory hungry apps that tend to be running all the time (Firefox and / or Safari, iTunes, etc.).

The last time I researched potential memory upgrades, I quickly discovered that my model (apparently) only supports a maximum of 4GB, so I gave up.

But this time I complained on Twitter, and a reply prompted me to research this issue more closely. Well, it turns out that many MacBook Pro models do indeed unofficially support 6GB of RAM, in form of 4GB + 2GB DIMMs. This MacRumors Guide has all the info you need. My model appears to be the Rev. E (as identified by the date of purchase, as well as the CPU frequency, video card, and video memory). And sure enough, the Rev. E and F models can handle up to 6GB of RAM.

Since I was already using G.SKILL memory, I opted for a 4GB G.SKILL DIMM (currently $129 at NewEgg). I would not recommend mixing DIMMs from different manufacturers, and in fact I have read some reports of people having trouble getting these configs to work.

The actual memory upgrade process is quick and easy (at least on the pre-unibody models), and Apple provides a convenient guide.

I should point out that due to the mixed (4GB + 2GB) memory configuration, you lose the Dual Channel capability. But based on what I read, this only affects certain types of apps and makes little difference in practice. I definitely didn’t notice any lower performance after the upgrade.

The increased memory means that my system rarely (if ever) has to swap. Now I can run my whole development stack as well as two virtual machines (Windows and Linux) and the machine is still very responsive.

Now I just have to find some new memory intensive applications to bring my system down to its knees… ;)

Update: This upgrade was the single biggest bang for the buck and has made a tremendous difference on my system. Having 6GB instead of 4GB was exactly the additional RAM I needed to be able to run all my various development tools at the same time. I am now running several Rails apps and have one RubyMine as well as two Xcode projects open without any issues, along with the usual productivity software, iTunes, etc. Definitely highly recommended!

Hacking the D-Link DNS-321 NAS

Wednesday, November 26th, 2008

For some reason I derive immense gratification from hacking cheap commodity consumer devices and making them do much more than they were originally designed to. Not that I can’t claim all that much credit (as I generally just apply readily available hacks that others have figured out), but still…

Some of my favorite past hacks include:

  • Original Xbox: I haven’t played games on it for years, but with XBMC on it, it remains a formidable media center.
  • Buffalo WHR-G54S: Essentially a cheap Linksys router clone, but by replacing the stock firmware it can support features typically present on much more expensive routers (such as sophisticated firewall or QoS functionality). I was running the powerful dd-wrt firmware on it for a while, but later switched to the Tomato firmware (also here), which has most of the same features but is a lot easier to use.
  • Tivo: Back when I bought my first 40GB Tivo, I hacked it to add a 120GB drive (for a fraction of the normal cost).

My latest addition is the DNS-321 Network Storage Enclosure:

41XJJ24sDpL._SL160_.jpg

I was previously using an external USB drive attached to my Airport Extreme router, but decided that I wanted to upgrade to a less flakey and fully redundant (but still affordable) storage system for our home. The DNS-321 (or its older and slightly more featureful cousin, the DNS-323) fits the bill. Out of the box, it makes two SATA drives available over Gigabit ethernet via SMB. It supports both Raid 0 (striping) and Raid 1 (mirroring), but I’m using the latter for redundancy. With two 1TB hard drives, this gives me 1 TB of convenient, redundant, and reasonably fast storage, accessible from any laptop or desktop in our house (and our Xbox running XBMC). For solid performance as well as low power usage and noise, Western Digital Caviar GreenPower 1TB hard drives are highly recommended (and affordable, at around $110 each).

So all of this is already quite a decent package out of the box, but it can be extended much beyond these capabilities (and very easily, too!) All it takes is installing one of several hacks for the DNS-323 / DNS-321. The device turns out to be a full Linux computer (albeit with a small CPU and little RAM), and all it takes to enable all the Linux goodness is to copy a few files to the drive. It turns out that it looks for an executable file called fun_plug upon startup and executes this if it exists. Various hacks use this mechanism to deploy all kinds of applications, enable telnet or ssh, and more.

The simplest way to get started is to install the fonz fun_plug (also known as ffp). The instructions (or these alternative instructions) are pretty simple and straightforward to follow. After the installation, you are rewarded with telnet access to the device, but you will want to make sure to follow the rest of the instructions and set up a root password. I also recommend disabling telnet and enabling ssh instead. You now have a full Linux box at your disposal.

That’s pretty much where I’m at right now. I’m still trying to decide what to do with the device, but the possibilities are wide open. Many applications are either included with or available for ffp, including media apps like Mediatomb or Musicbrowser, server apps such as MySQL, Lighttpd, and PHP (allowing you to run a full LAMP stack!), P2P / Bittorrent clients like Transmission, rsync (so you can schedule offsite backups), subversion, and many more. Apps can be installed with funpkg, a simple package management tool.

There are also options beyond ffp, such as the apparently more powerful Optware package management system that can be installed on top of it. A huge number of packages are available for Opsware. This even includes Ruby and Git, so I’ll definitely have to play with this when I get a chance.

Not bad for a small $130 device. :)

Hacking the Buffalo WHR-G54S Wireless Router

Tuesday, October 31st, 2006

Last week I added a new device to the list of hacked devices in my house, next to my hacked Tivo and Xbox: the Buffalo WHR-G54S wireless router.

My D-Link DI-624 router had been giving me trouble for a while, and since I had heard a lot about the various open source firmware alternatives that are available for many routers, I decided to give this a try.

One of the most popular router firmwares is DD-WRT, which is based on the original Linksys firmware that Linksys had to release as open source in order to comply with the GPL.

The firmware was originally intended for Linksys routers, but there are many other compatible models, including the Buffalo WHR-G54S router I decided to go for because of its cheaper price, while being 100% compatible. The DD-WRT Wiki contains a full list of supported devices, along with customized installation instructions.

I initially had some trouble flashing the firmware from my Mac, but once I put the router behind a switch and performed the update from my Linux box, I was able to get it working. I have not had a chance to fully explore the new firmware, but so far the router has been working great. The speed is very nice.

One of the main things I intend to play with over the next few weeks is the QoS (Quality of Service) support that DD-WRT adds. It sounds very promising and should allow me to prioritize online gaming or HTTP traffic over P2P traffic, for example.

A full list of DD-WRT features can be found here.

Mac Envy

Tuesday, January 10th, 2006

I so need to get me one of these babies: MacBook Pro.

The specs are quite awesome:

  • 15.4-inch TFT display with 1440×900 resolution
  • 1.83GHz Intel Core Duo processor with 2MB shared L2 Cache
  • 667MHz frontside bus
  • 1GB (single SO-DIMM) 667MHz DDR2 SDRAM (PC2-5300)
  • 100GB 5400rpm Serial ATA hard drive
  • Slot-load SuperDrive (DVD±RW/CD-RW)
  • ATI Mobility Radeon X1600 with 256MB GDDR3 memory
  • iSight camera
  • 801.11g and Bluetooth 2.0
  • Gigabit Ethernet
  • Apple Remote
  • iLife 06

Too bad I don’t have $2500 to spare right now… Let’s hope for a big tax refund this year.

Still, I’m somewhat surprised that Apple gave up on the PowerBook brand that they spent a lot of time on developing. But then again I have no doubt that the new MacBook brand will catch on very quickly…

Update: Maybe I should hold off. Based on this inside scoop, some really cool features might be coming our way soon…

External Hard Drives / Linux Device Names

Wednesday, January 4th, 2006

I just added another external hard drive to my Linux system, and now I’m wondering about a few potential issues. At this point I have one permanently attached external hard drive, one backup hard drive that I only hook up occasionally, my iPod (which I mostly use on my Windows laptop because I don’t want to miss out on iTunes, but which I want to be able to occasionally hook up to my Linux box to transfer files, etc.), and a USB thumb drive.

Linux does a nice job of recognizing and mounting my drives whenever I attach them, but it seems to assign device names based on the order that the drives are connected. In my case for example, “dev/sda” and “dev/sdb” are used by two internal drives. “dev/sdc” is generally assigned to my permanently attached external drive. The next drive I attach after that (whether it is my backup drive, my iPod, or my USB thumb drive) gets assigned to “dev/sdd”.

This obviously is not ideal, as I want to be able to auto-mount all my drives based on appropriate entries in the fstab, i.e. “/media/ipod”, “/media/backup”, etc. My initial Google searches have been fruitless, but it really seems like there should be some way of permanently associating a particular drive with a device name. I’m not sure what kind of unique identifiers hard drives have, but there’s got to be something suitable. If nothing else, even basing this association on the drive model (as it is displayed in “/proc/scsi/scsi” on my Ubuntu system) would work for me, although this would generally be a less ideal solution since one might own several drives of the same model.

Anyway, if anybody is aware of any elegant solutions to this problem, please leave a comment.

Update: I was able to get this working. It turns out that there are actually several different ways to configure this:

  • In the fstab, specify LABEL=Label_Name instead of a device name. One downside of this approach is that volume labels aren’t guaranteed to be unique, so you could get some unexpected results, particularly if you hook up somebody else’s external drive.
  • Instead of a label, you can also specify a UUID. Simply call the “blkid” command to print the UUIDs for all your drives, and then add UUID=Your_UUID to your fstab. This is what I ended up doing and it works like a charm.
  • Use the “devlabel” script to set up symbolic links to devices that automatically get updated when the actual device changes. Then add an entry to fstab that uses the new symbolic device name.

You can find additional information here and here.

Thanks to Carl for pointing me in the right direction.

Laptop Woes

Saturday, December 4th, 2004

For some reason it seems like I’m just not very lucky with computers right now…

After my recent (and still somewhat ongoing) PC issues, my laptop gave up over the Thanksgiving weekend. This is a Compaq Presario R3000Z that is less than half a year old and that I’m otherwise extremely happy with. All of a sudden, the screen stopped working. Of course, I couldn’t resist taking the computer apart to see if this problem might have a simple cause, such as a disconnected cable. Unfortunately, this was not the case, and I decided to give up my own investigation and call upon the warranty instead.

The first couple of times I called Compaq / HP support, it was after hours in the US, and I was therefore redirected to their service center in India. I spoke to several very friendly and helpful customer service representatives who all agreed that I should send my laptop in for repair or replacement. Unfortunately, neither of them was able to take an RMA order because their database was down at the time. This continued for at least 1 1/2 days, after which I had enough… The problem was supposedly going to be fixed in another hour or two, but that’s what I had been told the previous day as well.

The next day, I had better luck. I called in the morning and got through to someone in the USA, who immediately placed an RMA order for me and arranged for a FedEx pickup the next day. After that, everything went extremely smooth. FedEx picked up the laptop on Tuesday, it arrived at Compaq / HP on Wednesday, they shipped the fixed laptop on Thursday, and I received it on Friday.

Everything is working fine again. It seems like they only had to replace the backlight, or maybe the entire LCD screen.

Unable to install Windows

Saturday, December 4th, 2004

After some research and comparison shopping, I decided to buy the following components to replace my defective motherboard:

  • Athlon64 3000+ CPU, Winchester core with 90nm process. These run significantly cooler than their older 0.13Micron siblings and have better overclocking potential.
  • Asus A8V Deluxe motherboard. This VIA K8T800Pro based board has a Socket 939 that supports the latest Winchester core Athlons and hopefully will be supported for a while. More importantly for me, the board has 3 regular (Parallel ATA) IDE connectors in addition to the 4 SATA connectors. Most motherboards these days seem to be moving towards SATA, which is certainly a good thing, but as I still have quite a few Parallel ATA devices (DVD-ROM, DVD-R/W, and 4 hard drives), I need at least 3 PATA connectors. Of course, I could always buy a separate controller PCI card, but I prefer this simpler solution. The A8V Deluxe has been getting good reviews, so I should be fine.
  • 2 Corsair 512MB PC3200 DIMMs. I went with their value line, which may not yield the same performance as some of the higher quality memory, but nonetheless it is officially supported by my motherboard and supports dual channel.

For the most part, I am very happy with this combination, although I still have some serious problems. Read below for more…

(more…)

Update on my PC

Saturday, November 13th, 2004

It turned out that it’s not the power supply. I guess I should have known, as the LEDs on the motherboard still light up. At this point it seems most likely that the motherboard is fried. This itself isn’t too bad, as my motherboard and processor are about 2 1/2 years old now and they weren’t exactly cutting edge back then. So I guess it’s time to get a new motherboard and processor. Time to start doing my research on the current generation of motherboards and processors. I don’t tend to keep up with the rapid developments in these fields, and I usually just invest the time to get up to speed when it’s time to buy new hardware.

The problem is that buying a new motherboard often has a cascading effect… The last time I bought a new motherboard, I had to buy new RAM as well. I have 1GB of PC 2100 RAM which I’d rather not replace with the preferred RAM type du jour, but I have a feeling that the new motherboard generation will have updated memory requirements. And I’ve also thought about replacing my case for a while, because it’s not all that great. But at that point it might be more economic to buy an entirely new PC (which I haven’t done in about 8 years), as these often go on sale for much less than the sum of their parts these days. Then again, I really don’t need any of the other peripherals, as I have a good sound card, a decent video card, a DVD-ROM, DVD burner, and several large HDs.

Sigh

Time to hit the following websites:

AnandTech Tom’s Hardware Guide xpBargains

If you have any good suggestions on which motherboard to buy (I am somewhat biased towards Athlon processors but still need to do my research and compare prices), please leave a comment. Up to now, I was very happy with my Gigabyte GA-7VRXP, particularly because of its secondary IDE controller, which came in handy because I have more than 4 IDE devices. I would like to buy another motherboard with this feature, although I suppose I could buy a separate IDE controller card.

Argh… My Computer Just Died

Wednesday, November 10th, 2004

This morning my PC’s video display suddenly shut down. When I tried to reboot it, it got through the initial boot sequence and died again right after it switched into graphics mode during the Windows startup. As I had similar problems with my previous ATI card, I wasn’t particularly surprised… I turned the PC off and decided to troubleshoot the problem after work.

After I got back, I tried to start the PC again. It actually managed to boot into Windows and display the login screen, but it died immediately afterwards, before I even had a chance to log in. All subsequent attempts to boot failed even sooner. I actually noticed a little bit of a burnt smell, but I couldn’t quite place where it was coming from. Upon opening the case I discovered that one of the case fans was no longer functioning. The CPU fan and the video card fans were running fine, and the hard disks seemed to be spinning up as well, so I blamed the fan. I left the computer for a few minutes, and now it is completely dead. Turning on the PC has no effect whatsoever – no fans start up, the hard disks don’t start up, etc. The only odd thing is that two LEDs on the motherboard are still on.

At this point, I suspect the power supply. It wouldn’t be the first power supply that died on me… The fact that the LEDs are still on is kind of weird, though. Guess I’ll have to dig up my old 300W power supply, which I ditched in favor of this 500W supply fairly recently, when I ran into problems with my previous ATI video card that appeared to be (but turned out not to be) power related. Wish me luck!

At least I still have my laptop and my Xbox. :)