Archive for the ‘Open Source Software’ Category
Posted by Alec The Geek on 23 November 2012
When you’re a Git user working on a project using Subversion (SVN) using the Git SVN client is a great option, I’ve been using it for the last twelve months and it works really well. However sometimes it’s not quite good enough when things like Ant scripts are written for SVN.
My colleagues use TortoiseSVN. which among other things provides support for standard commit message templates. This uses a SVN property called “tsvn:logtemplate“, is a specific feature of ToirtoiseSVN and it not standard in the SVN client. Git has a simliar feature using the config value commit.template and it’s standard on the git client.
Today I wrote an svn wrapper script to provide the standard template feature to the command line SVN client. You may find it useful. It’s written for OS X and assumes you have Git configured and SVN Installed via Mac Homebrew — however it will be trivial to modify it for your environment,
The script does does a number of things:
- It passes all SVN sub-commands, except commit, to svn without change
- It checks all the arguments to if the commit message has already been supplied (run the command and exit)
- It checks to see if the ”tsvn:logtemplate” is set
- If the TortoiseSVN template is not set then it attempts to find the Git template
- If that fails then it falls back to an internal template
- The template is placed in a file and another message file
- The user is prompted to edit the message file
- The updated message file is checked against the template — if the user has not made a change the commit is aborted
- The svn client is called with the message file.
Updated March/2013 – Somehow an stupid bug crept in. Now squashed.
Updated Jan/2013
I have added a new feature when using svn update:
- Check if the working copy has uncommitted changes. NB Files that are not registered are ignored in this check
- Abort the
update if files are already modified
YMMV
Like this:
Like Loading...
Posted in Git, LinkedIn, Mac, Open Source Software, Software Development, Work Practices | Comments Off
Posted by Alec The Geek on 23 June 2012
The trend to towards the post personal computer age gathers pace and I can’t help but feel a little apprehensive. For those who have been missing the current bruha here is the short version
- For the last few decades owners have been able to control what they put on their computers and how they use them. They could even get code written for their specific need
- In the new world devices are locked down by the vendor. You can only install their operating system, approved applications from their distribution channels and only consume their partners media. Most people will be happy as it will be a simpler stress free experience. So a large market for open personal computers disappears
- Governments will increase their control on the information disseminated through the internet, the advent of national fibre networks with a single choke point wil make this a lot easier
- Corporations will deploy their line of business applications via the cloud to desktop and mobile. The’ll be happy with the cost savings and improved security and this removes the second major market for open personal computers
So what price engineering expertise and personal liberty?
Like this:
Like Loading...
Posted in Open Source Software, Personal Opinion | Comments Off
Posted by Alec The Geek on 24 March 2012
If you are getting the above problem try installing Subversion. If you are using homebrew for OS X then make sure you install package svn, not subversion.
Like this:
Like Loading...
Posted in Git, Mac, Open Source Software, Software Setup | Comments Off
Posted by Alec The Geek on 14 January 2012
I’m at the Melbourne Maker Faire and a few cool things have caught my eye:
- the FreeRTOS for Arduino — and @fei_li_pu has persuaded me to take another look at Eclipse as an AVR development environment
- Cool wooden journal covers from the Beehive
- the MHV Arduino board
- Up! 3D Printer — shame about the price and lack of Linux support though
- @legopoerty
- the Range of stuff from Freetronics. I hope they support the Raspberry Pi when it comes out
There was also lots of other cool things, steam punks, crafters, Smart Energy Group and so on. If you missed it hard luck.
Like this:
Like Loading...
Posted in Education, Open Source Software, Uncategorized | Comments Off
Posted by Alec The Geek on 16 November 2011
(updated Mar/2012)
If you’ve used the excellent Regex Coach for Perl programmers on Windows but have been dissapointed that the current version does not run on Mac OS/X, fear not. You can build Wine and then it runs well.
- Install HomeBrew
- Run the command
brew install wine && brew install winetricks && winetricks vcrun2005
- Download the Regex Coach installer
- Run the command
wine regex-coach.exe to install
- To run Regex Coach run the command
wine ~/.wine/drive_c/Program\ Files/The\ Regex\ Coach/The\ Regex\ Coach.exe
The equivalent process also works for the Linux
Like this:
Like Loading...
Posted in Mac, Open Source Software, Perl | Comments Off
Posted by Alec The Geek on 11 December 2010
Here are my suggestions on how to set up your Perl development environment:
(NB If you are a Perl novice then start here)
- Install a copy of Perl
- Windows: Strawberry Perl
- UNIX developer with a Windows desktop? Use Cygwin
- Linux: Your distro should have Perl. See here for some suggestions on installing CPAN modules
- UNIX: I built my own and manually installed the modules. Easier than it sounds.
- OS/X: Comes with Perl
- Download a copy of the Perl Documentation and create a convenient shortcut
- Configure your favourite editor for Perl. There are some guidelines on Perl.net
- A decent version control tool (I use Git)
- Install PerlCritic, Perltidy, Devel::REPL, Module::Starter::PBP, GetOpt::Long and RegEx Coach
- Depending on the work you do consider the following modules as part of your ‘base’ kit:
- DBI::SQLite for DB test mocking (NB Depending on your testing needs you will also need other Test modules)
- Moose for OO programming
- See the list at Perl.Net
- Run “
perl -MModule::Starter::PBP=setup” and accept the defaults
- Modify the templates used by your editor and Module::Starter so that .pl have the following additional code:
# Main program Entry point
sub main {
use Getopt::Long qw(GetOptionsFromArray);
# TODO Add options variables here
# GetOptionsFromArray(\@_,
#TODO Add option processing here
#);
#TODO Add application code here
}
return main(@ARGV) unless caller();
1; # So we can treat this as a module for test purposes
Use:
- Have the local Perl docs open in your browser — there is a build in search engine
- Test perl assumptions about how Perl will behave by using Regex Coach and re.pl (re.pl runs from a terminal)
- Write your script (and modules) as a set of subroutines that you can test using Test::More and it’s siblings. You can test script subroutines by writing test scripts in the normal fashion and then running prove with the command line options “
-I ./lib -I .“
- Get good with your editor
- Use the branching feature of your version control tool to manage features (you are using Git right?)
- Don’t be afraid to refactor and fix stuff as you discover issues with previously written code
Caveats: This is based on my personal experience and preferences. Use it as a starting point only. I currently use Perl on Cygwin, Solaris and Linux with the Vim or vi editor. I tend to hack data munching scripts and I don’t use OO programming. YMMV.
Like this:
Like Loading...
Posted in Open Source Software, Perl, Software Development | 8 Comments »
Posted by Alec The Geek on 4 December 2010
I recently gave a new presentation on Improving Software Processes at OSDC 2010 in Melbourne, AU
Like this:
Like Loading...
Posted in Application Lifecycle Management, Change Audit, LinkedIn, Open Source Software, Work Practices | Tagged: linkedin | Comments Off
Posted by Alec The Geek on 4 August 2010
Updated 12/Oct/2010 — This proposal has been accepted so I hope to see you at OSDC 2010
The request for papers is up at The Open Source Developers Conference AU so get your ideas in. Here is my proposal for this year Read the rest of this entry »
Like this:
Like Loading...
Posted in Application Lifecycle Management, ego, LinkedIn, Open Source Software, Project Management, Software Configuration Management, Software Development, Work Practices | Comments Off
Posted by Alec The Geek on 20 June 2010
I’ve mentioned a couple of time that I planned to study for my RedHat Certified Engineer qualification. As I’ve now cleared the decks a bit I been able to start the process. So far I have:
More Notes to follow
Like this:
Like Loading...
Posted in Education, EEE PC, LinkedIn, Linux, Open Source Software, Software Setup | 1 Comment »
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.
Like this:
Like Loading...
Posted in Git, LinkedIn, Open Source Software, Software Development | Comments Off
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:
- Install TaskCoach
- 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
- 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…
- 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
- Optionally make “.Next Action” mutually exclusive on sub categories (suggested by the mailing list)
- Create the same people centric categories under Waiting
- 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)
- Edit the “.Next Action” category and make it a different colour (NB Not red as that will hide overdue tasks)
- Optionally make
- 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:
- Create top level tasks for your current projects. Create actions as subtasks under projects (You can drag and drop tasks between or into projects)
- Add new actions to the list in the normal fashion, so the task list becomes an inbox as well
- Add due and start dates as required
- Deferred actions
- Delegated actions
- Tasks with a real due date
- 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
- 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
Like this:
Like Loading...
Posted in GTD, LinkedIn, Open Source Software, TaskCoach | 6 Comments »
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
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
Like this:
Like Loading...
Posted in GTD, LinkedIn, Open Source Software, Work Practices | 2 Comments »
Posted by Alec The Geek on 4 September 2009
I’ve just had an article published by Sitepoint that aims to introduce Git to people who may not have programming experience and are more comfortable using a GUI rather the command Line. “Git: Your New Best Friend“
Like this:
Like Loading...
Posted in Cygwin, Git, Open Source Software, Software Development, Web, Windows, Work Practices | Comments Off
Posted by Alec The Geek on 9 July 2009
After Perl Mongers last night there was a short discussion over tools. Here is my preferred list
- Vim editor
- Git version control (and GitHub to host my remote repos)
- Linux operating system
- Perl and CPAN for programming. Not a prefect language, but has wide applicability to the the types of problems I solve
- Google search engine
- Email (gmail)
- Bash and the UNIX command line tools (sort, find, grep etc etc)
- OpenOffice
- Paper journal/notebook (currently using a Moleskine, but I prefer a Miquelrius)
Like this:
Like Loading...
Posted in ego, LinkedIn, Linux, Open Source Software, Work Practices | Comments Off
Posted by Alec The Geek on 21 January 2009
The current version of git installed with Cygwin (1.5.x) has at least one annoying bug so it’s worth building the latest version (NB I have almost all of Cygwin installed – you may need to install additional development tools and libs):
- Download and unpack the source code. Pointer here
- Run ‘./configure –prefix=/usr/local’
- Run ‘make test’
- Ignore errors relating to not detecting unwritable repos
- run ‘make install’
- run ‘hash -r’
- Make sure it’s installed with ‘type git’ and ‘git –version’
Update March/09 — I found more detailed instructions
Like this:
Like Loading...
Posted in Cygwin, Git, LinkedIn, Open Source Software, Software Development | 2 Comments »
Posted by Alec The Geek on 10 January 2009
Updated 6/Feb/09
I’m currently working on on a project to deploy some complex banking systems and we have some somewhere in the region of 40 environments (various testing, production and development instances)
I’ve written some Perl to automatically configure environments using Text::Template. Now I’d like to automate deployment and have some form of change auditing (c.f.AIDE or Tripwire).
So a new project (which I hope will also have some useful ideas for others):
- Project Outline and User stories
- General Approach using git (other tools could probably be used)
- Define a staging repo
- Create a remote branch of each deployment environment
- Create a repo on each environment
- Define a custom merge driver that overwrites (old files with new releases)
- For each release
- Create a new branch (overkill?)
- Add new release to new branch
- tag
- To deploy
- Merge (using new driver) onto environment branch
- tag
- Push to remote
- On remote perform
git reset --hard HEAD
- configure
- add and commit configuration changes
- on staging pull config changes from remote repo
- Now use git status etc. on environments to track any changes
- Staging should have historical record of changes
Like this:
Like Loading...
Posted in Change Audit, Git, Open Source Software, Perl | Comments Off
Posted by Alec The Geek on 2 January 2009
I’ve has my EEEPC 1000H for over a week now and I’m so totally enamoured of the small device that it’s become my sole platform for all my computing. Obviously this has involved some adjustments.
- The keyboard requires considerable patience — at least for someone with my large fingers
- My fingers are having to learn new positions to try and stop keep brushing the trackpad and moving the cursor to somewhere completely different. This is currently the most frustrating aspect of using the machine.
Some things to try.
- Consider upgrading to Ubuntu 9.10
- Get a bluetooth mouse
- Try the LXDE desktop and the Xfce4 desktop. They are both tuned for low resource use
- Consider using DevilsPie to reduce the amount of screen space used by removing the title bar and forcing all screens to be full maximum, particularly of your screen is smaller than 10″
- Configure Skype to use the hda sound devices
- Carry a short USB cable for thumb drives etc. Thy can’t always fit in space you have at the side of the netbook
- Get used to using keyboard shortcuts — it mush easier than using the trackpad
- Try using Vim and it’s plugins rather than a large IDE
- Try using an alternative email and PIM program to Evolution. Thunderbird for instance works better on the smaller screen and is faster
- Use multiple desktops and flip between them using <ctrl><alt><arrow> (Gnome default), for instance when referring to other material in the middle of witing an email. It’s an easier way of switching back and forth between two applications that using something like <alt><tab>
- Use the <F11> in Firefox to move into full screen mode (many other applications have a similar feature)
- Do as much as possible by typing at the terminal
- Try setting the font size larger than normal (particularly terminal fonts)
Like this:
Like Loading...
Posted in EEE PC, Linux, Open Source Software, Software Development | 2 Comments »
Posted by Alec The Geek on 1 January 2009
This week I at last did something I’d wanted to do for a long time and release some of Voga‘s intellectual property to the wider world.
I have already made material available either through this blog or via Slideshare. However for a geek it’s obviously better to publish complete projects in an Open Source manner so they can be freely copied, modified and shared.
For historical reasons this had been inconvenient to do as I used to hold everything in a single Subversion repository. Not only did this contain my potentially open material, but also my customers private data and my business records (yes, I keep my accounts database in a version control repository!). A few months I migrated my Subversion repo to git, but I still had a single large repo and no time or skill to fix it.
However today I bit the bullet
- Removed all my possibly public data to another directory structure
- Tidy up my current repo by removing all the old ‘trunk’ directories — as a solo consultant I was lucky and had never had to branch my projects. Commit my new streamlined repo
Now to work on the the public projects
- Identify a complete project and make sure it had no proprietary data. This is potentially time consuming
- Tidy up some of the names
- Create a new git repo; add the project files; and commit
- Create a new repo on Github for my project
- Follow the simple instructions to upload my project to github
To Do
- Update existing references to my projects I can find and update to point to the repo
- Add the correct license files
- Start again for as many projects as possible, please be patient
I’ll still keep presentation copies on Slideshare because that is much more convient for most people.
A big thank you to the git developers and github for making this so easy
Like this:
Like Loading...
Posted in Git, LinkedIn, Open Source Software, Software Development, Uncategorized, Work Practices | Comments Off
Posted by Alec The Geek on 24 October 2008
I recently decided, despite using nothing but Linux on my laptop, that I had become a suite using purely graphical Office tools (Evolution for calendar, email etc, OpenOffice to write documents and presentations and so on). I was becoming a very rusty geek!
Time for Plan A. Migrate email, task management etc to emacs, start using Docbook for presentations and document creation (in Emacs of course) with git to protect my precious work.
However so far it all feels a bit hard… There is no consensus on the best way to configure Emacs for laptop email using IMAP services (mix and match any of Dovecot, fetchmail, Gnus, RM, procmail, etc etc); and getting a decent fop processor working is harder than it should be (I got going instead with dblatex in the end) — now writing Docbook documents seems hard as well — all that XML *sigh*. I’m not even feeling at home with git yet
.
Update 29/Aug/08: Sacha Chua has some great advice to share on using Gnus for email
Anyone have some tips or encouragement to share?
Like this:
Like Loading...
Posted in ego, Linux, Open Source Software, Work Practices | Comments Off
Posted by Alec The Geek on 5 August 2008
Linux.com :: Why Microsoft cozied up to open source at OSCON
The company [Microsoft] wants to lure those developers back. Its open source play is aimed squarely at them, and at independent software vendors (ISV). They mean potential sales, and Microsoft has embraced the open source development model in order to tempt them away from the open source platform and over to the Windows platform.
A fairly insightful article on why MS turned up at PDX for OSCON last month. Given the huge market developers could have for any applications they develop using the MS ‘Open Source’ model this has to something that is taken seriously. The pleasing thing is that MS now sees OSS as such a threat — however now that the communities have Redmond’s attention it is going to be a tough battle for mind share.
Let’s keep doing what we do and stay frosty.
Like this:
Like Loading...
Posted in Business, Open Source Software, Personal Opinion, Windows | Comments Off