Monday, 28 May 2012
BHAA Wordpress Schema ERD
Using yuml to outline how the existing BHAA schema tables might interact with the wordpress tables. The 'user' is faily simple but how we handle 'events' will be a discussion point.
Tables ending in '_Q' are questionable.
Wednesday, 9 May 2012
Updating my CV with hresume, twitter bootstrap and github
I've always found updating the format of my CV quite a pain, and during the most recent review of my CV is decided that an XML based approach would be the best.
First step was to convert the details in my existing word doc cv to a XML format. I looked at xml resume format but decided to use the hr-xml format in the end.
Next step is to use a xsl transform to convert the xml into an output format. While researching the transforms I found the hresume mircoformat which seems well supported. Madgex provide a tool for converting a html format into a PDF/Word format which solved one of my problems.
In order to ensure a level of sanity to the html layout and fonts, i decided to reuse the twitter-bootstrap resources.
While working on the xml cv file and xsl transform i used my github repository to track changes. The final piece of the puzzle was where to host the generated html resume file. I found that github provided this via the gh-pages branch which allows a file to be served as raw html to a browser.
The hresume html is hosted here and the madgex pdf is linked on the right hand column of this blog. Now to get the CV out to the market.
First step was to convert the details in my existing word doc cv to a XML format. I looked at xml resume format but decided to use the hr-xml format in the end.
Next step is to use a xsl transform to convert the xml into an output format. While researching the transforms I found the hresume mircoformat which seems well supported. Madgex provide a tool for converting a html format into a PDF/Word format which solved one of my problems.
In order to ensure a level of sanity to the html layout and fonts, i decided to reuse the twitter-bootstrap resources.
While working on the xml cv file and xsl transform i used my github repository to track changes. The final piece of the puzzle was where to host the generated html resume file. I found that github provided this via the gh-pages branch which allows a file to be served as raw html to a browser.
The hresume html is hosted here and the madgex pdf is linked on the right hand column of this blog. Now to get the CV out to the market.
Wednesday, 11 April 2012
Pear and phpunit
Update PEAR to the latest PHPUnit version
sudo pear upgrade PEAR
sudo pear config-set auto_discover 1
sudo pear install pear.phpunit.de/PHPUnit
from http://stackoverflow.com/questions/1528717/phpunit-require-once-error the files are installed to
/usr/share/php
which should contain
sudo pear upgrade PEAR
sudo pear config-set auto_discover 1
sudo pear install pear.phpunit.de/PHPUnit
from http://stackoverflow.com/questions/1528717/phpunit-require-once-error the files are installed to
/usr/share/php
which should contain
assure@snapdragonubuntu:/usr/share/php$ ls -al PHPUnit/
drwxr-xr-x 7 root root 4096 2012-01-17 14:28 .
-rw-r--r-- 1 root root 13302 2012-01-17 14:28 Autoload.php
drwxr-xr-x 4 root root 4096 2012-01-17 14:28 Extensions
drwxr-xr-x 9 root root 4096 2012-01-17 14:28 Framework
drwxr-xr-x 2 root root 4096 2012-01-17 14:28 Runner
drwxr-xr-x 2 root root 4096 2012-01-17 14:28 TextUI
drwxr-xr-x 7 root root 4096 2012-01-17 14:28 Util
drwxr-xr-x 7 root root 4096 2012-01-17 14:28 .
-rw-r--r-- 1 root root 13302 2012-01-17 14:28 Autoload.php
drwxr-xr-x 4 root root 4096 2012-01-17 14:28 Extensions
drwxr-xr-x 9 root root 4096 2012-01-17 14:28 Framework
drwxr-xr-x 2 root root 4096 2012-01-17 14:28 Runner
drwxr-xr-x 2 root root 4096 2012-01-17 14:28 TextUI
drwxr-xr-x 7 root root 4096 2012-01-17 14:28 Util
The versions can be verified by
pear list -c phpunit
Installed packages, channel pear.phpunit.de:
============================================
Package Version State
File_Iterator 1.3.1 stable
PHPUnit 3.6.7 stable
PHPUnit_MockObject 1.1.1 stable
PHP_CodeCoverage 1.1.2 stable
PHP_Invoker 1.0.1 stable
PHP_Timer 1.0.2 stable
PHP_TokenStream 1.1.3 stable
Text_Template 1.1.1 stable
Ensure the php.ini files have this path on the include path
/etc/php5/apache2/php.ini
/etc/php5/cli/php.ini
should both include the PEAR php share libraries
; UNIX: "/path1:/path2"
include_path = ".:/usr/share/php"
Thursday, 5 April 2012
The Best 10K Workout - Week 3
We supposed to be 1*2Mile and then 4*1mile but having created the garmin workouts i discovered that only one workout can be downloaded. The downloaded workout was 6*1mile - here are the details
Split,Time,Distance,Elevation+,Elevation-,Avg Pace,Avg Moving Pace,Best Pace,Avg HR,Max HR
1,5:10.1,1.60,4,6,3:14,3:11,2:41,157,169,
2,5:10.9,1.60,9,8,3:14,3:11,2:31,161,173,
3,5:11.0,1.60,9,9,3:14,3:12,2:36,163,174,
4,5:11.5,1.60,8,8,3:15,3:14,2:28,163,173,
4,5:14.5,1.60,7,7,3:17,3:14,2:37,163,170,
6,5:19.5,1.60,8,7,3:20,3:18,2:34,161,170,
Summary,48:36.9,47:17.0,11.36,45,47,4:17,4:10,2:28,145,174
Was surprised by the simular times of the first four, usual fifth slowdown and had idea that the sixth might have been quicker but the overall times are quicker.
http://connect.garmin.com/activity/165003822
These UCD tuesdays sessions might be paying some dividend. 10miler in ballyliffin this weekend. First of the 2mile sessions next week - am tempted to jump to 2*2M+2*1M.
Split,Time,Distance,Elevation+,Elevation-,Avg Pace,Avg Moving Pace,Best Pace,Avg HR,Max HR
1,5:10.1,1.60,4,6,3:14,3:11,2:41,157,169,
2,5:10.9,1.60,9,8,3:14,3:11,2:31,161,173,
3,5:11.0,1.60,9,9,3:14,3:12,2:36,163,174,
4,5:11.5,1.60,8,8,3:15,3:14,2:28,163,173,
4,5:14.5,1.60,7,7,3:17,3:14,2:37,163,170,
6,5:19.5,1.60,8,7,3:20,3:18,2:34,161,170,
Summary,48:36.9,47:17.0,11.36,45,47,4:17,4:10,2:28,145,174
Was surprised by the simular times of the first four, usual fifth slowdown and had idea that the sixth might have been quicker but the overall times are quicker.
http://connect.garmin.com/activity/165003822
These UCD tuesdays sessions might be paying some dividend. 10miler in ballyliffin this weekend. First of the 2mile sessions next week - am tempted to jump to 2*2M+2*1M.
Saturday, 31 March 2012
The Best 10K Workout - Week 2
Week 2 was supposed to be Thursday but got moved to Sat evening after a near disaster with the BHAA DCC ladies chip timing. The lap was around Bushy Park
1,5:19,1.60,3:20
2,5:19,1.60,3:19
3,5:16,1.60,3:18
4,5:15,1.60,3:16
5,5:24,1.60,3:22
6,5:18,1.60,13:19
In general it seemed a bit more consistent but lap 5 stands out as lacking concentration.
Monday, 26 March 2012
The Best 10K Workout - Week 1
The first of the 10km specific sessions was a 6 times 1 mile with 3 mins recovery. I did a 15min warmup
Lap Mile Pace
1 5:25.3 3:23
2 5:14.0 3:16
3 5:12.3 3:15
4 5:17.5 3:18
5 5:23.8 3:22
6 5:29.8 3:26
10 min cool down. http://connect.garmin.com/activity/160477117
Looking at the times i should have done some strides before the first one, since the 10s diff between 1 and 2 is too much. Over the 6 laps the average pass was 3.20 which indicates a 33.3x 10km time. Need to get the finger out for the next scheduled session which is 1*2Mile + 4*1Mile on thursday.
The schedule is outlined here http://runningtimes.com/Article.aspx?ArticleID=19553
Lap Mile Pace
1 5:25.3 3:23
2 5:14.0 3:16
3 5:12.3 3:15
4 5:17.5 3:18
5 5:23.8 3:22
6 5:29.8 3:26
10 min cool down. http://connect.garmin.com/activity/160477117
Looking at the times i should have done some strides before the first one, since the 10s diff between 1 and 2 is too much. Over the 6 laps the average pass was 3.20 which indicates a 33.3x 10km time. Need to get the finger out for the next scheduled session which is 1*2Mile + 4*1Mile on thursday.
The schedule is outlined here http://runningtimes.com/Article.aspx?ArticleID=19553
Monday, 5 March 2012
Joomla Admin Component
The aim of this blog is to outline the structure and files that make up a custom joomla 2.5 component, the impact of the naming convention and which core joomla classes the various layers extend from. In the example the component name is 'abc' and the its main focus is on CRUD operations on a book entity.
Wednesday, 29 February 2012
National Half Marathon 2011 Anaylsis
With the Meath Half coming up this weekend I decided to look at my split from the last good half I ran last yesterday in Waterford. At the time I was in the middle of the marathon training program and tapered well for the week before the race
Split Moving Time
1 3:13.4
2 3:20.5
3 3:16.1
4 3:26.3
5 3:23.6
6 3:23.1
7 3:29.1
8 3:20.9
9 3:24.2
10 3:20.3
11 3:22.7
12 3:09.2
13 3:20.3
14 3:31.5
15 3:13.1
16 3:28.5
17 3:14.4
18 3:18.1
19 3:17.5
20 3:20.3
21 3:18.7
The time splits at the main 5km markers were
16:40
33:38
50:14
66:53
16:40
16:58
16:37
16:39
I remember taking it out handy enough and was in a good position to push on in the second half of the race. Looking at the 5km splits now the 1st, 3rd and 4th splits are all similar enough with a diff of 3seconds between them. At the end of the race I was a bit disappointed to have come that close to the 70min barrier. Perhaps the day dreaming in the 2nd 5km section was were the time was lost. The overall time of 1h 10m 15sec which is the current half PB.
In terms of this weekend I'm not 100% sure about the right hamstring but I think the course and potentially the runners in the field could make this a fast course. Will see in the coming days if a new PB time will be targeted.
Tuesday, 17 January 2012
phpunit and PEAR
Back on the php unit tsting buzz today but when i ran 'phpunit' is got this
assure@snapdragonubuntu:~/bhaa/zend/trunk$ phpunit PHP Warning: require_once(PHP/CodeCoverage/Filter.php): failed to open stream: No such file or directory in /usr/bin/phpunit on line 38 PHP Fatal error: require_once(): Failed opening required 'PHP/CodeCoverage/Filter.php' (include_path='.:/usr/share/php:/usr/share/pear') in /usr/bin/phpunit on line 38
The first solution is to include the php code coverage tool
http://stackoverflow.com/questions/1528717/phpunit-require-once-error
Once installed, try again but
assure@snapdragonubuntu:~$ phpunit --help PHP Fatal error: Call to undefined method PHP_CodeCoverage_Filter::getInstance() in /usr/bin/phpunit on line 39
It seems that the version of phpunit was fairly old so i followed
http://superuser.com/questions/55055/how-to-install-an-updated-version-of-pear-phpunit-on-ubuntu
and updated PEAR and phpunit
assure@snapdragonubuntu:~$ pear list -c phpunit
Installed packages, channel pear.phpunit.de: ============================================ Package Version State File_Iterator 1.3.1 stable PHPUnit 3.6.7 stable PHPUnit_MockObject 1.1.0 stable PHP_CodeCoverage 1.1.1 stable PHP_Invoker 1.0.1 stable PHP_Timer 1.0.2 stable PHP_TokenStream 1.1.2 stable
I also added the phpunit to the include_php in my php.ini file
assure@snapdragonubuntu:~/bhaa/zend/trunk$ phpunit PHP Warning: require_once(PHP/CodeCoverage/Filter.php): failed to open stream: No such file or directory in /usr/bin/phpunit on line 38 PHP Fatal error: require_once(): Failed opening required 'PHP/CodeCoverage/Filter.php' (include_path='.:/usr/share/php:/usr/share/pear') in /usr/bin/phpunit on line 38
The first solution is to include the php code coverage tool
http://stackoverflow.com/questions/1528717/phpunit-require-once-error
Once installed, try again but
assure@snapdragonubuntu:~$ phpunit --help PHP Fatal error: Call to undefined method PHP_CodeCoverage_Filter::getInstance() in /usr/bin/phpunit on line 39
It seems that the version of phpunit was fairly old so i followed
http://superuser.com/questions/55055/how-to-install-an-updated-version-of-pear-phpunit-on-ubuntu
and updated PEAR and phpunit
assure@snapdragonubuntu:~$ pear list -c phpunit
Installed packages, channel pear.phpunit.de: ============================================ Package Version State File_Iterator 1.3.1 stable PHPUnit 3.6.7 stable PHPUnit_MockObject 1.1.0 stable PHP_CodeCoverage 1.1.1 stable PHP_Invoker 1.0.1 stable PHP_Timer 1.0.2 stable PHP_TokenStream 1.1.2 stable
I also added the phpunit to the include_php in my php.ini file
Friday, 30 December 2011
Dec 30th 2011
There will be one blog from now on so i merged the content of cycleaustralia.blogspot.com adventurtures-of-a-slite-300.blogspot.com to emeraldjava.blogspot.com, it was quite easy once i found the blogspot import export tool. Added the next 7 bhaa event and story details to glfusion. Having some trouble trying to create a function on the mysql instance on the mac. And the Rover decided it didn't want to start this evening, so the plan evening run in dublin had to be cancelled.
Monthly Km's
Details of the monthly km's ran in 2011. The plan is to update the 2012 details here. September sticks out like a sore thumb with the madness of wisdom tooth removal.
Thursday, 29 December 2011
Saturday, 24 December 2011
Marathon Time Progression
Stockholm 2002 1/7/2002 3:30:00
Zurich 2003 1/5/2003 3:01:09
Berlin 2004 1/8/2004 3:00:00
Rotterdam 2005 1/4/0205 2:44:44
Zurich 2006 1/5/2006 3:02:20
Dublin 2006 31/10/2006 2:56:38
Cork 2007 1/6/2007 3:00:00
Dublin 2008 31/10/2008 3:52:53
Dublin 2009 31/10/2009 2:57:05
Dublin 2011 31/10/2011 2:43:02
Friday, 23 December 2011
Racetec Event Setup
Racetec Event Setup Tutorial
A guide to setting up and configuring an event and races in Racetec.
Monday, 19 December 2011
Sunday, 18 December 2011
RaceTec Notes
A Race can have multiple events, each event has race numbers, splits, categories
Splits/Laps
Waves - gun start, seeding and batches.
Teams
Gun Time - time of finish line read
Net Time - finish - start time. In event setup set finish time = net time option.
Splits/Laps
Waves - gun start, seeding and batches.
Teams
Gun Time - time of finish line read
Net Time - finish - start time. In event setup set finish time = net time option.
RFID Ultra Notes
Modes
- Start - reads chip once per second. 1 second gating.
- Finish - reads 30 times per second with signal strength identify best time
Gating
- Per Reader - two times from reader
- Per Box - Single first read time only
- First Time Seen
LCD Display
Time Last Chip Code
Signal Strength Voltage Gating Mode & Interval
Antenna Mode & Session Chip Reads
Gating Mode & Interval : R (per Reader) or B (per Box) 1 (seconds gating)
Antenna : 1 (on) 0 (off) for each antenna
Reader Mode & Session : S (Start) or F (Finish). Session ID
Thursday, 15 December 2011
Git on a USB Stick
Having loads of hassel the with git, ssh and https access to github.com, so i decided to setup git on a usb stick. I can work away during the day and synch to github at night.
I followed this tutorial
http://blog.costan.us/2009/02/synchronizing-git-repositories-without.html
http://swoes.blogspot.com/2009/02/setting-up-git-offline-work-via-usb.html
And these are the basic commands i ran.
mkdir /media/Transcend/git/com_bhaa
git clone --bare . /media/Transcend/git/com_bhaa/.git
git remote add usb file:///media/Transcend/git/com_bhaa/.git
assure@snapdragonubuntu:~/bhaa/zend/trunk/joomla/components/com_bhaa$ git remote -v
usb file:///media/Transcend/git/com_bhaa/.git (fetch)
usb file:///media/Transcend/git/com_bhaa/.git (push)
assure@snapdragonubuntu:~/git/com_bhaa$ git clone file:///media/Transcend/git/com_bhaa/.git .
Cloning into ....
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 6 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (6/6), done.
assure@snapdragonubuntu:~/git/com_bhaa$ ls
index.html router.php
assure@snapdragonubuntu:~/git/com_bhaa$ git remote add usb file:///media/Transcend/git/com_bhaa/.gitassure@snapdragonubuntu:~/git/com_bhaa$ git pull usb master
From file:///media/Transcend/git/com_bhaa/
* branch master -> FETCH_HEAD
Already up-to-date.
assure@snapdragonubuntu:~/git/com_bhaa$ git remote -v
origin file:///media/Transcend/git/com_bhaa/.git (fetch)
origin file:///media/Transcend/git/com_bhaa/.git (push)
usb file:///media/Transcend/git/com_bhaa/.git (fetch)
usb file:///media/Transcend/git/com_bhaa/.git (push)
git clone --bare . /media/Transcend/git/joomala_bhaa.git
git remote add usb file:///media/Transcend/git/joomala_bhaa.git
assure@snapdragonubuntu:~/poconnell/code/joomla_bhaa$ git remote -v
usb file:///media/Transcend/git/joomala_bhaa.git (fetch)
usb file:///media/Transcend/git/joomala_bhaa.git (push)
assure@snapdragonubuntu:~/poconnell/code/joomla_bhaa$ git push usb
Counting objects: 12, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (9/9), done.
Writing objects: 100% (11/11), 2.67 KiB, done.
Total 11 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (11/11), done.
To file:///media/Transcend/git/joomala_bhaa.git
9067f85..dbc96e6 master -> master
Thursday, 24 November 2011
eclipse.ini
eclipse.ini as of 24/11/2011
-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
-showlocation
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.100.v20110505
-vm
/usr/lib/jvm/java-6-sun/jre/lib/amd64/server/libjvm.so
-product
com.springsource.sts.ide
--launcher.defaultAction
openFile
-vmargs
-Xss4m
-XX:PermSize=246m
-XX:+CMSClassUnloadingEnabled
-XX:ReservedCodeCacheSize=128m
-XX:CompileThreshold=5
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-Dosgi.requiredJavaVersion=1.5
-Xmn128m
-Xms1024m
-Xmx2048m
-Xss1m
-XX:PermSize=128m
-XX:MaxPermSize=512m
-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
-showlocation
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.100.v20110505
-vm
/usr/lib/jvm/java-6-sun/jre/lib/amd64/server/libjvm.so
-product
com.springsource.sts.ide
--launcher.defaultAction
openFile
-vmargs
-Xss4m
-XX:PermSize=246m
-XX:+CMSClassUnloadingEnabled
-XX:ReservedCodeCacheSize=128m
-XX:CompileThreshold=5
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-Dosgi.requiredJavaVersion=1.5
-Xmn128m
-Xms1024m
-Xmx2048m
-Xss1m
-XX:PermSize=128m
-XX:MaxPermSize=512m
Thursday, 28 July 2011
TestLinkAPI missing custom fields
I have this sample program using the TestLinkAPI v1.9.2-2. I want to return the list of custom fields for a TestLink projects test cases.
The exported xml output from TestLink for the suite is
package testlink;
import br.eti.kinoshita.testlinkjavaapi.TestLinkAPI;
import br.eti.kinoshita.testlinkjavaapi.TestLinkAPIException;
import br.eti.kinoshita.testlinkjavaapi.model.TestCase;
import br.eti.kinoshita.testlinkjavaapi.model.TestSuite;
import br.eti.kinoshita.testlinkjavaapi.util.Util;
import java.net.MalformedURLException;
import java.net.URL;
/**
* Hello world!
* http://testlinkjavaapi.sourceforge.net/sample1.html
*/
public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
String url = "http://xx/testlink/lib/api/xmlrpc.php";
String devKey = "xx";
TestLinkAPI api = null;
URL testlinkURL = null;
try
{
testlinkURL = new URL(url);
}
catch ( MalformedURLException mue )
{
mue.printStackTrace( System.err );
System.exit(-1);
}
try
{
api = new TestLinkAPI(testlinkURL, devKey);
}
catch( TestLinkAPIException te)
{
te.printStackTrace( System.err );
System.exit(-1);
}
System.out.println(api.sayHello());
System.out.println(api.getTestProjectByName("xx"));
TestSuite suite = api.getFirstLevelTestSuitesForTestProject(new Integer(1))[0];
TestCase[] testcases = api.getTestCasesForTestSuite(suite.getId(), true, null);
for(int c = 0;c
The exported xml output from TestLink for the suite is
But the program output is
Hello! TestProject [id=1, name=Touchpoint, prefix=TP, notes=, enableRequirements=true, enableTestPriority=true, enableAutomation=true, enableInventory=true, isActive=true, isPublic=true] Install TestCase [id=3, name=Import Indexes, testSuiteId=null, testProjectId=null, authorLogin=null, summary=null, steps=[], preconditions=null, testImportance=null, executionType=null, order=100, internalId=null, checkDuplicatedName=null, actionOnDuplicatedName=null, versionId=2, version=null, parentId=2, customFields=[], executionStatus=n] n [] TestCase [id=5, name=Import Models, testSuiteId=null, testProjectId=null, authorLogin=null, summary=null, steps=[], preconditions=null, testImportance=null, executionType=null, order=101, internalId=null, checkDuplicatedName=null, actionOnDuplicatedName=null, versionId=2, version=null, parentId=2, customFields=[], executionStatus=n] nThere are no Custom Fields listed.



