TechNazgul RSS

Wednesday, December 15, 2010

Autostarting irexec & irxevent with XBMC, part two

Now that we’ve set up our scripts for restarting XBMC and irexec/irxeevnt, we need to go about ensuring that irexec is running at all times so that the scripts work when executed via remote.  There are two situations we need to plan for. 


  1. Auto-starting the irexec daemon on boot, and
  2. Restarting the daemon after resuming from suspend

In addition, we’ll discuss a way to periodically check if irexec has failed and recover if necessary.

1. Autostarting irexec on boot up.

This is done by placing your irexec start script in the /etc/init.d directory.  From within that directory:

$  sudo nano irexec

Then, copy the following into your script (replace xbmc with your username where necessary):

#! /bin/bash
sudo -u root irexec -d /home/xbmc/.lircrc &

#Optional logging, remove hashes to troubleshoot.

#echo $(date) ": XBMC-etc.init.d script executed" >> /home/xbmc/etc-init.d-irexec.log

Next, use update-rc.d to configure this script to run on boot.

$ sudo update-rc.d irexec defaults

This should set up irexec to autostart on boot and run as root (which is necessary for it to work correctly). 


2. Restarting the irexec daemon after resuming from suspend


Now that we have irexec starting on boot, we also have to set up Linux so that it restarts the program after it has been suspended (as otherwise it does not start itself).  The way to do this is through use of the scripts in this directory:  /etc/pm/sleep.d


In this directory, you will likely see a few other scripts and can pull one out as an example of what we need to accomplish for irexec.  In XBMC-Live, a script already exists called 99lirc-resume, which we can edit with one additional line to start up irexec as well.


Below is the modified 99lirc-resume script I’m using.  The important part is in the thaw|resume section, where we tell the OS to start up lirc and irexec upon restore from standby.  Note here again that you have to call irexec as root for it to function properly.  Also remember to replace xbmc with your own username.



#file => /etc/pm/sleep.d/99lirc-resume

# This script will restart LIRC and IREXEC upon resume.

. /usr/lib/pm-utils/functions


case "$1" in

        /etc/init.d/lirc stop

         /etc/init.d/lirc start

          sudo -u root irexec -d /home/xbmc/.lircrc &


#    Optional logging below for troubleshooting.  Remove the hash to enable.  

#    echo $(date) ": XBMC-hibernate script executed" >> /home/xbmc/.lirc-resume.log


exit $?


Once this is in place, you can test it by manually killing irexec (sudo pkill irexec) and then suspending and resuming.  You should see irexec running as root when you resume.


3. Using cron to check for irexec (and recover if needed)


This step is optional, but it’s another wife-proofing step that I feel better having in place.  Using cron, we can check periodically (as frequently as every minute up to any frequency you desire) that irexec continues to run in the background.


To do so, we call up crontab for the root user (since irexec must be run as root, but you knew that by now, right?)  :)


$ sudo crontab –e –u root

(choose nano for your editor if prompted)


Within cron, add this (change your username if needed):

# m h  dom mon dow   command
0-59/5 * * * * /home/xbmc/.xbmc/userdata/scripts/


This is an example of a cron job that runs our script every five minutes.  (This is the script we created in the previous post to check if irexec is running, and if not, fire up an instance).  If you wanted to run it every hour, you’d change the “0-59/5” to “0-59/1” and voila.


And that’s it, with these 3 steps in place, you should have a nearly bullet-proof irexec implementation. Once you have the irexec daemon running reliably, you can use your remote to issue any variety of other commands.  For example, you might want to enable a hard reboot command via remote to allow recovery from serious system crashes, etc.  Or, maybe you’d like to switch between XBMC & MythTV via remote.  The possibilities are endless once you have the basic framework in place.


Technorati Tags: ,,,

Tuesday, December 14, 2010

Using and autostarting irexec & irxevent with XBMC

The irexec application allows for customized scripts to be run based on input received from a remote control. When using XBMC running on Linux, this program can be very useful to do things like force a shutdown of the box, force an XBMC restart, etc. While XBMC itself has many remote functions built in, if XBMC hangs for some reason, having a remote-activated script to kill and restart XBMC is extremely handy.  If the reasons for doing this aren’t immediately apparent to you, imagine this post being renamed as “how to enable your wife-friendly XBMC kill switch.”

The problem is that getting irexec to work properly and to autostart after a reboot or standby is annoyingly difficult for people not deeply familiar with Linux (which includes me).  Adding to the complexity is the fact that irexec must be run as root for it to function properly.


