D'Arcy from Winnipeg
Musings of a Canadian web developer

Bring Chipotle To Canada!

I've had a dream...a dream for a number of years. That dream is the culmination of being able to feast on quality burrito and taco goodness from Chipotle, a chain of Mexican restaurants in the US. For too long Canadians like myself have been burdened with the sub-par crap served to us from places like Taco Bell and Taco Time...as if Canadians wouldn't understand what Mexican food was unless the word "Taco" was in the name.

This has become front and center to me since joining the Twitter Tribe and being inundated daily with taunts from my American brethren:

"Going to Chipotle for lunch."
"Eating three steak tacos with guac and salsa...being American is awesome!"
"Hey D'Arcy, do you have lunch plans? We're going to Chipotle."
"Feeling like Chipotle today"
"We have too many Chipotles...let's go burn some down." *
"I almost went to Chipotle today, but then thought 'na...I'll just piss of Canadians by going to Subway instead.' "
"OMG, I'm in my bathtub right now covered with salsa and sour cream, and rubbing a Chipotle burrito on my belly." **

Well I've had it...its time for action, and the *best* way to spring to action is obviously...AN ONLINE PETITION!

So if you share my dream of seeing a Chipotle in every Canadian city then SIGN MY PETITION! Together we can bring quality quick-service Mexican food to the throngs of Canadians drowning in sub-par refried bean hell!

D

*Note - Ok, this was an exageration...no Chipotle's were burnt down to think the numbers...at least to my knowledge.
** Note - Oddly enough, this comment came from Donald Belcham...I tried to tell him that Chipotle wasn't in Edmonton, but that didn't seem to matter.

Culminus Changes - Move to INETA Model

Looks like Culminus, the IT Pro community organization, will be moving to a model more in line to what INETA has grown into. Graham's post gives more detail from the Microsoft side of things. I need to read up more and hear feedback from Culminus user groups as to whether this decision is a good thing in the long term, but from what I've heard from friends who are part of IT Pro groups this move is a good thing that will help the community on a whole.

D

Miguel Carrasco - New Expression Studio MVP!

Congrats to my buddy Miguel Carrasco who received an MVP award for Expression Studio!

Miguel is a VP at Anvil Digital, a Winnipeg media/technology company that has been doing some great work with Silverlight! He's also been on the board of the Winnipeg .NET User Group for the last year and presented on Silverlight just a few months ago.

Welcome to the MVP ranks buddy, well deserved!

D

The Elder on Setting Up Windows Server 2k8 with VMWare

Keith Elder has a great blog post on how to set up a Win 2K8 virtual machine in VMWare, which you can read here.

D

Rod Paddock Sheds Some Silverlight On Winnipeg

If you have never had Rod Paddock come and speak at your user group, what the hell are you waiting for?! Rod runs his own company, DashPoint, as well as being editor of Code magazine. He also does a tonne of community work, including taking time out of his schedule to come visit us in Winnipeg (and tonight in Edmonton).

Rod presented on Silverlight and creating business applications. The audience was treated to a fantastic presentation and comments from people I talked to after were extremely positive.

Thanks again to Rod for coming out, and if you're an INETA user group...why are you still reading my blog?! Go submit a request for Rod to speak at your UG!

 IMG_0471
IMG_0472

Some guys just show up for the pizza... ;)

IMG_0474
IMG_0476

Microsoft's Entity Framework and "The Petition"

Do you know what I love about the .NET community? DRAMA! Not a day goes by that there isn't some blog post or Twitter discussion that occurs that gets everyone all riled up and motivated to speak their mind, debate, rage, and give us all something to talk about over beers. Sometimes its something that ends up being entertaining, but ultimately trivial or non career altering. But sometimes you get what's happening with Microsoft's Entity Framework.

For those who haven't read it yet, or don't know what I'm talking about, go and read this. It's a petition against the Entity Framework that Microsoft will be releasing upon the masses. Lines have been drawn in the sand between the advocates for the new technology and those that feel (strongly) that its not the right direction to take the product.

But what about those of us on the sidelines? What is our role to play? What are the things that we should be doing...just reading and watching to see which side sways us? I propose not. In fact, those of us that are currently viewing the discussion have a vital role.

Our role is to learn.

If terms like ORM, NHibernate, Entity Framework, and Persistence Ignorance mean nothing to you, that's ok. No, its not ok actually. It's not ok because these are all things that could impact your development, for better or worse. But we need to be educating ourselves on these things. We need to bring ourselves to a level where we can say for certain whether we'd sign the petition because of what we've seen and believe, or if we feel that Microsoft is on the right track...or the absolutely plausable middle ground where each has its place depending on the application, situation, etc.

