‘Til the Blinking Red Light of Death Do Us Part

PS3

I can still remember the launch of the Sony PlayStation 3. While the supply shortage was nowhere near that of the launch of the Wii or Xbox 360, it was still quite difficult to get your hands on one. All I knew is that I wanted a PS3. I wanted one badly enough to pay $600 for one, even though I already had an Xbox 360. I found my PS3 on the second weekend after the launch, and I never looked back over the next 37 months.

Then, suddenly, tragedy struck. I was playing Fallout: New Vegas when the game came chugging to a halt, I heard a loud beep-beep-beep noise, and the game shut off. Fallout has a reputation for being very buggy and having frequent freezes and crashes, so I didn’t think too much of it. I restarted my PS3 and began to play Fallout again. After killing a couple Powder Gangers, it happened again. So I tried restarting the PS3 one more time, and within 10 seconds, before I could even get the game booted up, it crashed yet again. It was the dreaded “Blinking Red Light of Death.”

I spent the next few hours trying all troubleshooting ideas I could find on the internet. Some people have made claims that entering the debug menu and restoring the file system will fix the problem. No luck. Others claimed that removing the hard drive and re-seating it in the HDD slot will fix it. Nothing. I’d also read that it could be from the fans being clogged with dust on the inside of the machine, and that I should run a “fan test”. Not even close.

All of the other suggestions, tutorials, and walkthroughs suggested taking the PS3 apart and re-soldering the GPU and Cell Processor to the motherboard. Keeping in mind that I didn’t have the tools necessary to take on this job, and the fact that I thought Electric Engineering 201 & 202 were hard in college, I decided not to go this route. I didn’t feel like spending 2 hours attempting a fix that I would likely screw up and make things worse.

This left me with two options: send my console to Sony and have them repair it for $150, or buy a new PS3 Slim for $300. On the one hand, I could save a little money going the repair route. On the other hand, I could get a smaller, brand new console for only twice the money. My dead 60GB console has PlayStation 2 backwards-compatibility, but I realized that I never use it. The PS2 games that I still have are sitting exactly where they were when I first moved to Chicago, so it was unlikely I’d play them anytime soon. Also, I didn’t want to take the risk of the repair lasting only a short time before the console broke again. In the end, I decided to buy a new console.

PS3 Slim
The PS3 Slim is a lot sexier than the original model...

Going the route of buying a new console was not without its hurdles, however. The first challenge was retaining my game saves and purchased PSN games on the new console. Sony provides a “Data Transfer Utility” for transferring all content, even protected content, from one console to a replacement console. The challenge was getting the data off of the old console that doesn’t work for longer than 10 seconds. I thought I’d give it a try since I had nothing to lose.

In order to perform the procedure, both consoles need to be connected to different inputs on the TV, so I hooked the new one up to HDMI, and the old one up to Composite Video. This is when I discovered that my broken PS3 still worked fine running at 480i through the AV Multi Out port. I can’t imagine anyone would be satisfied gaming on a PS3 in 480i with a 55” Samsung 1080p LCD television, so I did the logical thing and just took advantage of the old console running long enough to transfer my data to the new console.

After the entire ordeal was complete, an astonishing 24 hours later, my new PS3 Slim is functioning as if it was the same console. If the Blinking Red Light of Death ever happens to you, I have two pieces of advice: dig out your composite video cable, and be patient with the data transfer utility. The result will be worth it, and will lessen the sting of dropping $300 on the replacement console.

Detailed information about all of the troubleshooting steps I attempted, as well as the ones I chose not to attempt, can be found aplenty on Google and YouTube, so I won’t go into further details here.

The Day I Left Firefox Behind

A Terrible Browser

In the early times of the Information Age, web junkies like myself did not have many browsing options. Internet Explorer had been absolutely terrible for essentially its entire existence, but early versions of Netscape Navigator and Netscape Communicator left much to be desired. Then Netscape 6 was released, which was based on the young, yet promising, Mozilla Application Suite. Unfortunately, I never paid much attention to it; like many consumers, Microsoft was all I knew.

Towards the end of 2004, the browser I had been waiting for was finally released: Mozilla Firefox. It did a decent job of rendering a wide variety of web sites, and regular compatibility and feature updates were a godsend. But Firefox’s real draw was its customizability. It was now possible to install browser add-ons that were not named “Flash Player,” and the possibilities were almost endless.

