On The Dot...
My Adventures in Programming - past, present and future

Project SET Day–Insights and Observations

A few weeks ago, I had the privilege of being able to participate in Conestoga College’s Software Engineering Technology project demo day as a guest judge, along with 4 other members of the IT community.

This event is held every year at the end of April, and provides graduating students the opportunity to present their group projects to those in attendance, discussing the business problem it solved, the challenges they faced, how they addressed those challenges, and the future direction they have planned for their product.

My first impression when walking into the room was a positive one. The students were dressed to the nines and were very enthusiastic about discussing their projects, as well as answering any questions. They stood at their project booths patiently, willing to discuss their projects one-on-one with passers-by, and to provide a working demo of their product.

Projects ranged from a mobile Android app that would serve as a mobile recording studio for guitarists to an inventory tracking application to an educational application with a web site that tracked the child’s progress which parents could log in to view details on.

During the formal presentation rounds, the students not only demonstrated that they had the technical skills necessary to hit the ground running in the workforce, but they also demonstrated collaborative team work, business acumen, and real passion for their work. They handled questions with ease, provided insights into the obstacles they faced, how they learned from them, and how they overcame them.

Along with the other members of the judging panel, I participated in deliberations and we had to make the difficult decision to select a winning team. After much discussion, we chose a team that had not only developed their intended project, a mobile app to serve data from an existing Health & Safety Watch web site, but had gone above and beyond to redesign the website to conform to the look and feel of the mobile app design, making it simple, clean, concise and easy to use. In fact, I have the site bookmarked and check it daily: http://www.healthandsafetywatch.com

All in all, each student that participated in this event proved that they are all winners who are more than well-equipped to join the workforce and make an impact. If you have the opportunity to mentor a new graduate, I hope you do so wholeheartedly. You may find that, in turn, you will learn from them as well.

Exciting Update!!!!

Health and Safety Watch has been featured in an online article, AND as of today is at the #22 spot in iTunes for Top Free Apps!

http://mobilesyrup.com/2012/05/24/health-safety-watch-iphone-app-gives-you-realtime-info-on-disease-outbreaks-consumer-product-and-food-recalls/

Photo 1

Photo: HSW – #22 on the Top Free iTunes Apps today!

 

HSW_iTunes

Photo: HSW – listed in the What’s Hot section in iTunes!



Spring 2012 Provides Plenty of Events for Developers

April, May and June will be jam-packed with some really cool events, not just within the KW region, but across Canada (and one very popular annual event coming up in the US). Be sure to check them out if you plan to be in the area, and register early! These events tend to fill up quickly.

MoBeers 3: The European Invasion, an event where it's all about great mobile content and beers, is coming to Kitchener on April 10th at The Museum. Registration is $5. For more details, check out http://www.mobeers.com

Windows 8 Camps are coming up in Toronto (April 16th & 17th), Vancouver (April 3 & 4), and Montreal (April 10 & 11). It's a 2 day event, and is free to attend. Unfortunately registration is now closed, so if you happened to be one of the lucky ones to get in on the registration before they filled up, let me know your thoughts/experiences on this event.

Techfest 2012 will be taking place in Vancouver on April 28th. More information can be found on the event site at http://www.vancouvertechfest.com. Registration is $30 for students, $75 for everyone else!

Redengine is hosting Umbraco v5 training and certification sessions in Kitchener/Waterloo from May 1st – May 4th. More details on this event can be found on the Redengine site at: http://redengine.com/redengineering

DevTeach will be presenting a conference in Vancouver from May 28th to June 1st at the Hilton Vancouver Metrotown. More details on the sessions, speakers, and pre and post-conference events can be found at http://www.devteach.com.

And outside of Canada, TechEd 2012 North America will be in Orlando from June 11th - 14th. Registration is still available on the event site: http://northamerica.msteched.com



Book Review–The Little Book on CoffeeScript

