Andre's Blog

Personal blog of Andre Perusse

HTPC Build 2014 - Intel Haswell NUC

For several years back in the early 2000's, I had an original XBox that was modded so it could run XBMC (XBox Media Center). XBMC on the original XBox was awesome - it had a great user interface and would play every video file format known to man. But the original XBox wasn't high-def, so about 6 years ago I upgraded to a home theater PC built around an AMD Athlon 64 X2 5200 with a Radeon video card placed in an Antec NSK2480 HTPC case. Again, XBMC (on Windows) was my media player software and it has worked mostly great right up to now. I say "mostly" because XBMC has always been a little twitchy on this machine, requiring a restart every time the machine came out of sleep. But a small price to play for the amazing flexibility it offers.


My old Antec NSK2480

Well, six years is a long time for a PC and the Antec case is a little too big for the new equipment stand I recently purchased, so I decided it was time for an upgrade. I set my sights on Intel's NUC (Next Unit of Computing) machines because they have Core i3, i5, and i7 processors and are amazingly diminutive. The most recent iteration of the NUC has a few killer features that make it absolutely ideal as an HTPC:

  • The integrated GPU on Haswell Core CPU's can now output reliably at 24 fps (ideal for film material)
  • Because the NUC uses laptop-grade parts, it is amazingly power-efficient
  • It has a built-in infrared receiver

In addition to its size, the above three features were key to my decision to go with the Intel NUC. I looked briefly at a competing NUC unit from Gigabyte which includes Wi-Fi and Bluetooth for the same price as the Intel (you have to buy your own PCIe Wi-Fi card for the Intel if you want it), but foregoes an integrated IR port. I didn't need Wi-Fi or Bluetooth, and an outboard IR receiver is much less tidy. I'm also an Intel Ethernet bigot and the Gigabyte offering uses a Broadcom part instead, so the Intel NUC won out on several counts.



I ordered the i3 version of the NUC from Newegg.ca, along with 4 GB of RAM and a 120 GB SSD. Note that the RAM is a 1.35 volt SO-DIMM and the SSD is an mSATA drive - be careful when ordering these parts as the NUC doesn't use standard desktop memory and you can't fit a regular 2.5 inch SSD in this case (though Intel now has a slightly larger NUC that will accommodate 2.5 inch drives). I usually order my parts from NCIX, but in a rare instance Newegg was actually cheaper this time around and had all the parts in stock. The NUC shipped from Canada, but the RAM and SSD shipped from the States. In a happy twist of fate, both shipments arrived on the same day (3 days after I ordered, and using ground shipping, too - kudus to Newegg on this one). I should also mention that I had ordered a mini-HDMI to HDMI cable from Amazon.ca a few weeks prior, since the Intel NUC doesn't have a standard HDMI port.

  • Intel NUC Kit D34010WYK - $315
  • Crucial M500 120GB SATA mSATA Internal Solid State Drive - $95
  • G.SKILL 4GB 204-Pin DDR3 SO-DIMM DDR3 1600 - $44


One thing I found amusing about Intel's packaging for the NUC was the Intel jingle that played when I opened the box, much like those greeting cards that play a tune when you unfold them. The NUC was also much smaller than what I expected - only a little over 4 inches square, not much larger than Apple's current Apple TV box. I wasn't so impressed that I had to unscrew the four large Phillips foot-screws in order to install the RAM and SSD, but that was hardly a big deal. Once everything was installed and the NUC was reassembled, I was pleasantly surprised to see a nice GUI-based UEFI BIOS screen. It is very easy to use and I had the latest NUC BIOS upgraded in no time.

I used Microsoft's Windows USB Boot Tool to put Windows 8.1 on a bootable USB flash drive and had it installed on the SSD in less than 15 minutes. Another plus for Intel was the fact that you can download the entire set of Windows drivers in one ZIP file - a nice time-saver. I'll say this for Windows 8.1 on Intel's i3-4010 and the Crucial SSD - the machine boots wicked-fast in less than 15 seconds! This is a welcome change from my old HTPC which took well over a minute to boot.

I soon had XBMC installed and was ready for some testing. First, I wanted to check the power draw of this feisty little NUC. Man, this thing barely uses any juice. While playing a 1080P video file with DTS-HD Master Audio, it barely hits 15 watts. I measured idle power draw at around 9 watts, and it sips a measly 2 watts while in sleep mode. I was absolutely floored by these numbers. I also had some concerns that the integrated graphics in the Core i3 chip wouldn't be able to handle Blu-Ray quality 1080P video and high-def audio (I seriously considered spending an extra $100 for the i5 version of the NUC), but the machine barely breaks a sweat. Well under 20% CPU time while playing such a clip - amazing.

The last thing to mention is the fan noise. This is the one quibble I have with the NUC as the fan is clearly audible even from several feet away. It isn't necessarily loud, but if you had to listen to it that close for an extended period of time I think it could get very annoying. Thankfully I sit about 12 feet away from it which makes it barely audible, and you certainly can't hear it when watching something. Even a whisper is enough to drown it out.

