Ode to 2017


2017 Just Ahead Green Road Sign Against Clouds

A year so filled with ups and downs, tears and laughter too, 2016 you’ve tried and tested me, I’m glad you’re almost through.

2017, you’re nearly here, but yet, I claim you now, to be the year of goals and dreams, the fattened calf or cow.

The year of reconciliation, be it race, religion, creed, the year we learn to give, and put away our greed.

Let’s learn religious tolerance, offer all a helping hand, let’s share the blessings of our land, so rich with golden sands.

Families, start afresh, put yesterday aside, our forefathers never wanted this, they’d be turning in their grave.

If each of us could do one thing, different to the norm, pay it forward, help someone, a new world could be born.

To those I’ve hurt or wronged, I ask, your forgiveness and you grace. My heart just breaks for all of the human race.

2017.  The year we take back.

Life. Love. Dream. Achieve. Believe.

Go forth with love.

Approaching Angular 2 from a WebForms perspective


hires-small

Omelettes anyone?

Sometimes we spend so long working in a technology it is a difficult to make a switch. If it ain’t broke, don’t fix it, right!?  The problem is, the world moves on. Using server side technologies like ASP.NET WebForms is something I still love to do, add a few DevExpress components onto a page, set the properties, bind some data and boom, almost no code and I have a working web application. There are many debates scattered on the internet about WebForms been deprecated, that they are evil, I simply disagree. Now, if you are wanting to target a wider range of web servers and operating systems, use .Net Core, have light weight UI then you would start looking at some of the popular frameworks like Angular 2. Herein lies the dilemma, how does someone with many years experience as a WinForms and WebForms developer make the jump to a client side driven application? I’m pleased you asked…

Julian and I are presenting a free webinar on this exact topic on November 3. Specifically we will take an existing WebForms application and create an Angular 2 version using the DevExtreme Web controls.

The goal is to show how a C# (or VB) developer with a background in WebForms can get started in the client side world. As with most of my presentations lately, we will also be using TypeScript.

Take part in the fun by Registering here,  seats are limited.

DDD Perth: Lessons learnt


MapDDD Perth was held last weekend in, you guessed it Perth, a sleepy little city in Western Australia. It still makes me smile when sharing with overseas friends that they don’t quite understand the size of our beautiful country.
It’s a 45 hour drive, or a 5 hour flight from Brisbane to Perth. The flight is relatively short in comparison to my travels to USA, UK, Europe or Russia, but still a little longer than than travelling to New Zealand.

The conference was amazing, you only have to check out the twitter feed or the DDD Perth Flickr to see what went down, but there were some important lessons to be learnt.

Double check all numbers before transferring money

As sponsor for the after party, I had to transfer funds to ‘My Place Perth‘ (great place to visit by the way, especially on Karaoke night eh Lana!) since the Heritage Bank app does not allow you add new payee’s (for what reason I will never understand), the browser had to be used, navigating a bank web site on an iPhone 6 Plus is not the easiest thing to do. Attempt #1 – add all information, wait for SMS from bank to finalise the transaction, go to messages screen to get the conformation number, switch back to web browser and catch the ‘back’ button, therefore wiping out all data added! Attempt #2 – add all information, again wait for SMS from bank, carefully swap between message app and browser and enter code. All this time having a friend read back the account number and BSB to send to from a pdf invoice received on email. Celebrate the small victory of getting this far, then email a copy of the receipt to venue. Happy days! though short lived!  The owner of My Place gently advised that when she had checked the receipt it was apparent I had entered a 6 instead of 5 in the account number! GAH! So in order to keep the peace, I paid the invoice again, this time via my card. It was not a small amount, and then I had to go chasing the banks to see where my original payment had gone, however, that had to be a job for Monday since banks (for some reason) don’t work Saturday nights. After a number of calls on Monday, I was quietly assured the money will bounce back to my account sometime in the week.

Don’t leave things in your hotel room

