Categories
Uncategorized

This Saturday: “Introduction to B.I.” in Montreal (Samedi .NET)

samedi .net in montreal

Don’t forget that a Samedi .NET event is taking place this Saturday, September 25th in Montreal: Introduction au B.I., or as they say en Anglais, Introduction to B.I.. As in Business Intelligence. For the full details, see my earlier blog entry and the event’s registration page. It won’t cost you much to attend; admission to the event is under $10.

Thanks to La Communauté .NET Montreal for putting on the event and to Microsoft Canada Regional Director Guy Barrette, my go-to guy for keeping me in the loop on Montreal geek events!

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

This Week’s Coffee and Codes

coffee and code

This week, we’re having Coffee and Codes in Ottawa and Toronto! Coffee and Code is where we work out of a cafe so that we’re easy to find. Come and talk to us, ask us questions about Microsoft tools and technologies, the industry, career, whatever! We’re also here to help you deploy apps to Windows Phone 7: we’ll have a real live Windows Phone 7 device that you can deploy apps to.

Wednesday, September 22 in Ottawa

Colin Melia and Rick “Claus” Claus from Microsoft’s Developer and Platform Evangelism team will be at Bridgehead Cafe (224 Dalhousie Street) from 10:00 a.m. to 4:00 p.m. to host a Coffee and Code there. Drop in, say hi, have a coffee, ask questions and if you’ve got an app, try deploying it to a real live Windows Phone 7 device!

Thursday, September 23 in Toronto

Join Kate Gregory and me as we host a Coffee and Code at the Starbucks at King and Yonge (4 King Street West) from 11:00 a.m. to 6:00 p.m., where we’ll merge with the Coffee and iOS group who are coming in at 4:00 p.m.. Want to find out more about WP7 or iOS development? This is the time and place!

See Kate’s blog entry about this Coffee and Code

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

Geek Hero: Timothy Dalby and “Find-A-Home”

geek heroBack in May, we held the Make Web Not War conference in Montreal, which we wrapped up with the FTW! Coding Competition. In this contest, we challenged developers to make the best possible app using a mix of both Microsoft and open source tools and tech. We offered a prize for the best overall app, with bonus prizes for use of specific technologies, and in the end, Timothy Dalby and his application, Find-A-Home, walked away with a number of them:

  • FTW! Coding Competition Champion
  • Best Open Data App
  • Best MS SQL App
  • Best Azure App

I interviewed Timothy a little while back via email, asking him questions about Find-A-Home, his plans and his tech background.

find-a-home

Please explain what Find-A-Home is, and how it’s supposed to be used.

Find-A-Home is basically an area research engine. You start by either directly searching an address in Edmonton, or browsing through a set of property listings.  Find-A-Home will then generates a map of the area along with nearby amenities, such as schools, police stations, fire stations, parks, transit stops, and recreation centers.  In addition to the map, a set of 5 metrics are also generated for the location based on proximity to amenities.  These metrics essentially provide a “ranking” for each location which you can relate to what is most important to you when buying house.

Where’d you get the idea? Have you been house-hunting recently, or know someone who has?

I heard about the “Make Web Not War: For The Web!” (FTW!) Competition while attending an Energize I/T conference and I wanted use the open data sets being provided by the City of Edmonton in a new and useful way for my entry.  I did indeed purchase a house about a year prior to coming up with the Find-A-Home concept.  While mulling over a number of different ideas for the competition, it suddenly just popped into my head one day that it would have been many times easier when I bought my house if information about the area were readily available in a easy to understand way.  I expanded on the concept over the following week or so and eventually came up with the vision of a metric-based “ranking” system for houses.  And the rest, as they say, was history.

Could you explain the technology you used – the Microsoft parts and the open source parts, and how they fit together?

For the Find-A-Home project, I wanted to squeeze in as many new technologies as I possibly could in the time available.  As a developer, I love learning.  If I am developing and not learning something new, it is a safe bet to say that I’m bored.  Windows Azure, the hosting environment for Find-A-Home, has fascinated me for as long as I knew it existed.  It was something that I wanted to try out, but never had a good reason to.  When the opportunity came up to build this app and have it hosted on Azure, I jumped at the idea.  I also decided to use SQL Azure as the data platform. 

