Flash Streaming Video Fix

Flash Player LogoLike most technical people, I find myself watching less and less television. There are simply not enough hours in the day to do my regular work, spend time with the kids, walk the dog, and watch TV. However, I still like to watch the occasional South Park episode on SouthParkStudios or turn on Hulu to watch a few episodes of Parks And Recreation and 30 Rock. For a time, I encountered a lot of issues with SouthParkStudios not streaming right. After doing some research, I found that Flash streaming is problematic if you have multiple computers at home. The solution is to modify your router settings. In DD-WRT routers go to NAT/QOS: Port Triggering and add port 1935. This will allow SouthParkStudios videos to work on all computers in your home network.

Flash Port Triggering in DD-WRT

This fix should also work for Hulu Plus videos as well. However, the other problem that Hulu Plus has is that it defaults to 720 HD most of the time. If your internet connection cannot handle this speed, it is best to log into Hulu, go to your Account: Settings and under Player Settings change the Playback Quality. For me 480p works fine.

Netgear WNR3500L Wireless Router

Netgear WNR3500LRecently, my home network has managed to grow significantly. Between a couple of file servers, three client machines, and a printer, I thought my Linksys WRT350N was handling the load fine, but then it was all the other non-computing devices that are starting to eat away at the network. There are smart phones, the Playstation 3, Nintendo DS and Wii, a new Blu-ray Player that I got that has network capabilities, and the home theater receiver now too has a wired network connection. When you add up all these network devices, the typical wireless router is no longer a good fit.

Expanding The Network

The first problem I ran into is that the network must support both wireless G and N devices. Putting devices on the same radio signal causes slowdowns for N devices. Separate radio signals can be had by purchasing the latest dual radio routers, but these are usually expensive. If only some company would make an 8 port Gigabit Ethernet wireless router that would also help me out a bit, but there is not at this time a perfect router. The best solution that I could come up with is to have a main wireless N router manage the network, with a switch and another access point connected to the router. Adding the switch and access point brings up another problem. Namely that you want to maintain Gigabit Ethernet connections between the router, switch and access point. Most wireless routers and cheap switches are 100 Fast Ethernet and since the purpose of building out the home network is to deliver HD video and other multimedia services, it is best to go with Gigabit Ethernet as much as possible.

What Works?

What I ended up with right now is using the Netgear WNR3500L as my main router. This is a moderately priced router that can be had for around $70 or less. You can find the specifications on Newegg. Other than the price, the 480MHz CPU and 64MB of memory are good selling points, add open firmware support and you have a great bargain. I ended up purchasing two WNR3500L units from the local BestBuy; utilizing BestBuy’s rewardzone coupons, I was able to save 12% off the regular price.

Once at home, I went through the process of upgrading the WNR3500L to use DD-WRT instead of the default Netgear firmware. Netgear considers the WNR3500L an open router, so you can upgrade to opensource firmware packages; Netgear even has a website for you to reference: MyOpenRouter.com. For upgrading specifically to DD-WRT reference: Upgrading to DD-WRT: Demystified first, then go to the DD-WRT Router Database to download the .chk firmware file: Netgear WNR3500L Firmware: Special File for initial flashing. You will need to flash to this firmware first in order to install a full DD-WRT firmware. Next download the actual firmware you will want to use from MyOpenRouter.com. I went with a version of the King Mod DD-WRT that does not have miniDLNA. At this point you should be ready to start flashing, just follow the specific instructions for the WNR3500L, that DD-WRT provides.

Add A Switch & Access Point

Next comes adding the switch and access point to the network. At this time the main router does the Wireless N radio only. I hooked up my old Linksys WRT350N as a Wireless G access point. The second WNR3500L is being used only as a switch at this time. In the future I may switch the Wireless G signal to the second WNR3500L and replace the WRT350N with an actual 8 port Gigabit Ethernet switch. To turn any DD-WRT router into an access point or switch follow these instructions. The hard part is figuring out which port to plug into on the access point or switch. For the WNR3500L all ports are Gigabit Ethernet, so you can use the Uplink port, but for an older router like the WRT350N, I used one of the regular ports, since the Uplink port on that router is not Gigabit.

