Analytics Tracking Code

Monday, October 3, 2011

Copyright Modernization Act - My View

For some pre-reading for this article:

I am not satisfied by what I read about the upcoming Copyright Modernization Act. As a technology industry expert I am quite familiar with the methodologies and rationale involved with the implementation of Digital Rights Management

Most importantly is the implications around digital content locks and their viability.

Foremost in my concern is that otherwise legitimate usage of digital content is permanently restricted simply by the presence of a digital lock of any kind. The implications of this is that legally purchased content can only be accessed through pre-approved processes and devices. Otherwise fair access to the locked content becomes illegal under the provisions of the new bill.

For instance, my mother has been a subscriber to where she purchases recorded audio books which are stored in the DRM encumbered audible format. However, one of her intentions for purchasing the content is to be able to consume it while in her vehicle.  Unfortunately her vehicle does not include authorized audible decryption software, so it becomes necessary to convert the encrypted files to a format which the vehicle does comprehend (in this case MP3). In no way is this an illegal activity, nor should it be under any appropriate copyright law, however with the new digital lock provisions, doing this becomes illegal.

There are a number of other consequences to the act that I am uncertain are covered by exemptions such as recovering installation keys to installed software products on Microsoft Windows and viewing encrypted content over an unsecured monitor.

Effectively the law has the digital locking aspects backwards, where fair dealing with content should trump any locking provisions, not the other way around.

Tuesday, September 27, 2011

SMART Payout Software Demonstration in .net WPF

I wrote a WPF demonstration software for use with the Innovative Technology SMART Payout recently. I am available to provide software consulting services around this device and its cousin the SMART Hopper.


My software is a good demonstration of how to interact with the device. Naturally it needs to not look crummy :)  Was written in C# .NET 4 WPF inside of Expression Blend 4.

How to secure a computer in an hour

I'm not a security expert.

Well, let me say that I am the most technically skilled security expert that I know, however, I do not consider myself to be a security expert. My general approach to security is, turn off as much as possible, block everything except those few things I need and while I am at it, update everything to fix as many vulnerabilities as possible.

So I am now administrating a server rack full of equipment running a slew of operating systems from linux to OpenBSD, to Windows Server 2003, 2008 and 2008 R2.  Now there is nowhere nearly enough time in my day to audit these systems for vulnerabilities, and beyond running windows update, patching the linux/bsd machines, turning features off and putting a pf firewall in front of the entire rack, I am not certain what else I should be doing?

I'd love some input here? If I were to spend a single hour tomorrow above and beyond my regular work securing the services, where would the best place to start be?

Sunday, September 25, 2011

QNX Blackberry Devices and the Future of RIM

I've been reading a lot of negative reviews and opinions about the Blackberry PlayBook and the future of RIM and I want to put my input in before things get out of hand. I own a PlayBook (really I do), and I read the reviews and general disrepute which people are holding RIM, and I don't really get it.

Many of the complaints about RIM are that they are behind the times with the deployment of messaging and contact software on the PlayBook.  Obviously, this isn't the case with their current mobile phones, where they dominate the mobile messaging market with their email and bbm.

So, then what's up with the PlayBook; how come to so many people they appear to be struggling (as reflected by their stock price, and the plethora of nasty comments by people on the Ars forums)?

In the world right now we have a handful of mobile platforms to work with; Apple, Google, Microsoft, Nokia, Palm (HP) and RIM share almost the entirety of the mobile smart device market and with HP out and Nokia walking away from the software game with the recent deal with Microsoft, that leaves us with a grand total of four vendors supplying most of the worlds software platforms.

When Apple released their tablet platform in 2010, it looked cool which had many people buy it, however, for many others, their was a major level of uncertainty as to how useful it would be to, you know, get something done. And of course, it's not a good device to get something done on; the form factor is simply not conducive to actual real world work unless someone goes out of their way to write custom software which addresses the relevant silo (hence the app store). The iPad got relegated to the world of entertainment, which it appears to do well since people seem to enjoy movies and browsing the web and playing target games.

Now, the real problem is that all that fun stuff goes only so far, and when it comes down to it, a $400 laptop is a heck of a lot more useful than a $600 tablet.

