Programming

Your Faithful Scribes are Working Away at Fixing the Docs

by Joey deVilla on December 13, 2011

Woodcutting of a scribe working on a text, with the thought bubble "WTF?"

This is just a quick update to let you know that yes, we know that the Shopify developer documentation needs work. There’s a fair bit of information there, but it could stand some improvement. There’s some missing information, it could be organized better, there are parts of it that are confusing and there need to be examples in languages and frameworks other than Ruby and Rails.

This update is also here to let you know that we’re actively working on it, bit by bit, every day. As I write this, David Underwood and are are working on a wholesale reorganization of the developer sections of the wiki and clear writeups of all the API resources, including explanations of the parameters they expect and the attributes they return as well as how they relate to other resources and what effects they have on shops. We’re also working on more example code, in more languages.

If you’ve got comments, questions and suggestions about the docs or what we’re doing with them, please let us know — feel free to leave a comment or drop me a line.

This article also appears in the Shopify Technology Blog.

{ 0 comments }

ClearFit’s Looking for a Rails Developer

by Joey deVilla on November 8, 2011

Clearfit [hearts] Rails, GitHub and Amazon Web Services

My friend Robert Nishimura’s looking for a Rails developer for his company, ClearFit, which is based in uptown Toronto. He sent me some details about the position he’s trying to fill; I’ve posted them below.

If you’ve got the skills and if the position sounds interesting to you, you should drop him a line at robert@clearfit.com!

Company Information

ClearFit is changing the way small businesses hire. Most people know that ‘fit’ is the most desirable attribute for employees and employers — that intangible sense that can’t be found in a resume and is difficult to glean from a job interview. It’s a huge problem — employers spend billions every year on staffing in Canada alone.

Most small business owners don’t know where to even start when hiring a new employee. Ask around for referrals, “pay and pray” with a job board or deal with an avalanche of resumes from Craigslist? 

We have built the system that some describe as “an eHarmony for jobs”. We have over 2500 registered employers and tens of thousands of registered career seekers which barely scratches the surface of a multi-billion dollar market. All this and we just completed our first round of investment so we are poised for stellar growth.

We are located in the Yonge/Eglinton neighbourhood, strategically situated between 3 Starbucks and 3 minutes from Bulldog Coffee. We’re also upstairs from Copacabana Brazilian BBQ.

Skills & Requirements

Skills:

  • Minimum 2 years experience coding in Ruby on Rails
  • Minimum 2 years experience with HTML/CSS
  • Experience with Javascript (Prototype, JQuery)
  • Experience with Postgres SQL
  • Experience with Ubuntu/Nginx
  • Experience with GitHub

Bonus points:

  • Experience with Amazon EC2
  • Experience integrating with other web apps
  • Photoshop and front-end web development skillz
  • iOS development experience

What ClearFit Offers

  • Salary between $80K and $100K based on experience
  • Snacks and drinks in our kitchen
  • Wicked awesome coffee from our new Nespresso machine
  • 15 days paid vacation per year
  • Full group benefit plan which includes vision, dental

If this sounds like something you’re interested in, contact Robert Nishimura directly at robert@clearfit.com

{ 1 comment }

Three Months of CoffeeScript

by Joey deVilla on November 7, 2011

coffeescript

Guest Post by Kamil Tusznio!

Kamil’s a developer at Shopify and has been working in our developer room just off the main “bullpen” that I like to refer to as “The Batcave”. That’s where the team working on the Batman.js framework have been working their magic. Kamil asked if he could post an article on the blog about his experiences with CoffeeScript and I was only too happy to oblige.

CoffeeScript

Since joining the Shopify team in early August, I have been working on Batman.js, a single-page app micro-framework written purely in CoffeeScript. I won’t go into too much detail about what CoffeeScript is, because I want to focus on what it allows me to do.

