Alec the Geek

Reflections on software and related things from an older geek

  • Twitter Ramplings

  • My Bookmarks

  • RSS Alec’s GitHub

    • An error has occurred; the feed is probably down. Try again later.

Using Git DVC in conjuntion with a legacy SCM tool

Posted by Alec The Geek on 17 June 2010

Often developers get a limited choice on the Version Control (VC) or Software Configuration management tool they have to use when working on a project. However even when the Git (the Distributed Version Control tool) does not interface with the project tool there is value in using Git for a personal workflow. This can work as follows.

  1. Fetch a copy of the working code needed to make your change
  2. Initialise a new Git repo in your working copy and add the code
  3. Now checkout a new git branch for your work
  4. hack hack hack test test….
  5. Commit
  6. Switch to master branch
  7. Fetch from the project tool again.
  8. Add changes and commit
  9. Review differences, rebase or merge as required.
  10. Verify project tool still at same state from step 7
  11. Upload/ check in changes to project tool. You can use the output from git log as the basis of your commit message for the legacy tool

Rinse and repeat

Posted in Git, Software Configuration Management, Software Development, Work Practices | Comments Off

GSD and Pomodoro technique hacked on Paper

Posted by Alec The Geek on 13 June 2010

Updated June 2011.

For some time I’ve using a paper journal to follow the GSD workflow. I’ve actually been using a thick, 300 page, Miquelrius journal, but I’m finding it too bulky and the extra pages means it lasts long enough for the binding to start to fail so I’ll be going back to Moleskine style when the current book is finished. I’ve also tried Piccadilly notebooks which seem very similar to Moleskine and a lot cheaper, however both of mine have split down the spine. Recently I’ve also upgraded my workflow to include:

  • Pomodoro technique to help me focus during the day in getting my longer actions completed
  • Inbox Zero so I spend less time on email

Which have both improved things for me, but I need to improve my weekly review and project planning so I’ve been looking at moving up the GTD food chain to something a little more complete. After noodling with some UML diagrams I figure it’s pretty simple to fix, so this is my new (evolved) plan going forward (none of these ideas are very original).

  1. Keep doing the GSD daily routine. (Turn to a new page, move the bookmark ribbon, date it, write down a list and work the list). Add the number of estimated Pomodoros to tasks to stop you overcommitting yourself
  2. In the same space keep using pages for notes, GTD inbox, Pomodoros and project planning as needed
  3. From the back of the book (turn to landscape so I have longer lines) write down actions. This is the GSD master list, but with more structure. A pink tab marks the page with the oldest active action. My column headings were inspired by mGTD. (NA/Competed, Description, Context/Agenda/Waiting, Project, Estimated Pomodoros). My coding for the NA/Completed field is as follows:
    1. Blank — task has incomplete dependencies
    2. Box — task is next action
    3. Tick — complete
  4. Each time a project plan is created (as part of a Pomordoro usually) mark the project plan with a green tag. When the project is no longer active remove the tag
  5. If a page has notes that might be needed in future fold down a corner so it’s quicker to skim to ‘important’ notes.
  6. During the weekly review re-visit the previous weeks pages for incomplete actions, etc. Tick pages in top left when reviewed. Visit project tags to review each project
  7. Use dated pages for X-ref links

Note that my approach to Pomodoro is deliberately simplistic so I keep limited notes on each one. As long as I know what my next Pomodoro is, have enough information to keep my day useful and can stay focused that’s good enough.

I’ve been using  a mind map to refine my ideas

A mind map of workflow

Getting Pomodoros Done Mind Map

Posted in GTD, LinkedIn, Project Management, Work Practices | 4 Comments »

Oh Dear, not a great welcome back

Posted by Alec The Geek on 2 May 2010

Customer service in Australia « Alec the Geek

Australian customer service is generally pretty poor.

After writing a piece a few years showing some great examples of AU customer service I had a great example tonight of how NOT to treat customers on the Melbourne Skybus. It was the first time I had used the service and after the showing tonight I hope the last.

I had purchased my return ticket a couple of weeks ago (being concerned about the time it would take to queue up yesterday morning on my way to Sydney). The net result was that on my outward journey the ticket print had become worn (but was still legible) and this meant the driver had to punch the ticket manually and then return it. No problem so far. However tonight when I returned the driver refused to accept the ticket as it had two hole punches in it and so had supposedly been already used. My attempt to explain that this was not the case as I had only travelled up the day previously was greeted with disbelief and he started hectoring me in a loud voice. I asked him to stop shouting which only made matters worse. He eventually referred me to the ticket booth for assistance who were no help at all.