And into this market comes the rest of the industry, which is super keen on exploiting and investigating this new form factor to see if any fortunes can be made; and of course they are running into the issues of usability, time to market and competition. The real fortunes in tablets might already have been made by Apple, and from now on the prices don't have a heck of a lot to go except down.

Now the rest of the industry has a couple options:

  1. Develop a new tablet platform from scratch (With plenty of time to do it right)
  2. Develop a tablet platform from existing non-tablet technology (and hopefully do it right)
  3. Adapt an existing handset platform for use on tablets (and maybe do it right, but end up with effectively the same product as any competitor which follows suit)
  4. Don't enter the tablet market
When the iPad was originally released it was very clear that Apple had simply shoehorned the iPhone operating system onto a bigger device and called it the iPad, and the vast majority of the competitors looking in on that thought that would be a good idea to follow with the Android platform. So in short order the world was engulfed in tablet computers running handset operating systems.

Undoubtedly RIM was looking at this situation, and it's decision makers weighed the value of shoehorning their Blackberry OS onto a tablet like Apple and Google's vendors have or jumping on the Google bandwagon and making yet another Android device. However RIM is different from every other current vendor in that they have an enormous investment and market share in their current technology platform (including BES, BBM and BIS email) and are obligated to support their existing customer base. In one weird sense, RIM is held back from just whipping up a hardware product and installing the latest head release of Android by the fact it has a reputation to uphold (I don't believe RIM could have used Android as it's tablet OS and maintained credibility).

Moreover, when RIM examined its own software stack to see how it would fit onto a tablet, I am certain that key decision makers in the company saw (rightfully so too) that a handset platform is not a good fit for a tablet, especially if you actually want to get something done on it, and that an investment into a fresh design would be the only way to actually distinguish the product on the market in the long run.

With that in mind RIM acquired the QNX platform for use on the PlayBook.

Now, out of the box QNX was not a tablet operating system, but neither was it burdened by years of specialization as a handset operating system. Pressured by time to market considerations, and the imminent depreciation of the entire tablet market with ever lowering prices RIM got a functional 1.0 release out the door by April of 2011. However, the product didn't include direct support for existing RIM technologies likely because their simply wasn't time to rewrite all the necessary software for the new operating system.

That said, RIM did ensure that existing customers would be able to still use their BES, BBM and BIS email technology by using their existing fully featured blackberry handsets as a proxy for the service and writing thin clients on the PlayBook to interact with the handsets.

Thus the PlayBook came to market.

The criticisms that RIM has faced are that the the PlayBook doesn't have a built in email client, messaging software, calendaring or contact manager. However it is important to note that, while this is true, RIM did manage to bring their product to market with support for their existing customers, even if the product didn't have a great deal to attract new ones out of the gate. The promise being that since their is so much at stake for the company, that they will continue to support the PlayBook for the foreseeable future.

Which brings us to the current date.

Still unanswered is the actual real world usefulness of the tablet form factor. Data input via typing is painful, and will probably never be considered a strength of the form factor, however gestures and the multi-touch interface go an incredibly long way towards making the device usable, however, this is limited to only certain classes of software.

The QNX platform though is quite advanced and likely offers the best long term software choice in the industry. The migration to the handset from the tablet will likely prove much easier in the long run than the reverse.

Where the PlayBook really shines, and needs special attention is how it is used in a business context. The onboard HDMI port makes the device entirely usable for presentations, and with a little more work on the built-in powerpoint clone, this could be one of the main selling points of the device.

Still missing is a robust way to share files with a standard desktop computer running Windows or other portable devices.  The necessity to use BlackBerry Desktop Manager to sync and manage files on the PlayBook is completely untenable. MTP/Bluetooth, MTP/WIFI and standard MTP are how this should be done and RIM should know that by now.

File format support should be expanded to include all the same formats as supported by the latest BlackBerry handsets. Notably missing are ogg vorbis and webm formats (in addition to a handful of others).

The built in video conferencing software needs a great deal more attention. Support for interactions via Microsoft Lync, Skype, Jabber and SIP are critical to the business story of the device.  Since a native full BBM client is imminent, I haven't included it in this list.