Batman.js has received some flack for its use of CoffeeScript, and more than one tweet has asked why we didn’t call the framework Batman.coffee. I feel the criticism is misguided, because CoffeeScript allows you to more quickly write correct code, while still adhering to the many best practices for writing JavaScript.

An Example

A simple example is iteration over an object. The JavaScript would go something like this:

var obj = {
  a: 1,
  b: 2,
  c: 3
};

for (var key in obj) {
  if (obj.hasOwnProperty(key)) { // only look at direct properties
    var value = obj[key];
    // do stuff...
  }
}

Meanwhile, the CoffeeScript looks like this:

obj =
  a: 1
  b: 2
  c: 3

for own key, value of obj
  # do stuff...

Notice the absence of var, hasOwnProperty, and needing to assign value. And best of all, no semi-colons! Some argue that this adds a layer of indirection to the code, which it does, but I’m writing less code, resulting in fewer opportunities to make mistakes. To me, that is a big win.

Debugging

Another criticism levelled against CoffeeScript is that debugging becomes harder. You’re writing .coffee files that compile down to .js files. Most of the time, you won’t bother to look at the .js files. You’ll just ship them out, and you won’t see them until a bug report comes in, at which point you’ll be stumped by the compiled JavaScript running in the browser, because you’ve never looked at it.

Wait, what? What happened to testing your code? CoffeeScript is no excuse for not testing, and to test, you run the .js files in your browser, which just about forces you to examine the compiled JavaScript.

(Note that it’s possible to embed text/coffeescript scripts in modern browsers, but this is not advisable for production environments since the browser is then responsible for compilation, which slows down your page. So ship the .js.)

And how unreadable is that compiled JavaScript? Let’s take a look. Here’s the compiled version of the CoffeeScript example from above:

var key, obj, value;
var __hasProp = Object.prototype.hasOwnProperty;
obj = {
  a: 1,
  b: 2,
  c: 3
};
for (key in obj) {
  if (!__hasProp.call(obj, key)) continue;
  value = obj[key];
}

Admittedly, this is a simple example. But, after having worked with some pretty complex CoffeeScript, I can honestly say that once you become familiar (which doesn’t take long), there aren’t any real surprises. Notice also the added optimizations you get for free: local variables are collected under one var statement, and hasOwnProperty is called via the prototype.

For more complex examples of CoffeeScript, look no further than the Batman source.

Workflow

I’m always worried when I come across tools that add a level of indirection to my workflow, but CoffeeScript has not been bad in this respect. The only added step to getting code shipped out is running the coffee command to watch for changes in my .coffee files:

coffee --watch --compile src/ --output lib/

We keep both the .coffee and .js files under git, so nothing gets lost. And since you still have .js files kicking around, any setup you have to minify your JavaScript shouldn’t need to change.

TL;DR

After three months of writing CoffeeScript, I can hands-down say that it’s a huge productivity booster. It helps you write more elegant and succinct code that is less susceptible to JavaScript gotchas.

Further Reading

This article also appears in the Shopify Technology Blog.

{ 5 comments }

Salmagundi for Monday, August 22, 2011

by Joey deVilla on August 22, 2011

Welcome to another Salmagundi — a selection of some interesting techie stuff on the web!

In his article Your Code is My Hell, all-round Ruby/Rails guru Avdi Grimm warns Ruby and Rails developers about a creeping exceptionalism that has been rearing its ugly head as of late. Many Ruby/Rails developers seem to be under the impression that simply because Ruby and Rails do a lot to make programming easier, they can simply ignore things like good coding, good object design, design patterns and the SOLID principles and all those other practices and disciplines that good coders follow and exercise. Ruby’s a great programming language and Rails is a great web development framework (and I’m quite glad to return to them), but they’re not a free pass to code carelessly!

Nick Quaranto from Thoughtbot explains why he loves CoffeeScript, by way of the movie 300, in CoffeeScript: Spartan JavaScript. “Writing JavaScript properly, and in an OO manner, requires you to be verbose,” writes Quaranto. “What I like best is that CoffeeScript is simply…spartan.” He covers the good as well as the bad (but it’s mostly good). If you’d like to try it out, visit the CoffeeScript site to get started.

