Blog

Meet Charlie Brown. Here he is, relaxing in the sun in front of our living room patio door. He’s a Yorkshire Terrier, he turns five years old next month, you can follow him on twitter, and he’s the smartest dog in our family.

Well OK, he’s our only dog. But that’s besides the point. He’s still pretty smart.

I’ve been teaching him about ROWE.

Given that I do at least half my work from home and Charlie lives here too, it’s important that he understands that work is a thing that I do, not a place that I go.

If I’m heading into the office then I make sure I use the language “going to the office” as I’m leaving and I tell him where I’m going (as opposed to “going to work”). I reserve the word “work” to describe why I can’t be disturbed and I’m unavailable for ball throwing or belly rubs or other things that rank highly on Charlie’s list of priorities.

He gets it. If I tell him I’m working then he either goes and amuses himself elsewhere or sits quietly on the sofa in my home-office to keep me company.

Now if only I could make him understand that people on speakerphone are not, in fact, intruders and don’t require barking at then we’d be golden.

Blog

Meet Charlie Brown. Here he is, relaxing in the sun in front of our living room patio door. He’s a Yorkshire Terrier, he turns five years old next month, you can follow him on twitter, and he’s the smartest dog in our family.

Well OK, he’s our only dog. But that’s besides the point. He’s still pretty smart.

I’ve been teaching him about ROWE.

Given that I do at least half my work from home and Charlie lives here too, it’s important that he understands that work is a thing that I do, not a place that I go.

If I’m heading into the office then I make sure I use the language “going to the office” as I’m leaving and I tell him where I’m going (as opposed to “going to work”). I reserve the word “work” to describe why I can’t be disturbed and I’m unavailable for ball throwing or belly rubs or other things that rank highly on Charlie’s list of priorities.

He gets it. If I tell him I’m working then he either goes and amuses himself elsewhere or sits quietly on the sofa in my home-office to keep me company.

Now if only I could make him understand that people on speakerphone are not, in fact, intruders and don’t require barking at then we’d be golden.

Blog

Meet Charlie Brown. Here he is, relaxing in the sun in front of our living room patio door. He’s a Yorkshire Terrier, he turns five years old next month, you can follow him on twitter, and he’s the smartest dog in our family.

Well OK, he’s our only dog. But that’s besides the point. He’s still pretty smart.

I’ve been teaching him about ROWE.

Given that I do at least half my work from home and Charlie lives here too, it’s important that he understands that work is a thing that I do, not a place that I go.

If I’m heading into the office then I make sure I use the language “going to the office” as I’m leaving and I tell him where I’m going (as opposed to “going to work”). I reserve the word “work” to describe why I can’t be disturbed and I’m unavailable for ball throwing or belly rubs or other things that rank highly on Charlie’s list of priorities.

He gets it. If I tell him I’m working then he either goes and amuses himself elsewhere or sits quietly on the sofa in my home-office to keep me company.

Now if only I could make him understand that people on speakerphone are not, in fact, intruders and don’t require barking at then we’d be golden.

Blog

Extract a List of Values Filtered by Criteria with Sub-Arrays in Excel

If you’re not careful then array functions in Excel can quite easily melt your brain and cause it to leak out through your various face-holes, so I’m finding this step-by-step guide especially useful this morning.

Extract a List of Values Filtered by Criteria with Sub-Arrays in Excel

Blog

Overhauling my Digital Life

If you’ve been reading or watching the news recently youā€™ll no doubt have heard about the Heartbleed bug thatā€™s been widely reported. Itā€™s a vulnerability in the OpenSSL library that many websites use to enable the SSL/TLS encryption that secures your traffic to that site, keeping your passwords and credit card information safe.

Itā€™s probably about time to go and update all your passwords (although you should wait until the site tells you to, because they need to patch the bug and reissue their SSL certificates before theyā€™re properly protected and not all sites will have done this yet), but all this coincidentally comes when Iā€™m in the midst of a plan to get my digital life in order.

There are a couple of things I’ve done recently that, in truth, I should have done a long time ago ā€“ and you should do them too.