coffeescriptThe Little Book on CoffeeScript, by Alex MacCaw, provides a quick dive into CoffeeScript, a new scripting language which is based off of, and compiles to, JavaScript. It is a simpler form of JavaScript, with syntax and feature implementation that is inspired by both Ruby and Python.

The author does a great job of explaining the differences within CoffeeScript over the JavaScript language, such as using Ruby-style string interpolation instead of JavaScript’s string addition and using Python-style comprehensions over JavaScript-style for loops.

The meat of the book is contained in chapters 2 – 4, diving right into classes, CoffeeScript idioms, and compilation. Throughout the book, the author provides concise code examples to demonstrate the use of CoffeeScript in place of JavaScript, making it easy to follow and understand.

The final chapter of the book was written by Jeremy Ashkenas, the author of CoffeeScript, explaining the philosophy and intent of the language. He simply states that it is “just JavaScript” and encourages readers to experiment with their own compile-to-JavaScript languages, which I thought was a neat way to close off the book.

This book is meant for those that have some experience or background with either JavaScript, Ruby or Python. Without that, readers will not get much out of the book, as it is not meant for beginners.

Intermediate and senior developers will find this book to be quite useful as an introduction into CoffeeScript and its implementation.

Kudos to the author for delivering so much information in less than 43 pages. This book is an easy read, a great start for developers looking to transition from traditional JavaScript to CoffeeScript, and useful to keep handy as a reference book.

The eBook format of this book was provided free through O'Reilly's Blogger Review program. This book can be purchased from the O'Reilly book store at: : http://shop.oreilly.com/product/0636920024309.do



CTTDNUG’s Mobile + Cloud App Workshop–Wrap Up

After months of plotting and planning and organizing the logistics to host a full day workshop for the local area .NET developers/enthusiasts (refer to my post, Trials and Tribulations of Running a Full Day Workshop), CTTDNUG's Mobile + Cloud App Workshop went off without a hitch! Not without some minor bumps along the way, believe you me.

In the 24 hours leading up to that event, I had my fair share of concerns. Mainly the weather. Environment Canada had issued a severe weather alert that resembled the likes of Dooms Day. Knowing that the area in which the workshop was to be hosted had already suffered a major power outage during a mild rain storm only a few days before, had added to my cause for concern. Needless to say, I didn’t sleep well on the night leading up to the event. I don’t know how many times I got up in the middle of the night to peer out the window and will the storm away, like I thought I was a Jedi or something. Desperate times called for desperate measures. And it didn’t hurt to try.

Much to my dismay, the storm was still in force at 7:30am, the time that I needed to head out to make it to the venue in time to set up. Correction: the time that I needed to head to Tim Horton’s, grab my cup of sanity, THEN head to the venue to set up.

At the venue, I did have some projector-related difficulties. It didn’t seem to pick up my laptop at all, and using the Windows+P key didn’t work either. “Just reboot your laptop while it’s plugged into the projector”, said the facilities tech guy. I did. It didn’t work. Here’s a pic or two of me fighting with the projector:

BadProjector 

Jedi mind tricks clearly don’t work on projectors

BadProjector2

When all else fails, stand around looking confused with hands on hips

After a few moments of being frustrated and changing positions from crouched over keyboard to standing with hands on hips, I figured that restarting the projector might help. That seemed to resolve the problem. But restarting that thing took forever and a day. Once that obstacle subsided, and Atley Hunter arrived on scene, everything else was smooth sailing for the remainder of the day.

I’m happy to say that we had a great turnout for the event and we received positive feedback from those that attended.

Thanks to….

Thanks to my user group volunteers, Steve Karnis and Jaime Robinson, for helping out with registration, set up and clean up.

Thanks to everyone that attended and participated.