I’m guessing the first bus driver had decided that the slightly worn appearance of my ticket (it had been nestled in my wallet for two weeks) meant he was justified in clipping it for both inward and outward journeys without the courtesy of mentioning it to me!

I was forced to buy another ticket (A$16 for a 20min bus ride), was left feeling upset and embarrassed (as of course a large number of people had been able to enjoy the spectacle of me being harangued in the front of the bus).

I hope visitors to Melbourne don’t often get treated to such service

Posted in Business, Personal Opinion | Comments Off

Build Audit and Processes: A line of sight from DEV to PROD

Posted by Alec The Geek on 2 April 2010

I’m presenting at the Devops Down Under conference in May 2010

…a conference about advancing our processes & methodologies, building better tools, and improving communication between developers and sysadmins.

Here is the abstract for my presentation in case it tempts anyone to attend…

Both agile and waterfall approaches to software delivery are a way to translate business needs into production features. Being able to trace that path is often crucial to affective delivery (and sometimes passing critical compliance regulations). Frequently the activity of software building breaks these important traceability links because of poor process and technology.

This presentation briefly examines these problems and looks at various approaches to overcoming them. An emphasis is placed on using processes and version control tool to provide a) Useful information and b) Audit trails of individual builds. A simple, illustrative, example using the Git DVCS is demonstrated.

Say hello if you are coming along.

Posted in Git, LinkedIn, Open Source Software, Software Development | Comments Off

Handy Hack: Calculating Git SHA1 on files without Git installed

Posted by Alec The Geek on 17 March 2010

If you are not a Git geek this will be of limited interest and I suggest you go and surf whatever inappropriate material uses up your bandwidth.

Updated after tips from Randal Schwartz and Charles Bailey

Still here? OK. As you will know every file stored in a Git repo is identified by a SHA1 hexadecimal string (as explained in the Pro Git book, it’s the hash of the concatenation of the  file contents and a Git specific header). You can calculate the Git SHA1 of any file with the command

git hash-object $file

assuming you have Git installed

