Categories
Uncategorized

Software Craftsmanship and “Uncle Bob”

Robert Martin

Craftsmanship and Ethics is a great keynote given in the fall of 2007 at the JAOO conference by Robert C. “Uncle Bob” Martin, guru of object-oriented design, agile development and just plain writing good code. It doesn’t matter whether you’ve just started programming or have been at it for twenty years – if you want to call yourself a professional developer, this one’s a must-watch. It’s just over 47 minutes, which makes for good lunchtime viewing.

Uncle Bob tosses around a lot of ideas about software development in his keynote. I’ll be writing about some of these ideas in future blog entries, and perhaps some of them will end up covered in the Developer Foundations track at TechDays.

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

Toronto Coffee and Code: This Afternoon at The Roastery

roastery

Today’s Toronto Coffee and Code – and by “today”, I mean “Friday, August 14th” – will take place at The Roastery (401 Richmond West, just east of Spadina) from noon until 6 p.m.. Come on down, shoot the breeze, ask questions, get help with Microsoft developer tools and tech, hang out!

Categories
Uncategorized

Windows API Code Pack for .NET Framework Released

Windows 7 logo and Microsoft .NET logoUntil now, taking advantage of the UI improvements in Windows 7 (and even some features in Vista) took a fair bit of work – there was a lot of stuff that wasn’t available through the .NET Framework. You’d have to either switch to C++ or resort to hacks in order to access these goodies.

That’s all changed with the newly-released Windows API Code Pack for Microsoft .NET Framework. Written in C# – with some DirectX stuff written in C++ – this library acts as a wrapper that gives managed code access to features including:

  • Windows 7 Taskbar Jump Lists, Icon Overlay, Progress Bar, Tabbed Thumbnails, and Thumbnail Toolbars.
  • Windows 7 Libraries, Known Folders, non-file system containers.
  • Windows Shell Search API support, a hierarchy of Shell Namespace entities, and Drag and Drop functionality for Shell Objects.
  • Explorer Browser Control.
  • Shell property system.
  • Windows Vista and Windows 7 Common File Dialogs, including custom controls.
  • Windows Vista and Windows 7 Task Dialogs.
  • Direct3D 11.0, Direct3D 10.1/10.0, DXGI 1.0/1.1, Direct2D 1.0, DirectWrite, Windows Imaging Component (WIC) APIs. (DirectWrite and WIC have partial support)
  • Sensor Platform APIs
  • Extended Linguistic Services APIs
  • Power Management APIs
  • Application Restart and Recovery APIs
  • Network List Manager APIs
  • Command Link control and System defined Shell icons
  • Shell search API support
  • Drag and drop functionality for Shell objects
  • Support for Direct2D/Direct3D interoperability
  • Support for typography and font enumeration DirectWrite APIs

The system requirements are:

We’ll cover the Windows API Code Pack for Microsoft .NET Framework over the next little while in a couple of places – certainly on this blog, as well as at the TechDays 2009 cross-Canada conference in the Optimizing Your Apps for the Windows 7 Experience session.

Down arrow

Download Windows API Code Pack for Microsoft .NET Framework (v1.0)

 

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

TechDays’ Developer Foundations Track

techdays_developer_foundations_track

Vancouver and Toronto pinsLast week, John Oxley announced the addition of a new track to TechDays Vancouver and TechDays Toronto: the Developer Foundations track, whose sessions are devoted to the practices and principles of good coding. While the other tracks will be about Microsoft tools and technologies, Developer Foundations will be about answering a single question: How do I write good code?

How Developer Foundations Came to Be

We added the track in response to calls for it from a number of developers who care about about the state of software development in the .NET community: Donald Belcham (whose upcoming book, Brownfield Application Development in .NET, is worth checking out), Justice Gray and Peter Ritchie. We put out a call for suggestions in a post titled TechDays, Blogs and the Fundamentals, and based on those suggestions, we added the Developer Foundations track to the Vancouver and Toronto stops of the TechDays tour and put Justice and Peter in charge. We’re taking care of the physical logistics like the room and the audiovisual gear, but when it comes to content, Justice and Peter are calling the shots.

How Developer Foundations Will Work

Developer Foundations will be a four-session track, with the same four sessions being held on Day 1 and Day 2 of the Vancouver and Toronto conferences. With the same sessions happening on both days, we’re hoping to make it as easy as possible to catch a Developer Foundations session while still catching all the other great tool- and tech-specific presentations that TechDays is known for. We’re treating the Vancouver and Toronto Developer Foundations sessions as a test run – we’re going to watch this track, take in attendee feedback, make a note of all the lessons we learn and if it’s success, we’ll build on it and make the track a part of TechDays for all cities.