Thanks to our Windows Phone and Azure expert Atley Hunter (http://atleyhunter.com) for making time in his busy schedule to be part of our event!

Thanks to Jeffrey Hornby for travelling from Toronto to assist Atley during the event and answer questions on Azure!

The event was a huge success because of the active participation from our members and the support we received from our sponsors.

Special thanks to our event sponsors for supporting CTTDNUG and helping us to make this the event of the year for our members: Microsoft Canada, Xceed, Telerik, Red Gate, Pluralsight, Ian Martin IT, and O'Reilly.

Testimonials

Here are a few of the responses we received regarding the event via our online survey on SurveyMonkey.com:

“All well-deserved 5's! I am anxious for Atley to come back and do another presentation! Having a presenter who is so enthusiastic about the technology they're presenting makes a huge difference!”

“Nice room, good chairs, good lunch. Good job!”

“It was a great day and there was lots of great information.”

Last but not least…

Attending a workshop, code camp, webinar, or developer event is not the final step in your career development or professional development. It’s only the beginning. If you want to continue on the road to web, mobile, and/or Azure mastery, check out the following upcoming events:

Make Web Not War is hosting a series of online webinar sessions on March 8th. Register at: http://www.devcamps.ms/web/schedule

The North Toronto User Group is hosting a Mobile + Cloud Application Workshop on March 17th. Details can be found on their site: http://northtoronotug.com

Last but not least, don’t forget to take the “Learn, then Drink to Celebrate Challenge” and get an introduction to Azure in the process: http://azurecamp.ca/acchallenge. Be sure to mention that you’re a member of the CTTDNUG when submitting your entry!

Always check out the EventBrite site, your local User Group sites, and the Microsoft site to stay informed about upcoming events that are relevant to your career or area of interest. If you haven’t been to one before, I know that attending may seem intimidating, but once you try it out, you may have such a good time that you’re already making room in your schedule for the next one Smile



Book Review–HTML5 Cookbook

HTML5CookbookHTML5 Cookbook, by Christopher Schmitt and Kyle Simpson, provides an overview of HTML5 along with problem/solution scenarios which will allow developers to hit the ground running using HTML5. It also includes chapters on how to implement the new features available in HTML5, including native audio, native video, geolocation, the canvas element, local storage, drag-and-drop, and more.

This book is perfect for intermediate to senior level developers who are looking to get up to speed on the new semantics and features available in HTML5 quickly. However, that isn’t to say that junior developers should shy away from this book. I do feel that developers at any level would benefit from this book, both from the content provided in the book, along with the wealth of external resource links that are scattered throughout each chapter. I found that I spent more time veering away from the book to enhance my learning in a particular area by scouring the information on the HTML5 sites that were recommended in this book. This alone makes the value of the book worthwhile.

Furthermore, I found it extremely helpful that browser support for some of the new HTML5 features were discussed, along with workarounds to handle scenarios where browser support is not yet in place for those features.

In my opinion, this book is a must-have for anyone looking to get to up to speed on HTML5.

The eBook format of this book was provided free through O'Reilly's Blogger Review program. This book can be purchased from the O'Reilly book store at: http://shop.oreilly.com/product/0636920016038.do



Trials and Tribulations of Organizing A Full Day Workshop

Today I was finally able to post the registration site for an upcoming full day workshop that our .NET User Group had been anticipating for quite some time. Although this seems like a trivial thing to get head over heels excited about, getting to this point took months of planning, organizing, polling, budgeting, begging and cold calling. So pardon me while I round a few cartwheels to celebrate this milestone.

When the good folks at Microsoft put forth the offer to the User Groups to host a full day Mobile and Cloud Application Workshop, I jumped all over it. I received great feedback from members after our October session on Windows Phone development, and they were all asking for a full day event centered around this topic.

I figured there couldn’t be much more to it than organizing the monthly sessions. After all, whether it be a full day event or 2 hour session, they both had the same requirements in common: find a speaker, gather some sponsors, order some grub… that’s it, right? Wrong. It wasn’t that easy. Planning for a 2 hour meeting is quite different than organizing a full day event.

The most difficult hurdle to overcome was finding the right venue. After all, this is what will make or break your event. Especially for this type of event, a Windows Phone/Azure workshop, which requires availability of power to everyone’s laptops, internet availability, sufficient room size for up to 100 people, catered food services, equipment rentals, clean washrooms (for a germaphobe like me, this was important), and so on and so forth. After many weeks of calling different venues (between myself, and the other volunteers of CTTDNUG), and looking at the limitations of each one, we finally found one that satisfied all requirements within a somewhat reasonable budget. Done and done.

The next major hurdle to overcome was to find the right speakers for this event. Technical experts in the industry that are well-known and trusted. Again, getting the right people to deliver the required content, will also determine the success of this event. Lucky for me, I had already been poking Atley Hunter, Windows Phone MVP, for awhile to ensure that he had availability for our target date, which he graciously reserved for us at my request. Also, I have assurances from Microsoft that they will be sending out an Azure expert, which puts my mind at ease for that topic. So I was able to check that off of the To-Do list.

Another hurdle to overcome was to gather sponsors. However, gathering sponsors for this event was easy, so it wasn’t really a hurdle. More like a small little ant hill at best. CTTDNUG already has been supported by some great companies throughout the 2011/2012 sessions, and they all willingly signed up to support this special event. Thanks to Microsoft, Xceed, Telerik, Red Gate, Pluralsight, O’Reilly, and The Ian Martin Group. Without your support, this event would not be possible.

The final hurdle to overcome was to gather volunteers for the big day. Again, I don’t see this being a major issue, as I have already received feedback from our CTTDNUG volunteers and member community offering to help on the big day. This is the moment that makes all of the organizing, planning, cold calling, and begging worthwhile…. when I know that our User Group is just as excited about this event as I am.

Ok, I guess there is one more hurdle to overcome. Making sure we sell tickets! This one I’m not too worried about. I know this event has been one that members have been asking for, and considering it’s the only one like it this year, I know we will sell out quickly. As well, I plan on advertising and promoting this event like it’s nobody’s business….starting with right now…

If you’re a .NET Developer in the Kitchener/Waterloo area who would love to spend a Saturday (March 3rd, to be exact) learning about and coding Windows Phone/Azure applications then do what the button says:

Register for Mobile + Cloud Application Workshop in Waterloo, Ontario  on Eventbrite

Top 10 Reasons Why I Like Dating A Programmer

I’ve dated men that fall into various categories, from musicians to jocks to the average “Joe”. But my current beau falls under a new category for me: the self-proclaimed geek. I wasn’t sure if I’d be able to handle it at first… dealing with someone who is just like me. After all, I’ve been told that I can sometimes be demanding, maybe even a bit overbearing.

Surprisingly enough, I’ve really come to enjoy spending time with someone I can relate to. Someone just like me.

And so I decided to list out the top 10 reasons why I like dating a programmer:

#10 – When he asks me about my day, his eyes don’t glaze over when I explain in detail about a technical challenge I encountered, and how I overcame it.

#9 – When I’m tired at the end of a particularly draining work day, he doesn’t reply with “How could you be tired? You were sitting at a desk all day?”

#8 – He enjoys learning new technologies just as much as I do, and we learn a lot from each other.

#7 – We have programming “date nights”.

#6 – We never run out of things to talk about.

#5 – When I mention The Oatmeal, he knows I’m not referring to my breakfast.

#4 – He would rather stay at home and play SWTOR, than go out and party with the guys.

#3 – When I’m busy planning the next session for my local .NET User Group, he doesn’t roll his eyes or refer to it as the .Net “Loser” Group.

#2 - He gets Dilbert. Therefore, he gets me.

#1 – He has a robot.

UPDATE: Due to popular demand, I’ve added a couple of pictures of the aforementioned robot. My guy ordered him from Alderan Robotics: http://www.aldebaran-robotics.com/

It took about 6 weeks before he received it. He didn’t rename the robot. He simply calls him by his original name, Nao.

Nao 

It’s a real robot. His name is Nao! Smile

nao_cottage



The Importance of Training and Investing in Yourself

Yes, we all know that the IT field is ever-changing.

Yes, we all know the importance of keeping up to date on emerging technologies.

Yes, we all know that you may never have the opportunity to use a lot of those technologies in your day-to-day role.

So here is where the great divide comes…

Those that are believers that the responsibility lies with their employer to provide ongoing training, and those that inherently take on the responsibility for themselves.

The difference between the two views is that the first group will forever be stifled in their learning, because their training will be focused on those technologies that will be relevant to their current employer.

The second group will have some base knowledge or experience in “dabbling” with the newest technologies, whether or not they will be able to put it to practice in their current role.

When I first started out in this field, I fell into group numero uno. I was young, naive, and felt that I had already heavily invested in my education. I thought it was only normal for a company to extend that training when I became employed with them, because it would benefit them as well. Silly, little girl I was.

I realized quite quickly that it doesn’t take long to start falling behind, and to rely on your daily role to stay on top of the latest trends and technologies was unrealistic. I was fortunate enough to have worked within companies that believed in training and embraced it wholeheartedly.

The wake-up call hit me hard when I landed with another company that also believed in training, but much to my dismay, my immediate manager felt that I was not worthy of such training. So in this particular instance, I felt I was being stifled.

The backstory in this case: I had been with the company a couple of years, and the project at hand was to convert their web application suite from classic ASP to .NET. At this point, I was chomping at the bit to learn C# and all things .NET related, so I was very excited about this proposed redevelopment… in fact, all of the developers were. I decided to submit a formal request to my manager requesting approval to enrol in a course as a quick dive into C# to prepare for this new project. After submitting the email request, my manager walked over to my desk to discuss it face to face. The conversation went a little something like this….

Manager: I have good news and bad news. The good news is that you’ve been approved for training. The bad news is that your request for C# training has been rejected.

Me: What? What training have I been approved for?

Manager: Conflict Resolution.

Me (extremely confused): What about the C# course? Why is that not approved?

Manager (smiling like a fool): Because it’s not related to your job.

Me (confusion continues to escalate): Not related to my job? I’m a developer. How is that not related to my job? And why have I been approved for Conflict Resolution???

Manager: Well because you had a conflict with one of our Business Analysts.

Me (angry): There was no conflict. He tried to get me fired because he was getting frustrated with the fact that I kept finding holes in his design specifications. He filed a false complaint. HR conducted an investigation, and it was proven false.  Shouldn’t he be made to take this conflict resolution course?

Manager: Well, clearly he has a problem with you. So it must be something you did or said that caused him to hate you so much that he would file a false complaint just to get you fired.  So yeah, great news! You’ve been approved for training!

Yes, he was still smiling at this point as though I had earned a victory. Needless to say, I didn’t take the Conflict Resolution course. And I didn’t enrol in the C# course either. But from that point on, I did start investing in myself.

I started investing my personal time in myself. Spending an hour at home here and there, reading online… newsletters, forums, tutorials… the sky’s the limit and it was all free! I felt liberated by this epiphany (before you scoff, this was many years ago before online learning was commonplace… I had a closet full of old IT books to prove it).

I also felt like a bit of a jerk. Why had I been holding myself back? Stifling myself to only learn what I needed for the current project? Only to learn what my employer needed me to learn? I had done myself a disservice.

I soon invested in Safari Books Online and found it to be an extremely valuable and useful subscription service. For the price of two good books per year, I have access to books all year long…. and I don’t have a junk pile of old books growing in my closet. I don’t know how I ever lived without it.

That’s the point where I transitioned from group #1 to group #2, and I have never looked back. It wasn’t long after that, I moved onto a new company and met two brilliant developers who each served as a mentor to me, without even knowing it. They inspired me with the contributions they made to the IT community. I admired them and wanted to be like them “some day”, but knew I had a long way to go…. a lot of catching up to do…. a lot of growing up to do.

One of those mentors introduced me to a .NET User Group he founded and ran. I went to meetings sporadically at first. I was always torn between familial obligations and self-improvement. Familial obligations always came first. I finally resolved to make the time to go regularly and volunteered with his group to ensure I made a commitment to be part of this community. I looked forward to the monthly meetings because I always walked away having learned something new.  Volunteering with the group then lead up to being presented with the opportunity to serve as the User Group Leader for the current year. The skills learned that come with that can never be achieved through normal structured training.

For those of you in Group #1 that are reading this post, the point I’m trying to relay (after having veered off into story time), is that investing in yourself is never a bad bet. It will always provide an ROI for you in more ways than you can understand at the present moment.

If you’re looking for a New Year’s Resolution, try this one on for size. Invest in your training, invest in yourself.

Here are a few of my favourite resources to get you started:

Safari Books Online – constantly growing collection of online books from O’Reilly… me love them long time

Pluralsight – extensive online video tutorials in a variety of technologies from Beginner to Expert

MSDNif I need to explain what this is, then you’re likely in the wrong field

CodeProjectcommunity-based resource with useful code samples, articles, etc submitted by regular developers like you and I

 



The Benefits of Volunteering

I sent out an email newsletter to my local user group members recently to discuss the benefits of putting their IT skills to use. I felt it was important to reiterate that message here, just in case someone  happens to actually read it and finds value in the message.

So here’s the excerpt from that newsletter:

The holiday season is approaching, which means it’s the season for giving!

Why don’t you consider volunteering your time and your super mad .NET skills to a good cause? Visit getvolunteering.ca (or your local community’s volunteering site) to find local area non-profit groups that need help maintaining their web sites.

Although volunteering isn’t about what you receive in return, there are benefits you will reap from helping out your local community this way.

In return:

  • You gain the satisfaction of helping out a non-profit group which serves your local community
  • You have the opportunity to show off your awesome skill set
  • You can add your volunteer efforts to your resume
  • You can seize it as an opportunity to grow your skill set by incorporating technologies you wouldn’t otherwise have the chance to work with during your day job
  • Networking, networking networking – the relationships you make within the community are important and putting yourself out there allows you to meet new people and build up your reputation as a professional

Granted, not everyone has the time to tackle a full-scale project which requires designing a full web site from scratch. But you can always volunteer with a group of peers, or find an organization that just needs help with maintenance or minor enhancements. 

Any value you can provide to a local organization is rewarding on its own. However, there are benefits that will serve you as well in your career down the road.

 

 



Book Review – Developer’s Guide To Collections in Microsoft® .NET

 

s Developer’s Guide To Collections in Microsoft® .NET, by Calvin Janes, discusses the various collections available in the built-in NET libraries, as well as  the advantages and disadvantages of using each type of collection. Other areas are also covered including how collections utilize memory, how to use LINQ with collections, using threading with collections, serializing collections, and how to bind collections to controls in Windows Forms, WPF and Silverlight.

For developers looking for a simple reference book on collections, then this book will serve that purpose and serve it well. For those looking for a great read from cover-to-cover, they may be disappointed.

This book tends to be repetitive in discussion topics, examples, and code samples in the first two parts of the book. In the first part, the author conducts walk-throughs to develop custom collections. In  the second part, the author conducts walk-throughs on using the built-in .NET collections.

For experienced .NET developers, the first two parts will not provide much value. However, it is beneficial for new developers who have not worked with the built-in collections in .NET. They will obtain an understanding of the mechanics of the built-in collections and how memory is utilized when using the various types of collections. So in this aspect, new developers will get more value out of this book.

The third and fourth parts delve into advanced topics, including using LINQ, threading, serialization and data binding. I find these two parts of the book are well written and flow better than the first two parts. Both beginner and experienced developers will find value in this half of the book, mainly on the topics of threading and serialization.

The eBook format of this book was provided free through O'Reilly's Blogger Review program. This book can be purchased from the O'Reilly book store at: http://shop.oreilly.com/product/0790145317193.do