If you do not have access to Git, but do have access to a UNIX style shell or Perl you have a couple of options (the Pro Git book also shows a Ruby solution and Stackoverflow has examples in Python and #F))

On Cygwin or Linux

(printf  "blob %s\00" $(wc -c < $file);cat $file)|sha1sum -b | cut -d " " -f 1

On Solaris

(printf  "blob %s\00" $(wc -c < $file);cat $file)|digest -a sha1 | cut -d " " -f 1

In Perl

# See also Git::PurePerl at http://search.cpan.org/dist/Git-PurePerl/

use strict;
use warnings;
use Digest::SHA1;

my @input = <>;

my $content = join("", @input);

my $git_blob = 'blob' . ' ' . length($content) . "\0" . $content;

my $sha1 = Digest::SHA1->new();

$sha1->add($git_blob);

print $sha1->hexdigest();

Posted in Change Audit, Git, LinkedIn, Linux, Mac, Perl, Software Configuration Management, Software Development | 2 Comments »

Using TaskCoach for GTD lists

Posted by Alec The Geek on 27 January 2010

I posted recently about using the TaskCoach list manager to support the Pomodoro Technique for actually doing work. Of course Pomodoro does not address the issue of task identification and organisation — so I promised a post on using TaskCoach and Getting Things Done (GTD) as  GTD and Pomodoro complement each other nicely.

Setup:

  1. Install TaskCoach
  2. Create Taskcoach categories that reflect the various GTD categories, i.e
    • Next Action ( I call it “.Next Action” so it sorts to the top of the list)
    • Deferred
    • Someday/Maybe
    • Waiting
  3. Under Next Action create sub categories to represent your contexts. e.g.
    • “.Next Action/Errand”
    • “.Next Action/Web”
    • “.Next Action/Laptop”
    • “.Next Action/Telephone” etc…
  4. Create a sub category called “.Next Action/_Agenda” (use underscore so that it sorts at the end of the next action list, alternatively make Agenda a top level category). Under that create categories for the people in your life e.g.
    • “.Next Action/_Agenda/Wife”
    • “.Next Action/_Agenda/Boss”
    • “.Next Action/_Agenda/SalesGuyOnCurrenProject” etc
  5. Optionally make “.Next Action” mutually exclusive on sub categories (suggested by the mailing list)
  6. Create the same people centric categories under Waiting
  7. In preferences select the following
    • “Use Tabbed Interface..” off (you need to see context and task list at once)
    • “Allow for tasking notes” on (optional but useful)
  8. Edit the “.Next Action” category and make it a different colour (NB Not red as that will hide overdue tasks)
  9. Optionally make
  10. Optionally add additional columns to the task view (suggested by the TaskCoach mailing list). It can be useful to add a column for category so that tasks can be sorted by category or context.

Using it:

  1. Create top level tasks for your current projects. Create actions as subtasks under projects (You can drag and drop tasks between or into projects)
  2. Add new actions to the list in the normal fashion, so the task list becomes an inbox as well
  3. Add due and start dates as required
    • Deferred  actions
    • Delegated actions
    • Tasks with a real due date
  4. Review tasks in the task list (daily) by
    • Selecting “Tree of tasks/List of tasks” as you progress to see context (or not)
    • Assigning the correct Next Action context to tasks during review. NB Only one NA category should be used
    • Moving new actions to the correct projects
    • Removing Next Action category from completed tasks
    • Using the other categories as appropriate
  5. Now click on the “.Next Action” category and only next actions are displayed. Selecting a specific sub category (and de-selecting the higher “.Next Action”) will further filter by context

Posted in GTD, LinkedIn, Open Source Software, TaskCoach | 6 Comments »

Handy Hack: Improving Laptop Security, around the loop again

Posted by Alec The Geek on 21 January 2010

Alec the Geek Handy Hack:Improving Laptop Security

I have always liked having my laptop BIOS boot password on

After my last post Dave Hall made some excellent points on the shortcomings of BIOS passwords (which in this instance did not not bother me too much) and also made a reference to disk encryption. I’ve thought about the idea of disk encryption for some time(if you run Windows or OS/X I’m not sure what options you have) but I’ve always been concerned about arousing the suspicion of the TSA when travelling to the US; plus I never has the correct install DVD with me when I was re-installing my Ubuntu GNU/Linux system.

By a strange coincidence a few days after Dave’s comment I managed to corrupt my hard disk partition and decided to implement disk encryption as part of the re-install. So whilst waiting to verify my backups I downloaded the Ubuntu 9.04 Alternative ISO. When installing Ubuntu it’s a simple matter of selecting yes to disk encryption and entering a pass phrase.

After the installation was complete Ubunto now prompts me for my pass phrase at boot time, so I switched off the BIOS password.

N.B. Implementing this has required me to make a policy decision that I will freely disclose my pass phrase to any legal request from law enforcement authorities wherever I may be.

I’m delighted to say that I have noticed NO performance penalty after implementing this.

Posted in LinkedIn, Linux, Software Setup, Work Practices | 3 Comments »

The Voga Business Value Proposition

Posted by Alec The Geek on 18 January 2010

I recently sat down to update my ‘Value Proposition’. This is important for three reasons:

  1. It articulates the reasons that people should pay you money to come in and help them
  2. It helps you develop you elevator pitch (everyone has to answer the question ‘What do you do’ in less than 20 seconds)
  3. It should drive over 90% of your business activity (allow yourself 10% wiggle room)

To make sure that I stay honest I’m posting my value proposition with more detailed backup. I’d be delighted to have people poke it hard so don’t be shy in the comments.

Alec delivers improvements to software development and application lifecycle  processes that are:

  • Business focused
  • Simplified
  • Instrumented
  • Automated

with the objectives of being

  • Predictable
  • Repeatable
  • Documented

As someone who cannot stand cant I’d better back these words up with some detail and justification:

We all deliver value to our customers by helping in three ways

  1. Managing the business better: e.g. financials, understanding risks, compliance,….
  2. Executing better: e.g. doing it faster, changing products quicker, improving quality and core business processes,…
  3. Reducing costs: e.g. doing more with less, reducing rework, improving or removing non-core business processes,…

In a software based delivery business unit this is no different. In my experience many software environments frequently fail for apparently simple reasons

  • There is no clear understanding of what is happening. Progress, outstanding issues, root causes and areas for improvement are often guessed at
  • Many tools and the processes they deliver are over complicated. This leads to resistance and substantially reduced value
  • Lightweight documented process cam help contributors of various skill levels deliver consistently without having to re-thing the process every time

That value and improvement needs to be delivered consistantly and continaully, long after the implementation is complete. Bu focusing on our final objectives from day one we can ensure this happens.

That is how Voga helps to deliver value to customers.

Posted in LinkedIn, Work Practices | 5 Comments »

Handy hack: Make changes to the Cygwin mount prefix permanent

Posted by Alec The Geek on 13 January 2010

If you’re like me then the one of the first things you do after installing Cygwin is to issue the command mount -c / so that mounts appear directly under / instead of /cygdrive. However the recent upgrade to Cygwin DLL means that this change is no longer persistent. In order to make it permanent you need to edit the file /etc/fstab and add a line

none /  cygdrive binary,posix=0,user 0 0

Further details on the Cygwin site

Posted in Cygwin | 5 Comments »

Draft: Introduction to Simple Processes for Small Software Teams

Posted by Alec The Geek on 10 January 2010

N.B. This is an early draft of something I am currently writing. Please feel to comment and give feedback. The full ebook will be published in the next few weeks and I will follow with another blog so you can download it if interested.

How you can implement processes to improve quality, reduce stress and lower costs

Introduction

A lot of application development teams, and to a lesser extent operational IT teams, have either no or limited process. They depend on a combination of individual expertise, informal conventions and team habits (some good and some bad); and being prepared to put with all the problems of poor quality and unpredictability. It does not have to be like that and this ebook presents some ‘low hanging fruit’ you can pick to make your teams more productive – the approach is simple and practical.

This document is written for smaller teams who spend their time doing a combination of maintenance and new feature requests on an existing application. This actually covers the majority of software teams because, much as we all want to work on green-field projects and deliver Rel 1.0, most of our work is done on existing systems.

This ebook lists seven keys process areas (PA) that you need to think about: Metrics, Planning, Release, Testing, Issue1 management, Version control and Communication. These represent broad headings across the Software Lifecycle than contain the low hanging fruit we can pick early and I chose them because we can (almost) focus in each PA individually. After some initial informal success teams can look to expand their improvement initiatives and use more formal and complex methods – which is beyond what can be covered in this short document. The resources section lists places that you should look for more information and different perspectives.

There is no magic to software process improvement – it’s a question of: common sense; team and personal discipline; patience; attention to detail; and a strong desire by everyone to improve the current situation. Also what works will require you to experiment and use judgement (obtained by experience) to decide what will work in your projects. There is no ‘one size fits all’.

Agile Processes : The tools and techniques presented here are written primarily for the benefit of more traditional teams. If you call yourself an agile team, but have no process then I recommend you engage a reputable agile coach; or take a step back into more traditional software lifecycle, improve your processes (using this ebook and other resources) and then step forward again.

1Issues in this context is a very broad term that covers requests for new features, bug reports, internal development tasks and questions

Posted in Application Lifecycle Management, LinkedIn, Software Configuration Management, Software Development, Work Practices | 1 Comment »

Top Tip: Windows Perl CPAN slows to crawl using network drives

Posted by Alec The Geek on 8 January 2010

I noticed this when using Cygwin Perl, however I suspect the issue exists with any Perl distro on Windows.

The problem occurred when I had set the HOME environment variable to point to a network share. When I ran the CPAN utility it placed all the CPAN files on the network. As a result some modules would not install (I have no idea why) and it ran very very slowly.

The solution I adopted was to to move my home directory to the local PC drive which then made CPAN use the local drive as well.  Changing  cpan_home in  /usr/lib/perl5/5.10/CPAN/Config.pm would probably have been simpler, but I was happy to use the local disk for everything.

YMMV

Posted in Cygwin, Perl | Comments Off

Top Tip: How to become a UNIX Geek

Posted by Alec The Geek on 7 January 2010

I have no idea if this will work for everyone, but this is how I became a UNIX (and later Linux) geek:

  1. Read “The UNIX Programming Environment“, Ch 1-5 at least. An excellent introduction to the philosophy of UNIX as well as the basics of using it as a user and later a programmer.
  2. Get a copy of “UNIX Power Tools” as a desktop reference; however you aim to read it all.
  3. Make sure you have a network connected UNIX/Linux system on which you can lavish loving care and practice your new skills
  4. Keep reading books, manuals, articles, blogs, forums etc etc.

Posted in Education, Linux | 1 Comment »

Handy Hack: Make Vim the default editor for all text files

Posted by Alec The Geek on 7 January 2010

I just added the following tip to the Vim Tips wiki

To make Vim the editor for all text file types, as defined by MS Windows, try from the Windows command prompt:

ftype txtfile="C:\Program Files\Vim\vim72\gvim.exe" --remote-tab-silent "%1"

Posted in Windows | Comments Off

Handy Hack: Scripts to run Saxon XSLT processor

Posted by Alec The Geek on 5 January 2010

To save people having to reinvent the wheel here are a) a Windows batch file and b) Cygwin shell script to run the Saxon XSLT processor

