Thursday, December 1, 2011

SSH Proxy - huh?

Burning Firewall
    tl;dr - I was asked to change some file transfers to use the SFTP protocol by our IT department. The IT department actively blocks SSH/SFTP connections and gave me no way to fulfill their request.  

    When I started working at my current company, I was assigned the task of changing some of our file transfers from regular FTP to use the secure SFTP. It's an obvious security enhancement since SFTP encrypts the data as well as the usernames and passwords during transfer.
    I thought this would be a simple task, but it turned out to be a continuing nightmare. You see, our IT department had requested the change, but they gave us no way to actually do it. I found that the company firewall blocks the TCP port that SFTP uses. That was my first clue that something wasn't right. I've never worked at a company that blocks outgoing SSH/SFTP.
    I think it makes some sense to block the port because one can tunnel almost any traffic through SSH. Since it's encrypted, the company can't monitor the traffic through the tunnel. But it makes no sense when you consider that the IT department was the one asking us to change to SFTP when they gave us no way to actually use it.
    Moving on, I found that the company provides an "SSH Proxy" to allow you to SSH anywhere. According to the documentation, they also provided temporary storage on the proxy so that you could transfer files using one of the secure SCP or SFTP protocols. After talking with many IT folks, this proxy was the only supported method I found for accomplishing my task. So I decided to give it a go.
   The proxy was implemented horribly. It would periodically delete all of your files, including any keys. It didn't have a lot of temporary storage space, and it didn't let you run any of your own programs.
    This meant that I had to connect to the proxy, upload all of my keys, upload my temporary file, and then issue the commands to connect to my final destination and then upload the file from the proxy to the final destination. Remember, it wouldn't let me run my own programs, so I couldn't copy a script to this proxy to do this.
    After figuring out how to get this all working, I was told we were going to be transferring a ton of files and that the temporary storage wasn't going to be enough. So I submitted a request to IT to extend the storage space. The request was denied and I was told that the server was not meant to be used for file transfers, even though the documentation explicitly stated it could be used for that purpose.
   There are two interesting things that I see here. One is the prevention of information services by our own IT department. They asked us to change to the SFTP protocol, but gave us no way to do that. Not only that, but they said their own servers weren't to be used for their documented purposes. Isn't the purpose of the IT department to enable other departments to conduct business? They failed miserably.
    The second thing is the use of the term "proxy." A proxy server is one that will perform an action on your behalf. For example, you ask a web proxy to retrieve a web page for you. It will look at its rules and decide if it should and then retrieve the page for you if you're allowed. This "proxy" was not a proxy. I couldn't tell it to transfer a file to a certain server for me. It wouldn't retrieve a file for me either. It is not a proxy, it's much more like a gateway. IT people should know the difference, but obviously our department isn't the brightest bunch.

Thursday, October 27, 2011

Windows 7 (Software Bliss)

Windows 7 Beta fish
Windows 7 is probably the strangest piece of blissful software that I use. I say strange because it is difficult for me to say that about a piece of Microsoft software. I think it's actually good enough to warrant the title of blissful software.

I think Microsoft had a hard time for a while. Internet Explorer 6 held on for a lot longer than it should have. Windows XP was great after it was released, but it started feeling old after three years or so. (XP just celebrated its 10th birthday). Vista was horrible. After all of that, Microsoft released something great with Windows 7.

It's difficult for me to complement and like a Windows OS. For the past few years, I've been mostly a Mac and Linux user. I've been in the Anti-Microsoft camp for some time. But I do still use Windows at work and every once in a while at home and feel I need to give credit when a company releases a good product.

So what's nice about it? Well, it actually works. When I was in college, I re-installed XP about once a semester because it would get so full of junk and start slowing down. 7 hasn't junkified itself over time in the same way, I haven't ever needed to do a re-install of it.

It is also a whole lot more secure than XP. You don't run as an administrator by default and if you're running the 64-bit version there's more protection against unsigned drivers and rootkits.