Mozilla Firefox
Mozilla Firefox

As a web developer, coupling Firefox with the Firebug extension became an absolute necessity of life. I could easily inspect any element in a web page, monitor all requests made by a single page request, investigate response headers, and even edit CSS on the fly to immediately see the effects of a change.

Throughout the years, I have experimented with Safari, Opera, Chrome, and Internet Explorer 7 and 8, but nothing really grabbed me. Internet Explorer was (and is) still absolutely terrible, Safari didn’t fit my Apple-free lifestyle, and Opera and Chrome didn’t do anything I couldn’t live without. I was convinced Firefox was not only my favorite browser, it was THE browser.

Mozilla Thunderbird
Mozilla Thunderbird

Over time, my Firefox fandom led me to using Thunderbird as my desktop email client. This was another area in which there were not many good options in the dark days of computing. Outlook Express was, in my opinion, not a pleasure to work with, and Outlook was not a viable option for anything other than businesses running a Microsoft Exchange server. Thunderbird provided an easy-to-use interface for POP3 and IMAP email accounts, and the customizable UI took the cake. I was hooked.

Thanks to Mozilla, over 6 years of my cyber life were absolute nirvana, and I never imagined I would leave it all behind.

C-Day

The day that set the fateful chain of events in motion was the day that I downloaded the Firefox 4 Beta. I absolutely loved the new minimalistic interface design, leaving many more precious pixels to display the current web page. I also loved the Sync feature which allows me to use the same bookmarks, usernames, and passwords from any computer at any time.  I don’t even need to mention the benefit provided by the smaller memory footprint and faster page rendering.

Google Chrome
Google Chrome

Then an old friend from back in college made a comment on Twitter. In my own words, he said that “Chrome is better at being Chrome than Firefox is at being Chrome.” That’s when it hit me: I should be using Chrome instead of Firefox. It has all of the features that I love about Firefox, as well as many features that the new Firefox was trying to emulate. After spending some quality time with Chrome, it was clear that it is still faster than Firefox at rendering most web pages, and has an even smaller memory footprint.

Windows Live Mail
Windows Live Mail

My newfound love for another browser got me thinking about the state of my email client. Thunderbird has fallen behind, and I was not so sure I wanted to stick with it. Since the free Windows Live Essentials 2011 was recently released, I decided to give Windows Live Mail a spin.  Turns out: I love it.

Windows Live Mail is essentially a version of Microsoft Office, except focused at the home user. It even includes the nifty ribbon interface that caused everybody to hate Microsoft even more than usual when they released Office 2007. With much of the fat trimmed out of the full-fledged Outlook client, Windows Live Mail fits my needs as a home email client. I’d definitely recommend it to anyone looking to switch, as long as they don’t use Linux as a primary operating system.

Competition has done a lot to make the internet a better place. I hope the competition continues, and may my mind be open to another browser switch when the time is right.

Net Neutrality: A Lose-Lose Situation?

Question?
Question?

Much has been made about net neutrality recently. But what does “net neutrality” really mean? In a nutshell, it’s the idea that Internet Service Providers should not be allowed to discriminate against any type of traffic on their networks, for any reason. While it has many more implications, it has become a hot topic of discussion with the rise of streaming video over the internet, which Netflix and Comcast currently find themselves in the center of the fight.

On the surface, net neutrality seems like a no-brainer, but is it really? The fact of the matter is that net neutrality is a very complex issue, and no matter the outcome, we, as consumers, will be the losers.

I feel there are two distinct sides to the issue, and many people may not be aware of the legitimacy of both arguments. This is America, and information is supposed to flow freely, much like the Freedom of Speech, provided by the Bill of Rights. However, bandwidth is not free, and companies like Netflix essentially make a profit using the property of companies like Comcast. Our great country is also based on Capitalism, and both sides understandably want their share.

A Lose-Lose Situation

Suppose the government steps in and enforces net neutrality upon all ISPs nationwide. That sounds like a dream come true to most people in our 21st Century society. Who wouldn’t want to be able to stream any video over the internet on demand, in the comfort of his or her own home, or even on the road? In many cases, this is the extent of the argument, case closed.