Below are the steps I followed to allow irexec to autostart at boot and to keep running after resuming from standby as well.  I used other guides (this one in particular) as a starting point, and then had to branch off on my own to keep irexec running after going into standby and resuming.


Finally, a disclaimer. I am NOT a Linux expert.  This is the way I found to work for me, and I’m open to better ways to do it. If you have suggested improvements, let me know in the comments.


Step-by-Step Tutorial:


1. Make sure you have LIRC & irxevent

$ sudo apt-get install lirc

$ sudo apt-get install lirc-x


2. Create the .lircrc configuration file in your home directory

$ nano .lircrc


Below is an example .lircrc file that calls an XBMC restart script when the “Print” button is pressed on the remote.  More info on remote mapping can be found here, though in this case, using irexec takes care of all necessary mapping for us.


    prog = irexec
    button = Print
    config = /home/username/.xbmc/userdata/scripts/ &


Note that I’ve chosen to locate my script in my xbmc userdata folder, though you can put your script anywhere so long as you properly link to it.  I just like to keep it here as it’s one less thing to worry about losing when migrating between XBMC versions.


3. Create the script (in the location specified in #2 above)

(Note that killing a running command requires root access, which we’ll provide for later.)


# Kill XBMC and restart
echo "XBMC running, force restart."
sudo -u root /etc/init.d/xbmc-live stop

#Optional logging for troubleshooting.  Remove the hash to enable

#echo $(date) ": XBMC-live stop executed" >> /home/xbmc/.restart-log.log
sleep 2
sudo -u root /etc/init.d/xbmc-live restart

#Optional logging for troubleshooting.  Remove the hash to enable

#echo $(date) ": XBMC-live RESTART executed" >> /home/xbmc/.restart-log.log


4. Create your irexec restart script (in the location you link to in step #2).  Remember to replace all instances of xbmc in the script below with your own username (if it is not xbmc).




#filename /home/username/.xbmc/userdata/scripts/


# Test to see if irxevent is running first, if so kill it, then restart
if ps -ef|grep -v grep|grep -i irxevent
ps aux|grep -i xbmc|grep -i irxevent |awk '{print $2}'|xargs kill
# Do nothing
echo "irxevent already dead!"
# Test to see if irexec is running first, if so kill it, then restart
if ps -ef|grep -v grep|grep -vi start|grep -i irexec
ps aux|grep -i xbmc|grep -i irexec |grep -vi start|awk '{print $2}'|xargs kill
# Do nothing
echo "irexec already dead!"
#test to see if an instance of irxevent is already running
if ps -ef|grep -v grep|grep irxevent
# do nothing
echo "irxevent already running"
# start irxevent
irxevent /home/xbmc/.lircrc &
#test to see if an instance of irexec is already running
if ps -ef|grep -v grep|grep irexec
# do nothing
echo "irexec already running"
# start irexec

irexec -d /home/xbmc/.lircrc &


5.  Change the file properties to make your scripts executable. Run the following command in your scripts folder.


$ chmod +x *.sh


6. Allow these scripts to be executed without a root password prompt

If you don’t do this, the scripts will run and require a password, which will never work since you are going to be accessing them via remote control.  Do this at your own risk as obviously you are opening up some holes here allowing scripts to run without a password prompt. (though I believe the risk to be minimal since you are confining it to specific scripts)


Open up your sudoers file with this command:

$ sudo visudo


Add these line to the bottom of your file:

xbmc ALL=(ALL) NOPASSWD:/home/xbmc/.xbmc/userdata/scripts/

xbmc ALL=(ALL) NOPASSWD:/home/xbmc/.xbmc/userdata/scripts/


This allows the user xbmc (which you have to change if xbmc is not your user) to execute specific scripts without a password prompt.


6.  Test your restartxbmc script.  Run these command from your scripts folder.


$ sudo –k  (To kill your sudo rights and ensure we’re testing w/o sudo access)



(at this point, watch your display and XBMC should stop and restart)


Next, we will test our script to start/restart irexec.


7. Test your restartIR script.

First, see if irexec is running (which it probably is not):

$ ps aux|grep irexec 


Most likely, you’ll just get back a result showing your grep statement containing irexec, which is fine.  We just want to confirm whether it is or is not running before launching the script.


Now manually run the script.

$ sudo sh


Check again if irexec is running:

$ ps aux|grep irexec 

This time you should see:

root     24997  0.0  0.0   1780   220 ?        Ss   09:46   0:00 irexec -d /home/xbmc/.lircrc

Note that irexec must be running under the root user to work


(If this worked as planned, take a deep breath, you’ve accomplished more than half the task)


Now that we’ve done this much, we have to test that a remote button press is also capable of restarting XBMC.  For the remote button to execute the script, you will need to start the irexec daemon using the command above (if you didn’t already).


8. Take another deep breath, and press the Print button on your remote

This uses the .lircrc file we created in step 2 to call the script to restart XBMC.  When you press print, XBMC should be forcibly restarted.  If not, start at #1 and try again.  If you’re ready for more… read on.


<End of Tutorial, Part 1>


Great… so we have this much working… the next step, covered in a separate post, is how to get irexec to continue running after resuming from suspend and upon boot up.


Technorati Tags: ,,,

Monday, December 13, 2010

Windows – How to restore windows that appear off screen

This falls into the category of frequent and annoying problems! I end up Googling this every time it happens, and here is how you fix it. This works even if you use a multi-monitor task bar like DisplayFusion offers.


  • Use ALT+TAB to switch to the off-screen application.
  • Press ALT-SPACE to bring up the system menu (you won't see it because it is off screen)
  • Press R to select the "Restore" menu choice to ensure the windows isn't is maximized (you can not move it if it is maximized)
  • Press ALT-SPACE again, then M to select the "Move" menu choice.
  • Press one of the arrow keys to initiate the movement.
  • Now just use the mouse to place the window where you want.



Technorati Tags: ,

Thursday, November 11, 2010

Solved: Kindle for PC won’t download books


A few weeks ago, Kindle for PC on my Windows 7 Ultimate x64 computer suddenly refused to download books to my computer. I could open the Kindle for PC App and see them all in the 'archive’ section, but when I double-clicked to open them, the little icon started spinning as if they were downloading, but nothing was actually happening.  After fighting this for quite awhile on my own, I called Amazon, who after getting me to Level 3 support was able to confirm the (amazingly simple and totally undocumented) fix.


Solution:  Right click your shortcut icon for Kindle for PC and change the compatibility settings to run in Windows XP (SP 2) mode.  This was all it took.  Given that they haven’t documented this anywhere that I could find, I decided to put the solution up here. Hopefully future Googlers will have more luck finding this solution than I did.

Monday, October 25, 2010

AT&T uVerse Residential Gateway Timeout with DD-WRT

ddwrt_logoThis week I upgraded to a new DD-WRT install on my Asus RT-N16 router. What I found was that EXACTLY every 10 minutes, the router would drop all connections momentarily and then reconnect.  I drove myself nuts for awhile trying to figure this out before finding this information on DD-WRT’s bug tracking site:


The default configuration of the DD-WRT firewall blocks DHCP renewal responses which causes it to request a new IP and for current connections to be dropped whether the address changes or not.  The ATT Gateway receives a 10-minute lease and if the response from the DD-WRT router is not successfully received, all connections are dropped.  Once you add the command below to the firewall, the lease will renew every five minutes.


To solve the issue, save this command to the firewall script on the

Administration->Commands page of the DD-WRT web interface.  After that, smooth sailing!

iptables -I INPUT -p udp --dport 68 -j ACCEPT


Thanks to CompRepairGurus for the tip as well, which was the first result I found when Googling about this problem.

Sunday, September 19, 2010

Making sense of XBMC remote mapping

Understanding lircmap.xml, remote.xml, and keyboard.xml

I’ve written in the past about using irxevent to set up custom remote commands in XBMC on Linux.  That was the way I originally set up my remote after getting hopelessly confused trying to follow the more common method of configuring lircmap.xml, remote.xml, and keyboard.xml.


In an effort to help others navigate this maze, I’ll try to explain what I’ve learned.  Note that this is primarily directed at Linux users, though the key mapping relationships in Windows are nearly identical (but the file locations are different).  For the most part, a Windows Media Center Edition (MCE) remote will work out of the box, though there are several unused remote codes that you can remap to custom keys using the guide below.


First, consider the graphic below outlining all of the pieces involved.



#1: Remote Control Commands


Open up a terminal and enter the irw command.  You won’t see anything immediately, but will see confirmation of the IR code (or “Lirc button” in the graphic above) received when a button is pressed on the remote.  This will confirm what Lirc button the system is receiving.


#2: The system lircmap and keymaps


As the graphic says above, do not edit anything in these files.  These are the default xbmc files.  They are also overwritten every time you reinstall xbmc, so any time you spend here to get your system running right will be washed away the first time you upgrade xbmc.


#3: Lircmap.xml in the xbmc userdata folder


In Lircmap.xml, you must define any Lirc button names that are not already defined in your /usr/share/xbmc/Lircmap.xml file.  (i.e. if you look through that file under the entries for your remote and do not find an entry for the IR code in question, you need to define it here).

Here is one example of a way to map RecTV (an LIRC button) to recordedtv (an XBMC button):

  <remote device="mceusb">




#4: Remote.xml (and keyboard.xml) in the xbmc userdata folder


In Remote.xml, you continue to define for XBMC what to do when the system receives the RecTV Lirc Button.  At this point, Linux has converted the RecTV IR code (Lirc button) to a button XBMC understands “recordedtv.” View the full list of the buttons XBMC understands here.


We define the function of recordedtv (an XBMC button that otherwise has no function in XBMC), by making an entry in the remote.xml file.







This entry in remote.xml tells XBMC what action to take when the button <recordedtv> is pressed (which is a button it recognizes, but which has no function until defined here).  The command above tells XBMC to open the movie library when this button is pressed.


You can repeat this process for other buttons you wish to define via remote shortcut.  Other shortcuts I recommend to map to a key are:


  • XBMC.ActivateWindow(favourites)
  • XBMC.RestartApp
  • XBMC.ActivateWindow(videolibrary,tvshowtitles)
  • Fullscreen (returns XBMC to full screen video if you navigate through the menu/library while watching a movie in the background)

Wednesday, September 8, 2010

Add custom remote control commands to XBMC Dharma

XBMC Remote Setup with irxevent

If you need to setup custom remote commands, i.e. mapping non- standard keys like “LiveTV” on your Windows MCE remote to a new function in XBMC, one method of doing so is using irxevent.

To be clear, this is not the most common way to set up customized remote commands.  The more common method is using lircmap.xml and remote.xml, which can be confusing, so this is another way of accomplishing the same thing.


This guide is a good start.  Here’s what I took away and customized for use with the XBMCFreak version of Dharma Beta 1.


  • Install irxevent
    • sudo apt-get install lirc-x
  • Create your customized .lircrc file in your ~user directory (/home/user)


This is what mine looks like:

#MAPS LIVETV button to “tab” key for toggling between menus and fullscreen video

        prog = irxevent
        button = LiveTV
        config = Key Tab XBMC

    prog = irxevent
    button = RecTV
    config = Key F2 XBMC

        prog = irxevent
        button = Print
        config = Key F3 XBMC

        prog = irxevent
        button = Radio
        config = Key F4 XBMC

As you can see above in the notes, you have to set up the associated entries in your keyboard.xml file, which is located in /home/user/.xbmc/userdata/keymaps/keyboard.xml.  Here are a few examples of custom entries in my keyboard.xml file.





     <f2>XBMC.ActivateWindow(videolibrary,movietitles)</f2> <!-- CUSTOM -->
     <f3>XBMC.RestartApp</f3> <!-- CUSTOM -->
     <f4>XBMC.ActivateWindow(favourites)</f4> <!-- CUSTOM --> 







You can add other commands to the irxevent configuration as well, just make sure that whatever remote code you choose for irxevent isn’t already used in XBMC for something else.  If you choose a remote code or button that is already mapped to another functionality in remote.xml, lircmap.xml, or keyboard.xml, XBMC will send two button presses every time you use the custom mapped button.  The first function will be the one in .lircrc (using irxevent functionality) and the second function will be the one defined in remote.xml/lircmap.xml/keyboard.xml.  As long as you don’t overlap anything, this will work fine.


Autostart  irexec


Lastly, you need to add irexec to autostart with your XBMC Live session.  You do this by editing this file:  /usr/bin/xbmc


The text in red is the only text you need to add.  The rest is shown just so that you can see where you include it in the file.


#  You should have received a copy of the GNU General Public License
#  along with XBMC; see the file COPYING.  If not, write to
#  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.


# start irxevent

irxevent &




Technorati Tags: ,,

Installing XBMC Dharma Beta on the Acer Aspire Revo

XBMC Dharma Setup Guide
XBMC recently unveiled the first official Beta of their “Dharma” release. It includes numerous enhancements from the last complete version.


Note:  original post updated with general links to XBMCFreak’s site for the latest Dharma iso.  The process is otherwise unchanged. 

The most notable for me include:


  • Windows hardware-accelerated video through DXVA (though I’m sticking with Linux for now)
  • OSX hardware accelerated video for H.264
  • A new awesome addon system that makes it MUCH easier to install plug-ins (now “addons”) without ssh’ing into your box to copy plugin data
  • Support for embedded PGS subtitles (the kind that are standard on Bluray rips)


And lots lots more.  


I’ve been happily using XBMC on two Acer Aspire Revo 1600s with xbmc-standalone on Ubuntu (Jaunty) for the past ~9 months.  One of these is connected to a 1080p projection system with 7.1 audio, and the other to an older 720p TV with stereo sound.


In general, the release looks very promising, but for me, the real problems I was hoping it would solve were:


  • Problems with playing interlaced content:
    • 1080i 60fps content commonly captured by personal HD video cameras.  My Canon Vixia HD cam captures in this format, and with the previous version of XBMC, despite dozens of hours of tweaking, smooth playback of these types of files was just not possible.
    • Also, a rare number of Blu-ray discs like Rush: Snakes and Arrows and Harvard vs Yale, both of which are mastered in 1080i instead of 1080p caused very jittery playback on the previous XBMC version.
  • Problems with a very limited number of videos that caused minor stuttering during playback.  This was primarily with full bit-rate Blu-ray rips and was not due to CPU limitations.
  • Problems with high CPU usage and resulting stuttering video playback when using PGS subtitles on HD playback (this wasn’t an XBMC problem at the time, it had to do with a library they were importing I believe, but I was still hoping they would have integrated a fix by the time the new release came out)


Quick Setup Guide (Linux: using XBMCfreak LiveCD)


Tonight I tested by installing the XBMCFreak version of the Dharma Beta release.  Here are the quick steps for those who want to do the same.  You really should be able to do this inside an hour following the steps below, but let me know if you have questions and I’ll do my best.


  1. Download the XBMCFreak iso using the link directly above.
  2. Burn the ISO to CD or, easier, to a USB disk using Unetbootin.
  3. Boot your Revo from the USB disk you just created with Unetbootin.  (press F12 during the Revo’s boot up to select the disk you wish to boot from)
  4. Select the option to install XBMCLive.  You can install to a separate USB key plugged into the Revo or to the Revo’s hard drive.  In my case, I installed to another USB drive first as I didn’t want to blow away my primary install until I did quite a bit of testing with the new version.
  5. Once the install completes, remove the  XBMCFreak Live CD/USB and boot to wherever you installed the Dharma Beta.
  6. If you are using Analog audio, everything pretty much works out of the box (it did for me at least).  If you need HDMI audio, read on.
  7. Open a terminal connection to your Revo using putty
  8. Install wget so that you can download the NVIDIA driver.
    1. sudo apt-get update
    2. sudo apt-get install wget
  9. Grab the 256.53 NVIDIA driver using this command:  “wget”
  10. Kill X:  sudo pkill X
  11. Completely remove all current NVIDIA drivers to ensure you have the most current compatible driver. sudo apt-get --purge remove nvidia-*. [Thanks Balthazaar for the tip]
  12. Install the drivers using “sudo sh”  (follow the prompts until it completes)
  13. Fix the screwed up channel mapping in multi-channel PCM (i.e. FLAC and TrueHD tracks) by downloading these two files (will they ever get this correct?!)
    “sudo wget -O /etc/asound.conf”
    ”sudo wget -O /usr/share/alsa/cards/HDA-Intel.conf”
  14. reboot for good measure
  15. Within XBMC, configure Settings \ System \ Video \
    1. Audio Output = hdmi
    2. Custom Passthrough device = plughw:0,3
  16. Enjoy!

Thanks to Roelio on the XBMC forums for some of this information from a slightly older post.

Note, you can also follow any related discussions on this guide on XBMC’s forums.


I’m still testing, but so far, most/all of the previous problems mentioned above appear to be resolved by upgrading to this new version.  Awesome!


If you’re looking for information on how to set up custom remote commands with irexec in XBMC, check this post.


Technorati Tags: ,,

Wednesday, September 1, 2010

Gmail: The conversation that you requested could not be loaded…

gmail-smalllogo The conversation you requested could not be loadedGmail has been doing a lot more of this lately. I’m not sure if it’s load-related or if they’ve got buggy code, but something has caused it to pop up a lot more frequently in the last 1-2 weeks.

The solution (which is ugly) is to view your Gmail in plain HTML mode. I’ve found that this only occurs with certain messages, so if you have a message you need to open and can’t wait for Google to fix itself, change to basic HTML mode using the link at the bottom of the Gmail page (highlighted in yellow below). Once you’ve done that, all messages should open fine.


Technorati Tags:

Monday, August 30, 2010

Tightening the LCD screws on a Dell Inspiron E1505 laptop

Dell Inspiron E1505 LCD hinges

I received a "tech support call" today asking me to tighten the screws on the LCD of a Dell Inspiron E1505 laptop in our house. The lid was so loose that when you opened it and tried to keep it in one position, it would fall a couple of inches one way or the other until the hinges caught it. This really should be something easy to do, but I ended up using Google's first suggestion (the video immediately below), which turned out to be a mistake.

Bad advice:

This video (which I do not recommend using) takes you through a series of steps including removing the modem cover, unplugging the modem, pulling the modem cable through the laptop's housing, removing the battery, the keyboard, the hard drive, and so on. After I had my laptop in five pieces, I started looking around for the candid camera crew. Turns out they weren’t on the case, but it would have been good footage if they were. Needless to say, I bailed on this attempt, reassembled my laptop, and looked for better instructions.

Good Advice:

It’s probably easier to skip the videos and just use these instructions from “ahwee”. If you’re a person who works better from a video, this 4-minute video is a good reference on how to tighten the LCD on your Dell Inspiron E1505 as well.

The whole process should take approximately 10 minutes and you should only have to remove 6 screws around the face of the LCD before exposing the 4 screws (2 on each hinge, as shown in the picture above) that need to be tightened. Once that's done, the screen should stay firmly in place where you position it. If at any point you find yourself with the innards of your laptop extracted and exposed, start over from step one. :-)

Enhanced by Zemanta

A Helicopter for a Subwoofer? You Bet.

Eminent Technology Helicopter SubwooferCheck out the world’s most amazing subwoofer...sans woofer.

Despite looking more like a helicopter than a speaker, this oddity can produce bass relatively flat down to ONE Hz. It looks like it drops off rapidly above 30Hz, so it’s definitely no good for mid-range, but it plays down to 1 Hz with only 150 watts input… seriously. They’re priced at ~13k right now, but if this technology becomes mainstream, hopefully it’ll be a lot cheaper in a few years.

Specifications from Eminent Technology: Amplifier Requirement: 150 watts @ 8 ohms Impedance: 8 ohms 0Hz - 40Hz Frequency Response: 1Hz – 30Hz +/- 4dB Suggested Crossover: 20Hz @ 18dB/octave Sensitivity 94dB 1 watt 1 meter @10Hz Maximum Acoustic Output: >115dB between 1 and 20Hz. Distortion: Typically 3% or less between 1 and 20Hz @90dB Warranty – 3 years parts and labor Patent Pending

Technorati Tags:

Ideas for Future Posts

IdeasHere are some items I intend to cover in future posts. Since it’s just me here talking to myself, I figure I’ll just publish them here as a reminder to myself for the future.

  • Online backup review – CrashPlan versus Carbonite (and a few others I’ve toyed with)
  • Installing a SATA Bluray drive in a Dell Optiplex (and the problems experienced)
  • Thoughts on building a home media server
    • to RAID or not to RAID
    • tower / chassis choices
    • hard drive choices
    • backup schemes
    • TBD…
  • Useful software for your home media server XBMC, SickBeard, etc.
  • Review of book reader software Calibre (awesome program)
  • Handy Software
    • WinSplit Revolution
    • Hamachi
    • AutoHotKey
    • WinOMeter
    • JBid Watcher

TechNazgul – The Beginning


After several years of thinking to myself that I should start a blog, I’ve taken the leap. I’m an avid computer and home theater enthusiast (read: geek) who works in the IT industry and gets to work & play with technology on a daily basis. I also end up being “tech support” for friends, family, etc. and often turn to Google to find solutions to common problems.


Since many of my solutions end up coming from other bloggers who post their experience with the same types of issues, this is my small way of joining the blogging crowd and giving back. With any luck, eventually I’ll post a few things here that are useful to others, and if not, we’ll just call this an experiment to see how long I can talk to myself.


As for the name, well, good domain names are hard to find… TechNazgul is a combination of what this blog is about (technology) and a reference to the Nazgûl in the Lord of the Rings (i.e. the attractive hooded figure to the right). The Nazgûl were all-knowing, all-powerful, etc., So, allow me a bit of creative license and imagine a Nazgûl who specializes in all things computer and technology-related and voilà, the TechNazgul blog is born.