Backup

First of all, an experiment: raise your hand if you think backing up your data to a remote location is a good idea, or perhaps even an essential practice. OK? Now keep your hand raised if actually do this.

Right, thatā€™s what I thought. Until the start of this month I would also have sheepishly lowered my hand at the second question. At home we have a server that handles the syncing of documents between our several computers ā€“ the result being that all those really important files exist in a few places, including the server itself. Thatā€™s not bad, but if there were some kind of catastrophe affecting our home then everything would be lost because itā€™s all in one physical location.

And it gets worse. The server has a 1TB drive that was big enough to back up all our photos, video and music when I bought it. Itā€™s still big enough to hold all that stuff, but as our collection of digital assets like that has grown thereā€™s no longer room on the individual computers to store everything. Not a big deal ā€“ all that stuff is on the server anyway and we can just stream it to whatever device we want to play things on. Fine, except now thereā€™s only one copy of all our photos and music. If the drive in the server failed weā€™d lose all that stuff. For me thatā€™s more than a decade of pictures.

In the past I’ve been unwilling to spend the money necessary to get enough cloud backup space to put all this stuff in, but prices have dropped recently (which really is what prompted me to look at my needs) and anyway, this really is something worth paying for.

I got myself 100GB of online storage from ADrive. I donā€™t know that Iā€™d recommend them for everyone because the transfer speed I get when I upload stuff is pretty slow, but for me itā€™s perfect: theyā€™re a good price ($25 a year) and I can upload files using rsync, which means itā€™s extremely easy for me to set up automated backup jobs on our server without needing to install anything. I don’t really need a super-fast transfer speed because my future backup jobs will be incremental (only uploading files that have changed) and syncing documents between computers is not a need – we already have that.

Two-Factor Authentication

The other big upgrade to my digital life recently has been two-factor authentication. Iā€™ve known of it for a while, although I hadnā€™t used it at all until recently. Basically though itā€™s for website logins, and the two factors it talks of are something you know (your password) and something you have (your cell phone).

Iā€™ve turned on two-factor authentication wherever I could, using the Google Authenticator app from the play store where possible, and text messaging elsewhere. Essentially the way this works is that when you sign in to a website using your username and password, youā€™re prompted to enter a code you get either from the app or texted to you ā€“ the point being that even if somebody knew your username and password, if they donā€™t have your phone they wonā€™t be able to log in.

Iā€™ve enabled this on Google (Gmail, drive, etc), facebook, twitter, tumblr, Evernote, PayPal and anywhere else I could find that offers it too.

Blog

Five Essential Windows 8.1 Time-Saving Tweaks

I just installed Windows 8.1. It only took about 10 minutes to get things set up the way I wanted them, but I hated the default settings.

Also, this:Ā How to Sign Into Windows 8 Without a Microsoft Account

Five Essential Windows 8.1 Time-Saving Tweaks

Blog

Do Not Trigger Real Event Names with jQuery!

I post this link because I was writing some code earlier in the week and I was about to do exactly what this article tells us all not to do. Then I happened upon David Walsh’s article here and it actually led me to an even better solution than the one he suggests.

Until I read this I had no idea you could define your own custom events in jQuery and then trigger them later, but the winning solution is actually proposed by somebody in the comments section on David’s site: you can namespace your custom-named events. So:

$('#element').on('click.tabs', function() {
   ....
}

gets triggered when the element is actually clicked, or can be triggered programmatically with

$('#element').trigger('click.tabs');

the beauty here is that no other click events assigned to that element or its parents get triggered – we’re specifically targeting the namespaced event. If you’ve accidentally defined two .click() handling functions, or if there’s a .click() function on the parent element, the programmatic trigger doesn’t flow through to them.

Here’s a demo of what I’m talking about. Check out the difference between the three “trigger” links.

Do Not Trigger Real Event Names with jQuery!

Blog

Mind Mapping as a GTD Tool

I’ve posted a lot recently about myĀ SharePointĀ development work.

Itā€™s a topic I know quite a bit about (if I do say so myself), but this is not a SharePoint blog and I have no intentions of making it one – itā€™s simply that I blog mostly about my work, of the nine projects and tasks I have on my plate currently five of them have at least some kind of custom SharePoint component to them, and two are full-blown web-apps built on top of SharePoint.

With so much going on how, I hear you ask, do I stay organized and keep on top of things?

(Full disclosure: nobody asked. Iā€™m going to tell you all anyway)

image

Mind mapping!

I’ve been aware of mind mapping for quite some time, and about a year ago I readĀ a lifehacker articleĀ comparing mind mapping tools. I was interested but I didnā€™t have a good use-case for them at the time, andĀ I’m not a fan of technology just for technologyā€™s sake.

Whatā€™s changed in the past year is the nature of my work. A year ago a was adhering fairly closely to the title of Business Analyst that youā€™ll see on my business cards – I was involved in a relatively small number of projects at a time, but I was usually only responsible for delivering on a subset of the overall scope.

As my role has evolved, I find myself putting on my project manager shoes much more frequently. I have a larger number of projects, and while I’m ultimately accountable for delivery on all aspects of them, I canā€™t possibly make myself responsible for every detail or Iā€™d drown in minutiae.

So a few weeks ago I downloadedĀ XMind, asĀ recommended by lifehacker readers, and I fell in love with it almost immediately.

At the centre of my map is a node called ā€œTo Do,ā€ but thatā€™s probably a bit inaccurate and it speaks to how I thought Iā€™d be using the tool rather than how I actually ended up doing things. Off that I hang projects, initiatives, and tasks, and branching out from those are multiple things.

There are to-do items for myself, often broken down into sub-tasks inĀ a WBS kind of way, questions that need answers, and tasks where I’m waiting on other people. XMind has markers (different types of symbol you can attach to a branch) and I use these to differentiate the types of sub-item I use. I track completion of my own to-do items on an eight point scale, I assign priorities to things, I add notes, and I call drill-down into a view of a single branch in the tree if thatā€™s what I happen to be focussing my attention on at the time.

Thatā€™s all kind of irrelevant, though. The end result is representative of a map of my mind and how I work, and your mind and approach to your work are probably not the same. The point is that the tool is flexible enough to work for you, however you choose to use it.

Regardless, mind mapping helps me keep track of the many things I have going on in a very easy to understand (for me) way. I now have XMind open on my computer more or less all day long, and itā€™s quickly become my go-to productivity tool.

Blog

SPServices addAttachment jQuery Example

Update: I’ve posted some example code that works in Internet Explorer 9!

If you’re having a few issues adding attachments via ajax and SPServices on SharePoint have a look over the code snippets below.

To upload a file to a list you need to make use of the fileReader javascript class, using the readAsDataURL method and stripping the first part off the dataurl to get the base64 component. Then submit this to SPServices.

I’ve been asked a few times to add the ability to upload attachments to SharePoint tools that I’ve created, and I’ve never been able to achieve it until I eventually came across this blog post last week.

If (like me) you’re developing in a front-end only way without any server-side programming then it seems like this is the way to upload files and attach them to SharePoint list items.

It relies on the javascript fileReader feature so your users will need a fairly modern browser… which is where I ran into trouble. The default browser deployed within my company is Internet Explorer 9, and that doesn’t have fileReader support.

With much work and even more googling I was able to get this technique to work in Internet Explorer 9. In the future I’ll write more about how I managed it, and how you can too!

SPServices addAttachment jQuery Example

Blog

Your Message Will Be Answered in the Order in Which it was Received. Perhaps.

My friend and colleague Matt (@wastedgenius) retweeted this from one of his twitter contacts a couple of weeks ago.

There was once a time when I didn’t understand (what could you possibly be doing that’s more important than what I want you to do for me), but this is absolutely how I behave now too.

If I intend to respond to you I’ll flag your email for follow-up, but sometimes when the size of that list becomes overwhelming I just delete a bunch of stuff from it.

Sorry.

Update:

Matt has posted about this too: Email is my answering machine. Enjoy!