@echo off

rem Run Saxon

c:\Progra~1\java\jre6\bin\java.exe -jar c:\Progra~1\Saxon9.2\saxon9he.jar %*
#!/bin/sh

# Run Saxon

/Progra~1/java/jre6/bin/java.exe -jar c:\\Progra~1\\Saxon9.2\\saxon9he.jar "$@"
echo

On UNIX or Linux

#!/bin/sh

# Run Saxon

/usr/bin/java -jar /usr/local/saxonhe/saxon9he.jar "$@"

You’ll obvioulsy need to modify the paths to suite the locations where you have things installed

Posted in Cygwin, Windows | Comments Off

Handy Hack:Improving Laptop Security

Posted by Alec The Geek on 31 December 2009

I have always liked having my laptop BIOS boot password on. i.e.  you can’t even boot from a CD unless you have first supplied credentials. However I’ve always been too lazy in the past to login ‘twice’, once to the BIOS and then to the operating system (OS) as a user. I’ve got around that as follows:

  1. Make sure that your screen saver is password protected and enabled
  2. Make sure your OS requires a password after resume
  3. Enable automatic user login.

Now you have to supply credentials every time you want to renew access to the machine, but you only have to supply credentials once on boot.

  • This is only useful if the machine is used exclusively  by you
  • You can either use ‘sudo‘ (Linux and OS/X) and ‘runas‘ (MS Windows) or logout/login to run programs as another user.