The majority of the data behind the application is sourced from the Open Data Catalogue made available by the City of Edmonton.

The core development technology behind Find-A-home was initially C/ASP.NET 4.0 and the brand-new ASP.NET MVC 2 framework.  Later in the development, I discovered that Windows Azure (at the time) only supported up to .NET 3.5. As a result, I had to downgrade the project to ASP.NET 2.0, but I still used the MVC 2 framework.  The mapping functionality I decided on was Bing maps.  I really wanted to fit PHP into the mix somehow, but I ran out of time before I had a chance to do so. 

(One other really nice benefit to using a variety of technologies was that it made my project eligible for 3 out of the 5 bonus categories in the competition.)

What are your future plans for Find-A-Home?

Since winning the “FTW!” competition, I have spent a lot of time researching commercial viability of the project.  Ultimately, I would like to expand greatly on the feature sets and would like to see it being used by everyone in Canada when they look to buy a new home as the definitive property research guide.

And last, but certainly not least, could you tell us a bit about yourself – anything you like: where you went to school, where you work now and other places you’ve worked, the sorts of technology you typically use, any interesting hobbies and so on.

I should start by saying that I have been programming since grade 7.  I learned my first “Hello World” application using BASIC on the Apple IIe systems at my school and I was instantly hooked.  I started getting those “Learn to code a game in only 1kb!” books from the local library and taught myself some basic programming skills.  Then my family got a 80286 PC and I graduated my programming to QuickBASIC 4.5 on MS-DOS.  I remember spending an entire summer one year in junior high working on a text-based adventure game called “Haunted House.”  It was my first major software undertaking and the start of what would eventually become a dearly-loved career. 

In Grade 9 (mid-late 1990s), I started to hear about this thing called the Internet and eventually got myself a GeoCities account and taught myself HTML and JavaScript programming.  From there, I branched into various web technologies, including asp and some basic cgi perl code.  After graduating from high school, I attended the two year Computer Systems Technology diploma program at the Northern Alberta Institute of Technology (NAIT) to finally solidify all of this programming knowledge I had accumulated since childhood into something useful for the business world.

I had the unfortunate luck of graduating from NAIT (in 2003) at what was one of the worst possible times for the IT industry in Edmonton.  There were no programming jobs available, so I started off working for a call center, like many IT people in Edmonton.  Eventually, I got a job at the Dell Edmonton call center where I was able to work my way into a position that had me developing internal web applications in C#/ASP.NET on a full-time basis.  I have spent the last two and a half years working at a great company called Investopedia in full-time web development.  The primary programming languages/technologies I am fluent in are C#, VB, XML, HTML/CSS/Javascript/jQuery, ASP, Python, MS SQL, and MySql.  I also have a decent level of experience with network architecture and security.

As a hobbyist, I have developed a bit of an addiction to hardware and programming competitions.  I have participated in the last two years of the Microsoft Embedded Spark competition, in which I learned hardware development and programming using Windows CE 6.0 and managed to make it through to Round 2 on both years.  My first hardware project was a web connected, portable insurance cataloging and price finding system.  The second project was a brain-controlled Dunk Tank, where you would wear a headband that read your brain waves in an attempt to center a ball on a target on a computer monitor.  If aimed successfully, the computer would fire the release for the dunk tank’s platform.  I also worked with my good friend, Mike, on a project that had us hacking the brand new Nokia N900 cell phone.  We managed to win the “PUSH N900” competition (along with 4 other great teams) by designing and building a belt (called the Haptic Guide) that can guide you to the location of a geo-coded photo using only haptic (touch) feedback through a collection of vibrational motors embedded into the belt.

My latest competition was the “FTW!” competition, for which the Find-A-Home project was developed.  I decided to take this summer off from competitions, but I hope to resume competing for the winter Embedded Spark competition.

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

Jeff “Cooking for Geeks” Potter’s Book Tour

Jeff Potter poses with his book, Cooking for Geeks, at HacklabTO