My challenge to you is to take some time and educate yourself on this whole issue. Find out what's got all these alpha-geeks pissed off and whether its a legit debate or just egos seeing who can yell the loudest. But no matter what your side, base it off of what YOU believe and find to be true, not what somebody tells you.

Dev Teach Vancouver Now In June

I was a bit concerned with the announcement that Tech Ed 2009 was going to be held in May instead of the regular June timeframe. Dev Teach, a twice-yearly conference held in Canada, had it's Spring event set for May as well...and as luck would have it, the same week as Tech Ed.

I'm really happy to report that Jean-Rene emailed a bunch of us this morning to say that the date for Dev Teach Vancouver was changed to June 8 - 12, 2009! This is great news, as speakers/attendees won't have to choose one event over the other.

D

Nevermind C-61, ACTA Should Be Our Focus


[Edit: Kent raised a great point in that I may have come accross in this post suggesting we ignore C-61 entirely and focus on ACTA. That was not my intention, and I believe we should be following both motions carefully. I highlighted ACTA only because it will be discussed next month at the G8 summit and possibly accepted, where C-61 will not be resolved until after the summer session break.]

There’s something going down behind closed doors. Something that everyone in North America should be outraged, infuriated, and angry about. Something that is going on without our consultation as citizens…and if this passes, it means that your tax dollars are going to be used to police copyright legislation on behalf of the entertainment industry.

ACTA stands for the Anti-Counterfeiting Trade Agreement. It’s an agreement being negotiated between the G8 countries, and could be adopted at the next G8 summit…in July…of this year.

But what does this agreement mean to you and me? Canada.com has a great article that dives into the details, but here’s a summary of the two major items:

1. ISP’s can hand over customer information without a court order

2. Border guards become copyright police

Now obviously item 1 opens the door to a huge privacy issue: being able to access customer information from ISP’s without a court order is a can of worms that can be tied to not only the entertainment industry’s activity, but potentially to government bodies looking for people with religious or political affiliations.

So let’s spend some time on the more humorous item: #2. Now to expand on what “copyright police” means: under ACTA border guards would be given authority to search your laptop, iPod, cell phone…any device that can hold media…for copyright material. If they deem that the material violates anti-piracy laws, they can confiscate your device.

Now, border guards searching laptops isn’t new. Tom Kyte wrote a blog post about a recent border crossing experience he had. Canada has been doing random searches at airports, looking for child porn. But reading Tom’s blog post gives you an idea of what the future holds: border guards who aren’t trained to identify copyright from legit material, let alone figure out how to open a laptop. How is a border guard to identify an illegally downloaded MP3 from one ripped from a CD you own? The answer is they can’t.

We need to act now and let our governments know what we think. In Canada, ACTA has a very dubious slant to it: unlike bill C-61 that has to go through parliament, this is a federal trade agreement which does not. There is no voting in parliament, no acceptance required by the house, nothing. Add to it that getting detailed information about ACTA has proved to be impossible, and we’re left wondering what exactly the motives are for joining this coalition.

I continue to be bewildered how our governments are continuing to cater to a non-vital industry. I believe that there needs to be laws put in place to protect copyrights and intellectual property, but it is not the role of our government to police an industry that should be reconsidering their business model in light of public opinion and trend instead of trying to get governments to bend the rules in their favor.

D

Could We See www.dlussier.gwb Someday?


Interesting article from BBC news about ICANN thinking about relaxing the rules on domain names. Now, the way the article was worded it took me a second read to understand their point. “Domain Names” is a bad choice of term for the article, as we’ve all registered domain names at some point.

But what they’re talking about is the extension. Currently its either .com, .net, .org, or some country (as the article points out, .tv wasn’t created for television-based sites…its actually the regional domain for the island of Tuvalu). But what’s being proposed is the commercialization of the suffix: allowing companies and individuals to brand their own domain on the web.

It’s an interesting idea…although it opens up some questions. For instance, if you create your own domain, who then governs registrations for those domains? Is there a two-tiered system where regional, .com/.net/.org domains are monitored by ICANN and “private” domains are governed by the individuals who create them?

There’s a user learning curve as well, although the more I think about it I don’t know that it will be a huge issue. People who are accustomed to only .com/.org/.net or a regional domain will just need to learn that there may be other combinations (or use Google to discover the url for the desired site).

This idea has alot of potential though…definitely a story to stay tuned on.

D

This Day 30 Years Ago…(give or take)