Fallback to a tethered handset data provider is not seamless, and appears inaccessible from some applications, notably the bundled mapping software.

The developer story is poor.  Really an add-in to visual studio is what is needed here with a preconfigured 'run on simulated device', 'publish to hardware' and 'submit to app world' with support for digital signatures out of the box.

I'll summarize this post with the following comments:

I feel that the platform has a great deal of potential, especially with the imminent Android application software compatibility layer arriving in October and the rest of the basic messaging services like email and BBM arriving as full native clients. Since RIM is hardly going anywhere from the corporate point of view and QNX is the future of the company, owners can expect a long product life cycle which will probably only be matched by Microsoft with Windows 8.

Shareholders should stop panicking, and running.  RIM has done a good job with what they had available in front of them, had they taken any other actions, their credibility would have been worse off. Yes, it takes a while to do this kind of work properly, for hints at just how long, look at Microsoft (arguably the most capable software manufacturer in the world) and how much R&D they are putting into the tablet user experience.

RIM, the tablet needs more ongoing support for new features. Some of these I have already mentioned, however others are simple things like copy/paste, or more complex like messaging and notifications while "in-app".  Tile based window management would be a good feature to add, since the device already supports concurrent software.

Anyway, Good Luck and keep on swimming, Canadian high tech is depending on you.

Google Apps Migration Finally Complete


So this evening I finally to the time to complete the migration of my google apps account and the google account for my address (by far the most challenging migration in my entire company.... Sheesh)

Anyway, this means that I can once again post to my blog!

I've been pleasantly surprised by the new blogger interface which seems fun and cozy in tune with the facelift work that Google has been performing across all its services.

Tuesday, May 24, 2011

Intellectual Property

I read an interesting article in Ars Technica today regarding intellectual property. Fascinating debate.

For a worthwhile hour of time, I suggest watching the following video.

Sunday, May 15, 2011

Lotus Symphony 3.0 Fixpack 2

The second service release to the Lotus Symphony 3.0 Office Suite was released pretty quietly last month. FP2 contains a small collection of security patches for the underlying code as well as some compatibility fixes when interacting with other office suites.

Download Lotus Symphony 3.0 Fixpack 2 here (For Windows) (or here for Official download source)

This release is Officially compatible with:
  • Windows XP SP3, Windows Vista SP2, Windows 7
  • SuSE Linux Enterprise Desktop 11, RedHat Enterprise Linux 5 Update 4, Ubuntu 8.04
  • Macintosh OS X 10.5, Macintosh OS X 10.6.2, Intel only
Fixes from the FP2 Release Notes:
  • CVE-2010-4643: A security vulnerability in which is related to TGA file processing might lead to arbitrary code execution.
  • CVE-2010-3689: The start script and other shell scripts expand the LD_LIBRARY_PATH in an insecure way.
  • CVE-2010-2935 / CVE-2010-2936: A security vulnerability in which is related to PowerPoint document processing might lead to arbitrary code execution.
  • CVE-2010-4253: A security vulnerability in which is related to PNG file processing might lead to arbitrary code execution.
  • CVE-2010-3453 / CVE-2010-3454: A security vulnerability in which is related to Word document processing might lead to arbitrary code execution.
  • CVE-2010-3451 / CVE-2010-3452: A security vulnerability in which is related to RTF document processing might lead to arbitrary code execution.
  • CVE-2010-4008 / CVE-2010-4494: Possible Security Vulnerability in resulting from 3rd party library LIBXML2.
  • CVE-2010-3450: A directory traversal vulnerability in which is related to zip/jar package extraction might lead to overwriting files and even to arbitrary code execution.
  • SPR #JCHC89R945: Include mandatory Eclipse help patches, SPR #MSTO89WRX8: Enhanced selective access control support.
  • PPT files with grouped objects will be corrupted if save them in Symphony and open them again in MS Office which contains a security patch claimed in Microsoft Security Bulletin MS10-087. For detailed patch information, please refer to
  • Optimize preload notification behavior by removing the notification bubble.
  • Password protected MS Excel with edit password cannot be edited.
  • The cell border orientation will be lost when opening a MS Excel file in Lotus Symphony.
  • The result is wrong when copying a table which contains hidden columns from Lotus Symphony spreadsheet to Lotus Notes.
  • The behavior of Subtotal in DataPilot is wrong when there are more than one items in Data area.
  • 'divide by 1000' format is not supported in Lotus Symphony 3 Spreadsheet.

