Rss Feed
Tweeter button
Facebook button
Technorati button
Reddit button
Myspace button
Linkedin button
Webonews button
Delicious button
Digg button
Flickr button
Stumbleupon button
Newsvine button

Category: productivity

The Startup Wizard

By , December 20, 2016 11:33 am

We’ve just added a new Startup Wizard to all our C++ tools.

The purpose of the startup wizard is to unify the various different dialogs that would be shown the first time the software ran. These would configure different aspects of the software. Placing them all in one place, a wizard, provides a better first run experience. We’ve also taken this opportunity to configure software updates for non-evaluation users of the software. As a final touch, we’ve included an overview video for the software.

Introduction

The first panel explains what’s going to happen next.

startupwizardintroduction

Symbol Environment Variables

The second panel allows you to configure which environment variables (if any) you wish to use to control the symbol search process for symbols contained in PDB files.

startupwizardenvvars

IDE / Compiler

The third panel allows you to configure which IDE / Compiler / Linker you are using. This is important as it affects how symbol lookup is performed (Visual Studio has various quirks in its history of symbol handling, we have to work around that).

startupwizardidecompiler

Software Updates

The next panel is not shown to people evaluating the software. Only purchasing customers see this panel. The panel allows you to configure your software update information and also where the software updates are downloaded to.

It is important to be able to specify where they are downloaded to because of potential security risks that arise from allowing the TMP directory (c:\users\[username]\AppData\Local\Temp) to be executable. We use the TMP directory as a default, but if you think that’s not a good idea you can specify your own download directory and set permissions for TMP to deny execute privileges.

startupwizardsoftwareupdates

Video Overview

The final panel is a video overview of the software. The purpose of this video is to quickly show many areas of the software to encourage you to explore the capabilities of the software.

startupwizardvideooverview

Share

Speeding up merging with Coverage Validator

By , December 16, 2015 11:43 am

Coverage Validator has an option to automatically merge the coverage results of the current session with a central session. This allows you to get an automatic overview of all code coverage without having to merge the results yourself.

Some people use this but some people prefer to record individual sessions then merge the sessions later. This is effective but the merging stage can be slow as to merge two files you need to start Coverage Validator, load two sessions then merge them then save the result. This is known as pairwise merging. Even with the command line support for this, this is time consuming.

-mergeMultiple

To speed this up we’ve just added the -mergeMultiple command line option.

-mergeMultiple takes one argument, a filename. The file contains the list of session files to merge, one per line.

Example command line:
-mergeMultiple e:\cv_merge_multiple.txt -mergeSessions -saveMergeResult e:\cv_merge_result.cvm -hideUI

Example merge multiple file:
e:\cv_help.cvm
e:\cv_red.cvm
e:\cv_green.cvm
e:\cv_blue.cvm
e:\cv_magenta.cvm
e:\cv_cyan.cvm
e:\this_file_doesnt_exist.cvm

Files that don’t exist are not merged. They do not cause any error conditions. This is deliberate – to provide fault tolerance if an intended merge target doesn’t exist for some reason. The last thing you want is a failed merge.

Performance improvement

We’ve tested this with one of our customers that could benefit from merging multiple files in one go. The performance improvement for merging 84 files (resulting in a 3.66GB merged session file – 64 bit Coverage Validator) is a speed up 8 times (pairwise merge time was 32 minutes, with -mergeMultiple the merge time is now 4 minutes).

Share

How to be more productive

By , December 30, 2014 11:57 am

A few weeks ago @BobWalsh asked on twitter how to be more productive.

I dashed off a simple reply about turning various things off. I thought I’d expand upon this topic.

Productivity isn’t just one thing. It’s many things and they all need to be aligned to allow you to be productive.

Know your topic

Seems obvious, but how many times have to tried to do something that you aren’t that good at and it’s taken forever? And the result was OK, but you know it could have been better. Would this particular task have been better delegated to someone else or even outsourced to a trusted third party?

Willpower

You have limited willpower. Concentrating on a task, or many tasks requires effort. You only have so much energy available for that effort before your energy reserves are depleted and you either need to eat, rest or sleep. Choose what you spend your energy on wisely.

Don’t multi-task

There is this myth that some people can multi-task and some people can’t. In particular this myth is biased in favour of women. However in neurological terms, humans are not wired to multi-task. We can appear to multi-task (just as single core CPUs did) by context switching. Context switching in humans is slow and consumes energy. If your blood sugar is low you will not be good at this. This StackExchange question discusses the penalties associated with context switching.

Remove distractions

Every distraction is a request to context switch to attend to that distraction. And then context switch back to the previous distraction or on to a new distraction. This is why the job of receptionist in a hotel, a hospital or a veterinary surgery is not as simple as it seems. Each micro task isn’t hard. But it’s the sheer volume of them and often multiple balls in the air at the same time – this takes energy.