Unfortunately, providing network bandwidth is not free. When it comes to millions of consumers streaming terabytes of video simultaneously, it becomes quite expensive. ISPs have to maintain their networks and buttress their infrastructure in order to support the dramatic load increase brought on by the advances of technology. This increase in cost reduces their profits, while Netflix’s profits soar to unimaginable heights. This is a capitalist society, and the ISPs, unsurprisingly, are not happy when their profits fall. If the ISPs are forced to allow all types of traffic, monthly fees from your friendly neighborhood cable company will go up, in order to cover their losses.

Now suppose the government steps in and says ISPs can discriminate against streaming video services like Netflix. Netflix will have to pay ISPs like Comcast a hefty sum in order to provide their services to us, the consumers. Again, this is a capitalist society we live in, and Netflix would pass the cost on to the consumer. Netflix recently increased the price of their streaming subscription, so I have no reason to believe that they would not do it again.

The Bottom Line

If freedom of information wins, we lose. If ISPs win the fight, we lose as well. I hope I’m missing the third scenario where we win. Maybe I’d settle for a tie, because I’m having a hard time seeing the consumer benefit either way.

Nobody likes higher prices, but the bottom line is that bandwidth is not free, and economics dictates that the cost will be passed on to the consumer. As streaming video technology continues to evolve, with more and more HD video becoming available as we speak, I’d like to hear what you, our readers, think about the issue.

Image provided by Discovery Education

Five Great Gift Ideas for Public Transportation Commuters

At my previous job, I took the train from the suburbs straight to Union Station in downtown Chicago. The train ride would leave me with about 2 hours each day to do whatever I please, as long as it could be done on a train. Thankfully, technology has drastically increased the number of entertainment options the typical day-commuter has for the boring trips to and from the office. Whether your loved ones take the train, bus, or carpool with others, here are five great gift ideas that they are sure to love.

5) Amazon Kindle

Reading is probably the most old-school of activities one could do during a commute to work, or any time, for that matter. Old-school or not, people still enjoy reading during their free time more than any other pastime. Thankfully, with technology, it is no longer necessary to drag along your library books.

An entire book can be loaded on to this device, which is much smaller than your standard paperback novel. When you finish one book, there is no need to go to the library or the store to find a new book; one can browse for and download a new book from the Kindle Store, straight to the device itself. They even come equipped with 3G and WiFi, so the busy individual can acquire new reading material on the go. Available for purchase from Amazon.com, this gift is perfect for any commuter on your list that enjoys reading.

4) MP3 Player

There are all kinds of MP3 players on the market, most of which are quite capable of playing a large collection of music on the go. Perhaps the fact that there are so many options out there is what makes this such an attractive gift. But buyer beware, not all MP3 players are created equal. The right gift for that special someone can vary greatly based upon their own personal tastes.

Personally, I still love my iPod Classic, but I know many people that prefer their iPod Shuffles, iPod Touches, or even the iPhone. In my mind, the iPod Classic plays my music, and plays it well. I don’t personally care about the other features and apps of newer MP3 players, but many do, so it is important to take that into consideration when shopping for the audiophile on your holiday shopping list.

3) Netbook

How could one possibly go wrong with a laptop? They can do simple word processing, browse the internet, send email, watch video, and a seemingly countless amount of other tasks, all from one device. Add a 3G or 4G mobile device, and all of this can be done on the go. It’s literally the gift that can do it all.

Sure, it’s quite a bit larger than an iPad or similar tablet device, but personally, I wouldn’t trade in my laptop for anything. During my long commutes, I would actually write code and design websites, which would be much more difficult, if not unfeasible, to do on an iPad. A netbook or laptop is the perfect gift for the IT nerd on your list, or for the individual that wishes to perform many tasks from one device.

2) Android Smartphone

The single greatest advantage to the Android smartphone platform is the variety of different options available to the consumer. If you go with the undoubtedly solid iPhone, that is more or less your only option. Apple has a monopoly over the iOS, so you get whatever Steve Jobs says you’re getting.

Android, however, has many different flavors, and is available on many different networks, including the most dominant carriers, Verizon and AT&T. Consumer choice is the ultimate benefit of the Android platform, providing the perfect smartphone for anyone on your list, no matter their tastes.

1) Sony PSP Go!

This device is my personal favorite. I spent countless hours playing games such as Disgaea: Afternoon of Darkness, God of War: Chains of Olympus, Grand Theft Auto: Chinatown Wars, LittleBigPlanet, and even some PlayStation Minis. All of the games are downloadable from the PlayStation store, which features hundreds of titles spanning every genre known to man.