Not directly related to the NUC itself but still pertinent to the HTPC experience as a whole is how I control the unit from way across the living room. I have a Logitech K400 wireless keyboard with an integrated track pad that works smashingly. But I hate to haul it out just to select a movie to play so instead I've programmed my Logitech Harmony Ultimate remote to work with Windows 8 and XBMC. It works really well, especially after making a few tweaks to the remote configuration to add some important functions. I'll write about those in a separate post.

Overall, I am immensely pleased with the Intel Haswell NUC. It's blazingly fast, amazingly energy-efficient, performs magnificently, and is nice and tiny. In fact, this would make a great general-purpose PC for anyone who didn't need an optical drive or required any expansion room. And while Intel's integrated graphics have come a long way and are well-suited for video tasks like this, their performance in today's top-tier games is underwhelming so gamers should look elsewhere. For an HTPC it's a tad pricey, true, but its tiny footprint makes it incredibly flexible. It even comes with a VESA mounting plate to attach it to the back of a monitor for a truly out of sight configuration. All in all, this is a great little device and I expect it will serve my HTPC needs for years to come. Highly recommended.


Core i7-4770K PC Build 2013

A few months ago I decided to retire my 4-year-old i7-860 PC and build a new machine based on Intel's Haswell platform. I had skipped Intel's previous Sandy- and Ivy-Bridge systems and was looking forward to modernizing my ageing PC, not only with a new, power-efficient Core i7 processor, but also with chipset improvements such as USB 3 and SATA III (and because of the motherboard I selected, Thunderbolt).

Here's a list of the components I ended up using in my new build:

  • Motherboard: Asus Z87 Deluxe/Dual
  • CPU: Intel i7-4770K
  • CPU Cooler: Be Quiet! Dark Rock Pro 2 Silentwings 
  • RAM: 16 GB Kingston HyperX 10th Anniversary Edition (2 x 8 GB, 1.5v, 1600 MHz, CL9)
  • Video Card: Sapphire Radeon HD7970 3GB OC with Boost
  • Boot Drive: Crucial M4 256GB (carried over from previous build)
  • Data Drive: Western Digital Black 3TB WD3003FZEX
  • Optical Drive: LG BH10LS30 Bluray Writer (carried over from previous build)
  • Chassis: Antex P280 (carried over from previous build)
  • PSU: Seasonic Platinum 860 (carried over from previous build)
  • OS: Windows 8.1 Pro


Like the i7-860 system before it, my new Z87/4700K system is rock-solid reliable. No weird BSODs or driver issues to deal with - everything just works. This is a relief, since 20 years of custom PC builds have taught me that you never know what to expect when assembling your own system. But with each iteration, PC components and drivers have thankfully gotten more trustworthy. And more efficient. The i7-860 system idled at about 140 watts while the new i7-4770K build runs 110 watts at idle.

I can't say, however, that this new i7-4770K system feels significantly faster than the i7-860 it replaced. Oh, the benchmarks might tell you it is, but I find it hard to notice mostly because, as I've stated in the past, I don't do a lot of PC gaming and this is used primarily for general purpose PC tasks like web browsing. However, being an enthusiast means I'm not content with merely good enough hardware and I'm compelled to build high-performance machines.

What is noticeable, however, is the system noise or rather the lack of it. This is hands-down the quietest machine I've ever built. While not completely silent, it is difficult enough to hear under my desk that I'm never sure if the system is on or not. This can attributed to the following:

  • Antec's P280 is designed to be quiet,
  • The Dark Rock Pro 2 is an exceedingly efficient CPU cooler,
  • Asus's Fan Xpert 2 is excellent at keeping system fans at low RPM when excessive cooling is not required,
  • The Sapphire Radeon dual-fan cooling solution is remarkably quiet.

Fire up a modern first-person shooter game (like Tomb Raider), however, and you'll have no trouble hearing it anymore. Every fan in the system steps it up a few notches to provide adequate cooling to the CPU and GPU. I wouldn't exactly call it noisy at this point, but you can definitely hear it.

The last thing I wanted to make note of is the NFC reader that Asus bundles with the Z87 Deluxe/Dual board. In order to justify the higher cost of this particular motherboard, Asus had to add something. Frequently, these "value-add" items are gimmicky and while they may sound cool, they are of little real-world use. For me, however, the NFC reader is extremely useful. It provides two very welcomed features: the ability to log into my computer without typing a password, and a two-port USB 3 hub. The USB hub is self-explanatory, but not many people are aware of NFC (near-field communication) as it is primarily a smart-phone technology that hasn't really caught hold yet. In this case, it allows me to place a small NFC tag (included with the Deluxe/Dual, or you can use your phone if it supports NFC) on the NFC reader which then auto-logs me into my machine. Anything that keeps my computer secure without requiring me to type passwords all the time gets high marks in my book.

Single Page Application Frameworks