Conclusion

As usual, once it is all setup, I had some problems with my Blu-ray Player, but after a couple of resets, everything worked as designed. The Playstation 3 likes having a wired connection and it plays media files from my Windows Server now without problems. Of course having more boxes, is more complicated and the electric bill will definitely be higher after all, but the speed is well worth it and it cost me less than buying an expensive cutting edge router.

Supporting Web Services

Web Services iconThe calendar is changing yet again on another decade and as we go from 2009 to 2010, it seems only natural to become a bit reflective on all things. Technology is always changing and what seems like life long disputes are now fading into obscurity, and before you know it, you will be sounding like an old timer talking about the old mainframe days of computing. In my case, the old local network model of client and server is where I made my professional career. However that model is dramatically different today. Today, I no longer work on Netware or Windows 2000 file servers and their Windows clients, as much as I work with browsers and the Internet. Instead of supporting a LAN, I mostly support Web Services; a term that describes pretty much anything if you really think about it. I tell most of my non-technical friends that essentially I support web sites, to make sure they are working the way they are suppose to. This is more easily said than having to explain that I spend most of my time trying to figure out where exactly my problem is.

The extraordinary situation is that supporting web services is kind of an unwritten subject matter. You will not be able to walk into Barnes & Noble and find it in the computer books section. Most of the time what you will find will be books that talk about making money with web services, by which they mean running your own website business or using eBay or Amazon to help your business. This is because web services, as we think of web services have not been around all that long. The prior file server and client model, what I call LAN support, has been around for more than two decades and it was properly evangelized by companies like Microsoft, Novell, and IBM.

For years, Microsoft sold and supported training for how to support your basic file server and local clients. You usually ended up with huge thick books and a paper certificate that you could hang on your wall saying you knew how to support Windows. Web services has no such certificate and even if you could point to one, it most likely would be so specialized that it really could not encompass much. For example right now, a web service could mean Apache Web Server connecting to a backend database that is serving up information to a browser on a Macintosh, a Windows machine, a mobile smartphone, or even a GPS device in your car! The technologies that make this happen are varied and when you think about the data it only starts to get more complicated. The iPhone as a platform for web services has been incredibly successful for Apple but even Apple did not foresee most of the web services that the iPhone is now capable of. As Apple has added more sensors to its device and given developers access to their data, it has allowed developers to change the way we think of web services. The iPhone will soon be able to not just tell you where you are, but inform you of what you are actually looking at or even what you should be looking at! Now if you look at it from the point of view of a person who wants to support that technology, where do you exactly start? It certainly is not going to be easy.

Since there is no one company behind the technology that powers web services, it is best to be a good problem solver who knows a little bit of everything and who can properly research problems.

Problem solving is all about being able to break things down to their rudimentary components and to be able to have a grasp on how something works. Experience counts a lot, but only if you develop good skills to begin with. Programmers are very good at breaking things down, so even if you do not see yourself as a developer, it is still important to learn the basics of programming. Languages like JavaScript, PHP, Python, and JAVA can teach you a lot about how to approach problems. Even if you never master a programming language, you can still take away a lot from the experience of just trying to program.

The absolute things to learn are HTML, CSS, and XML. These are the defacto data elements of pretty much all web services and are not at all difficult to learn. HTML is like learning to use different grammar, so pretty much anyone can learn to read and write it. One other subject matter to master for problem solving has to be networking. You must know how networking works, both at the protocol level and at the hardware level. You may not need to master CISCO routing, but you should learn the basics of what routing is, what TCP/IP is and how it works, and you must learn everything you can about HTTP, as this is the most common protocol you will be working with. Remember how I said there was not one book that you could pick up to learn web services? After all this reading, you will probably hate the computer section of the book store.

