Wednesday, September 27, 2006

The move from Netgear MP101 to Xbox Media Center

For some time now, I've been using a Netgear MP101 with the free TwonkyVision MusicServer. Unfortunately, the free version of MusicServer is no longer available from TwonkyVision as it is now part of the TwonkyMedia package, but you can still get it from places like the "Files" section of the NetgearMP101 Yahoo! Group. Even though the MP101 includes wireless B support, in order to have optimum playback performance, I used two Belkin Wireless G routers bridged together and connected the MP101 to the bridged router via ethernet. Using the matched routers to do the wireless communication gives significant communications improvements over using the wireless B. Well, that was well and good for music, but I wanted to do more (view pictures, videos, etc). I first tried out MythTV and MediaPortal on a spare computer. They were ok, though a bit slow (particularly in startup time) and MythTV proved a little difficult to get working with the hardware I had. Though the biggest factor in not going that route was that my wife was not happy with the computer case sitting next to the entertainment center. Yes, I could buy a small form-factor case, motherboard, etc. and build a small PC to look like another audio component to fit in the entertainment canter, but I wanted to do this cheaply. Then I ran into this article in Popular Science (printed edition) to build an "Xbox Media Monster". I knew you could hack Xboxes to run Linux or make them into media centers, but I thought you needed a modchip or good soldering skills (which I don't have), but apparently now you no longer need to do any hardware modifications! The instructions in the printed Popular Science article were a little too general, so I found more complete instructions at http://www.productwiki.com/microsoft_xbox/article/how_to_go_from_xbox_to_xbox_media_center_in_30_minutes.html which include the specific part numbers you need for the original MechAssault. So, I made a quick stop to GameStop to buy a used Xbox, an Action Replay memory device, and an original copy of the game MechAssault. Finding the original MechAssault was the only tricky part and required me to go to a second store. Then I simply followed the instructions and I was up and running XBMC (XBox Media Center) in no time. I used the XBMC BLINGBLING edition as it was the most up-to-date edition I could find. I'm loving my Xbox Media Center now. Besides being able to view and stream my pictures, music, and videos from my Linux server, XBMC also contains a scripting ability for which many scripts are available to do things like view the latest videos on YouTube, Google Videos, or your favorite community video source, stream audio from Shoutcast, Live365, or other audio sources, view current weather radar, TV listings, etc. If there's a media source online, someone probably has a script to view it via XBMC. XBMC can play video DVD and audio CDs (and rip them for you). You can use Xlink Kai to play games across the internet instead of a normal LAN (Local Area Network). Additionally, you can install Xbox apps like dvd2xbox to rip your Xbox games to the Xbox hard drive. Extracting your favorite game to the hard drive can help game performance. Another Xbox application you may want to try is MAMEoX to play your favorite classic arcade game on your Xbox. XBMC includes a web server so you can remotely control your Xbox, and an FTP server to move files to/from your Xbox. All in all, it's an impressive system for around $140 (for Xbox and all necessary accessories).

Thursday, September 21, 2006

Creating Mashups

For those of you interested in creating mashups (a website or web application that combines content from more than one source - wikipedia), then ProgrammableWeb is the place to go!

ProgrammableWeb showcases the latest mashup sites. For each site showcased, they provide a list of the mashup APIs used. They also have an API dashboard which provides a comprehensive database of API resources available to you as a developer and they have lots of tutorials and articles.

At the time of this writting, there are 1001 mashup sites showcased.

Using IE in Linux

If you're a web developer, you mostly likely have multiple browsers installed, or readily available to you, to test your web pages with. This is even more essential if you're building AJAX applications as there are many norotious variances between JavaScript and CSS implementations - particularly between Internet Explorer and more W3C compliant browsers like Mozilla, Firefox, and Opera.

To use IE in Linux, you have a few options.

  1. Use WINE (Windows Emulator)
  2. Use a virtual machine like VMWARE
  3. Connect remotely to a Windows machine with something like VNC, NX, or Citrix.
I've used all three of these methods, and they all have their pros and cons, which it not really the point of this article, but I'll provide a few.
  • WINE

    pros

    free, good performance and minimal memory requirements

    cons

    can be hard to setup, may not always work due to emulation problems (ex. APIs not implmented in WINE)

  • VMWARE

    pros

    fully supported, descent performance with sufficient hardware

    cons

    not free, resource intensive, takes longer to startup

  • Remote connection

    pros

    real windows machine

    cons

    requires a second machine, may have network latency


To address the "hard to setup" aspect of getting IE to run in WINE, I've used winetools before which works well, but it's really meant to set up a whole lot more than just IE. I've recently run across IEs4Linux which is a more straightforward method to simply set up IE in Linux under Wine.

Speeding up Linux

I'm a happy Linux user and like to tweak my operating systems to get as much performance out of them as possible, though not at the expense of sacrificing too much user experience niceties.
This article posses 7 Ways to Speed Up Your Linux Desktop which in a nutshell are:

  1. Use a Minimalistic Window Manager/Desktop Environment
  2. Customizing GNOME, KDE, or Xfce
  3. Get More RAM
  4. Kill Unneeded Processes
  5. Remove Virtual Terminals
  6. Use “Small” Applications
  7. Remove Start-Up Services
Like I said, I still want a nice user experience, so I'm sticking with KDE and Firefox for my browser (for many reasons, not the least of which is that I can synchronize bookmarks and plugins across multiple computers and OSes for a common Internet experience). However, the other tips can be useful.

Web Design Trends

This article analyzes some of the current trends in web design. It breaks them down into the following 8 categories:

  • Web Desktop Style
  • Silver Orange Style
  • Apple Style
  • Microsoft Style
  • Magazine Style
  • Rounded Plain Style
  • Web 2.0 Design Style
  • Adobe / Macromedia Style
For each style, the distinctive elements for each style are described, a sample screenshot snippet is provided as well a links to sites illustrating these styles, then pros and cons for using each style is given. Perhaps this will be useful for deciding how to design your next webpage.

Web Metrics

Good metrics for web sites are nearly as ellusive as good metrics in software development. The most frequently used metric in software is probably the lines of code (LOC) count which totally rewards inefficient, bloated, cut-n-paste style coding over well designed and reusable coding styles. Similarly, web metrics like hit counts and page views can similarly reward inefficient web coding styles (such as lots of extra page elements (graphics) to be downloaded, or excessive numbers of pages to be navigated to get the content).

This article has a nice sumary of some metrics like pageviews and reach and how redesigning some populate sites to use newer techniques like AJAX and RSS would significantly change their current metrics. It doesn't offer a solution for a good metric, but demonstrates the need for one.

In the aforementioned article, it has a link for specifically measuring AJAX applications with Analytics which is useful information.

Wednesday, September 20, 2006

No phishing allowed

I ran across the OpenDNS.org service the other day from some technology video podcast where David Ulevitch (founder of OpenDNS) was being interviewed about it. You simply set the DNS in your router (or on your PC) to the following two addresses:

  • 208.67.222.222
  • 208.67.220.220
Then, whenever you attempt to access a phishing (scam) site, it will instead give you a message that the site you attempted to access was a phishing site.

This service will also correct obvious typos in your URL which can be handy too.

They also claim to be a faster DNS because the have "a really big, smart cache" and are "geographically distributed", however I don't see how accessing their regional server can be faster than the local DNS on your ISP network, but I'm currently using this service and it's plenty fast.