Several months ago I started work on a new project that required a web-based user-interface. I had been out of the HTML game for several years, spending time instead on Windows Forms and Flex-based applications. For this new web project, however, I wanted to retain some of the user-experience and development features that I came to enjoy working with traditional "thick-client" technologies.

My investigations led me to discover a technique now called the JavaScript "Single Page Application," or SPA for short. I am no stranger to some of the paradigms of a SPA having spent the first ten years of my career developing web apps with rich user-interfaces that used AJAX-like techniques before AJAX was even a term. But SPAs have evolved way beyond simple AJAX calls and the now clunky-feeling ASP.NET "Update Panel." The architecture of a SPA more closely resembles that of full-blown client-server apps written in traditional technologies like Windows Forms, bringing with it a more developer-friendly environment and a better end-user experience. For that I think we can thank Google Chrome for stepping up the browser wars and resulting in a doubling of JavaScript performance every nine months over the past five years or so.

After much research (including much material from John Papa), I began to develop my own SPA framework to serve the needs of my project. Keep in mind that a SPA relies on a single HTML page as the application container and the browser makes no further full-page HTTP requests once that page is loaded. Instead, the SPA loads and renders content on-demand as it is required. To make this happen, the SPA has to perform much of the work that has traditionally been performed by the web server, such as view routing and data-binding. While SPAs as an all-inclusive framework are fairly new, many of the functions it must perform are available in the form of individual JavaScript libraries, some of which have been around for years.

And so, I set out to assemble my own framework using several of these individual libraries. In the meantime, and months after I began my own efforts, a wholy-inclusive SPA platform has become available called Durandal. Though I had my own framework mostly developed by this point I wanted to see what Durandal offered and how it compared to the features I had put in my own framework. To my surprise, the two frameworks were amazingly similar. This is most likely because the problem domain was identical, and many of the libraries Durandal uses are the same ones I chose:

  • jQuery for DOM manipulation. This is a no-brainer for me, though there are reasons to choose other DOM frameworks.
  • SammyJS for in-page "hash"-style routing. I have also implemented routing using Path.js.
  • RequireJS for dynamic on-demand loading of resources, whether it's HTML, JavaScript, CSS, or localization resources.
  • Knockout for data-binding. This is turning out to be a pretty core piece of the developer experience since it abstracts away a lot of old-world direct DOM manipulation for form input values and label display.

While all these libraries (and many more ancillary libraries I haven't mentioned) are important in assembling a SPA framework, they don't solve the entire problem. While a routing library helps with determining the view the user wants to see, it doesn't actually help with view management per-se. So I developed a view framework where each view has an event lifecycle: initialize(), beforeShow(), show(), hide(), afterHide(). Not surprisingly, Durandal offers a similar view lifecycle. What appears to be missing from the Durandal framework (though, honestly, I haven't spent more than a few hours examining it) is an integrated user-authentication mechanism, as well as global error handling and the ubiquitous "404" handling for undefined view routes.

If I had to do it over again, I would definitely pick the Durandal framework, however. Their JavaScript-foo is at least an order-of-magnitude better than mine and Durandal is already beginning to accumulate a large community of developers who are using it. This can only mean the product will continue to evolve and grow with a large user base reporting and fixing bugs, making it far more robust than any feeble framework I could manage to tack together. Still, it was gratifying to see that I, a self-proclaimed "hack," was able to assemble a SPA framework that performed many of the tasks Durandal does (though undoubtedly not nearly as well), and maybe even one or two that it doesn't. And it sure is a blast to be back in the web world again. :-)

Windows Server 2012 Essentials - Essential Tips

I recently replaced my aging HP EX470 Windows Home Server (v1) with a custom-built machine running Windows Server 2012 Essentials (WSE). There are already several articles online that go into detail on the new server OS from Microsoft (like here), so I won't spend much time repeating it. However, what is interesting to note is that WSE is not really a replacement for Windows Home Server. It does many of the same things, but Microsoft targets WSE at small businesses, not home users. To that end, WSE sets up its own Active Directory domain and client computers are automatically added to that domain when they run through the connection routine.

As a home user, I don't really have any need for my machines to be connected to a domain. Not only do I not have a need, I'd actually prefer that they're not on a domain. WSE has no option to support such a scenario, but fortunately there is a Registry setting you can specify on the client before running the WSE connection setup that will prevent the setup routine from adding the client to the domain.

Simply open a command window (run as Administrator) and execute this command:

reg add "HKLM\SOFTWARE\Microsoft\Windows Server\ClientDeployment" /v SkipDomainJoin /t REG_DWORD /d 1

See this TechNet forum post for more details: How to skip domain joining during client deployment in a Windows Server 2012 Essentials network

That works great, but I've recently come across another problem. It turns out that the WSE Connector software alters the network settings on the client computer to route all DNS requests through the WSE server. I generally wouldn't mind this so much, but I frequently get name resolution errors in my web browser on my client machine when the DNS settings are pointing to the WSE server. Manually changing the DNS settings back to their defaults works for a while, but I found something would reset the DNS setting back to the WSE machine a short time later.