It was on this day that two young lovers set in motion events that would change the face of history forever. What those motions were I can’t get into, mainly because this is a PG-rated blog. But nevertheless, we can imagine what the moment before the world changed must have looked like…

InTheBeginning

Happy Birthday Justice Gray!

D

To Thine Own Self Be True

I get people asking me about going independent all the time. Why I did it, what the experience has been like, etc. One of the key reasons that I've gone off on my own is a strong view that many shops are basically slave/master relationships instead of true emplyee/employer relationships. Obviously not *all* shops are like this, but in my career I have somehow been able to hit every rest stop on the IT Interstate that had a malicious trucker or hobo waiting in the bathroom stall.

I bring this up because I got word recently of a former employer. This place was my first exposure to the world of software development. They were fairly new, with a head office in the states and a development shop here in Winnipeg. I got a gig there for my required 6 month co-op term and to their credit they continued to pay me through my last three month term at school...although to my credit, I'm sure that they still got a hell of a deal off me considering the obscene amount of overtime I worked for those 9 months and the discount off my salary that the government granted for employing me for co-op.

I left because I realized

a) They weren't interested in moving to new technologies (and my VP of Tech was oddlyl anti-Microsoft)
b) I was going to get paid far below what the industry standard was, even for junior developers ($24k)
c) They didn't offer any incentive to stay on as a junior developer with crap pay
d) The phone calls in the evening and *expected* overtime work got old fast.