For me, the interface is a whole lot nicer to use. The search in the control panel and start menu make it easy to find things. The nice window adjustments that let you maximize a window or put it to half of the screen are helpful. It even comes with some interesting and non-traditional desktop backgrounds.

It's not perfect, by any means, but it is actually a very good product. Microsoft has scored pretty well for me lately. I've written about IE 9 and Windows 7 is another really good piece of software. I hope Microsoft can continue the trend.

Wednesday, October 19, 2011

Abomination known as Gnome 3 (Software Sadness)

    Linus Torvalds, the man behind Linux, called Gnome 3 an unholy mess. I completely agree with him. To me, Gnome 3 is the epitome of bad in open source software. Gnome 2 wasn't great, but it was usable and I didn't hate it. Using Gnome 3 makes me want to bash my own head in. Let's look at some of the reasons why. They aren't in any particular order because they're all horrible. I have many more reasons, but didn't want this posting to get too long.

Typical Desktop
    Issue #1 Task Management: Take a look at the image of a typical Gnome 3 desktop. Notice that the bar at the top only lists Firefox. Gnome 3 did away with any type of taskbar. You might also have noticed that your windows don't have "maximize" and "minimize" buttons. Gnome developers just decided you don't need those.

Activity Center
    Issue #2 Activity Center: Instead of a task bar, there is now an Activity Center. It's sort of like a horrible combination of the Mac Dock and the Windows Start menu. Open it up and you see a Dock on the left, with your open programs kind of highlighted. This screenshot shows how you would launch any programs, but there is a tab there where you could see your open windows.
    This is how you change between applications and start new ones. So what is so bad about it? Well, it really kills your flow when you're working. Rather than clicking on a shortcut to start a new application (you can't put icons on the desktop in Gnome 3), you have to bring up this activity center and find what you want. It really interrupts your work flow to do this. It takes over the whole screen and pulls you out of what you're working in.

    Issue #3 Customizability: Gnome 3 is a lot more difficult, by design, to customize to your liking. I mentioned no desktop icons. But it's also fairly difficult to change the color themes. You can't customize the top menu at all. If you want to hide the battery icon or accessibility icon because you don't need them, that's just too bad. I searched in vain for a way to hide those icons and came across this gem of a page which describes how little you can customize Gnome 3. Fonts also look horrible and aren't easy to change.

Gnome 3 menu
    Issue #4 Not caring about user feedback. I like to call this the Fundamental Open Source Error. It might be more appropriate to call it the Fundamental Gnome Error because I've really only seen it happen with Gnome projects. Basically, it means that the developers think they're smarter than their users. They get user feedback and promptly tell the users why they are stupid and then keep going as if nothing happened. Check the above link again for an example of this.
    For another example, the original Gnome 3 user menu didn't include a 'Shut down' option. You had to log out to the main screen to shutdown your computer. Really? I have to log out, wait for the login screen to come up, and then shut down? Based on user complaints, the developers added an option where you can hold alt to change the 'Suspend' option in your menu to 'Shut down.' Who's going to know that exists?
Gnome 3.2 menu
   In Gnome's defense, they did change this in Gnome 3.2, there is actually a 'Power Off' option. I'm not sure if that suspends the computer or shuts it down, but I think the change is a step in the right direction. Hopefully they did this based on user feedback.

    I gave Gnome 3 a good try. I wanted to like it, but it's just all wrong. I think this is one reason why Linux doesn't have a better following than it does. You get a lot of projects like this where the default is just ugly and unusable. It's not worth the time to put into customizing it to where you can stand to work with it. That's where Mac OSX and Windows excel. They're decent to look at and are actually usable by default. Being commercial applications, I'm guessing they took user feedback into account and have avoided the Fundamental Gnome Error.

Sunday, October 9, 2011