Last night, I caught Jeff Potter’s presentation in support of his book, Cooking for Geeks, at HacklabTO, a hackerspace in Toronto’s Kensington Market. Like most authors, he’s been touring around, promoting the book, but unlike most authors, he’s avoided the usual venues. Rather than talking at bookstores or pubs, he’s been holding his book gatherings in cosier settings such as living rooms and spaces like the Hacklab.

Cooking for Geeks is written with a specific sort of person in mind: one who likes to know how things work. It’s for the science buff who wants to know more than just how to cook the perfect steak, but why that method works. It’s for the tinkerer who wants to convert ordinary kitchen instruments into really cool cooking devices, either because s/he can’t afford those devices or because s/he’s driven to tinker. It’s about giving people the right mental models to understand the processes that happen when we take ingredients and turn them into dinner.

Jeff opened his presentation with a “What Type of Cook are You?” test borrowed from Brian Wansink, author of Mindless Eating, which help you better understand the way you see food and your approach to cooking. It turns out that I’m a hybrid of Type A (the “comfort food” sort of person) and Type D (the “experimental” sort of person). I’m the sort of person who often – but not always — follows the “Law of the Precious and Rare” at restaurants, ordering the thing I can’t get or make at home, or the dish that I haven’t had in ages.

Jeff’s presentation was eye-opening and even inspirational. Leigh Honeywell, who was also there, was so inspired by the part about sous-vide cooking and how you can put together your own immersion cooker by hacking a slow cooker’s thermostat that she’s sourcing the parts as I write this. Perhaps we’ll have tasty sous-vide steaks at Hacklab next week! Thanks, Jeff!

Cover of "Cooking for Geeks"If you missed last night’s presentation and you’re in Toronto, you’re in luck. Jeff’s doing his presentation today (Tuesday, September 21) in two places, and he’s got books for sale as well. He’ll be at:

Bonus! I bought an extra copy of Cooking for Geeks and had Jeff autograph it. I’m going to give it away in a contest of some sort – I just haven’t decided what sort of contest, Watch this space!

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

Windows Phone 7 Advanced Training Today!

Windows Phone 7 deviceI know that this is incredibly short notice, but I just heard about it myself:

Join us on September 21 2010 at 8.00 am PDT (11:00 EDT) for the first of two Office Live Meeting broadcasts.

The Microsoft Windows Phone 7 marketplace will open in October, and Microsoft wants to help you make your app the best that it can be. If you would like to ensure that you’ve considered key submission criteria and that your app is of the highest quality, this free live training is for you!

Join Rob S. Miles and Andy Wigley once again (both MS Press authors and MVP’s) for an engaging training on advanced topics for Windows Phone 7 application and game development.

We’re also including a session on Windows Phone Design and Designing with Blend, taught by Microsoft SME’s Bryan Agnetta and Jon Harris. Bryan is a Senior User interface Program Manager in the design studio for Windows Phone 7 team. His responsibilities include managing the Design Integration team and Program Manager for Application development in the studio. His 9+ year tenure at Microsoft has all been with the Windows Phone User Experience team. Jon is the Senior Product Manager for Expression Blend and SketchFlow. He joined Microsoft as the first User Experience Evangelist! And now 4 years later, 4 releases of Blend, 4 releases of Silverlight and a new release of Blend 4 for Windows Phone… you get the benefit of his expertise in this session.

The last hour is dedicated to the questions you have. We’ve pulled together a panel of Microsoft SME’s in addition to Rob, Andy, Jon and Bryan. Through the Live Meeting Q&A function, you can get all your Windows Phone 7 development questions answered real time.

Sign up for both Part One and Part Two to get full coverage.

Here’s the agenda:

Part One: Tuesday, September 21, 2010, 11 a.m. – 2 p.m. EDT

Click here to register for Part One.

Time Subject
11:00 a.m. – 11:50 a.m. EDT Panorama and Pivots
12:00 p.m. – 2:00 p.m. XNA Deep Dive (includes a 10-minute break)

 

Part Two: September 21, 2010, 3 p.m. – 7 p.m. EDT

Click here to register for Part Two.