The PSP Go!‘s small size makes it easy to fit in your pocket, or backpack, or even your lunch bag. The possibilities are virtually endless, perfect for the avid gamer on your holiday list.

Images courtesy of Amazon.com

SharePoint Solution Deployment Horror

A couple of weeks ago, I had the worst professional SharePoint moment of my life, thanks to SharePoint 2007, Visual Studio 2008, and WSPBuilder. Deploying custom solutions to SharePoint is something I have done many times, but I’ve learned to expect nothing but the worst, especially when the task at hand seems like it should be easy. In the end, I had wasted far too much time performing a seemingly mundane task. My goal is to relay this experience and how I overcame it, in the hopes of saving several hours of your life.

Using Visual Studio 2008 and WSPBuilder, I had created a custom Workflow solution to deploy to a SharePoint 2007 site. The workflow was a fairly simple one, simply copying a document from a drop-off library to a document library on a different site collection, along with its associated metadata. Using a stand-alone installation of SharePoint 2007 on a virtual machine, I created a model of the production site, based on my understanding of the architecture. Then I proceeded to write a workflow to fit this design.

After writing the code and creating the .wsp, the initial deployment to production went without a hitch. However, after some quick testing, it was clear a couple minor tweaks needed to be made to the workflow; my development site did not quite match the production environment. In retrospect, I would say this is where things began to go wrong. But at the time, this seemed like no big deal. It should be easy to tweak the workflow code and redeploy it. Right?

Unfortunately, I’ve never been so wrong. After making the code changes, I created a new .wsp, retracted and removed the old solution from SharePoint, and deployed the new solution. I tested the workflow again, and, to my bewilderment, it still did not work correctly. In fact, it didn’t seem to be behaving any differently than the first time.

I went back over my code to see if I made any silly mistakes. Everything looked good as far as I could tell, and unfortunately in this situation, I could not debug my solution on the production server. My only option was to change the code and redeploy. After making minor code changes and redeploying several times, nothing I did seemed to make a difference. The workflow seemed to run exactly the same each and every time, returning what seemed like the same error in the same place.

So I began to think about it a little differently. It almost seemed to be using the original DLL in the GAC (Global Assembly Cache), even though I obviously had retracted the old one and deployed a new one. The GAC is a cache, after all. Just to be sure, I navigated to the GAC in Windows Explorer at C:\Windows\assembly, and sure enough, the DLL was not listed in there after retracting the solution. And when I deploy the new solution, the DLL would show up. It seemed to be working exactly as I would expect.

Global Assembly Cache
Windows Explorer view of the GAC

One thing I did notice was that the assembly version was still 1.0.0.0. Perhaps since I left the assembly version the same in Visual Studio, the GAC wasn’t taking the new DLL at all? To change the DLL version, I had to change it in 3 spots in Visual Studio: in the project properties pages, in the elements.xml file, and in the feature.xml file. After making this change, I packaged up the .wsp again, and deployed it, confident my nightmare was nearing its end.

This time, SharePoint did not seem to recognize my new feature at all, as I could not find it in the site collection features list to activate it, or see the workflow in the list of available workflows to add to a list. After Googling my issue, I decided that I may benefit from using STSADM exclusively for adding, deploying, and installing solutions and features. Previously, I had been simply adding it with STSADM, and then using Central Admin to deploy the solution and activate it. This approach, in my experience, has appeared to work flawlessly with SharePoint 2010, but apparently this is not the case for SharePoint 2007.

It turned out that while I had updated the solution to a new version, the feature was still looking for the old version. This is where extensive use of stsadm came in to play. Using the command prompt, I issued these commands, in order:

  • stsadm –o deactivatefeature –name –url <URL of SharePoint web application>
  • stsadm –o uninstallfeature –name <name of feature folder> –force
  • stsadm –o retractsolution –name <name of solution .wsp file> –immediate –allcontenturls
  • stsadm –o deletesolution –name <name of solution .wsp file>
  • stsadm –o addsolution –filename <file path to .wsp file>
  • stsadm –o deploysolution –name <name of solution .wsp file> –immediate –allowgacdeployment –url <URL of SharePoint web application>
  • stsadm –o installfeature –name <name of feature folder> -force
  • stsadm –o activatefeature –name <name of feature folder> –url <URL of SharePoint web application> -force