Here’s another one from Avdi Grimm (he’s got lots of good suggestions — you should check his blog regularly if you’re a Ruby/Rails developer): The Procedure/Function Block Convention in Ruby. He’s got a clever idea for when to use “curly bracket” blocks (he suggests to use the for functional blocks) and when to use “do…end” blocks (he says to use them for procedural ones.

And finally, if you use Git, you’ll want to read Benjamin Sandofsky’s article, Understanding the Git Workflow. “If you’re fighting Git’s defaults,” he writes, “ask yourself why.” He suggests that your workflow should be:

  1. Create a private branch off a public branch.
  2. Regularly commit your work to this private branch.
  3. Once your code is perfect, clean up its history.
  4. Merge the cleaned-up branch back into the public branch.

This article also appears in the Shopify Technology Blog.

{ 0 comments }

It’s Whyday!

by Joey deVilla on August 19, 2011


A hand-drawn copy of a comic panel from why’s (poignant) guide to Ruby on a traffic light in Austin, Texas.

It’s August 19th, which in some circles is known as Whyday. If you’re not familiar with what this day’s about or where its name comes from, you might want to read our earlier article, Whyday is Friday. I like to think of this day as a reminder to bring a sense of whimsy, sharing, fun and wonder to your work, whether it’s programming or anything else.

Jessica Allen tweeted the photo above: an expense report in the spirit of Whyday.

Roger von Oech, who wrote one of my favourite books — A Whack on the Side of the Headmentioned Whyday in a tweet today!

I must tip my hat to the appropriately-surnamed Josep M. Bach, whose Whyday contribution is Niki, “the first stable, documented version of Niki, a ruby DSL to write songs”. Programming and music — what could be more fitting?

_why’s cartoon foxes are everywhere. This stencilled graffito was found by Janet Swisher in Barcelona, which I believe is quite far from where _why lives.

Wyatt Greene, on this blog Techiferous, is celebrating Whyday with an article about programming archetypes featuring _why-esque comic illustrations. Nicely done!

Andrew Lenards, who leads “a team of developers working on a larger scientific application” is encouraging his developers to celebrate Whyday. Well done, sir!

Andrei Volkov tweeted: “I just MUST use #whyday to promote my translation of Why’s Poignant Guide to Ruby into Russian.” Keep at it, Andrei, and…spaceeba!


The RubyLearning blog is celebrating WhyDay by announcing the 8th batch of their “Ruby with Shoes” course. Shoes is a great little Ruby GUI toolkit that _why whipped up, and there’s nothing that makes learning a new programming language fun like the immediate satisfaction and feedback of a desktop app.

Gogol is a game that’s written in Ruby, minimalist and brain-teasing. This is right up _why’s alley.

As for me, I’m doing my bit to spread the word about Whyday, working on a few ideas to help people get better at programming and ecommerce (which includes making more videos like this one), mixing music with coding with the assistance of my trusty travelling accordion as well as relearning all the Ruby I’ve forgotten over the past couple of years working at the Empire and sharing what I learn along the way.

I feel incredibly fortunate to be at Shopify (I’ve been with the company a shade more than three months), away from the Fortune 50 corporate world and back in the land of startups, programming languages like Ruby and CoffeeScript, and where whimsy and the willingness to take chances and try new things is greatly appreciated. It’s been a wild and crazy year for me both personally and professionally, and it’s only increased my appreciation for bringing the spirit and sense of fun to my work in the same way that _why did. I hope Whyday does the same for you.

Happy Whyday, and happy hacking!

(If you’re doing or did something interesting for Whyday, drop me a line and I’ll mention you and your activity in an upcoming blog post!)

This article also appears in the Shopify Technology Blog.

{ 0 comments }

Ruby Foo

by Joey deVilla on May 30, 2011

ruby foo

After three years away from all but the most trivial of noodling with the Ruby programming language, I have become a Ruby Foo (as in Mr. T’s catchphrase, “I pity the foo’!”). I am severely out of practice with Ruby, and with two versions having appeared since I last made a living with Rails, even the act of creating a new project is completely different. Since Ruby is the preferred back-end programming language at Shopify and I am the Platform Evangelist, it’s time for me to “sharpen the saw”.

obie

Luckily for me, I ran into Obie Fernandez at the South by Southwest Interactive conference back in March. We sat down for a coffee and he told me about what was happening with Hashrocket and I told him that I was a hair’s breadth away from joining Shopify.

“I’ve been away from Ruby long enough that I’m probably back at newbie level again,” I told Obie between sips of latte made with overcooked beans. “I did it for a bit at the beginning using IronRuby, but between doing all the C# and PHP and the open source ‘Iron’ languages dying of neglect at Microsoft, I’m severely out of practice. I thinking of joining Shopify, and let’s face it: I don’t want to look like an ignoramus in the presence of rock stars like Tobi, Cody and Edward.”

“Give me your email,” said Obie, “and I can do something to help.” Of course he could – he’s the series editor of Addison-Wesley’s Professional Ruby series of books.

Shortly after South by Southwest, a couple of links to PDF editions appeared in my inbox. Thanks, Obie!

eloquent ruby

The first link was to Eloquent Ruby, Russ Olsen’s guide to speaking idiomatic Ruby and getting the most out of the Ruby programming language. It’s a breezy read, written in the same conversational tone that Olsen used in Design Patterns in Ruby, and the book is broken down into 31 bite-size chapters about a dozen pages in length. Each chapter’s title is some principle for programming eloquent Ruby – the first few are “Write Code That Looks Like Ruby”, “Choose the Right Control Structure” and “Take Advantage of Ruby’s Smart Collections” – and each explains that principle, provides code, shows you where you can find the principles used in actual, working projects. The book straddles the line between tutorial and reference; it’s written in tutorial style, but it’s organized so well that it might as well be a reference for those parts of Ruby that you might not use often (but should) as well as for those parts you keep forgetting (in my case, I always end up having to look up metaprogramming). I’ve been going through it at about a chapter an evening, and I’ve been getting smarter each time. Whether you’re coming back to Ruby after a hiatus like I am or if you just simply want to get better at Ruby, you should have this book in your library.

If you’d like to know more about Eloquent Ruby and its author, Russ Olsen, check out this interview with him at InfoQ.

ruby on rails 3 tutorial

I have yet to properly sink my teeth into Ruby on Rails 3 Tutorial but a quick scan of the book has shown that it’s quite promising, and the Amazon reviews are bolstering my belief.

I’ll be writing from time to time about my return to Ruby and Rails in this “Ruby Foo” series of posts, and I hope that whether you’re new to the language, returning after a break like me or aiming for “guru” status, that you’ll check out this blog regularly for notes on my explorations and what I’ve learned.

This article also appears in the Shopify Technology blog.

{ 0 comments }

Cover of "Natural User Interfaces in .NET"It’s a work in progress, but it’s an important one: Manning Publications’ Natural User Interfaces in .NET, written by Joshua Blake. It’s a primer on creating natiral user interfaces — NUIs — using Microsoft technologies such as WPF 4, Surface 2 and Kinect.

Here’s an excerpt from the publisher’s description:

Natural User Interfaces in .NET is a hands-on guide that prepares you to create natural user interfaces (NUI) and great multi-touch experiences using the WPF and Silverlight multi-touch APIs. This book starts by introducing natural user interface (NUI) design concepts that everyone needs to know. It then quickly moves to the WPF Touch API and Surface Toolkit guiding the reader through a multitouch NUI application from concept to completion. Along the way, you’ll see where these concepts can be extended to Silverlight via its touch interface.

Today only — that’s May 16, 2011 — you can get the MEAP (Manning Early Access Program) preview PDFs, which are updated regularly and the final print edition of the book for a mere USD$25.00 (that’s $24.23 Canadian)! Just enter dotd0516 in the promotional code box when you check out at Manning’s site.

{ 0 comments }

Edward and Daniel on Open Data

If you’re into Open Data and in the Toronto area on Monday, you’ll want to catch my fellow Shopifolks Edward Ocampo-Gooding and Daniel Beauchamp at TechTalksTO. They’re going to be talking about how you can (and should) write apps that make use of open data — that’s public information that’s been put online in a form that applications that use, crunch and mash up. It’s out there, it’s free, and it’s there for the public good, so get out there and make the most of it!

Here’s the description of the event:

  • Wondering what your next big project should be?
  • Need some ideas for new and innovative features?

Work on something that matters. You’re bright and hungry to sink your teeth into using new tech all the time. Instead of making yet another X, build something for yourself and for your neighbours & city. Do it with open data: public records now online in an easily hackable form.

Edward and Daniel will talk about how making cool and interesting art & tools backed by open data has catapulted Ottawa hackers into the limelight with coverage & support from the City of Ottawa, CBC, newspapers, local radio and TV stations, and a *lot* of citizens. We’ll show you what’s worked for us, what the scene is like and how you can make open data work for you in your city.

Edward Ocampo-Gooding’s awesome titles include Developer Advocate at Shopify (talk to me about APIs and apps) and lead Organizer at Open Data Ottawa (talk to me about APIs and apps). Daniel Beauchamp is a developer at Shopify and one of the core members of Open Data Ottawa. Along with Edward, he has given several talks on open data, and has recently helped organize a hackfest spanning 76 cities worldwide.

Edward and Daniel’s TechTalk takes place this Monday, May 9th from 6:45 p.m. – 9:00 p.m. at the Gladstone Hotel (1214 Queen Street West, just east of Dufferin). Admission is $3.00 (free for students) and if you want to attend, you need to register here.

{ 0 comments }

Two New Books for Windows Phone 7 Developers

by Joey deVilla on November 1, 2010

Free Ebook: Programming Windows Phone 7

Cover of "Programming Windows Phone 7"

Charles Petzold literally wrote the book on Windows development, and he’s now doing it for Windows Phone 7. Programming Windows Phone 7 is published by Microsoft Press and covers Windows Phone 7 development from many angles: building apps with Silverlight, making games with XNA and making your programs even better by accessing online services.

Windows Phone is a lot of ground to cover, so the book is sized to match. Petzold’s been working on it since at least the start of the year and it shows – it’s over 1,000 pages on our favourite mobile operating system! Luckily, this book is free-as-in-beer: that’s right, you can download it in ebook form, along with the sample code, for no money at all. If you’re looking to seriously get into Windows Phone 7 development, you should have this book.

Downloads for Programming Windows Phone 7

XNA 4.0 Game Development by Example

Cover of "XNA 4.0 Game Development by Example"

Survey after survey shows that games are the most popular mobile phone apps, and Windows Phone is really good at games, and not just from the user’s point of view. The XNA framework, available to Windows Phone developers, takes Windows Phone 7 beyond mere informational apps – it’s like having an Xbox in your pocket!

XNA is also more than just about Windows Phone – it’s also for developing games for Windows and the Xbox 360. Better still, it lets you target three platforms – desktop, console and phone – with a single codebase and tweaks specifically for each platform. If you want to write games and reach a wide audience, XNA is your ticket.

Packt Publishing’s XNA 4.0 Game Development by Example is a great way to get started with XNA programming. It walks you through the development of four games, each from a different genre:

  • Flood Control, a timed puzzle game where you have to quickly assemble pipes before time runs out and water flows through them
  • Asteroid Belt Assault, a 2-D shooter that classic 80’s arcade gamers will find familiar
  • Robot Rampage, a tank game featuring multi-axis controls, a scrolling world, particle effects and enemy AI
  • Gemstone Hunter, which takes the Platformer Starter Kit to new levels

I just got the book, and have only done the most cursory of scans, but I’ve already picked up a few ideas for how to implement features in my games. If you’re looking to do game development for Windows Phone and beyond, this is a great starter book!

Get XNA 4.0 Game Development by Example

This article also appears in Canadian Developer Connection.

{ 0 comments }

Xzibit: "Yo dawg, I heard you liked processors, so we put processors in your processor so you can process while you process!"(If you don’t get the joke, here’s a little explanation.)

Moore’s Law isn’t dead; it just ended up taking on a new form. Named after Intel co-founder Gordon Moore, it refers to the observation that for the same amount of money, the number of transistors that can be place on a chip would double every 18 months. Moore described this trend in 1965 and expected it would continue for at least a decade; it’s held true for almost 50 years.

For a while, this doubling of transistors translated into a doubling of processor speed. We entered the 1990s with 286 processors running at about 10 MHz and left the decade with chips closing in on the 1 Ghz mark. But we didn’t get that hundredfold speed increase in the following decade; those extra transistors became multiple cores, so instead of speed, we got parallel processing engines.

To take advantage of these cores and get the speed increases that we’d grown accustomed to, it’s going to take parallel programming. It’s tricky to get right, and I have personally ruined some good programs with some bad threads, and you might have too. That’s what Parallelism Techdays (no relation to the TechDays conferences we’re putting on across Canada) are all about.

Parallelism TechDays: Developers -- Learn from Intel and Microsoft - Free 1-day course on parallelism and threading

Parallelism Techdays is a FREE one-day course taught by Microsoft and Intel where you’ll learn about parallelism and threading. This is your chance to learn about threading your applications for multi-core platforms.

This course is aimed specifically at Windows C++ programmers using Visual Studio. You don’t need to be familiar with threads, but it’ll help. If you’ve got beginning to intermediate experience with threads in C++, this course is for you!

Here’s the agenda for the day:

  • Thinking in Parallel
    • Why go parallel?
    • Types of parallelism
    • Task-based parallelism vs. traditional methods
  • Getting Started with Parallelism
    • Approaches to converting serial code to parallel
    • Approaches to creating parallel code from scratch
    • Intel Parallel Advisor with test application
  • Implementing Parallelism
    • Choosing a parallelism environment
    • Reasons we will focus on Intel TBB/Microsoft PPL in this class
    • Overview of TBB/PPL
  • Debugging and Correctness (Introduction)
    • Overview of special bugs and parallel programs (deadlocks, data races)
    • Debugging a parallel program (demos of Microsoft Visual Studio 2010)
    • Correction of data races (demo of Intel Parallel Inspector)
    • General guidelines for parallel processing
  • Tuning
    • Understanding parallel performance
    • Performance tuning process
    • Demos: Intel Parallel Amplifier, Microsoft Visual Studio 2010
    • General strategies for solving parallel performance issues

The course starts at 9:00am and concludes at 4:00pm, with 6 hours of instructional time, plus breaks and lunch. Register now – the Montreal event is happening soon!

This article also appears in Canadian Developer Connection.

{ 2 comments }

Get “Silverlight 4 in Action” for Half Price!

by Joey deVilla on September 10, 2010

silverlight 4 in actionToday only (Friday, September 10, 2010), you can get either a PDF or dead-tree edition of Silverlight 4 in Action for half price! Just enter the discount code dotd0910 in the promotional code box when you check out at Manning Publications’ online store.

Here’s the publisher’s description of the book:

Silverlight gives you entirely new ways to create rich internet applications, and now Silverlight 4 adds many powerful enhancements to the mix.

Silverlight 4 in Action is a comprehensive guide to application building using C#. It goes into action immediately in a thorough introduction. It then follows up with numerous nifty examples to explore flexible layout, control extensibility, the communication and binding models, rich media, animation, and much more.

This book explores practical questions in patterns, testing, and performance optimization throughout. No previous experience with Silverlight is required.

Remember, it’s half price just for today! With the discount, the ebook edition becomes USD$14.99 and the paper book version (which also gives you the ebook edition) drops to USD$24.99.

This article also appears in Canadian Developer Connection.

{ 0 comments }

Windows Phone-a-Palooza [Updated]

by Joey deVilla on August 29, 2010

Update: Please note the changes to the Toronto-area deployment clinic locations!

The "Windows Phone Canada" LinkedIn Group

"I [Canada] Windows Phone" logo

If you’re not a member of LinkedIn, the social networking site for professionals, you should join it now! It’s a great place to keep in touch with your network of working peers, post and maintain your resume, find people in your industry and be found yourself, and take part in professional discussions in LinkedIn groups.

Once you’re a member of LinkedIn, you should join the Windows Phone Canada group. It’ll have links to the latest Windows Phone articles, host discussions about all aspects of Windows Phone development, from coming up with ideas for apps to writing them to selling them in Marketplace. You’ll also get to network with Windows Phone developers across Canada, and as I’ll tell you over and over, that’s where opportunities are born.

Join the WP7 discussion – join the Windows Phone Canada LinkedIn group!

Windows Phone Deployment Clinics

7 LG Windows Phone 7 phones charging

Pictured above: some of the phones we’ll be using in our deployment clinics.

Anyone who’s built apps and tried them out on an emulator and then deployed to the real thing will know what Jan van de Snepscheut was talking about when he said “In theory, there is no difference between theory and practice. In practice, there is.”

To support you in your WP7 development and help you make the leap from theory to practice, we’re starting our deployment clinics this week! It’s your chance to deploy your app to a real WP7 phone and see how it works. This week’s are being held in:

There are also some events being planned for next week:

(I’m working on Toronto dates for next week…watch this blog!)

We’re working on ways to hold deployment clinics in as many places across Canada, as often as our schedules and pool of phones will allow. For those of you out west, we’re working on getting clinics out your way – watch this space!

Windows Phone Bootcamps

Photo of Windows Phone 7 bootcamp Montreal attendees sitting at a boardroom tableDevTeach’s Windows Phone 7 Bootcamp – a four-city, two-day, hands-on intensive training course taught by Colin Melia – started off quite nicely last week in Montreal (pictured left).

This week, the Bootcamp comes to Vancouver on Monday and Tuesday (August 30 – 31) and Ottawa on Thursday and Friday (September 2 – 3).

Next week, Yours Truly sits in on the Toronto Bootcamp, which happens next Tuesday and Wednesday (September 7 – 8).

Want to sign up for the Bootcamp? Register here, and save $100 when you use the discount code WP7BOOTCAMP.

Windows Phone Training and Deployment Clinics at TechDays

"Microsoft TechDays 2010" logoTechDays, our cross-Canada conference on how to make the most of Microsoft’s tools and technologies, is just over two weeks away, starting with TechDays Vancouver on September 14th and 15th. We’ve got two 65-minute breakout sessions on Windows Phone app development being presented by Windows Phone MVP Mark Arteaga and a half-hour “Turbo Talk” by Windows Phone MVP Anthony Bartolo on distributing your apps through the Marketplace. To find out more about TechDays, visit the TechDays site.

We’ll be running deployment clinics in the TechDays cities when we’re there (those cities, in order: Vancouver, Edmonton, Toronto, Halifax, Ottawa, Montreal, Winnipeg, Calgary), in the TechDays lounge, as well as outside the conference. Watch this blog for details!

Windows Phone Training for Students at Go DevMENTAL

"Go DevMENTAL" logoJust as TechDays is a cross-Canada tour for working developers and IT pros, Go DevMENTAL is a cross-Canada tour for post-secondary students who’d like to learn more about the coolest apps and platforms, get connected with people in the software industry and get help in pursing a career. To find out more about Go DevMENTAL, check out the Go DevMENTAL site.

One of Go DevMENTAL’s tracks is dedicated to creating Windows Phone apps. It’ll have two sessions: one on building Silverlight apps for WP7; the other on building XNA-based games for WP7.

This article also appears in Canadian Developer Connection.

{ 1 comment }

Cover of "Head First C#, Second Edition"Want to learn C# or brush up on it? From Wednesday, August 18th through Tuesday, August 24th, you can join Head First C# co-author Andrew Stellman and other techies in a week-long exchange about C# in an O’Reilly “Inner Circle” discussion, where he’ll talk about C#, .NET 4.0 and Visual Studio 2010.

(If you’re a new programmer just getting started, Head First C# is a great book that will keep you engaged, even in those parts where the going gets a little tricky. If you’re an experienced programmer who’s new to C# – or like me, hadn’t used it in ages – it’s still a great read; just skip the basic parts and enjoy the “Head First” style in which it’s written. And yes, if you want to developer for Windows Phone 7, you’re going to need to know C#. Want to get Head First C# at a discounted price? See below for details.)

The discussion will span a wide range of topics, including:

  • Why use C# instead of any other language?
  • C# best practices
  • Becoming a better C# developer
  • Dealing with objects
  • Productivity hints
  • The best of C#

If you want to join in (I’ll be participating), register for the Andrew Stellman on C# discussion at O’Reilly. See you there!

Save Big Bucks on Head First C#!

O’Reilly have a deal on Head First C#, Second Edition (published this May, and it covers C# 4.0 and Visual Studio 2010): use the discount code BKCBD when ordering online from O’Reilly and save 40% off the dead-tree edition and 50% off the ebook!

This article also appears in Canadian Developer Connection.

{ 0 comments }

Perspectives on Clojure and F#

by Joey deVilla on August 10, 2010

Get Microsoft Silverlight

Don’t have Silverlight? You can download it here or download the video in MP4, MP3, WMA, WMV, WMV (High) and Zune formats.

Here’s a Channel 9 video shot at Emerging Languages Camp 2010, the first conference on up-and-coming programming languages held in Portland on July 21 – 22. It’s a casual conversation with:

  • Rich Hickey, creator of the Clojure (pronounced “closure”) programming language. It’s a dialect of Lisp intended general-purpose functional programming language with a lot of support for concurrent programming. If you caught our Ignite Your Coding webcast with Robert C. “Uncle Bob” Martin earlier this year, you heard his high praise for the language. Clojure targets both the JVM and CLR.
  • Joe Pamer, compiler developer for the F# programming language. F# is a “hybrid” programming language, built with functional programming in mind, but also programmable in a more imperative object-oriented way. Much of it is compatible with the OCaml programming language, there are some C# ideas in there as well, and it’s one of the languages baked right into Visual Studio 2010.

In this conversation, Rich and Joe talk about their ideas on programming language design and evolution, functional programming, concurrency, how F# fits into Visual Studio and the granddaddy of them all, Lisp.

This article also appears in Canadian Developer Connection.

{ 0 comments }

Now in Beta: Windows Phone Developer Tools!

by Joey deVilla on July 12, 2010

Devvin' for Seven: Windows Phone 7 DevelopmentThe announcement went out earlier today: the Windows Phone Developer Tools have moved from the CTP ("Community Technical Preview”) phase to Beta (“Almost There!”). As Brandon Watson wrote in the Windows Phone Developer Blog, “This Beta release represents the near final version of the tools for building applications and games for Windows Phone 7.”

Go ahead, go and download it! Click the big graphic link below. You know you want to.

click here to download wp7 developer tools beta

Make sure you uninstall previous versions of Windows Phone Developer Tools before you install the beta.

This article also appears in Canadian Developer Connection.

{ 0 comments }