TweetDeck (Software Bliss 1)

    Rather than just having a series about software products I think have gone wrong, I thought I should add in a few articles about products that I think are great. I don't think all software is horrible, after all.
    One of my recent favorites is TweetDeck. It allows you to see all your Twitter and Facebook feeds in one application. This has made it easy to stay up-to-date with my friends. You can also post to both services at the same time. The service is handy, but there's a few features that make this piece of software truly excellent.
    First is that there is a Chrome version that you can run without having to install anything. You just add it to your App list in Chrome and off you go. New posts automatically appear, so you don't have to refresh your browser. Since I've been using Chrome as my main browser, this is a great option.
    They also have an awesome mobile application. I use the Android version, and it's just as good as the Chrome version. One feature I really like about the mobile version is that there is a yellow indicator inside that app that shows you which messages are new since you last launched the application. It's one of the few Apps that I actually run every day.
    I think the best thing about TweetDeck is that they let me see Facebook updates without logging into Facebook. I've been very confused and disappointed with the recent changes to Facebook and I really don't like to log in to their site anymore. With TweetDeck, I can still stay up to date and avoid the Facebook confusion.
    There are some sadnesses to the App. One is that my company has the site blocked so I can only use the Chrome version at home. I can still use the Android version at work. I think it's a good thing because I could get distracted if I had it open all day long. I try to just check the phone App in the morning and during lunch.
    The other sadness is that they don't have Google+ as one of the services you can connect to. I hope they add that at some point in the future as I'm starting to use Google+ a lot more than Facebook. This also isn't horrible for me because most of my friends send updates through Facebook now anyway.

Thursday, October 6, 2011

Firefox (Software Sadness Part 1)

    I've finally given up on Firefox. It was my default browser for years and the first application I would install on a new computer. Now I realize that I haven't even installed it on my last two computers. I think other browsers have gotten a lot better while Mozilla has broken down.
    I've been pondering where Firefox really went wrong. I know I stopped using it around the time they released version 4. The redesign just didn't feel right and the new rapid release cycle kept breaking plugins. Plugins were a key feature that made it such a great product for me. It became difficult for me to use it to get my work done. I keep hoping things will get better with the new releases, but it looks like things are still breaking.
    At the same time, the other browsers kept getting better. Chrome has worked beautifully for me for quite some time. It's quick, has really good development tools, and I've never had an upgrade break an extension. I have to admit, winning a ticket to Google IO last year for developing a doodle did sway me towards Chrome for a while. Now I just think it's a better browser.
    It's not just me though, Firefox's market share has been falling slowly all year while Chrome's has been growing rapidly. Analysts predict that Chrome might overtake Firefox as the #2 browser by the end of the year.
    I don't have a whole lot to say about Internet Explorer. IE 9 is actually a good product. It's got pretty decent developer tools and it's much better at complying with internet standards. My best praise for it is that I don't hate it anymore. That's a big change since the days of IE 6. I don't mind using it when I'm on a Windows box. I still prefer Chrome, but I'd put IE above Firefox.
    So, what is so interesting about this? Well, I've seen some very strange software decisions in the past few years. It seems that there is a point where good products jump the shark and start being unbearable. This is a very interesting trend, one I would like to explore a little more.
    The failure of Firefox was most noticeable to me because it was a product I used and enjoyed every day. Other projects I've seen turn into a complete mess include Gnome, Ubuntu, portions of Windows, and portions of OSX. Look for more Software Sadness articles on those items in the near future.