Posted in LinkedIn, Linux, Mac, Windows, Work Practices | 3 Comments »

Using TaskCoach with Pomodoro

Posted by Alec The Geek on 29 December 2009

As well as adopting the Pomodoro time management technique I’ve started using TaskCoach to manage my tasks and related lists (based on a GTD style workflow, which I have written about in a later post). TaskCoach has some really useful features, works across all the major desktop platforms, can be used for zero cost and is open source.

Whilst TaskCoach has no direct support for Pomodoro it is easy to add it in by using task templates.

As well as TaskCoach you may need a software Pomodoro timer, I use Pomodairo.

I have created a task template which you can use as a starting point. Download and unpack the template to a file location on your PC. Open TaskCoach and from the file menu select “Add Template”, browse to the location were you saved my template and select it. When you return to the main TaskCoach window you should now be able to select Task -> New Task from Template and see “Pomodoro Task” in the sub menu. Select the Pomodoro Task and you should see something like this

Initial template contents

You can now update the title (make as descriptive as possible so you don’t need to open the task to see what it’s about, but be pithy) and the estimated number of Pomodoros. So it looks like this

Task details updated

Task details updated

When you start your Pomodoro for this task you can open the task to:

  • Add notes
  • Add ‘ for internal interruptions and – for external interruptions (don’t forget to add any new tasks into TaskCoach)
  • At the end of the Pomodoro you can add an X

When you have completed the task you can mark it complete in TaskCoach.

Further Tips

  • A simple way to maintain a daily task is to create a ‘Today’ category in TaskCoach. You can then filter the displayed task list based on that category
  • In preferences select “Show a popup….when hovering over it” and you will see the Pomodoro related information

Posted in GTD, LinkedIn, Open Source Software, Work Practices | 2 Comments »

Learning programming the Alec the Geek way

Posted by Alec The Geek on 28 December 2009

Updated 31/Dec/2009 after reviewing material from Spidertools.com

My son, NimbleJack, is doing computing at school — 6 months so far using VB 6 and next year (our academic year starts in Jan here) he will be doing a 12 month VCE IT course — again using VB 6 <sigh>.

I’ve been pretty unimpressed with the teaching:  a) The lack of core understanding about topics like classes and algorithm design b)  reliance on the VB GUI stopping the students practising important coding skills. So I’ve been encouraging Jack to teach himself Python in order to get around some of the shortcomings of the school course (as I see them).