Tuesday, April 19, 2011

ODF 1.2 Support in Microsoft Office

Anyone who has tried to move Open Document Format (ODF) documents to Microsoft Office, has probably encountered fidelity problems. This is especially apparent when loading a *.ods spreadsheet in either MS Office 2007 SP2 or MS Office 2010.

Formulas simply don't get migrated over, and spreadsheets effectively turn into flat files when used in Excel.

The fix for this will come with the arrival of functional ODF 1.2 import and export support.

Microsoft has obviously been aware of the problem for quite a while, and while they are sympathetic, they haven't yet released a fix to this problem and won't until ODF 1.2 is finalized. This of course raises some interesting questions; like what degree of "finished" will be required before an implementation will be made available, and what software packages will receive support when it finally does become available.

My hope is that Microsoft Office 2007 SP3 (if this is scheduled, 30 seconds on Google gave no hits yet) and Microsoft Office 2010 SP1 take serious stabs at implementing this, but for that to have any hope of happening the ODF 1.2 standard will need to be finalized "enough" for Microsoft to be willing to set it in stone (or easily malleable software, as the case may be).

Recently (just last month), the ODF TC approved ODF 1.2 as something known as a committee specification, which as I understand that OASIS rules means we're nearing official OASIS blessing.

So, will Microsoft consider this finalized "enough" to get their office suite ready to support it? We'll see. I certainly can see their business case for holding off for something even "more" finalized like an ISO specification.

A completed ODF implementation in MS Office is not exactly conducive to the long term market dominance of their office suite, and I would be willing to bet the longer they can hold off releasing an ODF 1.2 compatible implementation, the longer they will feel at ease with the proliferation of ODF centric office suites such as Lotus Symphony and the poorly named LibreOffice. Competition will only really have a possibility of becoming fierce when documents can be tossed between office suites with little to no loss in fidelity.

Anyway, the usability experience gap between Microsoft Office and it's competitors is still so incredibly substantial (Although Lotus Symphony is very good), that I doubt the company needs to worry any time this decade. LibreOffice is no Firefox in my opinion.

If I had to hazard a guess, I would bet that Microsoft Office 2007 will never get ODF 1.2 support, and that Microsoft Office 2010 will get it by Service Pack 2 in 2012 (or whenever it is released). Then again, maybe they'll surprise me; maybe behind closed doors Microsoft has been readying ODF 1.2 support and is just awaiting OASIS certification.

LibreOffice is a dumb name. Someone rename it.

I have been complaining that open source software suffers from dumb names for a while. In fact, when I presented the httperf talk at WWW2007, the track officiator specifically mentioned that very blog post when he introduced me.

So I can't help but feel squirmy whenever I hear or read the name LibreOffice.

I think this is a dumb name; like really ( is really dumb too)
That said, there is evidence that some people like the name, so either they are crazy and should be first up against the wall when the revolution comes or genuinely don't mind it.

Anyway, I'm hung up on this. Seriously, I really am. I don't like it, and I want someone to make the effort to change it.

Wednesday, April 13, 2011

How to Diagnose and Tune Up a Windows Computer

In my downtime, I have been spending a lot of time at the Rocky Mountain Computer Repair Shop here in Calgary, Alberta helping out with system tune-ups and general computer maintenance.

I've encountered a huge variety of issues while working with the machines that come in, including virus removal, slow computers, broken installations of Norton, AVG, Internet Explorer, etc. Many of the problems are major nuisances to the owners and are caused by malfunctioning software or some sort of malware running on the system, other times the problems are caused by run of the mill user ineptitude.

I am really good at getting systems working once they have been wacked by problems and can almost always actually fix the problem at hand rather than opt for the traditional orbital nuke of format/re-installation.