Now I have friends that are still part of this organization...people that had been there even before I started there originally  or shortly after I got there (so we're talking 7 - 9ish years). And on Monday, some of those people...were fired.

Why? Because the company was sold. Sold to a competitor. And what did my colleagues get for their hard work? I'm not sure...but if I was a betting man, I'd say it was a whole lot of jack-sh1t. Years devoted to seeing a product that they really bought into the idea of come to fruition...only to be thanked for their help in making the company owner that much richer.

So what's the moral of the story?

Realize that your employment is only as safe as the value you bring to your company.

and

Realize that nobody is responsible for your success or happiness but you.

Too many get swallowed and eaten up. Too many in our industry burn out because we're worked to death like slaves for masters who ultimately have no concern about us aside from the tasks assigned and the deadlines required to be met. And many of this can be avoided if we took more time in evaluating potential employers and compared the limits we place on workplace encrouchment into our lives to the commitment a potential employer expects.

Stand for yourself. Respect yourself. Live your life, not one dictated by someone else. And to thine own self be true...otherwise you might be looking back at 7 years of your life with nothing to show for it but a pink slip.

D



Help - Iterating Rows Client Side with Infragistics Ultra Web Grid

I'm banging my head on a wall here, and am looking for some insight. I have an Infragistics UltraWebGrid. It allows users to add Widget's to it (well, it doesn't, but we're going with a Widget metaphor here). Each row contains a Widget ID value and a Widget Type ID value. However, no two rows can have the same combination of Widget ID and Widget Type ID...they all must be unique.

So I'm using Javascript and the Infragistics client library to try and get this working. Below is the function...

You'll notice that I'm using the igtbl_GetFirstSibRow, as that is one of the methods Infragistics uses for navigating rows on the client (according to this kb article). So there is no "rows" collection of the grid, you have to manually go through the rows using "GetFirstSibRow" and "GetNextSibRow", etc.

Everything is fine until the line where I declare rowElem and assign it the value returned from the getFirstSibRow method. Now I've done some testing, and it does return an object...we're not getting null returned here. But later on in my while loop, when I attempt to get the value using rowElem.getCellFromKey( ), I'm getting the error message:

"Object doesn't support this property of method."

This is where I go WTF!? If getFirstSibRow is returning a grid row, shouldn't it have all the methods and properties of a row, including getValue and getCellFromKey?

You'll notice that I have a commented line in my code as well. That's there to show that I've tried using the method that way to fill the rowElem, and it doesn't work. I have to use the uncommented row.

Has ANYONE had success navigating through a grid's row collection on the client and been able to pull values out of each of the rows to assess them? Is there another way to access the rows collection of the UltraWebGrid that I'm unaware of which would remove the need to go through row by row using Next/Prev type of methods?

D

Kung Fu Panda - Parallels to Software Development

Panda

I saw Kung Fu Panda tonight. It was a great movie, I really enjoyed it. However, as much as the escapades of the animated creatures and the feel-good message was a huge hit for the kids, I kept finding myself drawn to the adult themes in the film...specifically as I compare them to my own career in software development. So I give you the Kung Fu Panda Parallels to Software Development post!

So without giving too much of the plot away, let me give some of the movie plot away...

Po is a Panda who works in his fathers noodle restaurant. His room is plastered with posters and action figures of the local heroes who live at the Jade Palace: The Furious Five! Meanwhile, one of the Kung Fu Masters has a vision that an old baddy is going to break loose from prison and the great Dragon Warrior must be selected. Of course, Po eventually gets selected for this role and his training in Kung Fu begins.

We learn a few other things, like how the baddy is actually a former student of the palace's and he's got a grudge to settle with a former master (a lot of repressed father/son type of drama here). Po also goes through his own issues of not being good enough, dealing with his heroes rejecting him, and trying to convince himself that he's the true Dragon Warrior.

So how does this all come back to Software Development? Let me share some ideas of wisdom with you...

1. Idol Worship Will Bite You In The Ass

We all have our heroes. We all have people that we look up to and admire, who we aspire to be, and who we dream of learning under. Unfortunately, the reality is typically much less palpable than our fantasies. I'm reminded of a friend of mine at Tech Ed 2005 who was ecstatic that he was going to see Don Box give a talk. I ran into him later at the attendee party, and inquired on how his viewing of his idol went? He looked at me with a disdained, disappointed look and said "It was alright." Turns out that during his presentation, Don dropped his pants...something that shattered the view my friend had of this stoic, serious software developer.

It's ok to have people that you look up to, who mentor you and who come alongside you to help in your own journey. But we all have a few people that we place on a pedestal, typically without actually knowing who they are or what they're really about. It's one thing to see someone present, but totally something else to talk with them, work for them, etc. Guard yourself against buying the myth that "Rock Stars" of our industry are anything but mere mortals. Speaking at conferences, writing books, and blogging doesn't mean their quality human beings.

2. Don't Let Other's Opinions Change Your Own

Although we have great community in our industry, we're also doggedly competitive with each other (whether we admit it or not). Value of others is sometimes measured by choice of technology, chosen methodology, achievements, etc. It's not uncommon to find yourself in a situation where your progress and career path are met head on with those that don't believe in your ability, feel that their opinion is of more worth than yours, or are malicious in wanting to maintain their own sense of power and purpose at the cost of others.

Regardless, success in our field depends on us realizing that belief in our own abilities and skills supercede those of others around us. Especially in an industry where opinions can be formed based on technology decisions, we need to have a thick skin and strong resolve to stand for what we trust is right, while at the same time balancing that with openness of hearing other ideas and altering out views when facts dictate...not pressure or emotion.

3. No Man Is An Island

I wouldn't be the developer that I am today if it wasn't for the friends that I've gained over the last 7 years. My first two points are warnings of how we must be on guard to ensure that we don't lose ourselves to others opinions, pre conceived notions, or perceptions. But #3 is vital: you cannot thrive in this industry without a solid, trusted team of peers around you. In the movie, there's a fight scene where the Furious Five band together to take down an enemy. Originally only one member of the team leaves to meet the foe, but the others follow. Those are the people you want to surround yourself with: ones that will teach, challenge, and support you.

Now, you may be thinking that these things aren't entirely software development specific, and you'd be right. In fact, they're more HR/Soft-Skill type of observations than anything technical. What I've found over the last few years though is that technical ability is only a fraction of what makes someone a good software developer. Involvement in community, and being active in the development of others is a crucial piece of ensuring our industry prospers. Look at the conversations happening at conferences, user group events, code camps...these discussions and interactions are what will continue to shape our industry and how we develop software, not islands working in isolation trying to impart their wisdom and ideas onto the masses. But for those conversations to continue, we need people to listen and consider, but also speak out and contribute. We need to build a culture of trust, but that culture begins with a positive view of ourselves.

D

Send Text Messages to Cell Phone with Windows Live Messenger

Microsoft has launched a new website, http://www.pc2mobile.ca, to show users how they can use Windows Live Messenger to send text messages to contact's cell phones. I want to test it out with some buds to see how it actually works in practice, but if you check out the site it has a great tutorial and a game where you try to text your "friend" into a date with a girl.

Anyway, interesting feature.

D

Unit Testing Tools for C++


I hosted a BOF session at Tech Ed Developers 2008 on ‘Creating a Culture of Quality’, and one of the topics that came up was unit testing. One developer talked about how she wanted to get unit testing happening at her company, but because they did embedded applications using C++ she wasn’t sure what the options were…and neither did the rest of the group.

I checked with some fellow Western Canadian devs to see if they had any ideas and two products seemed to be at the top of the list:

CppUnit and CxxTest.

Just wanted to post the findings in case anyone else was looking for C++ unit testing frameworks for their shop.

D