Using stsadm –o updatesolution probably would have worked as well, but that is not the route I ended up taking. Finally, I tested the workflow one last time, and it worked like a charm. After wasting many hours of my life on something that seemed so simple, I was relieved to have this nightmare behind me. Hopefully this will help prevent you from experiencing the same problem.

As I mentioned before, I probably could have saved a lot of headache if I had a better understanding of the production site’s architecture before I began development. It is important to ask the right questions in order to get the answers you need. The person you are getting the information from won’t always know all of the important details, so it is up to you, as the architect and developer, to get the information you need to get the job done.

If you want to learn more about WSPBuilder or STSADM, please check back here soon. I plan on covering both of these useful tools in the near future.

Image Courtesy: Brian Pennington

Ask Techerator: How can I search by only File Name in Windows 7?

Techerator team:

I’ve just switched from Windows XP/Office 2003 to Windows 7/Office 2010.  Before, I could easily find files in Word & Excel by simply typing a word that I knew was in the filename….

Now with Windows7/Office 2010, by searching in the upper right corner search box, the directory instead lists all the files which have that word anywhere in the body or the title.  It produces a ton more results and makes it hard to find what I want without going down a long list.  Do you know how I can make it search only the titles of files, not the body?

I have to say, this same problem was a bother to me as well. With Windows 7, Microsoft significantly “upgraded” the search functionality with an improved indexing service with the ability to search not only file names, but the actual contents of the files as well.

I’m not trying to say this is a bad feature; it certainly is very useful. I just find it odd that Microsoft would completely remove the old functionality, the ability to search only by file name. Now every user has to re-learn how to find a document to which he or she knows the file name offhand. Fortunately, the functionality is still there, the users just have to work harder.

The key to the new Windows 7 search are “search filters,” which allow the user to specify which part of the file to search in. Start typing a keyword in the search box in the upper right-hand corner of the window, and a little drop-down menu will appear with these search filters. The two visible are probably useful in the most unrealistic of scenarios: “Date modified” and “Size.”

Apparently, you should just know that a search filter called “Name” exists. Using this search filter will only look in the file name (and folder name) for the search, and you won’t have to worry about every single Office document containing the word “hello” appearing in your search results.

So there it is. To search by only filename, prefix your search with name:, followed by the word or words you wish to find. It’s so simple, yet so user-unfriendly. I think I’ll get back to scratching my head about this one.

A Developer’s Guide to Troubleshooting Microsoft SharePoint Errors

Anybody that has worked with Microsoft SharePoint as a developer knows that it can be an exercise in frustration for the strangest of reasons. One only has to see a handful of helpful error messages such as “An unexpected error has occurred” to understand exactly what I mean.

Yes, one may look through the logs to find more details about the error that occurred, but in most cases this requires a Correlation ID, which in many circumstances SharePoint neglects to make known. Without this 32-digit, difficult-to-remember hexadecimal value, finding the error that occurred can be very difficult (if not impossible in some circumstances). At least SharePoint will reward a diligent developer with a stack trace for a job well done.

After 5 months of SharePoint training, development, research, and a certification, I don’t think I’ve become much better at SharePoint development. Writing the code is the easy part. What I have become better at is fixing the errors, and avoiding some errors altogether.

Dealing with SharePoint Errors

Starting out, the best thing one can do is learn to use the logs, which are buried deep within the catacombs of the Program Files directory. If SharePoint doesn’t issue a correlation ID, search for exceptions around the same time period in which the error occurred.

When you find the exception type which was thrown, Google it! If you can’t find the error in the log, Google it! At least ten thousand developers have experienced the same issue, and number of them have either recorded the solution in a blog or posted on a message board, where someone else posted the answer. When armed with knowledge, nothing can take down a .NET developer.

Keep watching this space in the future, as I plan on covering a wide range of SharePoint 2007 and 2010 topics, including user experience, administration, and development, along with other struggles I come across along the way, all of which in the hopes of keeping you from making the same mistakes as me.

In case you’re wondering, here’s where the logs are located. You can see why I didn’t put them in the body of the article:

  • SharePoint 2007: C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\LOGS\
  • SharePoint 2010: C:\Program Files\Common Files\Microsoft Shared\web server extensions\14\LOGS\