NFA on Gun Control: Bad Taste, Bad Timing, and Bad Logic

I actually wrote this on the evening of Thursday, June 5, 2014 after reading the press release by the National Firearms Association. However, I refrained from posting it, as I felt that the timing was in appropriate.

After reading this article, I felt that I could now post it.

I (and others, it seems) were not particularly impressed with the NFA’s decision to make a political statement regarding gun control at the height of the recent crisis in Moncton. Many felt that the press release issued by the NFA demonstrated tremendously bad taste, bad timing, and bad judgement.

However, we do have free speech in Canada (unless you are a government scientist), so the NFA is free to say what they want to on the subject.

Free speech is a good thing. I like free speech. Especially because it also permits me to point out how horrendously, absurdly bad is the logic of both the NFA’s statement and their associated position.

The fundamental argument by the NFA (beyond “laws interfere with our fun”) is that even with all or Canada’s gun control efforts, someone with a gun has killed three RCMP officers. Thus, all gun control laws should be abandoned. The basic shape of this argument is this:

  1. We do X to prevent Y
  2. Sometimes, in spite of doing X, Y still happens
  3. Therefore, we should stop doing X because it is a waste of time

Lets try this argument in a few other situations, and see how it works…

We put locks on our doors, and install security systems in order to prevent our homes and business from being robbed. Sometimes, even with locks and security systems, we do get robbed. Therefore we should stop using locks and security systems.

Hmmmmm. That doesn’t seem quite right. Lets try another one…

We put in place traffic laws in order to prevent accidents and death. Sometimes, in spite of these laws, traffic accidents and deaths still occur. Therefore we should not bother with traffic laws.

Well, that doesn’t seem quite right either. How about one from personal health…

We eat healthy in order to prevent (among other things) heart disease. Sometimes, people who eat healthy still have heart attacks and die. Therefore, we should not bother eating healthy.

Still doesn’t sound right. Could it be that problem is that the structure of the argument is fundamentally flawed?

I had planned to go into the absurdity of the fact that people view gun ownership as some sort of “fundamental human right”, or the idea that the “right to bear arms” really means “the right to bear any kind of weapon (even those not invented yet) at any time in any situation without any rules or constraints”, or the silliness of believing that owners of dangerous weapons should be subject to lower licensing and registration requirements than car owners or ham radio operators.

Instead, I will just leave it at pointing out the bad timing, bad taste and bad logic of the NFA’s press release.

Advertisement

First Thoughts on Microsoft Surface Development

A brand new Microsoft Surface development unit arrived this week in the Moncton T4G office. As I start to develop some prototypes, I will be doing some related posts, but I wanted to start by talking about the platform a little, and the development environment.

For anyone who has no idea what the surface is, it is a multi-user, multi-touch platform released by Microsoft a couple of years ago. Have a look at this video to see what it can do.

Other the last few weeks, before the unit arrived, I have learned quite a bit about the Surface. The first interesting thing I learned was the the surface is not a touch screen in the sense that your iPhone or multi-touch laptop are. The surface of the Surface is just glass – it is not a capacitative or pressure sensitive material at all. All of the touch behaviours and interactions are based instead on a computer vision system. Inside the box there is a fairly standard PC running Windows Vista, with an DLP projector pushing the image up to the table top. There are also 5 cameras inside the box which perform the actual "vision". These feed into a custom DSP board which analyses the camera feeds into something a little more manageable for the PC. The fact that it is a vision-based system leads to some interesting capabilities, as well as some idiosyncrasies.

When the Surface is running in user mode, the Windows Vista UI is completely suppressed. There are no menus, no windows, and no UAC dialogs – nothing that would indicate it is even running Windows. There is also an Administrator mode which shows a standard Vista UI for administrative functions or for development.   

As far as development goes, the good news is that it is all pretty standard stuff. There are two approaches to programming for the Surface. The first is to use the Microsoft XNA Studio platform, the other is to use Windows Presentation Foundation (WPF). Using XNA gives you a little bit more power, as well as access to more of the "lower level" information like raw images from the video feed. Using WPF is a higher-level programming model, and comes with a set of controls specific to the Surface UI model. The nice thing is that all you know about .NET and WPF programming applies to the surface. And from a larger architectural perspective, Surface can tie into any infrastructure accessible to any other .NET-based model. It is just a different .NET UI layer.

The bigger challenge in developing for the Surface is changing the way we think about the UI, and selecting the right solutions. First and foremost, Surface applications are not just a port of a standard Windows UI. Stop thinking about Windows, Icons, Menus and Pointers (WIMP). The surface calls for a completely different models, one that I am just learning. One of the interesting statement I have read describing the Surface model is "the content is the application."
The Surface is more than just a multi-touch platform. Sure, you could implement a multi-touch solution on the Surface exactly the same as a Windows 7 multi-touch solution, but that is only using a subset of the Surface capabilities. The key characteristics of Surface interaction are:

  • multi-user, multi-touch (up to 52 simultaneous touch points)

  • social interaction – multiple simultaneous users, collaborating or working independently

  • 360 degree user interface – users on all sides of Surface at the same time, with UI oriented to support all of them

  • Natural and immersive – like the physical world, only better

  • Support for physical objects integrated into the experience (tokens, cards, game pieces, merchandise)

When it comes to selecting a solution to deploy on the Surface, the two most important keywords are "social" and "immersive". Social, because the best Surface applications are those in which the computer is not replacing human interaction, it is enhancing it. Immersive, because you want the user(s) to forget that they are using a computer, and to only be thinking about what they want to accomplish. The how should be transparent.