Today, I finally found a blog post that outlines how to fix this behavior. Paul Braren at TinkerTry spells it all out in his article Windows Server 2012 Release Candidate Essentials remote client loses its Internet connection, here’s your DNS-related fix. In short, the problem is caused by the Windows Server LAN Configuration service on the client computer. Disabling this service prevents the DNS settings from being altered to point to the WSE server.

All is well again.

 

 UPDATE: For Windows Server Essentials 2012 R2, the DNS fix is different. Make sure to edit this Registry value as follows:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Server\Networking\ServerDiscovery

Set “SkipAutoDNSServerDetection” to True.

Still Stuck With An iPhone

I recently upgraded my cell phone from an iPhone 3GS to an iPhone 5. I had REALLY wanted to get a Windows Phone 8 device, but the killer feature for me was iPod integration in my car, and my car doesn't support streaming over Bluetooth. I have an AUX jack, but that just seems so primitive. So I was "stuck" with the good ol' iPhone.

As it turns out, the iPhone 5 isn't so bad, though I still think the screen is too small. There are several advantages to Apple's little iOS device, and near the top of that list is the fact that everyone gets the latest OS release at the same time. There is no "oh, well, carrier X is going to release it today but carrier Y won't release it for another two months." This is an endemic problem in the Windows Phone world, and possibly even a worse problem in the Android world. For example, last month Microsoft released their "Portico" update to Windows Phone 8 and to their credit Rogers in Canada pushed out this update almost immediately to their HTC 8x customers. However, 40 days later and Bell (my preferred carrier) is still sitting on this update and they're not saying when they'll release it. (I understand Verizon in the US is also dragging their feet on this.)

In addition to the immediate global availability of iOS updates, I have to give Apple credit for still supporting iPhones as far back as the 3GS. Sure, it doesn't have all the latest features (like Siri) but they're still supporting their loyal customers with older devices. Kudos. Another reason that Apple has kept me as a customer is the fact that I can buy a phone directly from them, unlocked. Buying any other manufacturer's phone in an unlocked state is not often straight-forward. I can't buy a Lumia 920 directly from Nokia. I can't buy an HTC 8x from HTC. I can't even buy a Galaxy SIII from Samsung. Though there are some vendors who sell these items unlocked, they are not major retailers and I don't know whether to trust them or not.

One more thing that Apple has in their favour is the available AppleCare+ warranty and insurance for the iPhone. I never buy extended warranties for anything but I paid an extra $100 for this. Why? It's not so much the additional one-year warranty (for a total of two years) but rather the "accidental damage" insurance. If I drop my iPhone and break the glass, for example, I pay Apple $49 and they give me a brand new iPhone. I can do that twice within the two-year AppleCare+ coverage period. I don't know of any other smart phone that offers that optional coverage.

So, yes, I'm "stuck" with the iPhone. I really prefer the Windows Phone 8 operating system and I would like a bigger screen, too. But, it turns out being stuck in the iPhone world isn't so bad after all, and I haven't even mentioned the ubiquity of iOS apps. I guess I can be satisfied with my situation, for now.

Antec P280 Computer Chassis

I make my living writing computer software, but computer hardware is actually my first love. I LOVE HARDWARE! Motherboards, CPUs, video cards and hard drives. Nothing gets me quite as giddy as when the UPS man delivers a package from my favorite on-line computer store. And so it was last week that I received TWO packages - an Antec P280 chassis and a Seasonic Platinum 860W power supply (PSU).

I've been using an Antec P180 (the original Performance One model) chassis since just about the time they first came out. I can't be certain, but something tells me that was in 2005. Seven years is a long time to hang on to the same computer chassis, but the P180 was such a stellar performer that there never really was any reason to replace it. For about the same amount of time, I've also had a Corsair HX620W modular PSU. The Corsair may have worked fine for a year or two, I'm not sure, but I returned several new hard drives that had the "click of death" before I realized that my PSU was the real culprit. I was able to keep limping along with the Corsair fine for the most part, moving my hard drive to a different modular connector, but I was still plagued with flickering white levels on my monitors. I originally blamed my Radeon 5870 for this before once again pointing the finger at the Corsair.

I decided that I wanted to wait and get both a new chassis and new PSU at the same time. (Actually, I was waiting to get a whole new Ivy Bridge system but decided to get the chassis and PSU now.) But there really wasn't anything compelling in the chassis department. I could have moved to Antec's P183, but it was so close in design to the P180 that it didn't seem like a worthwhile upgrade. Silverstone has their FT02 which is a VERY nice, elegant design but is quite a bit larger than the Antec cases, and also significantly more expensive. I was also impressed by Fractal's Define R3 chassis, but at the time it lacked USB 3.0 ports and there was some concern over fan noise. So I waited and waited. And then finally, the P280 was announced late last year and I knew it was my next chassis. Still very similar in design to the original P180 including the "270-degree" fold-back front door, but now with front USB 3.0 ports which have also been moved to the top of the case where they are much more convenient. Also more convenient are the power and reset buttons on the top, no longer requiring me to open the front door where they are hidden away half-way down on the P180. Minor enhancements to be sure, but welcomed. Of far greater note are the superior cable routing capability, much quieter fans, and generally improved cooling performance (see below - CPU and GPU temps are 2 to 4 degrees better, while the motherboard and hard drive temps edge a little higher).

 

