Wednesday, March 24, 2010

Open Source Project Management Software

I work for a small business and lately it is becoming apparent that we need some project management software. The budget price at the moment is $0 so to stay legal I’m investigating what options are available from the open source side of the fence.

Our primary business is the development of automation software but the scope of projects often includes managing third party hardware production and procurement. The features I’m looking for in project management software are:

  • Task scheduling
  • Resource scheduling
  • Time tracking
  • Percentage completion tracking
  • Charting – Gantt charts at least

Using the above criteria in a trawl of the web I found the packages Redmine, OpenProj, Gantt Project and ClockingIT. I will follow up with a post on my experience with each of these in the coming weeks.

Thursday, March 18, 2010

The Machines are Breeding

I checked out the Artifactory space in Mt Lawley on Monday night and was really impressed with the enthusiasm of everyone there and the quality of what people are working on. There were a couple of very impressive homebrew CNC machines downstairs and three 3D printers in various stages of completion upstairs including two MakerBots.

MakerBotOne of the really exciting things being built here is a RepRap or Replicating Rapid Prototyper. This is essentially a 3D printer that is capable of producing components that can be assembled to make a replica of itself, a concept that is both liberating for makers and incredibly scary at the same time. This ability to rapidly create new and improved generations of 3D printers using the current generation will ensure rapid improvement in this technology over the next few years.

The 3D printing process is something akin to a hot glue gun being controlled by a robot with 3 axes of movement. A long plastic extrusion (I’m told the plastic is the same stuff as Lego is made from) is fed into a heated extrusion head which squirts a very thin trail of molten plastic in layers to build up a 3D object.

RepRapThe white plastic component pictured here was printed on a 3D printer and is currently mounted on a RepRap that is under construction. The designs for these components are made freely available on the web allowing anyone with the time and inclination to get started on 3D printing.

One of the most interesting stories I heard at Artifactory was that a 3D printer being used to print a referee whistle – with the pea inside! This design was published on the web and within a very short period of time had been reproduced at several locations around the world. Something very significant to come from this event was the fact that the whistle was printed in places quicker than it could have been shipped there. If this concept was developed sufficiently we would have something approaching teleportation possible for printable objects.

I will definitely be heading back to Artifactory soon to catch up on what’s been happening with the RepRap and maybe even get my hands dirty with a bit of 3D printing this time.

Wednesday, March 17, 2010

Wind Down

I went for a windsurf at Scarborough last night and sadly it feels like the season is winding down and we’re heading into that time of year where we have marginal winds and early sunsets.

I’ve decided not to mothball my windsurfing gear completely this winter. I’ll try for a sail every few weeks so I don’t go backwards too far before next summer. The swell is much better in winter but the wind can be difficult so I’ll be trying out a few new spots to see how they handle the prevailing onshore storms or early morning easterlies.

I’ll probably keep the spots a secret though…

Thursday, March 11, 2010

My New Arduino

To my horror I recently turned 30. The experience was sweetened significantly by some great and thoughtful gifts, one of these being an Arduino Starter Kit.

It literally took me fifteen minutes from opening the box to playing a touch sensitive musical instrument that I built using a Softpot in a resistive divider and a magnetic buzzer. I was able to reuse the code from an example that comes with the Arduino environment, just modifying the frequency range I wanted the buzzer to work in. The code from the example Arduino sketch shown below is C and uses some very user friendly libraries for Arduino specific functions.

/*
  Pitch follower
Plays a pitch that changes based on a changing analog input circuit:
* 8-ohm speaker on digital pin 8
* photoresistor on analog 0 to 5V
* 4.7K resistor on analog 0 to ground
created 21 Jan 2010
by Tom Igoe
http://arduino.cc/en/Tutorial/Tone2
*/

void setup() {
  // initialize serial communications (for debugging only):
  Serial.begin(9600);
}

void loop() {
  // read the sensor:
  int sensorReading = analogRead(0);
  // print the sensor reading so you know its range
  Serial.println(sensorReading);
  // map the pitch to the range of the analog input.
  // change the minimum and maximum input numbers below
  // depending on the range your sensor's giving:
  int thisPitch = map(sensorReading, 0, 1000, 50, 3000);

  // play the pitch:
  tone(8, thisPitch, 10);

}

The open source nature of the Arduino hardware and software allows amazingly rapid realisation of a project. The hard work done by others previously can be used as customisable building blocks, which can then be shared for use as the building blocks of the next project.

We live in exciting times!

Wednesday, March 10, 2010

BabelFish

A colleague recently recommended using BabelFish as a data historian after viewing it in action on an oil and gas site.

I’ve only had a quick look at the website but based on the features listed here and described to me by the colleague I think BabelFish bears a detailed review, which I will post here if time and trial versions permit.

Tuesday, March 9, 2010

Pathping Command

I’ve just discovered a new windows command line utility called pathping today. I’m a bit of a purist and hate installing extra utilities to use from the command line so I was happy to see that this one was included with my Windows 7 Professional installation.

This command produces something similar to the output from both the ping and tracert commands but if you are prepared to wait for the data collection period it provides statistics of each node based on data collected over that time.

This is the output from pathping google.com:

Tracing route to google.com [66.102.11.104]
over a maximum of 30 hops:
  0  ######### [192.168.0.5]
  1  192.168.0.1
  2  nexthop.wa.iinet.net.au [203.59.14.16]
  3  te7-1.per-qv1-bdr1.iinet.net.au [203.215.4.18]
  4  gi15-1-1.syd-ult-core1.iinet.net.au [203.215.20.4]
  5  as15169.sydney.pipenetworks.com [218.100.2.97]
  6  66.249.95.232
  7  64.233.174.242
  8  syd01s01-in-f104.1e100.net [66.102.11.104]

Computing statistics for 200 seconds...
            Source to Here   This Node/Link
Hop  RTT    Lost/Sent = Pct  Lost/Sent = Pct  Address
  0                                           ######### [192.168.0.5]

                                0/ 100 =  0%   |
  1    5ms     0/ 100 =  0%     0/ 100 =  0%  192.168.0.1
                                0/ 100 =  0%   |
  2   22ms     0/ 100 =  0%     0/ 100 =  0%  nexthop.wa.iinet.net.au [203.59.14
.16]
                                0/ 100 =  0%   |
  3   20ms     0/ 100 =  0%     0/ 100 =  0%  te7-1.per-qv1-bdr1.iinet.net.au [2
03.215.4.18]
                                0/ 100 =  0%   |
  4   81ms     1/ 100 =  1%     1/ 100 =  1%  gi15-1-1.syd-ult-core1.iinet.net.a
u [203.215.20.4]
                                0/ 100 =  0%   |
  5   81ms     0/ 100 =  0%     0/ 100 =  0%  as15169.sydney.pipenetworks.com [2
18.100.2.97]
                                0/ 100 =  0%   |
  6   76ms     0/ 100 =  0%     0/ 100 =  0%  66.249.95.232
                                0/ 100 =  0%   |
  7   79ms     0/ 100 =  0%     0/ 100 =  0%  64.233.174.242
                                0/ 100 =  0%   |
  8   82ms     0/ 100 =  0%     0/ 100 =  0%  syd01s01-in-f104.1e100.net [66.102
.11.104]

Trace complete.

I had to wait 200 seconds for these results but they are pretty comprehensive. The link looks pretty good – only one packet lost on the hop between Perth and Sydney.