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.

Advertisements

Keeping up to date on the New Brunswick Innovation Forum

I was just (re)visiting the site for the New Brunswick Innovation Forum coming November 2-3, 2011 in Fredericton, NB.

This looks like a very worthwhile event, and I hope to attend.

To that end, I thought I would sign up for updates (using the link on the event’s site). This where it became sadly amusing. The only channel for getting updates is via an email subscription, using a very “last millennium” looking form. It seems very ironic that an event entirely focused on technology, innovation, and the digital economy, does not use any social networking channels to promote itself?

Note that I am not criticizing the event, or those who spend (I am sure) a great deal of time organizing it and putting it on. I am just pointing out a little bit of irony!

Health Care: It is an EQUAL Right

I was at the Georges Dumont Hospital this morning, and saw a number of signs (on hospital property?) related to our provincial election, reminding Premier Graham the French-language health care is a right.

I would like to remind the creators of those signs that health care is an equal right, and as such should be provided equally, fairly, and effectively to all citizens of the province regardless of language or any other characteristic. Unfortunately, this is not correctly the case in New Brunswick. We currently have two health care systems in the province – one of which is bilingual, and the other essentially unilingual French.

As we all know, our health care system (not just ours, but nation-wide) is at real risk of collapsing under its own cost. It is unsustainable as it currently exists. Add to that a situation in which there are two health care systems, each with its own management, bureaucracy, and other costs. With additional complexities created in trying standardize procedures and processes, and in establishing province wide programs to improve health care.

Why do we have this situation? Is this required in order to provide equal health care in both languages? NO. This situation is perpetuated purely to stroke the ego of one group within the province.

Do not misunderstand me (and don’t you dare misquote me!) – I fully support equal health care rights for everyone in the province. Does this require duplicate bureaucracies? NO! Any rational, reasonable, mature groups of people should be able to come to an agreement which eliminates  unnecessary overhead, and yet maintains equal quality of service for all New Brunswickers, and does so without giving one group in the province preferential treatment over others.

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.

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.