P180 temps - click to enlarge
P180 Temperatures
P280 temps
P280 Temperatures

 

Working inside the P280 is an absolute delight. Gone from P180 is the separate "power supply zone" baffle and the interior is now wide open. Add to that the cable routing ability behind the motherboard (which has become a standard feature these days) and you have an environment that is no longer cramped and confined, but rather one that is open, clean, and organized. Here is a look at the insides of my P180 compared to the P280. Note that in the P180 I had moved my hard drive to a rather sloppy, unsecured position just sitting on the PSU zone divider. This was a "frustration" move to get the drive closer to a different power connector, since sharing one with my SSD drive in the bottom drive cage was causing the "click of death" I mentioned above. But even without the hard drive, you can see the mess of cables everywhere and how difficult it is to route cables, especially from the PSU to various points on the motherboard, graphics card, and drives. A look at the insides transplanted to the P280 is comparitively-speaking a work of art! Everything is neat and tidy, greatly improving air-flow and making maintenance a breeze, too.

 

Antec P180 - click to enlarge
P180 - Messy
Antec P280 - click to enlarge
P280 - Tidy

 

Other ease-of-use changes in the P280 include the tool-less install of 5.25" drives, like my LG Blu-Ray writer. Just slide the drive in and it locks in place via a cantilevered plastic locking tab. I further secured it with a couple of screws, but you can only do that on the right side - there are no screw holes on the left side. Still, with the two right-side screws, it's secured in there pretty solid. One screw secures my 2.5" SSD in the top 2.5" drive cage (there's room for one more) and my 1.5TB hard drive is secured via four screws to a platic caddy (with silcone grommets for vibration isolation) that slides into the main drive cage. Of course, the PSU is on the bottom of the chassis, in the same place as the P180 but without any separating baffle this time. There's also a vent right below the power supply to aid with PSU cooling. Also of note is the use of thumb screws for both side panels, and the expansion (PCI) slot covers.

Chassis cooling is provided via three 120mm Antec "TwoCool" fans - 2 on top and one on the back. The speed of each fan can be adjusted individually via switches on the back of the case. There is a low and high speed setting, and I have mine set on low. The fans are significantly less noisy than the P180's three "Tri-Cool" fans which I had all set on "Medium". I also had a 120mm orange Nexus fan on the front of my P180 to draw air in. Though you can mount up to two 120mm fans on the front of the P280 and/or another two 120mm fans on the other side of the main drive cage, I find that the provided fans offer the same cooling power as my P180 - but with one less fan and much less noise. In fact, the unit is all but silent from my sitting position about three feet away. There is still an intermittent resonant hum from the case which I expect will prove little problem to eliminate once I get the chance to spend a little time tracking it down.

The P280 is substantially less heavy than the P180 "beast" that it is replacing (the P180 was 14kg while the P280 weighs in at only 10.2kg), it doesn't really feel less sturdy. The P280 is ever-so-slightly larger, too, but not enough to make a fuss about. It's worth the extra room for the cable routing ability. However, I do miss the "DeLorean" look of the aluminum side panels on my P180 (see image gallery below) but I suppose there's nothing wrong with flat black.

Overall, I am very satisfied with the Antec P280 and I look forward to owning it for another seven years. Highly recommended.

[begallery:AntecP280]

Making The Jump To LightSpeed - Bell Aliant FibreOP

Ever since Bell Aliant began their rollout of FibreOP in New Brunswick two years ago, I've been anxiously awaiting its arrival in the Halifax area. Early this year, it was announced they would be rolling out the service in HRM over the summer months. Summer came and went, and while FibreOP was deployed in my neighbourhood in August, my cul-de-sac street was passed over. Well, ultimately in mid-October it became available to my address and I made the appointment. A week and a half later, I finally had my 70/30 internet connection and the FibreOP TV package.

I've always been an eager beaver when it comes to faster internet speeds. Back in 1998 I was torturing the phone company (then called MT&T) on a regular basis to bring their ADSL offering to my town so I could get off dial-up. That eventually happened, of course, and while the DSL speed was increased over the years, it finally topped out at about 6.5 Mbps downstream, and only 0.5 Mbps upstream. It was serviceable, but way behind the times especially with Eastlink offering a 40 Mbps service. Still, I had my Sympatico email address that I didn't want to give up, so I stuck it out with Bell Aliant.

Installation

On the day of the appointment, I got up bright and early to await the arrival of the FibreOP tech, who would be here "between 8am and 6pm". After much hand-wringing all morning thinking the appointment might be cancelled, the techs (2 of them) arrived at about 1:30. They got right to work stringing a fiber-optic cable from the telephone pole to my house, and preparing the ONT (Optical Network Terminal) inside my house. About 3 hours later, they were all done and I had 70/30 internet and FibreOP TV.