I chose Python because:

  • Powerful enough to be a proper language
  • OOP features
  • Not as hard to use and learn as C++ or Java

I did consider Ruby — however a lot of the Ruby code I have seen it pretty arcane to a neophyte, despite what the Rubyists claim.

Next we come to my approach to teaching. This is something of a shock to many of my ‘students’ (I’m not actually a teacher by profession by the way) as I see myself as a mentor to assist self learning rather than a ‘listen as I tell you all your need to know’ approach. How does that work? The job of the mentor as I see it is:

  • Set the topics to be learned
  • Review progress (by looking at students working code and exercise answers)
  • Identify appropriate texts and other resources for the student
  • Set the learning pace, with the co-operation of the student
  • Answer questions and be a resource when things get confusing for the student

Apart from that students are on their own. i.e. they have to

  • Plan their studies
  • Do the reading
  • Takes notes
  • Look for other resources
  • Complete the exercises
  • Identify issues and formulate enquires or questions
  • Articulate issues with the teaching and associated material (which teacher is perfect or can’t improve?)

I had made the mistake of expecting Jack to learn from Lutz’s Programming Python which a) assumed to much knowledge about programming systems and libraires and b) does not introduce OOP. This is not a criticism of the book, for someone like me it’s a very useful resource and it is aimed at advanced programming. I’ve just bought “Python Programming: An Introduction to Computer Science” by Zelle. This text concentrates on introducing core programming concepts OO, recursion, string processing etc. Python is used as the vehicle of instruction.

I’m looking forward to seeing how well the new text works, and of course once basic programming has been mastered we can move onto “What a young developer needs to know

Posted in Education, LinkedIn, Personal Opinion, Work Practices | 3 Comments »

Creating a simple professional online brand

Posted by Alec The Geek on 26 December 2009

There are many working people, particularly in my generation or older, who resolutely refuse to create or effectively maintain an online brand or image. In my experience they this it for a variety of reasons:

  • It has no value
  • It’s too hard
  • It exposes too much that should be private

I’ll address these very valid concerns and then suggest simple ways to create an online brand. Before I start let me state  that I am no a Social Media Guru, I just have an interest in these tools and have been using them for some time.

No value

It is easy to find people that claim the creation of an ‘effective online brand’ is the way to easy street and personal fulfilment. I take this with a large pinch of salt and have no doubt that most of these people are still working their day job.

However was is clear is that we are living much more of our professional and personal lives online. Recruiters, customers and the other people we want to involve in our professional lives are turning to tools like Google and LinkedIn. If we are not part of the online community in some fashion then it becomes harder for people to discover and locate us.

As well as the Internet providing a “directory” service, it also allows us to actively showcase our skills to improve our competitive edge when looking for the next position. By publishing our own material on the public Internet we are displaying a variety of desirable traits:

  • We really do have the skills and knowledge we claim because we write about them
  • We can work well in a team because we understand the value of sharing
  • We are keeping up to date with the modern world
  • We are keeping our skills updated by learning new things and writing about them

It must also be said that practising writing for the public is a professionally useful activity in its own right.

Too Hard

It is true you can spend a lot of time on this activity — however it is possible to invest less than five hours a month plus the initial set up time. There are only a few things you need to do to be up an running.

Too much is exposed

How much information you give out is up to you. The approach is suggest here does not include a twitter account for instance, so you won’t be tempted to tell the world about your breakfast.