Saturday, July 2, 2011


    In May, I had the chance to attend Google's IO conference for developers. There's a lot of great things about the conference - lots of smart people attend, there's good and informative sessions, there's plenty of food, and all around a whole lot of geeky coolness. Additionally, they usually give out some pretty good devices. Last year we received android phones and Google TVs. This year they gave out an android tablet and promised all attendees a Chromebook. I just received my Samsung Series 5 Chromebook and wanted to share a couple of my initial impressions on this very interesting device.
    Simply put, the Chromebook is exactly what it claims to be. It boots pretty quickly and goes straight to a Chrome browser. You do everything through web applications like Google Docs or Facebook. You can't install local applications, and it seems that the computer is essentially useless offline (I couldn't even log in without an internet connection.) But this is exactly what Google has been saying it would be.
    I don't get the feeling that I will be using the computer much. The main issue for me is that I'm a web developer and I don't see any way to do web development on this type of device. There are some online IDEs like cloud9, but cloud9 feels more like a text editor with some coding features more than a development environment. Without that functionality, the device is pretty much useless to me.
    I can see how it would be perfect in other environments. Schools and businesses, for example, might be great places for it. If students or employees are using mostly internal web applications and Word or Excel, they might be able to replace their company machines with the Chromebook. It really excels in those areas and offers some other very nice benefits in the areas of security and administration.
     First, you don't need to worry about virus outbreaks with a Chromebook. There's not much there to get infected. It does run a version of Linux, so theoretically it could get hacked or infected, but the chances are extremely low. It doesn't seem to run any background services and it updates itself when you're online so any security issues could get patched pretty quickly. Also, none of your data is actually stored on the device. If someone stole it, they're not going to get away with your private files or company secrets. Sure, things might end up in the cache, but it's not the same as someone stealing your work laptop.
    The administration area is one place where this machine really makes sense. You don't need to worry about people running different versions of software or what happens to their data when the hardware eventually fails. All the data is stored in the cloud and you can just give them a new Chromebook in the case of a hardware failure or loss. There's also a whole lot less configuration. Basically, turn it on and let users log in. It's an amazing idea that I would love to see put in place.
    One big drawback for this Chromebook is the price. It costs as much as a regular laptop, but doesn't have all the functionality. A regular laptop can run a browser just as easy, but can also have local applications installed and connect to all your peripherals. I just don't see why someone would buy a Chromebook over a regular laptop if the price is the same.
    Overall, the Chromebook is a good idea and I hope it works for Google. I don't think I'm in the target market, so I don't think I will be using one as my main workstation anytime soon. I can see it being useful in business and school. We'll just need to see how the market reacts to it.

Wednesday, June 22, 2011

Development discoveries

    I had an interesting experience earlier this week. I was reviewing some code and found a section where the code looked very strange at first glance. There were some comments, so I knew what it was supposed to do, but my first impression was that it was just wrong. I spent some time stepping through it and thinking how to fix it to make things look better and be maybe more maintainable.
    As I stepped through it, I realized it was actually a pretty elegant solution and I couldn't think of a way to make it better. My first impression was wrong, it was really good as it was. I was curious who wrote that section, so I searched through our version control system and found that I had written it about a month earlier.

It reminds me of when I discovered I am a decent developer. I was doing some socket work in C++ and ran into an issue where I could get a socket connection that would ignore a timeout when connecting over SSL. The bug drove me crazy for half a day or so. Eventually, I decided I'd pull up the source code for PHP because I knew they had implemented similar socket connections.
    I found that not only did they have the same bug, but their implementation was almost exactly the same as mine. The only differences were some variable names. It really surprised me that I could come up with something just as good as the authors of the PHP engine. I felt pretty good about that. I think I eventually solved it and submitted a bug report to PHP. They already had a solution that came out in the next release. Again, their solution was pretty close to what I came up with. Happy day for me!

Thursday, May 26, 2011

Months of Megan

So I've been a little slow in posting for a little while. I got a little distracted because I met an incredible girl. I fell in love and that's all I could think about for quite a while. She was definitely a distraction, but she was a good one. I'll miss her lots, but life goes on.