Connecting the fibre optic line.
Hooray! He's here!


Internet

First off, the internet speed is a world of difference from the High-Speed Ultra DSL service I had been using. I wasn't sure if regular web browsing would be much different, but it is noticeably more responsive. Of course, it depends on the site you're using, but most popular sites now completely load in sub 1-second speed. Some even feel nearly instantaneous. Since I never used Eastlink's internet offering, I can't compare the experience with them, but it is a much better experience than DSL. As for file transfer rates, as you might expect, it is an order-of-magnitude difference. With DSL, my downloads would max out at around 0.8 MB per second (800 KB/s). When I can find a server with big enough pipes, my FibreOP downloads will sometimes reach 8 MB/s, though 5 MB/s seems to be more common. This makes a tremendous difference with usability, since as a Microsoft developer I am often downloading large installers from MSDN which I previously had to let run overnight, but can now run pretty much on-demand, as even a 1.5 GB download will take only 15 minutes. Oh, and my wife's web-browsing experience is unaffected when I'm downloading large files, which wasn't the case on High-Speed Ultra.

Upload speeds are also in a completely different class. This is extremely important with the advent of "cloud computing" and the internet-based backing-up of files. If you upload files regularly (such as using Carbonite or Mozy for backup, or even say uploading images to blog posts), you'll definitely appreciate the 30 Mpbs upstream capability of FibreOP.

The new "modem" is an ActionTEC R1000H (bottom) that dwarfs my old DSL modem (top).

FibreOP TV

Moving on the TV service, well, I had my reservations about moving off Eastlink to FibreOP TV. My thinking was that Eastlink has been doing TV for decades, and Bell Aliant has only recently gotten into that game. I like the "phone company" for my telephone, and the "cable company" for my TV (I have too many trees around my property for satellite service to be an option). Of course, both companies now offer pretty much the exact same services, and their pricing structure is such that, financially, it makes little sense to divide your services between the two. The "bundle" pricing from both companies is designed to ensure you are very motivated to keep all your services with that one provider, and FibreOP is no different. Even with the $15/month upgrade to 70 Mbps downstream, and opting for the "Best" bundle offering which includes the movie channels and HBO, I'll be saving somewhere in the neighbourhood of $75 a month (after the 3-month promotional price of $99 per month) versus having my cable service separately with Eastlink. So I decided to take a leap of faith and switch my TV to FibreOP and cancel my Eastlink account.

I've only had FibreOP for five days, but the TV service actually does seem to be adequate. Some individuals on internet forums had been reporting that the picture quality with FibreOP TV was a bit "soft" or less sharp than Eastlink. This may be true, but if it is the difference is very subtle. And it would surely be noticeable to me, as my "TV" is actually a 120-inch front-projector (smaller TV sizes are better at hiding signal flaws). And while the picture may not be as sharp (I haven't really decided yet if it is or isn't), what does seem to be gone, or at least much less prevalent, is the "macro blocking" on high-definition stations that was so frequent on Eastlink. Macro blocking is the pixilation effect you see on a video image when there is a lot of motion on the screen, and the video compression is turned up rather high by the provider. If my research is correct, this may be because Eastlink uses MPEG-2 compression while FibreOP uses MPEG-4 (H.264). MPEG-2 is good (it's the compression used on Blu-ray discs) but requires almost twice the bandwidth that MPEG-4 needs for similar image quality. So, perhaps FibreOP doesn't have to compress the signal as much due to the lower bandwidth requirements, but I'm really just guessing and I'm not very sure of my facts here. One thing that I am sure of, however, is the irritating lack of proper lip-synchronization on at least one channel (CityTV) with FibreOP. I'm not sure what the root cause of this is and I haven't spent any time trying to fix it yet, but it's a problem I didn't have with CityTV on Eastlink.

The ONT (Optical Network Terminal) attached to a joist in my basement.

The PVR that FibreOP uses is the Motorola VIP1216 running Mircosoft's MediaRoom IPTV software. It's a much smaller unit than Eastlink's Motorola DCX3400 unit and while the features are similar, the user interface looks completely different. Instead of the colourful, opaque UI on the Eastlink box, MediaRoom uses a translucent overlay on top of the video that's currently playing. I don't find either interface to be inherently better, but the MediaRoom fonts are much more smooth (no jaggies) and the TV listings show a 2-hour window instead of Eastlink's 90-minute window. Also, the FibreOP unit is nearly silent compared to the constant hard-drive spinning and clicking you hear from the Eastlink unit. In fact, I had to double-check that the FibreOP box even came with a hard drive because I couldn't hear it at all! The recording options are slightly more impressive than the Eastlink PVR I was using, too. The FibreOP unit can record up to four programs at once, although only two of those can be high-def. FibreOP's PVR is also "whole-home" capable, essentially acting as a kind of media server for all the TVs in your house. Eastlink also has a "whole-home" PVR option, though I've never tried either service - I only have one TV.