The morning after a big party, my brain was not yet firing on all cylinders, 6am and time to get ready to head to the airport. I remember so vividly putting my Bose QC20 headphones (the only noise cancelling headphone I recommend for long flights) on the back of the chair, then noticing they had fallen off, thinking to myself “don’t forget to pick those up”.  I arrived at the airport with that niggling feeling, you know, the one where you think you have forgotten something. First sign of a bad day in progress was the ‘Priority Check-In’ taking longer than normal check-in and bag drop, this is not a usual thing, in fact the service provided by Virgin Australia is the main reason I continue to fly with them on as many trips as I can. Finally, I checked my bag and headed to the Virgin Australia lounge looking forward to some breakfast before the long flight home (which was actually shorter than the one over, but seemingly longer because I had to add 2 hours back on the clock). Lounge closed! WTF, after a quick tweet, Virgin Australia confirmed – no lounge on weekends in Perth! Okay, off to the coffee shop for a sandwich. As I sat wondering why I had that feeling, it struck me, NO, I DIDN’T!? but of course I did, the headphones were still sitting under the chair in the hotel room. I remembered I had just received an email with the settlement account from them, so I replied straight to that advising exactly what had happened and where they were. Boarded the plane and headed home. Monday, nothing from the hotel, so Tuesday morning I rang, a brief chat to house keeping explaining the whole story and I was promised a call back. A short 15 minutes later I got the promised call. “Sorry Mr Usher, we checked and there is no sign of your headphones”.  Oh well, it’s my dumb mistake anyway, but I don’t understand why they were not found. In the meantime a survey email came across my desk from AccorHotels and I took the time to share my thoughts with the COO of the group.  Approximately 30 minutes after my first call from the hotel, a lovely lady named Heather, Housekeeping Manager, called and advised my headphones had been located, yay! I’m not going to go into details here, but in short they ‘turned up’. I received an apology for the late reply to my Sunday email, and to the time it had taken to find them, I also received an email from the operations manager in Perth again apologising and confirming a policy review, hmm. My faith in AccorHotels restored, and my trusty Bose QC’s making the journey (albeit alone) back to sunny Queensland.

Don’t use the phrase ‘guy’ when you meant ‘guys & gals’

Cq1AIj7UAAApeOi

Before the conference I had sent a tweet to a couple of high profile people, namely Pip Marlow – Microsoft Australia MD, and Richard Branson (wonder if we can get that Lounge policy changed?), in support of women in tech, I am a strong advocate that more women should be involved and find it too dominated by men! After being heralded in the opening notes for my push (thank you Pip for your feedback, it’s a shame Mr Branson didn’t weigh in on the subject), I made the faux pas of using the singular, masculine phrase ‘guy’ during my talk. Thanks to Michelle for pointing that out publicly!

T1

A big weekend, well done to Rob Moore, Jake Ginnivan and the team for pulling everything and everyone together. I met some fantastic people, made some great new friends and some important lessons learnt, but all’s well that ends well.

 

Inbox:Zero


Over the years, I’ve subscribed to a number of different productivity philosophies. Being in the IT industry has meant adopting and then tweaking certain aspects to meet my needs. There has to be a balance between productivity pirates (emails, sms messages, Skype, phone calls and other notifications) and providing a response service to customers or even peers. Jumping from coding in one project to helping debug something else, or provide phone support and then straight back to what I was doing has never been an issue.  One thing that I am almost OCD about is having my inbox(es) at zero unread messages.

Before you go clicking away from this post thinking I’m a raving lunatic, or that I only have one account to consider, let me explain. At the time of writing, I have five email accounts, all with some form of activity each day. I can read/reply to any of those accounts on any of my devices, iMac, Dev PC, Phone, Watch, iPad Pro, iPad Mini, Tablet. I do believe it is an important point, having all devices in sync. Next, I’ll share some of the ways I manage my days and inboxes and other tools I use to achieve my goals.

Notifications are not a distraction. I find desktop notifications quite useful, as an email is received, I can glance and determine in milliseconds if I need to deal with it, I don’t need to break away from the focused application to go looking in the inbox straight away. I then have specific times in a day where I will go back to my inbox and deal with *all* the unread items. I do not use folders, categories, flags or other tools inside my mail programs… why? Because I have found in the past, different applications do their own thing and create more problems. Now I’m starting to open Pandora’s box, different applications? Even on the same machine I have found I switch between different versions of email clients depending on a) my mood, b) the quality of the version c) the operating system. The mail accounts I deal with are Gmail, Office 365 and hosted Exchange. Depending on the machine I’m on, I will switch between Mail (OS X), Outlook for OS X, Outlook (Windows), Browser, Mail (iOS) and Outlook (iOS). As a developer I will often run beta versions of operating systems and other tools (like MS Office).

Back to dealing with the unread mail. Years ago I was taught a principle of handling every piece of paper that came across my desk, I’ve applied this same technique to email for as long as I can remember. It’s a simple yet effective method: D.D.D.D.

Do It : just get it done, write the reply, or do the required action now.