Approach

  1. Get a blog, like this one (WordPress and Blogger are two popular free services). Aim to publish at least once a month (twice a month is better) on topics related in some fashion to your professional interests. There are more tips on blog writing at http://www.problogger.net/archives/2006/02/14/blogging-for-beginners-2/ and many other places, however be selective about the advice you follow. Your blog posts can cover topics about: your current work; new products related to your interests; considered commentaries on news and other blogs; and your new discoveries and learning.
  2. Create a slideshare account and publish your presentations and papers (make sure you have permission to publish material that may belong to your customers). When you publish on slideshare make sure write a corresponding blog post (e.g. http://alecthegeek.wordpress.com/2006/12/08/slides-and-example-scripts/)
  3. Get a LinkedIn account and make sure your profile is complete and up to date. My objective when creating my profile was to have something that could be printed off and used as a CV
  4. Add the URLs of your LinkedIn account and blog to your business card and email signature
  5. Update your LinkedIn status when you are doing something new (professionally) or publish a new blog entry
  6. When you meet people professionally try and connect with them on LinkedIn straight away

This online brand needs however to be part of a larger activity. You should network actively (get used to drinking a lot of coffee!) and seek opportunities to present at local groups. If there are larger conferences then make sure you submit a paper proposal as well — it’s all grist to the mill.

Posted in LinkedIn, Personal Opinion, Uncategorized, Work Practices | 2 Comments »

The Pomodoro time management technique

Posted by Alec The Geek on 19 December 2009

I have started to use the Pomodoro technique to try and remove distractions from  my work day and focus on what needs to be done. It’s very early days yet but it’s attractive for a number of reasons:

  • It’s simple
  • The Pomodoro task list needed can be obtained from your GTD next actions list
  • It provides a process to handle distractions such as twitter and email

The technique works by allocating work into 30 minutes chunks (called pomodoros) — 25 minutes to actually work on an specific task and a five minute break to ‘rest’. This is designed to stop you getting stale and provides a opportunity to check your email and social media sources without feeling guilty (but you only get 5 mins; and don’t forget to re-fill the water bottle and any needed trips to the toilet etc).

The process also recognizes reality by providing tools to handle interruptions and problems. For instance yesterday my clients PC borked so four of my pomodoros did not get done.

So far the process has me feeling much more in control and able to get work done. I’m looking forward to getting familiar with the process and making improvements to my work day.

P.S. I use Pomodairo on my Linux, Windows and iMac to time my pomodoros

Posted in LinkedIn, Work Practices | 2 Comments »

Top Tips and Handy Hacks for Git

Posted by Alec The Geek on 3 December 2009

Last updated 7/June/2012

I don’t think any of these ideas are originally mine and I apologise that I do no longer have the correct information to credit the appropriate people.

This is my place to put some of the tips and tricks I come across when using Git. There are of course lots of other places on the inter tubes that provide better tips. These are just mine and I’ll update this over time

  1. Before making the first commit to a repo check the email address (git config --get user.email) and if needed set the email address to different value on the repo  by omitting the --global option to the command git config user.email myhandle@cool.com)
  2. Set up a global .gitignore file to be used by all repos
    1. Create a file ~/.gitignore with some useful exclusions (e.g. the backup files for your editor or .DS_Store on OS/X)
    2. run the command git config --global core.excludesfile ~/.gitignore
  3. Help Window users and yourself by running git config --global core.autocrlf input (see GitHub help), but beware of lots of apparent line ending changes after setting this , these are benign.
  4. Keep a copy of this handy picture around as an aide-memoirGit data transport commands
  5. Get a public Git repo account. My favourite is GitHub, other options include Gitorious and BitBucket
  6. Would you like the git help text to appear in a browser. Run git config --global help.format web. N.B. Needs the html version of the Git documents installed. Don’t like the default browser? Run git config --global web.browser chromium
  7. Using https instead of git as your transport protocol? You can now use various helper programs to cache your https credentials. The GitHub setup help page has details for each platform

Using Git from Bash?

  1. Add the following to your ~/.bashrc file NB file locations correct for Ubuntu Linux 9.10 and Cygwin
    # enable git programmable completion features
    if [ -f /etc/bash_completion.d/git ]; then
        . /etc/bash_completion.d/git
        PS1='\[\e]0;\u@\h: a\]${debian_chroot:+($debian_chroot)}\u@\h:\w \$(__git_ps1 \' (%s)\')$'
    fi
    

    On Cygwin try PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '. If you cannot locate the bash completions file on your system then you can get a copy from the Git source tree

  2. If you prefer to use gvim for your commit messages then add the following to .bashrc (NB You c set this in ~/.gitconfig if you prefer git config --global core.editor=....) export GIT_EDITOR="/usr/bin/gvim --nofork". See below for more Vim tips

Using Git on Ubuntu GNU/Linux? Ubuntu users should add the Git PPA to their sources so that they get Git updates and new releases.

KDiff3 is available for Windows (handy for diffs and merges)

Using Git from Vim? — see the Vim Git tips

Posted in Git, LinkedIn, Work Practices | 5 Comments »

 
Follow

Get every new post delivered to your Inbox.

Join 273 other followers

%d bloggers like this: