Seagate and I: Broken up for Good

Dear Seagate,

What a love-hate relationship we have had. It has been 10 years, and while I have enjoyed much of it, I have suffered enough heartbreak. I think it is finally time to say goodbye.

Drive after drive has died on me (5 of them to be exact). Your firmware release to fix spontaneous data corruption had left me stranded in a sea of data with nothing but a brick to keep me afloat. Your RMA policy…well, it is highway robbery at best.

This last drive failure was the final straw.

There is no reason that a drive, a Barracuda hardly a year old, should fail in the way it did. If this is your flagship product, you have a lot of self improvement ahead of you. Perhaps it wasn’t such a good idea to mess around with Maxtor on the side – you know, they never did have the best reputation for quality…

After your complete failure to maintain your fidelity my RAID1 relationship, I am tossing you aside.

Perhaps we will run into each other some time in the future. By that point, I will likely be wildly writing bits to a sleek Western Digital Black drive. Or, you may find me cavorting around with a shiny new SSD. If we meet again, let’s promise to keep it civil.

Anyways, I am rambling now. This is becoming a touch awkward.

Goodbye forever Seagate!

 




Cheap! – Xbox Live 12-month Card

As of tomorrow, Sears and KMart are both offering $35 12-month Xbox Live Gold cards on their respective web sites.

I’m not sure how much they are charging for shipping, or if the “cards” are being sold as electronic codes (a la Amazon), but it’s worth a look either way.

The special continues through the 21st, so get ‘em while they are hot!

 

Fix (most) Annoying Keyboard Problems in Windows

I have been having issues with my keyboard for as long as I can remember. The Shift, Control, Windows, and Alt keys were not functioning properly at all and were becoming quite the annoyance. It seemed as if while held down, the keys were randomly toggling themselves on and off while I pressed other keys.

For instance, I would end up replacing whole lines of text with a “c” while trying to press Ctrl-C to copy the line. Similarly, the paste shortcut Ctrl-v would wipe out text in a single swoop as well. Trying to quickly save usually left random “s” characters in my documents, and many words were left lower case due to my malfunctioning Shift key.

I originally chalked it up to my keyboard itself. It was a cheap PS/2 keyboard that came with my computer, so I decided to swap it out for a new, USB keyboard. I figured the problem was with the hardware, so I would be good to go once I replaced it.

Not so.

My problems continued to persist until one day I had an idea. Perhaps it wasn’t the keyboard, perhaps it wasn’t some odd Windows issue. Perhaps it was the drivers loaded by Windows for my keyboard.

I did some digging in Windows’ Device Manager and decided that the best course of action would be to see if I could remove and re-add my keyboard from the system. I removed both keyboards listed there and then rebooted. Suddenly all my problems were gone, and your can be too if you do the following:

  1. Open the Device Manager – it’s under Control Panel -> System and Maintenance -> System in Vista
  2. Navigate to the Keyboards section as shown below
  3. Right-click on any entries there and select Uninstall
  4. Wait for Windows to remove the hardware and then reboot

Device Manager

Windows should now re-detect the keyboard and you should be all set. Now, this doesn’t work for all keyboard issues as some of them are indeed hardware-related, but it worked to fix the issue I have been struggling with for months!

 

Configure Anonymous Samba Sharing in Ubuntu

I was setting up some Ubuntu virtual machines for folding when I decided that I wanted to monitor them all via a single interface in Windows using FahMon. I also wanted to be able to alter the folder where the folding client resides in case I ever have to do a little maintenance. The easiest way to accomplish this is by setting up shared folders on the Ubuntu VMs and pointing FahMon to those folders. For me, security is not a concern as the files are not sensitive and the virtual machines are pretty secure on my LAN, so I decided to set up Samba shares on the VMs with anonymous sharing enabled.

In Windows, setting up a file share is relatively easy, but it takes a few more steps in Linux. Follow the steps below, and you will be on your way in minutes:

First, you will need to install Samba if it does not already exist on your system. Do so by running the following command at the terminal:
sudo apt-get install samba

Next, open the Samba config file in your text editor of choice, whether it be graphical or something like vi. Make sure you are logged in as root or that you launch the editor using sudo, otherwise the file will be read-only!
The path to the file is:
/etc/samba/smb.conf

At the end of the document, we are going to add the following:

[folding]
path = /home/DrNathan/folding
available = yes
read only = no
browsable = yes
public = yes
writable = yes
guest ok = yes
only guest = yes
guest account = nobody

The first line, surrounded by square brackets, specifies the name of the share. The next option specifies the full path to the shared folder. The subsequent settings are pretty straightforward, but the guest ok = yes, the only guest = yes and guest account = nobody settings are important for our anonymous sharing goal. They basically tell Samba that we want to allow only the guest account to access this folder, and that the guest account includes all anonymous users.

Now, save the file and close your editor. We now need to restart the Samba daemon with the following command entered at the command line:
sudo /etc/init.d/samba restart

You should now be able to access the share from your Windows machine by typing the path to the share in an explorer window. My path is the following:
\\foldingpc\folding

Where foldingpc is my Ubuntu machine’s name and folding is the share name.

If you try to edit, create, or delete a file in the folder, you will realize that you are denied access to the files. You need to complete one more step before having full anonymous access to the folder.

In a terminal window, browse to the folder just above your shared folder. In my case, this path is:
/home/DrNathan

You now need to change the permissions on the folder to grant yourself write permissions on the share. I did so by typing in the following:
sudo chmod 757 folding

This basically tells the system that I want to grant the group “others” (essentially anyone not the owner or in the same Linux group as the file owner) the ability to write to the directory named folding. The previous permissions on the directory were 755, so if you want to revert your changes, simply enter sudo chmod 755 folding at the terminal.

That’s it, now you should have full anonymous sharing configured on your system. What happens if you decide you would rather secure the folder using a password instead. Follow the link below for more:

(more…)

 

Enabling 64-bit Capabilities on HP Workstations

I recently tried installing Ubuntu x64 in VMware on my 32-bit Windows machine. I have done this in the past for other 64-bit operating systems, however not on this particular workstation, which is an HP xw4600. The process is typically very straightforward since VMWare has a “Easy Install” process for known operating systems.

This time around I ran into some issues while the Ubuntu image was booting. Each time I tried to start the VM, I received the following error:

“This kernel requires an x86-64 CPU, but only detected an i686 CPU. Unable to boot – please use a kernel appropriate for your CPU.”

I was almost positive that my processor was 64-bit compatible, but I double-checked Intel’s site to make sure. According to Intel, I was gojod to go. I decided to give VMWare’s compatibility checker a try, and it stated that I was able to run 64-bit virtual machines as well.

I figured the issue was probably due to 64-bit extensions being disabled in the BIOS, so I took a look there. I dug and dug, but could not find any tabs or sections related to 64-bit extensions or virtualization. After looking around some more, I found my answer in a very unlikely location (at least in my opinion).

Under the main Security menu, there is an entry for System Security. There, you will find three values, two of which are disabled by default. These are Virtualization Technology (VTx) and Virtualization Technology Directed I/O (VTd). After enabling both of these items and saving my BIOS settings, I was good to go.

I applaud HP for being careful regarding Virtualization Technology, but they could have made the options or documentation regarding these options a little easier to find.

 

A Week of Software Updates

If you have not been by the site recently, I have updated a few my applications this week, and I have added a pair of new apps as well.

The newcomers include AudioX and RAIDFix.

AudioX is a labor of love several years in the works. A process born in batch files, migrated to Perl, and eventually rewritten in C#, AudioX converts songs between audio formats including FLAC, APE, AAC, MP3, and WAV. I really needed an application to convert my APE audio to FLAC for archival, and to compress my FLAC audio to AAC format for my iPod and MP3 format for my car. AudioX does this for me, managing tags and album art, all while taking advantage of PCs with multiple cores. It’s a great app, give it a try!

RAIDFix is an application I wrote to help the countless people that visit my site looking for a way to enable RAID on their Intel ICH-based Windows PC after they have installed Windows with RAID disabled. I have published walkthroughs on how to accomplish this, but RAIDFix makes it extremely simple. Patching your computer to allow you to enable RAID in the BIOS is now one-click away.

Additionally, Suction received updates to allow the user to specify the text they want used when renaming duplicate files as well as the ability to specify whether this text is prepended or appended to the file name.

MailBin had a bit of work done on the back-end, in order to do away with the flat configuration file used by the program. Instead, MailBin now uses Windows’ standard user config files like the rest of my applications.

All of the applications listed above now take advantage of my new web-based update system. The programs will check this web site to see if there is an update version of the application automatically, alerting you if a new release has been published.

Yay for software!

 

Follow Up: A New Method to Enable Intel ICH RAID after Installing Windows (Plus Updates to the Original)

Bypass this article and fix your Intel RAID Drivers immediately using RAIDFix


I have three pieces of information to share with those of you looking to enable RAID on your Windows PC after having installed Windows without RAID enabled in your BIOS settings. Now that you have rebooted past a handful of blue screens and Googled to find some help, I am here to tell you that you have come to the right place.

I have written on this topic twice before, once when I first figured out how to fix this problem, and again when the drivers had been updated by Intel. Once again there are driver updates, so I wanted to provide you the appropriate registry file as well as the steps required to enable RAID on your system.

But first, I wanted to mention an extremely easy and fast solution.  After studying the problem for some time, I have put together an application named RAIDFix which installs the proper registry keys and drivers to get your Intel RAID up and running in seconds.  As I pointed out in the large link above, fix your RAID issues immediately by clicking here.

If you prefer to fix the problem manually, read on.



Method #2 – The Long, but Tried and True Process

1) Download the Intel Matrix Storage Manager v8.9.0.1023 installer (Dated 7/17/2009) from Intel.

2) Open a command prompt on your machine and navigate to the folder where you saved the IMSM software in step 1.

3) Type “iata89enu.exe -a -p c:\iastor” and press Enter – this will load the installer and extract all of the driver files to C:\Iastor folder.  Close the command prompt.

4) Copy the appropriate iastor.sys file from the C:\Iastor\winall folder to your C:Windows\System32\drivers\ directory

5) Click here to download the registry file, or copy the text below and save it as “Intel.reg”

Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\PCI#VEN_8086&DEV_2822&CC_0104]
"ClassGUID"="{4d36e97b-e325-11ce-bfc1-08002be10318}"
"Security"=hex:01,00,04,90,00,00,00,00,00,00,00,00,00,00,00,00,14,00,00,00,02,\
  00,4c,00,03,00,00,00,00,00,14,00,ff,01,1f,00,01,01,00,00,00,00,00,05,12,00,\
  00,00,00,00,18,00,ff,01,1f,00,01,02,00,00,00,00,00,05,20,00,00,00,20,02,00,\
  00,00,00,18,00,9f,01,12,00,01,02,00,00,00,00,00,05,20,00,00,00,21,02,00,00
"Service"="iaStor"
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318}\0001]
"InfPath"="oem39.inf"
"InfSection"="iaStor_Inst_RAID"
"ProviderName"="Intel"
"DriverDateData"=hex:00,c0,44,67,a7,e4,c9,01
"DriverDate"="6-4-2009"
"DriverVersion"="8.9.0.1023"
"MatchingDeviceId"="pci\\ven_8086&dev_2822&cc_0104"
"DriverDesc"="Intel(R) ICH8R/ICH9R/ICH10R/DO/PCH SATA RAID Controller"
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor]
"Type"=dword:00000001
"Start"=dword:00000000
"ErrorControl"=dword:00000001
"Tag"=dword:00000019
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
  52,00,49,00,56,00,45,00,52,00,53,00,5c,00,69,00,61,00,53,00,74,00,6f,00,72,\
  00,2e,00,73,00,79,00,73,00,00,00
"DisplayName"="Intel RAID Controller"
"Group"="SCSI Miniport"
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters]
"queuePriorityEnable"=dword:00000000
"BusType"=dword:00000008
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters\Port0]
"AN"=dword:00000000
"LPM"=dword:00000000
"LPMSTATE"=dword:00000000
"LPMDSTATE"=dword:00000001
"GTF"=dword:00000000
"DIPM"=dword:00000000
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters\Port1]
"AN"=dword:00000000
"LPM"=dword:00000000
"LPMSTATE"=dword:00000000
"LPMDSTATE"=dword:00000001
"GTF"=dword:00000000
"DIPM"=dword:00000000
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters\Port2]
"AN"=dword:00000000
"LPM"=dword:00000000
"LPMSTATE"=dword:00000000
"LPMDSTATE"=dword:00000001
"GTF"=dword:00000000
"DIPM"=dword:00000000
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters\Port3]
"AN"=dword:00000000
"LPM"=dword:00000000
"LPMSTATE"=dword:00000000
"LPMDSTATE"=dword:00000001
"GTF"=dword:00000000
"DIPM"=dword:00000000
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters\Port4]
"AN"=dword:00000000
"LPM"=dword:00000000
"LPMSTATE"=dword:00000000
"LPMDSTATE"=dword:00000001
"GTF"=dword:00000000
"DIPM"=dword:00000000
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters\Port5]
"AN"=dword:00000000
"LPM"=dword:00000000
"LPMSTATE"=dword:00000000
"LPMDSTATE"=dword:00000001
"GTF"=dword:00000000
"DIPM"=dword:00000000
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters\oromVersion]
"MajorVersion"=dword:00000007
"MinorVersion"=dword:00000005
"HotfixNumber"=dword:00000000
"BuildNumber"=dword:000003f9
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Enum]
"0"="PCI\\VEN_8086&DEV_2822&SUBSYS_82771043&REV_02\\3&11583659&0&FA"
"Count"=dword:00000001
"NextInstance"=dword:00000001

6) Double-click on the .reg file and click yes when asked if you want to merge the data into your registry.

7) Reboot the computer and change the SATA configuration in your BIOS to RAID – Windows should load without any issue.

8 ) Install the Intel Matrix Storage Manager software to complete the driver installation/configuration.

9) Celebrate the fact that you have now enabled RAID without having to reinstall Windows.
Good luck with your RAID install!  Feel free to ask questions here if you need help.



Method #3 – Peregrinus’ Hack

A reader named Peregrinus discovered that there might be an even easier method to get your computer up and running again. Instead of expanding drivers and manually adding registry information to your computer, you can fix the problem with one small registry tweak.

I do have to add the disclaimer that I have not tried this method, so your mileage may vary. Peregrinus stated that this worked for him, so I am publishing this information on his recommendation.

1) With RAID disabled, boot into Windows and start Regedit.exe

2) Navigate to HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\iaStorV

3) In the right-hand column, you should see a value named Start. Double-click this entry and change the data from 1 to 0.

4) Reboot with RAID enabled – Windows should load just fine. Now install the Intel Matrix Storage Manager as you usually would. This time around, it should detect your hardware and install without any issues.

 

Follow up: Securing Windows Remote Desktop with CopSSH

Awhile back, I posted a guide detailing how you can configure CopSSH on your home computer and use it to securely route your Windows Remote Desktop traffic in order to add an extra layer of security to the whole process.

Typically, once Putty was configured and used to create the SSH tunnel to the remote machine, all I would need to do is simply create a loopback RDP connection on port 3390, and I was in business.  In my testing of Windows 7, I found that when attempting to create a loopback connection on port 3390, I would receive an error that a connection was already established.  The exact error reads as follows:

Your computer could not connect to another console session on the remote computer because you already have a console session in progress.

I changed Putty’s configuration to forward on port 3391 instead of 3390, and the problem was solved.  I’m not sure why Windows 7 establishes some sort of connection on 3390, but at least the workaround is pretty painless.

I just wanted to pass along this info for anyone having issues with RDP tunneling.

 

Suction Updates – Version 1.1.3 Released

Suction version 1.1.3 fixes a few bugs hanging around in the 1.1.1 release.  With the help of Gary M. who reported these bugs and tested fixes, I was able to knock out a few annoying issues.

The 1.1.3 release includes:

  • Fix for the auto-exit bug that would cause the application to remain open when initiated from the context menu
  • Fix for the logging location bug (Suction would log its actions in folder being suctioned)
  • Fix for the logging bug that would leave logging enabled when all logging was disabled
  • Tweaks to the context menu code to better handle registry entries (No more random errors when removing the context  menu entry)

Download version 1.1.3 here

 
Posted in: C#, Programming, Software, Technology by DrNathan No Comments

Concurrent Programming – Is There Such a Thing as Too Many Threads?

Is there such a thing as too many threads?  Of course there is.  Well, for the time being, that is.

I am currently putting together an audio conversion application, and I was doing some testing to see what number of concurrent conversions produced the best results in respect to time.  Conventional wisdom says that “bigger/more is better”, but not necessarily in this case.

During my testing, I converted a series of 15 songs from FLAC format to AAC format, all on the same PC armed with a 3.0 GHz Quad Core processor and 4 GB of memory.  The drive on which the data was stored and written to is a Seagate Barracuda SATA drive.  I simply ran the conversion using one thread and incremented the thread count after each iteration until I had 8 concurrent threads running.

The results are as follows:

1 Thread – 125 Seconds
2 Threads – 64 Seconds (-61s)
3 Threads – 45 Seconds (-19s)
4 Threads – 36 Seconds (-9s)
5 Threads – 37 Seconds (+1s)
6 Threads – 35 Seconds (-2s)
7 Threads – 35 Seconds (-0s)
8 Threads – 35 Seconds (-0s)

As you can see, performance pretty much plateaus around the 4 Thread mark and barely increases after that.

It makes sense that a 4-core machine gets good performance when 4 separate threads are running.  The processor was not being utilized 100% however, which is why I decided to try increasing the concurrent thread count.

I would assume that the extra overhead involved with managing additional threads, along with the cost of constant context-switching at the core-level outweighs the benefits of having additional processes running at the same time.  Initially, I thought that the hard drive might be the limiting factor here, but when running the same conversion from two SATA drives in RAID 0 configuration, the results were almost identical.  Using memory streams instead of the hard drives for temporary file storage also had little effect (+/- 1 second) on the results.

So there you have it, more threads is not necessarily always better.  I really could have told you that before I tried this little experiment, but I liked the process of producing tangible results showing that this is the case.