Time Subject
3:00 p.m. – 3:50 p.m. EDT Bing Maps
4:00 p.m. – 4:50 p.m. Planning and Optimizing for Performance
5:00 p.m. – 5:50 p.m. Windows Phone 7 Design and Design using Microsoft Blend
6:00 p.m. – 7:00 p.m. Live Q&A Panel with Microsoft SME’s

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

ScottGu’s Workaround for the ASP.NET Security Vulnerability

The ASP.NET Security Vulnerability

Poster for the movie "Hackers"

Chances are that you’ve seen the Microsoft Security Advisory, but in case you haven’t here’s the "tl;dr" version:

  • There’s a vulnerability in ASP.NET that was publically disclosed late on Friday at a security conference.
  • An attacker using this vulnerability can:
    • Request and download files within an ASP.NET application like the web.config file (which often contains sensitive data).
    • Decrypt data sent to the client in an encrypted state (like ViewState data within a page).

How Does the Vulnerability Work?

The vulnerability is based on a cryptographic oracle. When talking amongst the crypto crowd, an “oracle” refers to a system that gives away hints if you ask it the right questions.

Within ASP.NET, there’s a vulnerability that acts like a “padding oracle”. An attacker can send ciphertext to the web server and learn if it was decrypted properly by looking at the error code returned by the server. Make lots of requests like that while keeping track of the error codes returned, and you can learn enough to decrypt the ciphertext.

How Do You Work Around the Vulnerability (the high-level version)?

The vulnerability works because of the different error codes returned by the server. The workaround is to change the error handling withing ASP.NET so that it always sends the same error each time, regardless of the error, thereby cancelling the “oracular” behaviour.

More specifically, this involves enabling the <customErrors> feature of ASP.NET and mapping all errors to return the same error page.

How Do You Work Around the Vulnerability (the step-by-step version)?

Scott Guthrie’s blog has the step-by-step instructions for:

  • Working around the vulnerability
  • Making sure that the workaround has been enabled
  • Finding vulnerable ASP.NET applications on your server
  • Finding out more about the vulnerability

If you’ve got an ASP.NET-based application, make sure you’ve set up the workaround!

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

Upcoming Windows Phone 7 Coffee and Codes / Deployment Clinics

coffee and code

Update (Sept. 21 @ 6:15 p.m. EDT): Made some corrections to the schedule.

We’re out there, and we want to help you with your Windows Phone 7 development by giving you a chance to deploy your apps to an advance-release Windows Phone 7 device for testing! We’ll be in the following cities on the following dates:

Wednesday, September 22 in Ottawa (Coffee and Code)

Colin Melia and Rick “Claus” Claus from Microsoft’s Developer and Platform Evangelism team will be at Bridgehead Cafe (224 Dalhousie Street) from 10:00 a.m. to 4:00 p.m. to host a Coffee and Code there. Drop in, say hi, have a coffee, ask questions and if you’ve got an app, try deploying it to a real live Windows Phone 7 device!

Thursday, September 23 in Toronto (Coffee and Code)

Join Kate Gregory and me as we host a Coffee and Code at the Starbucks at King and Yonge (4 King Street West) from 11:00 a.m. to 6:00 p.m., where we’ll merge with the Coffee and iOS group who are coming in at 4:00 p.m.. Want to find out more about WP7 or iOS development? This is the time and place!

See Kate’s blog entry about this Coffee and Code.

Wednesday, September 29 in Montreal (Coffee and Code)

Join “les bons gars”, Christian Beauclair and Guy Barrette, who’ll be holding a Coffee and Code at Le Café de la Cité on 75 Queen. They put on a professional appearance, but we all know qu’ils vont ecrire des «fart apps»! They’ll be doing it in both official languages: Silverlight and XNA!

Thursday, September 30 in Montreal (Deployment Clinic)

Deployment clinics are a little more formal than Coffee and Codes. You can book an exclusive timeslot to deploy and test apps to a Windows Phone 7 device, and there’s one taking place all day at Microsoft’s Montreal office (2000 Avenue McGill College, 4th floor) on the 30th. Email Christian Beauclair to reserve a time slot.

This article also appears in Canadian Developer Connection.