Once you have acquired some knowledge of the technologies involved, you will need to learn how to research problems. It amazes me how many people do not know how to research. This is the one skill that you need to acquire before you interview for any position. There is nothing more disappointing than to realize a candidate for a position has poor researching skills. If you never took a class on how to utilize Google Search, than pick up a book and learn how to mine Google for all sorts of data. This is an essential skill. No one can possibly know everything and remember you are getting paid to solve problems, so why not get ahead in life by using the immense knowledge out there on Google and other search engines. The other part of research is documentation. Effective people are organized. Find a system of organizing your researched data that makes sense to you, whether this is Outlook, a content management system like a wiki, or just a WordPress blog. Whatever you do, do not rely on your employer or someone else to tell you how to do this. What you will find is that it is a lot easier to stick to a system that works for you than it is to try to work within the limitations of someone else’s system.

Supporting web services is always changing, and so there will always be new browsers to test, new tools to use in your analysis. You will need to devote some small part of your day to reading about these new developments. And who knows maybe someday there will be a good book on how to do all this, but until then you will probably have to do all of the above. Good luck and remember it is just a website, right?

Faster Internet Browsing in Windows

Browser Speedometer GraphicsOn the Windows platform there is a memory wall that many people are experiencing. Namely, that Windows does not utilize all of your physical memory once you have 4GB or more of RAM, unless you are using Windows XP 64-bit or Vista 64. Instead of letting that extra memory go to waste, I thought why not utilize it in some other way. A long time ago we had the opposite problem with computers, where processors were slow and we tried to speed things up in any way possible. Today, we have a lot of processing power and abundant memory and now it is the software that needs to catch up to the hardware. Given this, I thought why not use a some of that extra memory and load it as a RAM disk. Then if you think about it, the most often used application in today’s computing is the web browser, which uses your hard drive to cache content. This sounds like a perfect opportunity to use a RAM disk and speed up your browser’s disk caching. IE and Firefox both make it easy to modify your disk cache directory too, so the biggest problem seems to be trying to setup the RAM disk in Windows. There are multiple commercial solutions, but only one free solution that I could find that works well.

First thing to do is setup the RAM disk. If you do not want to purchase a commercial RAM disk driver, you can implement this free RAM disk driver for Windows Vista, XP, 2000 and 2003 Server. You will want to have a RAM disk that is slightly larger than both IE and Firefox disk cache sizes put together.

Firefox:

  1. Type about:config in Firefox’s address bar and enter
  2. Right-click and choose New – Integer
  3. Input the following in the dialog box: browser.cache.memory.capacity
  4. Input a value in the next dialog box, such as 24000, which means 24MB
  5. Then in the Filter: bar enter browser.cache.disk.parent_directory
  6. If this setting does not appear, then you will have to create a New – String with the above name
  7. The value should be a drive path to your RAM disk, such as M:\Firefox
  8. Once you have both settings, close out of Firefox and start it back up again.

IE:

  1. In Internet Explorer, click Tools – Internet Options
  2. Locate Temporary Internet Files and click the Settings… button
  3. Change the Amount of disk space to use: to the appropriate size you want
  4. Click the Move Folder… button to select a folder on your RAM Disk. If you used the free RAM Disk, your RAM disk should have a TEMP folder at the root, just choose this folder.
  5. Click OK and close out of IE

Note:

Depending on your computer, your experience may vary. On my Windows laptop and desktop, the speed with which Firefox 3.5 launches is vastly improved. I do not use IE much, so it is hard for me to evaluate the differences there.

Apache 2.2 on Windows Session Cache Error

Apache IconThere appears to be a bug with Apache 2.2.13 which I ran into on Windows Server. See the following bug entry: Bug 23403. Opening the error.log for Apache showed the following warning:

warn Init: Session Cache is not configured (hint: SSLSessionCache)

Adding the following lines to the httpd.conf fixed the problem:

SSLSessionCache        "shmcb:c:/Apache/logs/ssl_scache(512000)"
SSLSessionCacheTimeout  300

Note: your Apache installation directory is probably different, so you will want to modify the above file path.