Not everything is rosy with the FibreOP machine, though. Eastlink's is definitely more responsive - I've found the FibreOP box hesitates more often, frequently requiring an extra second or two before it will process a command from the remote. Not a big difference, but noticeable. Also, Eastlink's PVR allowed me to plug in an external 1GB eSATA hard drive to obtain a vastly increased storage capacity. The FibreOP PVR only has a USB port but it currently serves no function. I'm not even sure if USB 2 can support the speed necessary for real-time recording of high-def video anyway. The hard drive in the FibreOP unit is a measly 160 GB (using a quaint IDE interface instead of SATA), but the MPEG-4 efficiency allows it to store just about the same amount as the bigger Eastlink drive. Still, not being able to expand the storage capacity of the unit is a definite disadvantage. Also, on occasion I've used the Firewire port on the Eastlink machine to record material to my computer for longer-term storage. No such ability exists with the FibreOP unit.

FibreOP TV has a robust offering of "video on-demand" (VOD) services, and so did Eastlink. I haven't bothered much with either, but I'm completely aghast at FibreOP's $7 price-tag for "rented" movies using VOD. Sorry, but that's way too much to charge for a movie rental. I'll be giving this feature a big miss.

Lastly, there are some differences in the channel line-up, both in available packages and stations. Moving from Eastlink, I've lost AMC, History HD and MovieTime HD (FibreOP doesn't offer AMC at all, History is in standard-def only and MovieTime is only available in standard-def in a $5/month theme pack) but FibreOP's movie package includes MPix, which was an additional charge with Eastlink. There are likely other differences (say, with Sports programming, but I'm not much of a sports fan anyway) but by and large, I'm satisfied with the FibreOP channel offerings.

Conclusion

Overall, I am extremely happy with my move to Bell Aliant's FibreOP services. I mostly made the move for the high-speed internet service, and opted to include the TV service only for the cost savings over a separate Eastlink account. Naturally, the internet offering blows pretty much everything else out of the water, while the TV option isn't bad at all. If you can live without AMC or some of the other channels only available on Eastlink, I would definitely suggest you consider FibreOP TV. As a bundled service, I would highly recommend it.

Left High 'n' Dry By OnHop.ca

I recently decided to build myself a brand new computer system based on the new Intel P55 chipset and a Core i7 860 processor (I'll be blogging about that entire experience shortly). While I was at it, I decided I would dive into the wonderfully speedy world of SSD drives, too. Unfortunately, my local retailer wasn't able to source my preferred drive (an OCZ Vertex 120GB) and my usual online retailer (ncix.com) had no stock.

I decided to try OnHop.ca since they had the lowest price on PriceCanada.com and they had stock. They also have favourable reviews on PriceCanada, so I figured I was safe. The product page for the drive listed the item as "in stock" and a delivery estimate of 1 to 2 days. I ordered the drive late on a Tuesday night, so I figured it would arrive by Friday which would have worked out great since I had put aside the entire weekend to build my machine.

But Friday arrived and there was no drive. Boo. I was disappointed but well, these things happen so I decided to be patient. By the following Tuesday there was still no drive, so I sent an inquiry to OnHop to ask about my order. Wednesday morning I got a response back claiming that the shipping company had "lost" the order, and that OnHop was shipping out a new unit immediately, and that I would have it the following day. Thursday came and went, and so did Friday - no drive. So, weekend number 2 and I'm still unable to assemble my system.

At this point, I'd had enough and dispatched a strongly worded (but not abusive) email to OnHop demanding my money back, since their order fulfillment process was apparently horribly broken. Naturally, I had to wait until Monday afternoon for a reply, and while they complied and immediately refunded my purchase, I was rather shocked by their laissez-faire attitude about the whole matter. They claimed my order had been "delayed" because the item they had in stock was a "defective unit." I guess they only had the one defective item as stock, but why would a defective unit count against their sales inventory? And why did it take almost 2 weeks to discover the error? I was expecting a bit more along the lines of "sorry we screwed up - please allow us to fix it and keep you as a customer" but no, here's your money back, now get lost.

Anyway, I'll never order from OnHop again, and I've since reordered the drive from trusty ol' NCIX since they now list it back in stock. Here's hoping it arrives by THIS Friday.

Working with Active Directory in .NET 3.5

Many projects that I’ve worked on over the years have required some kind of interface with Active Directory. Back in the good ol’ ASP days, there was ADSI (Active Directory Services Interface), and .NET uses the System.DirectoryServices namespace to essentially wrap ADSI with managed code. It’s been a long time since I worked directly with ADSI, but working with AD up to and including the .NET Framework 2.0 was never a very straight-forward task.

Take for example the classic requirement of simply obtaining the current user’s full name from AD. Say you have a web site that uses either IIS/NTFS to protect pages using ACLs, or uses ASP.NET Forms Authentication with an AD Provider. Obtaining the user’s login name is relatively easy, using the Page’s User object:

string loginName = User.Identity.Name;

But getting the user’s full name from AD requires several lines of code involving DirectorySearcher and SearchResult objects:

string firstName = null;

string lastName = null;

 

DirectoryEntry entry = new DirectoryEntry();

DirectorySearcher searcher = new DirectorySearcher(entry);

searcher.PropertiesToLoad.Add("givenName");

searcher.PropertiesToLoad.Add("sn");

searcher.Filter = "(&(objectCategory=person)(samAccountName=jsmith))";

SearchResult result = searcher.FindOne();

if (result.Properties["givenName"].Count > 0) firstName = result.Properties["givenName"][0].ToString();

if (result.Properties["sn"].Count > 0) lastName = result.Properties["sn"][0].ToString();

Ick. Thankfully, .NET 3.5 has added the System.DirectoryServices.AccountManagement namespace which abstracts most of this code and makes it super-easy to deal with AD Principals in a strongly-typed manner:

PrincipalContext pc = new PrincipalContext(ContextType.Domain);

UserPrincipal user = UserPrincipal.FindByIdentity(pc, "jsmith");

string firstName = user.GivenName;

string lastName = user.Surname;

Gotta love progress!  :-)

