Sound advice from Kathy Sierra (pictured giving one of those mind-blowing presentations that are her stock in trade). Her blog, Creating Passionate Users, while dormant, is still worth reading.
MeshU Workshops: Toronto, May 17th
MeshU – short for “Mesh University” – takes place on Monday, May 17th at the MaRS Collaboration Centre (101 College Street, just east of University). It’s a series of workshops for web designers, developers and “suits” that takes place the day before the Mesh Conference (“Canada’s Web Conference”) and will feature 12 workshops divided into “Design”, “Development” and “Management” streams delivered by people with real-world startup/tech business experience.
I’ll be there, as both an attendee furiously taking notes (which I’ll post here) as well as a representative of Microsoft Canada and Silverlight, who are MeshU’s event partners.
Keynote: Bill Buxton
Bill Buxton, Principal Researcher at Microsoft Research, human-computer interaction guru extraordinaire and fellow alumnus of Crazy Go Nuts University, will deliver the morning keynote. Every presentation I’ve ever seen him do has always inspired me and given me at least three new ideas, and I expect that this one will be no different. He’s an intelligent, engaging and interesting speaker – don’t miss your chance to see him live!
MeshU Sessions
Here are the MeshU sessions:
- Design Track
- Principles of Design – Meredith Noble (Usability Matters)
- [Untitled] – Asa Raskin (Mozilla)
- [Untitled] – Adrian Belina (Jam3Media)
- Developer Track
- Data Chemistry – Chris Thorpe (The Guardian)
- [Untitled] – Diana Clarke (FreshBooks)
- Scaling Your Tech Teams – Joe Stump (SimpleGeo)
- Lean Product Development: Learning is the Killer Feature – Dan Martell (FlowTown)
- Management Track
- The Agony and the Ecstasy: Building and Scaling Inside Sales – Isaac Garcia (Central Desktop)
- Customer Milestones to Startup Success – Sean Ellis (12in6)
- How (and Why) to Build a Data Warehouse 101 – Antony Upward (Edward James Consulting)
- Hiring Mistakes: A How-To Guide – Ben Baldwin (Clearfit.com)
Registering for MeshU
Alas, the $49.00 student tickets for MeshU are sold out. Here’s what remain:
- Regular tickets: CAD$289.00 each
- “Friends of MeshU” sponsorship: CAD$1000 each – with this, you get:
- 1 regular ticket
- 1 student ticket
- Your logo on the MeshU site and at the event
- “Really Good Friends of MeshU” sponsorship: CAD$2000 each — with this, you get:
- 2 regular tickets
- 2 student tickets
- Your logo on the MeshU site and at the event
- A table at the event
Creative Commons Photo by the Poissant Family.
Open Government / Government 2.0
The intersection of the internet and politics has given rise to many things, including the concept often referred to as “Open Government” or “Government 2.0”. To borrow a couple of lines from Mark Kuznicki’s keynote at ChangeCamp Toronto, its goals are twofold:
- For governments to become more open, transparent, participatory, innovative, efficient and effective
- For citizens to become more connected to each other around their civic passions in the place they call home
Events like ChangeCamp, TransitCamp and Metronauts – unconferences where ordinary citizens, government officials and representatives of organizations that receive public funding meet to exchange ideas – have been happening across Canada. At these events, people have thought about, discussed and built new relationships with their local governments, often through the use of technology.
Most of these events focused on a local community, municipality or occasionally, a province, but none of them have had a discussion at the federal level. Could this be done at a broader level?
GovCamp: May 31 – June 1 in Ottawa
That’s where GovCamp comes in. It’s an “Open Government”/”Government 2.0” discussion where the topics will be centred around Canada as a whole, the interactions between cities and provinces, and how our provincial and federal governments can help cultivate the growth and prosperity of Canadians and their vibrant communities.
John Weigelt, Microsoft Canada’s National Technology Officer, is putting together this event, which takes place on Monday, May 31st and Tuesday, June 1st in Ottawa. It’ll be a gathering of local citizens, public sector employees, service delivery leaders and policy people with an interest in having a conversation about engaging citizens and businesses and making government at all levels more open, responsive and efficient. It won’t be a trade show or product-oriented discussion; instead, it will be a workshop-style unconference where participants establish the agenda and explore the themes that they care most about.
GovCamp is being hosted by CIPS – the Canadian Association for Information Technology Professionals – and sponsored by Microsoft Canada on behalf of the community.
Who’s Coming to GovCamp?
In putting GovCamp together, we’re reaching out to a number organizations and communities including:
- Industry Canada
- The Treasury Board Secretariat
- Public Works and Government Services
- Public Safety Canada
- The Information Commissioner of Canada
- The Office of the Federal Privacy Commissioner
- Foreign Affairs and International Trade Canada
- The City of Ottawa
- Open Government and ChangeCamp community leaders
Who is GovCamp For?
This event is for:
- IT People –Technology is one way that governments are transforming how they deliver services externally and internally. Technology people are needed to explore the art of the possible for these new services. Mash-ups, Open Data, social media are but a few of the possible areas for discussion.
- Policy People – We need you in the conversation so that you can share your expertise on the realm of the possible from a policy perspective. Privacy, Security, Access to Information, Information Management are all key considerations for successful government transformation. Come share your knowledge on how to make these policies enable new services.
- Government Services leaders – Ultimately, government delivers value through the many services that are provided. GovCamp is about exploring the realm of the possible for service to individuals, services to businesses and services to other departments. Your voice is essential to inform the community and to guide those ideas that the community may have for you!
- Community – We are fortunate that there’s a passionate and creative community with vibrant ideas about how they can help create a closer connection between governments, individuals, businesses and even among government itself. Your participation at the Canada Gov Camp will provide you with a venue to share your great ideas and, if all goes well, interact with some of the people that can take your idea further.
How Much, and Where do I Register?
Registration for GovCamp is free! To register, visit the registration page.
GovCamp will be held at the University of Ottawa, in a location to be determined.
What happens when you take computing’s proto-heroes Charles Babbage and Ada Lovelace, turn them into characters in a steampunk adventure television series with a title sequence lifted directly from Space: 1999? You get Albion: 1849, a series with a themes similar to The Secret Adventures of Jules Verne.
[Found via 2D Goggles, via Rob Miles’ blog.]
This article also appears in The Adventures of Accordion Guy in the 21st Century.
Hello, IronRuby 1.0!
Although it’s been out for the past couple of weeks and might be considered old news, I couldn’t let it pass unmentioned, especially given my history with the Ruby programming language: IronRuby 1.0 has been released!
IronRuby is an implementation of Ruby targeting the .NET Framework and built on Microsoft’s Dynamic Language Runtime, which in turn runs on top of the Common Language Runtime. Version 1.0 is compatible with Ruby 1.8.6; future releases will aim for compatibility with Ruby 1.9.
You can use IronRuby 1.0 to build these sorts of applications:
- Desktop applications using WPF
- Desktop, in-browser rich internet applications and Windows Phone applications using Silverlight
- Ruby on Rails applications (up to Rails version 2.3.5)
- Good ol’ command-line applications
- and of course, the REPL (Read-Evaluate-Print Loop) goodness of irb
As of version 1.0, IronRuby comes in two flavors:
- The one that runs on top of .NET 4.0. The .NET 4.0 framework is the latest version and was released with Visual Studio a couple of weeks ago (you can download it for free here). This is the preferred version, and features goodies such as:
- Faster startup
- Compatibility with C#’s dynamic keyword
- Access to all the new features in the .NET 4.0 framework
- The one that runs on any earlier .NET, starting with 2.0 SP1. For compatibility with earlier versions of .NET as well as with Mono, you’ll want to use this version.
IronRuby is free in both senses of the word:
- Free as in beer. It costs nothing – just download it and use it!
- Free as in speech. It’s open source software, released under the Microsoft Permissive Licence, which is recognized by the Open Source Initiative.
You can download IronRuby 1.0 from the IronRuby site on Microsoft’s CodePlex site.
Ruby and IronRuby Reading
Programming Ruby, a.k.a. “The Pickaxe Book”, is on every serious Rubyist’s shelf. It’s both a good introduction to the language and a pretty decent reference.
why’s (poignant) guide to ruby isn’t a complete guide to Ruby, nor is it your typical programming book. It’s free, online, the most whimsical programming book you’ll ever read, and it’s been the driving force behind a lot of dynamism and creativity of the Ruby community.
The newly-released IronRuby Unleashed covers both the Ruby programming language, the IronRuby implementation and using IronRuby to mix Ruby and .NET into a Reese peanut butter cup of developer goodness.
Ruby Job Fair 2010
Last year, I attended and wrote about employment.nil?, the Ruby job fair held by Toronto software development shop Unspace. They’re doing it again this year with a different format. Where last year’s was modelled after a science fair (the kind you remember from high school), this year’s is going to be modelled after “speed dating” and will feature 5-minute chats between people looking for work and people looking to hire.
To reflect the new format and pay homage to the Ruby-style naming of the first event, they’re calling it require ‘date’. The job fair will take place in Toronto on Sunday, May 30th in the back room of the Rivoli (334 Queen Street West, just east of Spadina) from 2:00 p.m. to 4:00 p.m.. It will be followed from 4:00 p.m. to 9:00 p.m. with OMGRPNBBQ, a special barbecue party edition of Ruby Pub Nite held at Unspace’s office and rooftop deck (342 Queen Street West, a few doors over from the Rivoli).
- If you’re looking to hire people or looking for a job and want to attend, sign up here. There’s a small registration fee of $6.66.
- If you want to attend OMGRPNBBQ, sign up here.
New Programming Jargon
Every field comes up with its own jargon, and oftentimes subgroups within a field come up with their own specific words or phrases (those of you familiar with Microsoft Canada’s Developer and Platform Evangelism Team know that we have our own term for “broken”, named after one of our teammates who is notorious for killing all sorts of tech gear).
A question recently posted on Stack Overflow asked for people to submit programming terms that they or their team have coined and have come into regular use in their own circles. I took a number of the submissions and compiled them into the alphabetically ordered list below for your education and entertainment.
Have you come up with your own jargon? Tell us in the comments!
Banana Banana Banana
Placeholder text indicating that documentation is in progress or yet to be completed. Mostly used because FxCop complains when a public function lacks documentation.
Example:
/// <summary> /// banana banana banana /// </summary> public CustomerValidationResponse Validate(CustomerValidationRequest request, bool
...
Barack Obama
A project management account to which the most aspirational tickets – stuff you’d really like to do but will pobably never get approval for – gets assigned.
Bicrement
Adding 2 to a variable.
Bloombug
A bug that accidentally generates money. [Joey’s note: I have never written one of these.]
Bugfoot
A bug that isn’t reproducible and has been sighted by only one person. See Loch Ness Monster Bug.
Chunky Salsa
A single critical error or bug that renders an entire system unusable, especially in a production environment.
Based on the chunky salsa rule from TVTropes: Any situation that would reduce a character’s head to the consistency of chunky salsa dip is fatal, regardless of other rules.
Configuration Programming / Programmer
Someone that says they are a programmer but only knows how to hack at configuration files of some other pieces of software configuration to make them do what they want.
Counterbug
A defensive move useful for code reviews. If someone reviewing your code presents you with a bug that’s your fault, you counter with a counterbug: a bug caused by the reviewer.
DOCTYPE Decoration
When web designers add a proper DOCTYPE declaration at the beginning of an HTML document, but then don’t bother to write valid markup for the rest of it.
Drug Report
A bug report so utterly incomprehensible that whoever submitted it must have been smoking crack. The lesser version is a chug report, where the submitter is thought have had one too many.
Duck
A feature added for no other reason than to draw management attention and be removed, thus avoiding unnecessary changes in other aspects of the product.
This started as a piece of Interplay corporate lore. It was well known that producers (a game industry position, roughly equivalent to PMs) had to make a change to everything that was done. The assumption was that subconsciously they felt that if they didn’t, they weren’t adding value.
The artist working on the queen animations for Battle Chess was aware of this tendency, and came up with an innovative solution. He did the animations for the queen the way that he felt would be best, with one addition: he gave the queen a pet duck. He animated this duck through all of the queen’s animations, had it flapping around the corners. He also took great care to make sure that it never overlapped the “actual” animation.
Eventually, it came time for the producer to review the animation set for the queen. The producer sat down and watched all of the animations. When they were done, he turned to the artist and said, “That looks great. Just one thing – get rid of the duck.”
Fear-Driven Development
When project management adds more pressure, such as by firing a member of the team.
Ghetto Code
A particularly inelegant and obviously suboptimal section of code that still meets the requirements. [Joey’s note: I’ve written ghetto code before, but that’s because I’m street, yo!]
Hindenbug
A catastrophic data-destroying bug. Oh, the humanity!
Hocus Focus Problem
Unexpected behavior caused by changes in focus, or incorrect setting of focus. Could also be used to describe an app stealing your focus.
Hot Potato / Hot Potatoes
A fun way to pronounce http:// and https://.
IRQed
Annoyed by interruptions. Pronounced like and has a similar meaning to “irked”.
Jimmy
A generalized name for the clueless/new developer. The submitter at Stack Overflow writes:
We found as we were developing a framework component that required minimal knowledge of how it worked for the other developers. We would always phrase our questions as: “What if Jimmy forgets to update the attribute?”
This led to the term “Jimmy-proof” when referring to well designed framework code.
It’s probably best not to use this term around IronRuby developer Jimmy Schementi.
Loch Ness Monster Bug
A bug that isn’t reproducible and has been sighted by only one person. See Bugfoot.
Megamoth
MEGA MOnolithic meTHod. Usually stretches over two screens in height and often contained inside a God Object (an object that knows or does too much).
.NET Sandwich
When .NET code called native code which calls other .NET code and makes the poorly designed application crash.
n-gleton
A class that only allows a fixed number of instances of itself.
NOPping
Not napping, but simply zoning out. Comes from the assembly language instruction NOP, for No OPeration, which does nothing.
Pokemon Exception Handling
For when you just gotta catch ’em all!
Reality 101 Failure
The program (or more likely feature of a program) does exactly what was asked for, but when it’s deployed it turns out that the problem was misunderstood and the program is basically useless.
Refuctoring
The process of taking a well-designed piece of code and, through a series of small, reversible changes, making it completely unmaintainable by anyone except yourself. It’s job security!
The Sheath
The isolating interface between your team’s (good) code, and the brain-dead code contributed by some other group. The sheath prevents horrible things (badly named constants, incorrect types, etc.) in their code from infecting your code.
[Joey’s note: I’ve heard the term “shim” used for this sort of construct. I’ve used the term “transmogrifier” for this sort of thing.]
Shrug Report
A bug report with no error message or “how to reproduce” steps and only a vague description of the problem. Usually contains the phrase “doesn’t work.”
Smug Report
A bug report submitted by a user who thinks he knows a lot more about the system’s design than he really does. Filled with irrelevant technical details and one or more suggestions (always wrong) about what he thinks is causing the problem and how we should fix it.
Stringly-Typed
A riff on strongly-typed. Used to describe an implementation that needlessly relies on strings when programmer- and refactor-friendly options are available.
Examples:
- Method parameters that take strings when other more appropriate types should be used
- On the occasion that a string is required in a method call (e.g. network service), the string is then passed and used throughout the rest of the call graph without first converting it to a more suitable internal representation (e.g. parse it and create an enum, then you have strong typing throughout the rest of your codebase)
- Message passing without using typed messages etc.
Excessively stringly typed code is usually a pain to understand and detonates at runtime with errors that the compiler would normally find.
Unicorny
An adjective to describe a feature that’s so early in the planning stages that it might as well be imaginary. This one comes from Rails Core Team member Yehuda Katz, who used it in his closing keynote at last year’s Windy City Rails to describe some of Rails’ upcoming features.
Yoda Conditions
The act of using
if (constant == variable)
instead of
if (variable == constant)
It’s like saying “If blue is the sky”.
“Developer Junior” on Webnation
Last night, “Junior” and I went on Amber MacArthur’s show, Webnation, to talk about our show, Developer Junior. You can watch the clip by visiting Webnation’s site and clicking on the “Webnation May 06 – PT 3” link.