Dump It : the delete button in your email client is the most used button by far. Don’t be afraid to send it to the trash, if you think you may want it later on, then date activate it, but don’t procrastinate.

Delegate It : if someone else can deal with this, forward it on, delegation is a good thing. It sometimes pays to date activate it also in case you need to follow up, but don’t leave it as ‘unread’ for that reason.

Date Activate It : this is probably the most important ‘D’ for me, it allows me to move the issue into my task management system where it can be triaged and I don’t have to spend any unnecessary time thinking about it. You may think that at this point all I’ve done is move the ‘unread’ somewhere else, which technically is true, but now I’ll explain how I manage my day to day tasks.

The problem with looking for a personal task management system is the time you have to invest to determine if it is the right one for you. To be fair, you should run the tool for at least a month to put it through it’s paces. That is a huge investment in time and sometimes money, then you have to move all the data (often rekeying from scratch), all of which is costing you precious time, the very thing you are trying to save. I think, especially on a corporate scale, quite often, a product is found and people are told to use it without due diligence being performed. There are a lot of products out there from good to great, personally I found many overkill especially when I wanted a tool for me, not the company. I’m not going to turn this into a product review, simply to say I use and prefer Todoist. It is a powerful, yet simple product that provides everything (with exception of Kanban) that I want. I particularly like the ‘karma’ feature to help drive me forward.

Let me tie this back into the zero inbox principle. If I have an email that requires attention or work, I forward it to my Todoist email address. Imagine the process, 100 unread emails in my box

Begin loop:

  • read mail
  • apply dddd
  • needs action
  • forward & forget

Move to next mail item

It is that simple, and I can do that on any device. Once inside Todoist, I have a daily task (recurring tasks are amazing), “triage inbox”, that simply means date activating and assigning the task to a project. Then on the day, I deal with the email/task. Nothing gets forgotten, my email client isn’t showing unread mail that I know I’ve read but keep flagged because I don’t want to forget.

At the end of each day, I ensure all tasks for the day are dealt with, anything I have not finished (or cannot finish) I put to a day I know I can, ensuring my outstanding list is zero.

I cannot take the credit for the principals used in my daily routines, but I would like to thank Brian Tracy and Gary Ryan Blair for their mentoring, and amazing work they do.

 

 

 

CodeRush for Roslyn… unveiled


April 2014, I wrote a post about CodeRush vs ReSharper. At the time Roslyn was a hot topic, Microsoft were open sourcing their compiler technology, DevExpress wanted to take advantage of that while JetBrains didn’t (and for compelling reasons). Two and a bit years later the wrapper is about to be removed from the offical public release of CodeRush for Roslyn. Here’s what we expect:

  • Lightweight
  • Blistering Fast
  • Feature Rich

Since the announcement of the webinar next week there have been a number of social media posts questioning the position of CRR against other productivity tools such as ReSharper. The brains behind the original CodeRush product, Mark Miller made it clear that there is no reason developers cannot have both tools installed.

From a features perspective:

  • Analyse Code Coverage
  • Tons of Visual Studio Helpers
  • 60+ Refactorings
  • Code Providers
  • Debug Visualizer
  • IntelliRush
  • Decompiler
  • Intelligent Symbol Search
  • Member Organisation
  • Unit Testing
  • Code Cleanup
  • Navigation
  • Structural Highlighting
  • Code Analysis

My job is to invite you to be the judge, join me August 2, 10am PST; to see all the new features, the speed and intuitive way CodeRush for Roslyn can improve your productivity as a developer. Of course, the session will be recorded, but if you join live, you can ask your questions in realtime🙂

I’ve been a CodeRush (classic) user for over a decade, and more than happy to show how I personally use the features to make my development more productive.

Register Here

DevExtreme, Ionic, TypeScript and Angular 2


This week, Julian and I took to the airwaves again to show just how easy it is to combine some pretty heavy hitting names to produce cutting edge mobile applications.

The presentation was recorded and is available to watch on the DevExpress YouTube channel.  In a couple of weeks time, we will be showing you how to make the most of multi-platform notifications with some real world business scenarios.

Webinar: Debugging a PhoneGap / Cordova App


DevExpress

 

 

 

 

DevExtreme has to be one of my favourite tools to create mobile apps, but it’s not without some caveats. The biggest one being debugging. The simulator is an amazing piece of software except for when you need to run some PhoneGap plugins, or access device specific features. So what is the best way to handle these scenarios? Join Julian M Bucknall and myself on March 28 and learn how to use GapDebug while running your application in real-time on a device or virtual machine.

PhoneGap