What You Can Do

Justice and Peter have a lot of work ahead of them, what with the TechDays conferences in Vancouver and Toronto taking place next month. If you’ve got suggestions or ideas for what they should cover – perhaps you’re a bit iffy on patterns, exception handling, the use of version control or how to do test-driven development – let them know! If you’re on Twitter, send a tweet to @JusticeGray or @PeterRitchie. You should also feel free to leave a comment or drop me a line; I’ll make sure it gets to them.

The other thing you can do is watch this space! I’ve got all sorts of articles coming up on the topic of good code which you’ll find useful, especially if you’re planning on hitting the Developer Foundations track at TechDays.

The early bird special price – a mere CDN$299 – is going away very, very soon. If you want to catch the great tracks at TechDays, you’d better register now!

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

N00b Boyfriend

What happens when a girl from a l33t family brings a n00b boy home to meet her parents?

This article also appears in The Adventures of Accordion Guy in the 21st Century.

Categories
Uncategorized

Old IBM Ad: “150 Extra Engineers!”

Alternate titles for this ad: 150 Receding Hairlines! 150 Giant Foreheads!

IBM "Electronic Calculator" ad: "150 Extra Engineers"

Click to see at full size.

Here’s the text of the ad:

150 Extra Engineers

An IBM Electronic Calculator speeds through thousands of intricate computations so quickly that on many complex problems it’s like having 150 EXTRA Engineers.

No longer must valuable engineering personnel…now in critical shortage…spend priceless creative time at routine repetitive figuring.

Thousands of IBM Electronic Business Machines…vital to our nation’s defense…are at work for science, industry and the armed forces, in laboratories, factories and offices, helping to meet urgent demands for greater production.

Categories
Uncategorized

SharePoint: An Opportunity in the Econopocalypse

Diagram showing what SharePoint does: Document management, calendars, surveys and voting, committees and chapters, tasks and projects, intranet/extranet and collaborationSharePoint has always been a tricky thing to describe, but the opening paragraphs from a recent article in the New York Times, Microsoft’s SharePoint Thrives in the Recession, does a pretty decent job:

Hang around at Microsoft’s Redmond, Wash., headquarters for five or ten minutes and someone dressed in khaki pants and a blue shirt is bound to tell you about the wonders of SharePoint — one of the company’s most successful and increasingly controversial lines of software.

Think of SharePoint as the jack-of-all-trades in the business software realm. Companies use it to create Web sites and then manage content for those sites. It can help workers collaborate on projects and documents. And it has a variety of corporate search and business intelligence tools too.

Microsoft wraps all of this software up into a package and sells the bundle at a reasonable price. In fact, the total cost of the bundle often comes in below what specialist companies would charge for a single application in, say, the business intelligence or corporate search fields.

SharePoint development seems to be a field rich with opportunity. The Ignite Your Career webcasts that Microsoft Canada had earlier this year suggested that SharePoint developers are in demand. Close to home, I know Toronto-based developers working on SharePoint projects for Bank of Montreal. The New York Times article reports that Ferrari, Viacom and Starbucks use it for a number of tasks, including the creation of their public-facing websites. Friends of mine in Ottawa report that the Canadian federal government makes heavy use of it. A recent article in O’Reilly Radar bears the title Want A Job? Learn SharePoint, Says Gary Blatt; it reports that the U.S. federal government is chock full of SharePoint projects and not enough developers.

Like Office, SharePoint has grown from a collection of productivity applications into a full-fledged platform, and where there’s a platform on which business and governments run, especially a platform whose purpose is to let people work collaboratively, there’s a developer opportunity. Over the next little while, I’m going to post articles about SharePoint and developing for it, using my connections within both The Empire and the developer community (such as my friends at ObjectSharp) to get more information.

If you’re planning on attending TechDays 2009, Microsoft Canada’s cross-country tour of seven cities in which we talk about getting the most out of the Microsoft Platform and sharpening your skills, you might want to check out the session titled Developing and Consuming Services for SharePoint. Here’s it’s abstract:

The world gets more service-oriented every day, and with that comes the demand to integrate all kinds of services, including those from SharePoint. This session introduces SharePoint as a developer platform and provides an overview of how you can build and deploy custom services with it. The focus will be on developing ASP.NET and Windows Communication Foundation services for SharePoint as well as building a Silverlight client to consume them.

Watch this space for more articles about SharePoint and SharePoint development!

This article also appears in Canadian Developer Connection.