Caching Apache Forward Proxy

Apache FoundationIn my never ending quest to get more use of my computer equipment, I embarked on a new project last month. The problem, namely internet bandwidth. The home network just seems to be growing and growing with no end in sight. Between gaming systems and media servers, bandwidth is a big problem for most home networks. In my case, I already have a nice Windows Home Server 2011 box that is really not doing much, so I started thinking about what other uses this computer can do for the home network and a caching proxy made absolute sense.

Apache on Windows?

When most of us think Apache Web Server, we think Linux, but in reality Apache runs on Windows as well. The best resource out there for running Apache on Windows is the ApacheLounge; here you can find customized builds and forums with helpful information. For this scenario, I wanted a 64-bit version of Apache for Windows. This posed a problem, since Apache does not build a 64-bit version for Windows and the ApacheLounge did not have either. At this point you would need to compile it, or download an unofficial build from Since the goal is a caching proxy, I do not need to worry about 64-bit PHP or MySQL; those components are a non factor. At the time of this writing, I installed Apache 2.2.19 64-bit. I won’t detail the actual Apache installation since this is covered very well on other websites. (more…)

WHS 2011 Upgrade

HP MediaSmart ServerAdopting new technology is often a difficult journey. In the beginning the idea is simple, you want a home server. But then you begin to expand on the idea, add some requirements such as power efficiency, low noise, small form factor, good storage options. You take a look at the Mac-Mini and think it is interesting, but not for you, you still want something bigger. Eventually you come upon this little black box from HP. The HP MediaSmart Server is a good idea, right? It even comes with Windows Home Server, a customized version of Windows 2003 that is suppose to give you all these features. You even find a good price for an EX490 model on the Internet. Eventually it comes out of the box and you decide, the hardware needs upgrading, you install a faster CPU and max out the memory to 4GB and then add some 2TB SATA drives and you have yourself a pretty good looking box.

In the back of your mind though, you cannot help thinking that the HP customized version of Windows Home Server really is not performing. After all, it is 2010 and it is all about 64-bit software now. Windows 2003 looks as ancient as well, Windows XP. Microsoft keeps talking about Windows Home Server 2011 and how it will be based on Windows 2008 Server instead. You wait and you wait and you wait and well, you wait. Then finally you find an Internet retailer that has WHS 2011 OEM for sale! You order your copy and get it a few days later. You get to play with a new Windows version again and this is where the real story begins…

The Installation:

WHS 2011 is not an upgrade, so the first thing to do is to copy all your data off of the MediaSmart box. This was quite easy for me, since all I had was music and video files. Ironically the original reasoning for buying the MediaSmart Server was to use it to backup my main Windows 2003 Server. Something which for some reason I never was able to get it to do. I have had the pleasure of restoring the MediaSmart EX490 from the HP discs and that process was pretty complicated and involved using another WindowsXP machine. For WHS 2011, the installation process was so much easier, that I cannot understand why the recovery process was so much more difficult. I followed Sean Daniel’s excellent How To Install WHS 2011 Guide and was up and running in no time. I even used my Windows 7 (VMWare Fusion) on my MacBook to make the USB boot drive install. For my install I setup WHS 2011 to use the entire 1TB drive. This was perhaps the easiest Windows installation I have ever done.

Missing Drivers:

Once I was up and running, I used RemoteDesktop to connect and administer the box. The “Mass Storage Controller” driver is not installed by WHS 2011, so you will need to download the driver for it from Silicon Image Support. The driver to download is labeled: SiI 3531 64-bit Windows SATARAID5 Driver for Windows 7. You will want to download the latest version of course. To install the driver, unzip the file download and then go to Device Manager and click on the Mass Storage Controller and Update Driver, point it to the unzipped files and Windows will do the rest for you. Restart the machine.

Network Settings:

Next up, was to modify the network settings. Setup the box with a static IP address, and gave it the right DNS Server and Gateway addresses. Set the Network Card to 1GB Full Duplex if your network devices support this. The Windows Firewall is a lot more complicated in WHS 2011 and more useful than the old Windows 2003 one. If you decide to leave it on, be prepared to modify it frequently because it will shutdown a lot of applications and services.

Setup Applications & Services:

For Anti-Virus, I use ESET Nod32, so that was my first application to install and setup. Even though WHS 2011 is a server operating system, I had no problems installing the Home edition of Nod32 64-bit. After this came Mozilla Firefox, iTunes, Adobe Flash Player, VLC Media Player, and PlayOn.

Initial Pros and Cons:

WHS 2011 is faster. It is more responsive on the same hardware than WHS v1 ever was. Disk access is better without Drive Extender. Speed wise, WHS 2011 is a no-brainer, if you want a faster machine and you have a 64-bit CPU and 4GB of RAM, do it.

HP included Twonky Media Server, FireFly for Music streaming, and even an iPhone streamer with their WHS v1 setup, but I always found these solutions to be slow and buggy. With WHS 2011, there is only Windows Media Player which seems to work for me much better than HP’s solutions. Even before the WHS 2011 upgrade, I was already using PlayOn to serve my media, so I just ended up reinstalling PlayOn after the upgrade.

Backing up machines was suppose to be the main reason behind a home server, but in this respect, I really can’t take advantage of WHS. My main problem is that the only real Windows box besides WHS is my main domain controller, which is Windows 2003. WHS v1 always had problems creating the backup and so I ended up giving up on this. WHS 2011 is worse, because it does not even come with a connector for Windows 2003. It is not a supported client OS. This was a big let down, but oh well, I already had another backup strategy for the Windows 2003 Server. Most of the machines in the home are Macintosh. There are about three laptops and one iMac machine. Here is where the HP software actually worked better than Microsoft, at least for wireless Mac clients, because if you are on a wired connection, the HP solution did not work due to Apple limitations. With WHS 2011, Microsoft has no backup solution for Mac clients. There are ways to make wireless Macs work but you have to do the setup yourself and I still have not been able to make wired Mac clients work. Here is a situation where Microsoft really could have done better and chose not to.

This leads me to another point about Microsoft, mainly that Microsoft does not get consumers. Here is a product that they are selling as a Home Server and which they expect other companies like HP and Acer to improve upon to make it better for consumers. Out of the box, WHS 2011 does not support Macs very well, and it is pretty much as complicated as the original Windows 2008 Server. Other than a computer geek like myself, I am not sure who else would buy this, when there are simpler solutions like Apple’s Time Capsule and WD NAS drives.

No Support From HP:

It is kind of disappointing that HP stopped making the MediaSmart Servers and announced they would not support WHS 2011 on these machines. I think HP embraced the idea of a home server and they did not get it totally right, but I think Microsoft did not help either. With the EX490 running WHS 2011, I now have dead drive lights, never to be lit again due to lack of driver support from HP for WHS 2011, and a blinking activity light.

Additional Links & Resources:

At this time there really is not much out there in regards to WHS 2011. There are not really any new Add-Ins that are available. Hopefully there will be some soon. If you are looking for a manual, I do recommend purchasing Microsoft Windows Home Server 2011 Unleashed (3rd Edition). This book was an overall good reference to WHS 2011 and provided some interesting insights, like installing SharePoint 2010.

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: 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 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.


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?