That said there are some scenarios in which I recommend reinstalling Windows:
  • Want to migrate from 32-bit to a 64-bit installation (note that you would need a 64-bit installation media for this, the default recover partition/disks included on many OEM machines is not sufficient for this)
  • Want to start fresh with no OEM software installed
  • Have encountered a fundamental problem with your installation of Windows (rarer than many people actually think, but it can happen).
  • No service packs have been installed on Windows Vista.
Many manufacturers introduce an artificial upgrade ceiling on their customers by deploying 32-bit installations of Windows on 64-bit capable machines. By doing this, it prevents customers from ever expanding the amount of installed, usable memory beyond the 4 GB (actually 3, or 3.5 GB) threshold. This is why many machines come from the factory with only 3 GB installed.

Anyways, this article is not really about formatting and re-installing Windows which is a tiresome task without much challenge these days (except for tracking down drivers which can be very challenging sometimes).

Rather this article is about how to actually go about tuning up a sick or slow computer.

The very first thing to do before beginning a tune up is to ensure that the system is actually working properly. It is very annoying to put hours of work into a computer and then discover that the problem was simply a dying hard drive.

There are some things that die relatively regularly on a typical computer.
  1. Power Supply (Incredibly Common)
  2. Hard Drive (Incredibly Common)
  3. Fans (Incredibly Common)
  4. Memory (Occasional, but at least it's easy to address)
  5. Motherboard (Usually a surface mounted chip, rather than the board itself)
So if a computer is turning itself is turning off all on it's own the first places to check those noted above. Assuming that the computer turns on, it probably isn't the Power Supply, so the next thing to do is run a hard drive diagnostic.

Seatools is a perfectly good Windows Application for diagnosing hard drive failures. Generally if the Short Self Test returns no problems then the drive is usually good to go. There may be filesystem issues though which may need to be examined. Filesystem issues can be worked at by loaded a Windows Recovery Console and running the chkdsk utility.

If a computer is failing to boot or having trouble reading data from the drive, even though the drive reports all is well in SeaTools, then consider running chksk /B {driveletter}: against the offending drive (if on Windows Vista or later) in the recovery console. Or chkdsk /F if running on windows XP or earlier.

Typically for filesystem issues, I will boot from a Windows 7 install/recovery disk and run the chkdsk utility from there seeing as Windows 7 has the latest NTFS code in it. Checking Windows 7 NTFS partitions from XP will typically not work as the filesystem has been extended since XP was released.

If the there are no filesystem errors, then checking the memory may be appropriate. Windows 7 has a built in memory checker which works well, however the tried and true memtest86+ works wonders as well.

If everything is checking fine on the diagnostics it may be appropriate to examine the system physically. This can involve popping off a side panel on a desktop or disassembling a laptop (Which can be intimidating at first but isn't nearly as hard as you might imagine). Issues with fans running at full tilt are often caused by dust covering heat sinks (even in laptops, where this is really hard to check, and it's best to just blast compressed air inside and see what comes out.

Heat sinks may need to be reseated, which is done by completely removing all of the existing thermal compound from the contact surface of the heatsink and processor with a soft brush and rubbing alcohol, and then applying a thin layer of thermal paste to the surface of the chip and the heat sink and rubbing it in so that it fills all the micro-grooves and grains of the surface and t then remounting the cooler.

If there is stability issues, the last piece of hardware to examine is the motherboard (and occasionally the video card). It may be necessary to apply an update to the boards firmware using the manufacturers firmware update procedure. Intel motherboards are a pleasure to update since that manufacturer provides update ISOs which can be burned and applied without an operating system install. Other manufacturers require the use of a dos boot disk which can be a challenge to acquire.

So now that all the hardware issues are out of the way, the operating system itself needs to be examined.

One of the first things to check is how up to date the installation is. Windows XP should be at Service Pack 3, Vista at Service Pack 2 and 7 and Service Pack 1. If the system is more than one Service Pack behind the state of the art, then I suggest formatting and re-installing with up to date media because waiting for updates to download and install will take FAR more time than cleanly installing an updated OS.

If you don't have up to date installation media, then you may be out of luck as far this goes, but these things can always be created using slipstreaming techniques.

If the machine just needs to be updated a bit, then by all means go about this. However if the computer is unbearably slow, the first thing to do may be to clean it up a bit.

Download the CCleaner application (and donate to the organization that makes it while you are at it. Use this application remove temporary cruft from the system, and then uninstall everything that doesn't belong. Personally, if the machine is really slow and a memory upgrade isn't in its future, consider removing the antivirus suite, as these applications have a tendancy to introduce a considerable amount of extra IO activity. When you are finished uninstalling all the toolbars and nonsense which doesn't need to be there, work through the startup applications and remove as many as you would like. Windows doesn't actually need anything listed in the startup locations to boot and work properly so you can feel free to remove anything there. That said, some applications are a good idea to keep running like the Java Update, Google Update and the adobe reader things get reinstalled left-right and center anyways so you may as well leave them.

Now restart the computer.

It should already perform faster, and allow you to run the rest of your activities without fuss.

Next examine the computer for software which should be updated and patched. One of the best tools for this is the Secunia Personal Software Inspector, which is free for personal use. This application will scan the software installed on your computer and indicate to you that it should be updated.

Follow it's indications. No kidding.

Anything that you cannot update, seriously consider uninstalling.

Lastly consider which applications you are using to browse and interact with the Internet. For Windows XP, there is very little reason to be running Internet Explorer, rather any of the alternatives (Firefox, Chrome, Opera) are superior.

Lastly examine the amount of system memory installed in the machine. Today, 4 GB of RAM is not inappropriate as the size of system applications and software requirements increases. Also, older desktops with onboard graphics can benefit greatly from discrete graphics solutions.

Hopefully this article has been of use, let me know any of your suggestions in the comments.

Take Care,


Sunday, January 30, 2011

Reflow Dead Laptop Motherboard with a toaster oven

I was over at Rocky Mountain Computer Repair last night looking over some of the dead machines that had been abandoned by their customers. Most machines were old and rather junky looking, but a few are in decent condition, except for the fact that they simply do not turn on at all.

One laptop in particular wouldn't post, and I figured it was either due for a motherboard replacement, or just maybe I would see something visibly wrong that I could repair. So an hour of disassembly, some fairly rigorous testing of potential faults, and I concluded that the motherboard was dead.

This would usually be the moment to either abandon the machine or buy a replacement motherboard. However, I have an engineering degree that has put me in a lot of deep contact with computers and I have learned some extra tricks as to what it takes to fix them that aren't exactly in the manual.

So here is the situation:
  • An apparently completely intact laptop computer will not post
  • No visible impact damage
  • No visible fire or heat damage
  • Functional and tested power supply
  • System starts to initialize but shuts down after 1 or 2 seconds, and before post
  • No audible alarms
The laptop motherboard clearly had some function components, as it would attempt to start, however some pretty critical component needed early in the initialization process was not functioning, thus causing the machine to shut down.

Given the symptoms, the most likely culprit was the nvidia northbridge or maybe the CPU. However since there were no alarms indicating a cpu or memory failure, the issue likely lay with the northbridge which is intricately involved with initializing both those systems.

And how do you repair a northbridge?

Well, you don't. If the chip is genuinely dead then there is nothing to be done and it is officially time for a new motherboard. However, if the chip is still good (and there isn't a really good way to diagnose this short of desoldering and testing in a laboratory setting), then the problem likely lies with the connections between the chip and the board. And perhaps those connections can be re-established by heating the board to a point near to the melting point of solder.

So here is what we did:
  • Removed all plastic and tape from the board
  • Wrapped board in tin-foil and placed foil padding against steel grate
  • Pre-Heated toaster oven to 385F
  • Placed board in oven
  • Chilled out for 6 minutes
  • Removed board from oven
  • Let it cool for 10 minutes
  • Installed CPU and Memory
  • Reconnected board to laptop power supply, power button and screen
  • Pushed the power button
The board posted, and a moment later was complaining that it was missing an operating system and would we please give it back its hard drive. This process is known as reflowing, and although it won't fix all similar issues it may just provide a solution to those in need.