HTC Touch As An iPhone Replacement

In January of this year (2008), I was getting the itch to buy something to replace both my cell phone and my Palm PDA (I used the Palm as my MP3 player). I wanted an all-in-one solution so I wouldn't have to carry around two pieces of technology with me. Being the geek that I am, I was naturally interested in the iPhone but at that time it still wasn't available in Canada, and wouldn't be available at all through my preferred mobility provider which uses a CDMA network. So entranced was I by this new Apple technology that I seriously considered getting an iPod Touch and just keeping my old cell phone. I'd still have two items to carry around, but at least one of them would be super-cool.

In doing some research, I came across an interesting Windows Mobile phone from HTC called the "Touch." It has no number or key pad and instead relies almost completely on its touch sensitive screen for controlling the device (much like the iPhone). Windows Mobile was never designed to be operated by a touch screen, so HTC includes this glitzy little interface called Touch Flo which is neat enough, but doesn't really replace the standard Windows Mobile interface. However, the real advantage of the HTC Touch was the network fee - it came with an UNLIMITED data plan for only $7 a month! For replacing my MP3 playing Palm, the HTC Touch uses a microSD card, so I could at least approximate the storage capacity of an 8GB iPod Touch.

So that's what I did. I bought the HTC Touch with an 8GB microSD card and I've been mostly happy with it. Unlike the iPod or iPhone, the HTC has both regular and stereo bluetooth, so I also bought a pair of Motorola S9 bluetooth headphones, which work and sound pretty darn good. So, things have been good - mostly. There are some serious downsides to this solution, however.

First, I've mentioned that Windows Mobile is not really a mobile OS designed for touch screens so it has nowhere near the usability or cool flashiness of the iPod Touch/iPhone. Second, the battery life is atrocious - with the bluetooth radio on all the time and playing MP3s for about an hour a day, the device won't last 24 hours without a recharge. These aren't deal-breakers mind you, just a little annoying. What is more than just a little annoying is the fact that the HTC tends to corrupt the contents of the microSD card every once in a while (a couple of times a month on average). This is a known issue all over several Internet forums, but no one knows why and a fix is not forthcoming from HTC. So I just live with it, growling when it happens and re-copying my MP3s over when it does. I expect this doesn't happen on the iPhone.

UPDATE (March 2, 2009): After upgrading the HTC Touch to Windows Mobile 6.1 (a free upgrade) several months ago, I haven't experienced a single SD card corruption issue.

The latest "gotcha" with using the HTC as an iPhone replacement is with my car stereo, or pretty nearly any car stereo that supports "MP3 players." Usually this means they have an AUX jack that you can plug your MP3 player's headphone jack into. And I suppose that works well enough - it's certainly way better than using a tiny FM transmitter to do the same thing. But if you're lucky enough to have a decent car stereo, it will also come with an iPod dock connector so that you can completely control your iPod through the car stereo system! Playlists, artist names and song titles show up right on the car stereo display, and the iPod can be controlled with the steering-wheel radio controls, if your car is so equipped (mine is). But, if you don't have the magical device from Apple, all you've got is the AUX jack. Boo. (I understand that come vehicles also let you plug in any USB memory stick that contains MP3s and will work much like the iPod control - alas, my car does not have this option.)

So, do I buy an iPod so I can have the convenience (and cool) factor when I'm in my car (not to mention the absence of corrupted memory cards)? Do I go back to having two items of technology to lug around? I'm very tempted, though having everything on my cell phone is mighty handy. I suppose if it was really worth it to me, I could dump the HTC and switch mobility providers and get the iPhone now that it's available in Canada. Honestly though, paying $75 a month for the privilege isn't really enticing, not to mention the early termination fee I'd face with my existing provider. But I still have my eye on a new iPod. :)