There are a couple things here that I find very interesting. I recently read "Man's Search for Meaning" and one of the big themes that I saw in the book was about man's ability to adapt. In the book, the prisoners in WWII concentration camps adapted to their conditions to the point where it seemed almost normal. I've seen similar things happen in relationships. At first, they seem so exciting and happy. Then maybe you just adapt to it and that excitement wears off. I can remember that happening in my last few relationships. I don't necessarily think it's bad, it's just a different phase in the relationship. I think that's where you decide how committed you actually are to the other person.

The other interesting thing is that I've been noticing is that people will pull themselves out of relationships because they feel they're not worthy of their partner. I've heard people tell me that they feel they're not good enough for their partner or someone else would match their partner better. I find this interesting because I think it's a human trait. I can't imagine other animals do this. I don't know, I just think it makes more sense to have the other person decide your value than to sell yourself short by thinking you're not good enough.

Anyway, those are some of the interesting thoughts I've had on relationships lately. I don't know if they necessarily apply to my last relationship.

I am excited to get back into interesting things again. I have some thoughts from this year's Google IO. I also have made some advances in my sad book. On top of all that, artist night will return again :)

Sunday, April 3, 2011

Amazon Silliness

I really like I love my Kindle and I end up buying most of my books and random items from them. About the only thing I don't buy there is food. However, I've heard they will soon offer a grocery delivery service, so that might change in the future.

I've experienced some very strange things with Amazon lately, things which I find very interesting and thus they've ended up on this blog.

First was that I got called by a recruiter about a month ago. I don't remember actually applying for a job but I think I sent them my resume three or so years ago. So I was surprised to get the email. Although I wasn't looking for a job, I wasn't opposed to the idea of learning more about the position. I would really have liked to see their headquarters, so I set up a phone interview.

The first interview was very interesting. The guy was a regular employee, not a hiring manager and didn't work for the same division where they had the opening. He couldn't tell me much about the job, so he just answered some basic questions. He also asked lots of general programming questions. I think this first interview went rather well.

About a week later, I had a second interview with a hiring manager from the prospective department. He asked similar questions and asked about my background. The interview took more of a conversational tone and I thought it went alright. The one question I couldn't answer was "why did you apply for this job?" Well, I didn't. The recruiter contacted me about it. He didn't seem to like that answer. Other than that, I thought the interview went well. It lasted 45 minutes and ended on a good note. I got an email the next day saying that they picked someone else. Oh well, no loss to me.

The second interesting item came from their recently-launched appstore. I was interested to see how Amazon would differentiate themselves from the regular Android marketplace. One thing I noticed was that Amazon is giving away an application every day. You open the store and they show you the free app of the day. Usually the price is shown, but is crossed out and the word "free" is printed next to it. I was surprised the other day when I opened the store and saw this:

Notice how the word "FREE" is crossed out and "FREE" is printed next to it? How silly is that? Additionally, I had already got Angry Birds Seasons from the Android Marketplace (for free). This makes me wonder if I need to check both App stores to find the best price.

I'm a little curious how Amazon gets away with creating their appstore. Does Google get anything for apps sold there? I somehow doubt it, which is a little strange because Google created the Android OS and the development tools for it, but Amazon is trying to reap in the money for it. I can see Amazon supporting Android because of the recent issues with publishing items in the Apple App Store. The Android platform would make even more sense if future versions of the Kindle run the OS. I could see that happening quite easily.

Friday, March 18, 2011

Artist Night - Google Doodle

I went to Google IO last year and had a really good time there. I learned lots of interesting things. That's actually where I came up with the name for this blog. I was excited to go again this year but I wasn't able to sign up. For some reason, Google outsourced their registration process and the site couldn't handle the load they experienced when registration went live. The whole conference sold out in 59 minutes, which is pretty impressive, but I kept getting error pages and wasn't able to complete the registration.

Luckily, google opened up a sort of developers challenge called Last Call for Google I/O where one of the prizes is a registration to attend the event. I thought I'd give it a try and at least have fun even if I don't win.