Over the coming days and weeks, I will post more about the Surface and what we are doing with it. Hopefully next week I will be able to post a short video. If you have any thoughts or suggestions, I would love to hear them.

Re-focusing

So, the time has come to re-focus my blog a little around what I am currently working on. In the last year, I have gone through a fairly significant transition in my career. After close to a decade in a product-oriented startup, I have moved into a consulting role at T4G. This is a big change for me, at least it feels like it – the mental shift from focusing on products, product features, and product life-cycles  to focusing on client engagements and project-oriented work. My mind tells me that in many ways the two are not so different – they just feel very different.

The main focus of my work (at least initially) is on portal technologies, specifically SharePoint. In addition to the engineering and mechanics of implementing SharePoint solutions, I am focused on a number of other related topics:

  • A repeatable approach to delivery of SharePoint solutions
  • Process/methodology models for SharePoint implementation
  • Estimating models for SharePoint projects
  • The art of the possible – what could clients be doing with SharePoint

I will also be spending a significant amount of time establishing a Moncton office for T4G. By the way, if anyone knows any SharePoint resources (or good .NET or ASP.NET resources in the area, send them my way 🙂 ).

While my new role is as a consultant in an consulting company, I do not plan to abandon my roots in software development, software development processes, and programming. I also maintain a strong interest in innovation processes. Finally, there are a number of technology areas I am continuing to investigate, including Tablet PC applications, Silverlight, Office Business Applications, Social Networking, etc.

I am also hoping to have more time to blog a little more regularly 🙂

Transitions

So, today I am moving on from Whitehill Technologies (now Skywire Software). I do so with many mixed feelings. When I look back on what I have achieved here, many things stand out. Helping to grow the company to the point where it became a meaningful acquisition target I think is a tremendous accomplishment. We have also developed a great deal of very cool software, and more importantly, software for which real people were willing to pay real money. To have accomplished this from Moncton, New Brunswick, Canada, is a great demonstration of what we can achieve in this region, and is something which I hope to repeat in the future.

The most important aspect of the journey, though, is the people. Having spent the better part of 9 years here, I can honestly say that there are very, very few people I have known here with whom I would not eagerly work again. I would also like to think that I have contributed to the growth of many developers (and other staff). When I joined Whitehill, the development team was very young. Most had only a couple of years of experience. It is extremely gratifying to me to see what has grown out of that team – people who have become technical leaders, managers, and all-around leaders. I cannot express the respect I have for what this group has become. I like to think that I contributed in some way to that growth.

Looking back, there are many people who stand out. I miss the early days with Bob, and Bonzo, and the excitement of working with a small, tight team. Then, of course, there was the winter in a construction trailer in the parking lot with 8 other guys, porting Transport to Java.

There are too many people to list all of them here. First and foremost, I want to thank Steve Palmer. Steve has always been the epitome of professionalism, respectfulness, and generally “doing the right thing”, and I consider Steve to have been an important mentor to me. Among the early developers, Shawn Hogan, who had leadership written all over him 8 years ago, has fulfilled that potential and more. Jerome Sabourin, Greg Clouston, Andrew Sharpe, Anita Richard, Rob Stote and too many others to mention. I am very proud of, and have the utmost respect for, all of you.

It has certainly been an interesting ride.

All of you, take care. I look forward to seeing and working with you all some day in the future.  

Another Big Day for Whitehill

It was announced yesterday the we (Whitehill Technologies, Inc.) are being acquired by Skywire Software. This represents another big day in the evolution of Whitehill as a software company. It is also another great example of a successful, viable, important software company being born and grown right here in Moncton, New Brunswick, Canada. If you want to read more about the deal, you should look at the news releases – there are lots out there. I think congratulations are in order for Paul McSpurren and all the others who put this deal together. Well done.

It is an interesting time for me to look back over the last 8+ years I have been at Whitehill. At the time I joined, we were barely out of the “startup” stage, having only about 30 employees, and probably a similar number of customers, 1 product, and a lot of heart. A large number of people have stayed with us for the whole ride (this continuity I think has been a major factor in our success). It is amazing to me to see how far we have come.

I would like to thank everyone with whom I have worked at Whitehill all these years. Well done, everyone. It has been a wild and interesting ride to be sure, but I am proud to have been part of it, and to have worked with all of you (not that I am going anywhere – just feeling sentimental!). Everyone involved, past and present, should feel proud as well. 

I am also looking forward to the future here – and to all of the challenges and opportunities before us.

Welcome to my blog

Well, I have been meaning to start this for some time, but like everyone, other things just get in the way.

A bit about myself. I have been working in the world of technology for 20-odd years. Currently, I am VP of Technology at Whitehill Technologies, Inc., where we specialize in Document Composition and Document Automation technologies, in the Legal and Financial services spaces. Prior to that I worked on internet conferencing using early VoIP, and on large military communications projects. Before even that, I worked in satellite control, and remote sensing. Going way back to university, my focus was on theoretical physics and astrophysics.

Currently my interests revolve around most aspect of software development, from technologies to management, and in the area of defining sustainable, repeatable processes for innovation within technology organizations. I also have a particular interest in Tablet PC technologies – I have been using one for several years, and I love it.

On the personal side, I still have a strong interest in all aspects of science, especially physical sciences, as well as philosophy and comparative religion. In addtion, I am into music, playing guitar (badly, I am sorry to say), and reading almost anything I can lay my hands on.