In terms of your working life, if you are tech then the chances are you have these things around you:

  • Twitter
  • Facebook
  • LinkedIn
  • Smart phone
  • Text messaging
  • Wired phone
  • Email
  • Other productivity tool
  • Work colleagues
  • Open plan work environment
  • Office politics
  • (and possibly minority/sexist micro-aggressions)

But you’re actually trying to workout how to write some software for your company to meet the company product release deadline. Or you’re trying to debug someone else’s software and you need to get your head into their software space to understand what’s happening, or it’s a code review, or you’re examining the DNA of this interesting cancer, or something equally taxing. In short what you really want to be putting your energy is this interesting task but you are constantly pulled away from it by all these other sources of distraction.

Twitter

Turn off your twitter client. You don’t need to be on twitter all day, every day. You can always check in when you have a break or at the start/end of the day.

Facebook

Log out of facebook. Same as twitter, but it’s even less realtime so you definitely don’t need this open in your browser all day.

LinkedIn

Log out of LinkedIn. Same as twitter and facebook.

Smart phone

Turn it off. Completely off. No notification pings, no vibrates, no calls, nothing. So many apps on your phone to distract you and pull you away from work.

Text Messaging

Seriously. I know people under 25 seem to live in their text messaging world but I have news for you. If you turn off your phone the world will keep spinning. And your friends will still be there when it comes to lunch time and you can check up on what hasn’t happening in the (gasp!) last 4 hours.

Wired Phone

Unplug it. Turn off the ringer. Turn down the volume on the answerphone.

Email

You don’t need your email client open all the time. Check it once per hour, or once every two hours. For an extreme take, do it like Noah Kagan. Twice a day – once at the start of the day and once at the end of the day. OK, so some conversations won’t go as fast but everything will get attended to. And you might even focus on those emails a bit more because you’ve dedicated time to them rather than trying to time slice them with everything else in the day.

Trello / Other productivity tool

There are loads of planning/scheduling tools out there. Trello has taken off in a big way. Great. I have nothing against them. But you don’t need to fixate on it all day. Close the browser page. You can check the status of something when you actually need the information, not just because something has moved and you need to know, RIGHT NOW, what that was.

Work colleagues

Not a lot you can do about these. They need your help. You need theirs. If you can’t interact nothing will get done. But you can give strong hints as to when it’s OK to talk to you and when it’s not. Some folks put a red flag on their desk (or something equally unusual) to signify “I’m busy, don’t bother me”. Try it.

Open plan work environment

Yes, these are great. And they can be awful. Good for fostering openness and communication. Bad for controlling noise. For some tasks you may be better trying to get an office for an afternoon or take the work home.

Office politics

Er, not sure how to turn this one off.

Go for a walk

I’m serious. If you can’t get your head around a problem. Go for a walk. Preferably in the countryside. I live in a small country village. An average house on a housing estate. But I’m surrounded by farmland and the largest wetland in Europe (The Ouse Washes). Lots of the engineering problems at Software Verification have been solved while walking on this farmland enjoying the scenery, letting my brain wander and then out of nowhere a solution or partial solution appears. Back to the office and usually have a working demo by the end of the day.

Alternatively, a long soak in a hot bath (optional bottle of wine) often does the same job. Don’t try this one at work!

Alternatively, learn to meditate.

If it’s not obvious the key thing is getting your mind to relax and wander. Turn off the concious problem solving part of your brain and wait.

Caffeine

Get Caffeine out of your life. I really enjoy Caffeine (when provided by Tea, but not by Coffee) but I’m glad I stopped consuming Caffeine. It’s a myth that it makes you better at your job. I should probably also do the same with alcohol, but I have considerably reduced my consumption of that as well.

List

Make a list of all the things you need to do today. Identify the order of importance and how big/small a task it is. If you have lots of short tasks that are easy to do, do them. This reduces the list size and gives you a sense of progress, which is a good emotional boost. Then tackle the important and big tasks first. Cross each task off the list as you complete them. It’s trivial stuff to do, but this is emotional recognition of progress. Surprising what such simple tricks can do to your inner sense of “getting stuff done”.

If you find that you are not comfortable with the list on any given day that’s a good indicator that the tasks on the list – you haven’t fully decided how each task will be completed. So work on understanding each task a bit better. This may mean breaking the task into subtasks, or it may mean you just need to think about the task a bit more.

Summary

The days when I feel the most distracted, the least at ease, can’t decide what to work on it’s when there is nothing on the list that interests me and I have all these distractions turned on. The solution is to remove the distractions and then work on the contents of the list.

I’m not saying twitter, facebook et al are bad. I’m saying that they need to be used with care. So turn them off when you are working and turn them on when you need to plug in.

Share

Panorama Theme by Themocracy