Unfortunately, I didn't pass round 1 of the Android challenge but I did pass round 1 of the Chrome challenge. Round 2 presented an interesting artistic opportunity. We were asked to create a Chrome themed Google Doodle using some Chrome/HTML5 coolness. We only had one night to complete the challenge. Luckily, this coincided perfectly with my artist night plans.

I came up with a couple of designs. Most of them were really cool in my head but didn't work so well in the browser. I started implementing one, but after a few hours of developing it, I found that I couldn't show all the particles I was trying to display in the canvas and have it perform how I wanted it to. So I finally came up with a design where the Google logo transforms into a Chrome logo and back into the Google logo. You can see the final design below (you need to have a decent HTML5 browser and support for iFrames, if you don't see anything try this direct link.)

Mouse over it to see the transition.

It's not perfect, but it's not bad. If I had the time, I would switch it so that it starts as the Chrome logo and then transforms into Google instead of how it is now. I would also have added some effects where the squiggles would react and avoid your mouse pointer as they transition between the logos. It can also use up quite a bit of your processor, But I was up until 5:50am creating this version and my brain was tired. The deadline was also approaching, so this had to be the final version. I still like it.

Whether it wins or not, it was really fun to create. I also learned a lot about Chrome, so that's a happy thing. Interestingly, I've complained about Chrome before, but I've started to use it as my main browser. There are some things that are really nice about it. In addition to the cool html5 support and combined url/search bar, it syncs all my preferences and bookmarks between computers. I like that. I just wish they would fix the URL substring search.

Saturday, March 12, 2011

Scientific Linux FTW!

Many people know that I'm an avid Linux user and supporter. I think pretty much everything about it is great. As a developer, I find it to be the most productive OS for me. I've tried many of the distributions out there and I really like some, but I've come to the realization that I'm not really happy with any of the current distributions. The interesting thing for me is how distributions start off good and then screw things up so badly. I think that deserves its own post later.

This has really become an issue lately because I decided I needed to set up a backup server at my home. For reasons I won't get in to, I've started using my MacBook as my main computer and realized how much trouble I would be in if it got stolen. I decided I wanted a backup server so I would at least have all my files if the laptop were misplaced. (I also use online backup, but don't want to think about how long it would take to pull everything back down from the internet.)

The problem is that I've set up servers at home with my regular distributions (Ubuntu, Mandriva, Fedora...) and I get tired of reinstalling them. These desktop distributions are only supported for around 18 months, but I've had servers running for much longer than that. I don't want to keep upgrading them. Some distributions also offer a server version, such as Ubuntu Server, but I wanted something I could imagine using at work. I wanted something more enterprise worthy that I could practice with.

My choice was narrowed down to Debian, or a Redhat rebuild. I like Debian, but Redhat seems to be more widely used and more in demand in the enterprise. I decided I would go with a rebuild. I've used CentOS quite a lot and actually run it on our servers at work. However, I've been a little disappointed with how slow they've been to release lately. It's been months since Redhat has released version 6.0 and 5.6, but CentOS hasn't caught up. In the meantime, they're getting further and further behind on updates. I've also spent time on their freenode IRC channel and the people there are actually pretty rude. So I thought I'd give something else a try.

I was surprised when I saw Scientific Linux beat CentOS to releasing a rebuild of Redhat 6.0. I'd never heard of them before, but they are a Redhat rebuild and can use all the same repositories. Not only that, but they've been beating CentOS as far as security patches and updates go for some time. I installed it and set it up to run backups and everything has been great. It definitely is a server distribution, not one that I'd recommend for a desktop, but this is exactly what I want for this machine.

Saturday, January 15, 2011

Another one bites the dust

    A little while ago, I realized that EBC Computers went out of business. I'm not very surprised that they are gone, but I am actually a little sad. Not only because I worked there years and years ago, but because they were the last fairly decent computer retailer I would get parts at. If I want to buy any parts now, I have to go online and wait a few days. Let's look at some of the businesses that have disappeared.

EBC Computers
    EBC actually had pretty terrible service. Having worked there for over a year, I got to see some very interesting business practices. Things I can't really agree with, but I can see why they would operate the way they did. For example, when a customer would return a part and say it didn't work, EBC would send the part back to their headquarters where an employee would test the part. That makes sense, but if the part tested fine, they didn't sell it as open-box, they would repackage it and sell it again as new. It sort of makes sense in that it is still a new part, it's just been "tested."
    They also had a huge contract for customers posted on the wall. People would never read it, and you could hardly expect them to because it was so long. But whenever there was a dispute, the employee would find the fine print there and point it out. The problem was that most of the policies were not common sense if you shopped at basically any other retail store. When I worked there, sometimes I'd go home and review the day, wondering how many customers I'd screwed over that day. That was actually one of my brother's favorite questions: "Mike, how many customers did you rip off today?"
    My favorite story from working there was when we sold dial-up modems. For some reason, they didn't come with a driver disk. EBC decided to make the drivers available online and told us to give that information to the customers. What good does that do? They have to use the modem to get online to get the drivers right? Stupid. I bought a big box of floppies and started copying drivers for the people that bought those modems.
    EBC did have some good aspects thought. They did have decent prices and they usually got recently released products in a timely matter. If you kind of understood their operating practices, they weren't horrible to do business with. They also lasted longer than the other two retailers in this review.
    Alas, EBC went out of business. They posted a final message on their site that said: "EBC is closed, for any warranty will go through manufacture. Sorry for any inconvenience" I really liked the message. It seems like their final act of screwing over their customers. Not only is it hard to understand, they didn't post any information on how to contact the manufacturers.

PC Club
    I was never a big fan of PC Club. I would go there because I had co-workers who were big fans. Also, once in a while, they had something that EBC didn't or had a better price than EBC. They were much more like a retail store than EBC as well. They had more of a show room where you could pick parts off of the shelves and then take them to the counter to pay. I liked that much more than EBC and LS Micro, where you had a part list and you'd tell the employees what you wanted and then they would disappear into their warehouse and pull them for you.
   I had two big complaints with PC Club. One was that the prices they showed online didn't match what was in the store. Even if you picked the individual store you would visit. I'd often price out a system and then find it costing 20-30 dollars more in the store. It was very weird.
    My other complaint was that the employees really felt they were superior to you as a customer. I remember I bought a video card and found out later that there was an incompatibility between that particular model and the particular motherboard I had. I would never have expected that because it's been so long since I've had to deal with hardware incompatibilities, but the employee didn't believe me. He didn't want to let me exchange the card for another one. Finally I convinced him to let me exchange it and the new card worked wonderfully. Pretty silly though, just let me exchange the part.

LS Micro
    I really liked LS Micro as a store. I think their stores and employees were much better than EBCs. I can't really compare them to PC Club because LS Micro was out of business before PC Club came around. They also got some very interesting parts in and had a better variety than EBC. At least that was my impression.
    The big problem with LS Micro was their prices. They were a lot more expensive than other stores and they didn't really have a reason to be. On parts that were exactly the same, they were five or so dollars more than the competition. When I asked them about it, they said they offered better service. So I asked them what better service they offered and the employee mumbled something about building systems and doing upgrades. So I asked him why that would make individual parts more expensive if I wasn't having them perform any of those types of services. He didn't really have an answer. They didn't necessarily offer better warranties, so I still don't see how they justified it. I guess that's why they went out of business.

    I would imagine it's difficult to be a brick-and-mortar computer parts reseller. First, most of your customers are probably tech-savvy enough to shop for parts online where they can find the lowest prices. This would cut your customer base down to people who need parts that very day. The parts you sell are also pretty standardized, which means it's difficult to differentiate your store from any other store. I guess you could tout better service or better warranties, but that usually means you'll need to charge higher prices to meet those claims. Higher prices means less customers willing to pay. Oh well, might as well just shop online.