Tuesday, August 27, 2013

Spring Insight on Tomcat failing to start

Spring Insight is a powerful tool to record timing data for web applications deployed on a Spring server, but can also be used on Tomcat.
However, it does require a large amount of configuration before it will run correctly on a Tomcat deployment.
One exception that caused me a large amount of grief was the descriptive java.lang.NullPointerException at java.io.File.(File.java:222) at com.springsource.insight.collection.tcserver.ltw.TomcatWeavingInsightClassLoader.readInsightConfig(TomcatWeavingInsightClassLoader.java:67) at com.springsource.insight.collection.tcserver.ltw.TomcatWeavingInsightClassLoader.start(TomcatWeavingInsightClassLoader.java:50)
  Fortunately the source code for all Spring products is available to download at http://maven.springframework.org/release/com/springsource/ I am using Insight 1.5.1.SR2, and the source for the TomcatWeavingInsightClassLoader class is in the insight-collection project at http://maven.springframework.org/release/com/springsource/insight/insight-collection-tcserver/1.5.1.SR2/insight-collection-tcserver-1.5.1.SR2-sources.jar Examining the class, on line 67 we can see the following File insightDir = new File(System.getProperty("insight.base")); So Insight is looking for the insight root directory in your deployment, which can be set at run time. To resolve the problem, add the system parameter "insight.base" to your tomcat startup with the value of the insight directory in the deployment, e.g. "-Dinsight.base=C:\tomcat\insight"

Monday, August 12, 2013

Persist timing data from Spring Insight

Spring Insight is a powerful tool for tracing time spent in various methods during the progress of a web application call. While you can export traces from the Insight UI, the resultant file is in binary format, and can only be opened with the Insight UI itself. Fortunately, there is a workaround if you want to persist the data recorded during a call.
Insight adds extra headers to the repsonse object from a call - X-TraceId and X-TraceUrl. The traceId is (unsurprisingly) the id of the compelted trace and the trace url is a link to the trace on the Insight server that is in the form "/insight/services/traces/?type=[json|xml] with json as the default.
If you enter this url into your browser, the Insight server will return the data from the call in the selected format.
If you can access the response headers programattically (e.g. in a headerless browser, or using a proxy) you will be able to access the X-TraceId and X-TraceUrl values and from there can request and persist the Insight data.

Wednesday, July 24, 2013

SalesForce.com Authorised Application using Apache HttpComponents

This article describes how to create a basic authorised application that will query the SalesForce.com API without the need for logging in to your account
  1. Register a SalesForce.com remote application
    • Create a SalesForce.com Developer account - http://developer.force.com/
    • On connection to the salesforce.com api, you must provide your password and the security token combined as a string
    • Log into your account and click App Setup(in the menu on the left) -> Create -> Apps
    • Under "Connected Apps", click New
    • Enter the Connected App Name, Connected API Name and Contact Email (note - it's recommended to not use spaces in the App and API names)
    • Under OAuth Settings. select "Enable OAuth Settings"
    • Enter the Callback URL - in an OAuth application this is the URL the application will return to after authentication, which will not be needed here, but the value cannot be blank
    • Select "Access and manage your data (api)" in the "Available OAuth Scopes" and add it to the "Selected OAuth Scopes"
    • Click Save
    • In the application description page that opens, note the Consumer Key, and Consumer Key values (you will need to click "Click to reveal" to see it)
    • In the user dashboard, click Personal Setup -> My Personal Information in the menu on the left, then Reset My Security Token.
    • Your security token will be not be displayed on screen, and will be sent to the email address associated with the salesforce.com account
      • e.g. for password "myPassword" and security token "mySecurityToken" the connection is authorised with the string "myPasswordmySecurityToken"

  2. Develop application in Eclipse
    • Create a new Java project
    • Add the following jar files:
      • From the apache http components project  - http://hc.apache.org/ - you will need the following jar files
        • httpclient
        • httpcore
    • The following code snippet will open a connection to the SalesForce API and return a JSON document
      • Replace the values in angle brackets with the appropriate values from your setup
      • String accessToken = null;
        String instanceUrl = null;
        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost("https://login.salesforce.com/services/oauth2/token");
        // prepare the parameters
        ArrayList postParameters = new ArrayList();
        postParameters.add(new BasicNameValuePair("grant_type", "password"));
        postParameters.add(new BasicNameValuePair("client_id", {your application client id}));
        postParameters.add(new BasicNameValuePair("client_secret", {your application client secret}));
        postParameters.add(new BasicNameValuePair("username", {your salesforce.com username}));
        postParameters.add(new BasicNameValuePair("password", {your salesforce.com password + your salesforce.com security token}));
        // prepare the form, and set the encoding
        UrlEncodedFormEntity urlEncodedFormEntity = new UrlEncodedFormEntity(postParameters);
        urlEncodedFormEntity.setContentEncoding("UTF-8");
        httpPost.setEntity(urlEncodedFormEntity);
        // place the right content type for the form
        httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded");
        // execute the request to get the tokens
        HttpResponse httpResponse = httpClient.execute(httpPost);
        int statusCode = httpResponse.getStatusLine().getStatusCode();
        if (statusCode == HttpStatus.SC_OK) {
            ObjectMapper objMapper = new ObjectMapper();
            InputStreamReader inputStreamReader = new InputStreamReader(httpResponse.getEntity().getContent(), "UTF-8");
            JsonNode rootNode = objMapper.readTree(inputStreamReader);
            accessToken = rootNode.get("access_token").asText();
            instanceUrl = rootNode.get("instance_url").asText();
        }
        System.out.println("AccessToken: " + accessToken);
        System.out.println("instanceUrl: " + instanceUrl);
  3. Query the SalesForce API
    • The instanceUrl is the salesforce.com server that all subsequent queries must be sent to, and the access token must be set as the "Authorization" header in all subsequent requests
    • One of the simplest requests is to retrieve the details for the customer accounts associated with your salesforce.com account, this list can be seen in the Account header on your dashboard
    • Use the following code snippet to request the list of accounts and store the JSON string in the accounts String object
      • URIBuilder uriBuilder = new URIBuilder(instanceUrl + "/services/data/v28.0/query");
        uriBuilder.addParameter("q", "SELECT Name, Id, BillingStreet, BillingCity, Phone, Website from Account LIMIT 100");
        String accounts = null;
        HttpGet httpGet = new HttpGet(uriBuilder.build());
        httpGet.addHeader("Authorization", "OAuth " + accessToken);
        try {
            httpResponse = httpClient.execute(httpGet);
            if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
             InputStreamReader inputStreamReader = new InputStreamReader(httpResponse.getEntity().getContent(), "UTF-8");
             accounts = objMapper.readTree(inputStreamReader).toString();
            }
        } finally {
             httpGet.releaseConnection();
         }
        System.out.println(accounts);
While these snippets will work perfectly well in a command line application, in a web application, it is prudent to persist the instance url and access token in the user's HttpSession object.

Thursday, June 20, 2013

Sending a Node.JS request module request through a proxy

all very simple really, just add the "proxy" attribute to the request call
    request({
        proxy: ':',
        url: endpointUrl ,
        method: requestMethod,
        body: requestBody
    }).pipe(res);

Tuesday, June 04, 2013

How to delete multiple jobs in Jenkins

over time, a Jenkins server can amass a large of jobs (or projects as the "Delete" link calls them) and having to delete them one by one can be laborious to perform through the UI.

Fortunately, Jenkins includes a scripting engine that can be run through the UI that handles the task very well.

Open the following URL: http:///script
and enter the following code in the textbox:

for(job in jenkins.model.Jenkins.theInstance.getProjects()) {
    job.delete();
}

and moments later, all the jobs are removed!

Tuesday, April 16, 2013

Thoughts on thoughts and prayers, and prayer

Following the explosions in Boston yesterday, my timelines in facebook and twitter are filled with outpourings of grief and sadness for the victims, but the phrase "my thoughts and prayers" is frequently included in all online missives. This made me think - what does "my thoughts and prayers" actually mean?

Going on my browser history today, my thoughts have been on Nintendo's plumbing brothers Mario and Luigi, the maven build tool, footballer Sean McGinty, the casting of Splinter in Ninja Turtles, and some of the online reactions to the explosions in Boston. But I can honestly say I haven't really thought about the victims, or their familes.

What about prayers? While raised Catholic, I only attend mass infrequently throughout the year, the last time a little under a month ago, and I rarely pray for anything, except when explicitly asked to do so.

Has the phrase itself lost some of its meaning? Has it become one of these catch all, non offensive colloquialisms that people use? Another one in frequent use is "have a good one!" for an online friend's birthday. Particularly if you don't really know this "friend" or haven't spoken to them recently so you can't include any references to recent events in their life, and you don't want to wish them to have a bad one, do you? Having seen countless going away cards in my decade of full time employment, the phrase "best of luck mate" is another one in frequent use, often multiple times on the same card.

In both cases my internal translator reads them as "I can't think of anything else to say".

Maybe that's the reason why we use the "thoughts and prayers" phrase in cases of atrocity, we simply cannot think of anything else to say. Our own words fail us, so we use someone else's.

Maybe we need to think more about people and pray for them before telling people we are thinking of and praying for them.

Friday, March 08, 2013

Irish in the Premier League

A recent post on foot.ie stated the the author could not remember when Ireland had so few players starting in the Premier League. Taking this on board, I resolved to examine the Irish Abroad database and get the list of players who have started at least one Premier League game in each of the last seven seasons. With 25 players starting at least one game in the 2012/2013 season, it is below the average for the previous six season, which is 28, but Irish players are still the third most represented nation in the PL, after England and France

2006-2007: 24
Stephen Carr, Lee Carsley, Kevin Doyle, Damien Duff, Richard Dunne, Steve Finnan, Caleb Folan, Derek Geary, Shay Given, Matt Holland, Stephen Hunt, Stephen Ireland, Robbie Keane, Paddy Kenny, Kevin Kilbane, Shane Long, Alan O'Brien, Andy O'Brien, John O'Shea, Stephen Quinn, Alan Quinn, Darren Randolph, Andy Reid, Steven Reid

2007-2008: 27
Stephen Carr, Lee Carsley, David Connolly, Colin Doyle, Kevin Doyle, Damien Duff, Richard Dunne, Steve Finnan, Caleb Folan, Shay Given, Ian Harte, Stephen Hunt, Stephen Ireland, Robbie Keane, Stephen Kelly, Kevin Kilbane, Shane Long, Paul McShane, Liam Miller, Daryl Murphy, Andy O'Brien, Joey O'Brien, Roy O'Donovan, John O'Shea, Steven Reid, Andy Reid, Anthony Stokes

2008-2009: 24
Keith Andrews, Rory Delap, Damien Duff, Richard Dunne, Caleb Folan, Darron Gibson, Shay Given, Stephen Ireland, Robbie Keane, Stephen Kelly, Dean Kiely, Kevin Kilbane, Liam Lawrence, Paul McShane, Liam Miller, Daryl Murphy, Andy O'Brien, Joey O'Brien, John O'Shea, Steven Reid, Andy Reid, Keith Treacy, Glenn Whelan, Marc Wilson

2009-2010: 32
Keith Andrews, Stephen Carr, Lee Carsley, Rory Delap, Kevin Doyle, Damien Duff, Richard Dunne, Keith Fahey, Steve Finnan, Caleb Folan, Kevin Foley, Darron Gibson, Shay Given, Stephen Hunt, Stephen Ireland, Robbie Keane, Stephen Kelly, Andy Keogh, Kevin Kilbane, Liam Lawrence, Chris McCann, James McCarthy, Paul McShane, David Meyler, Daryl Murphy, Andy O'Brien, John O'Shea, Andy Reid, Steven Reid, Stephen Ward, Glenn Whelan, Marc Wilson

2010-2011: 27
Keith Andrews, Leon Best, Stephen Carr, Ciaran Clark, Seamus Coleman, Rory Delap, Kevin Doyle, Damien Duff, Richard Dunne, Keith Fahey, Kevin Foley, Darron Gibson, Stephen Hunt, Stephen Ireland, Robbie Keane, Stephen Kelly, James McCarthy, David Meyler, Andy O'Brien, John O'Shea, Steven Reid, Andy Reid, Conor Sammon, Jonathan Walters, Stephen Ward, Glenn Whelan, Marc Wilson

2011-2012: 34
Keith Andrews, Leon Best, Ciaran Clark, Seamus Coleman, Simon Cox, Rory Delap, Kevin Doyle, Damien Duff, Shane Duffy, Richard Dunne, Kevin Foley, Anthony Forde, Darron Gibson, Shay Given, Wes Hoolahan, Stephen Hunt, Stephen Ireland, Robbie Keane, Stephen Kelly, Paddy Kenny, Shane Long, James McCarthy, James McClean, David Meyler, John O'Shea, Anthony Pilkington, Steven Reid, Conor Sammon, Marc Tierney, Jonathan Walters, Stephen Ward, Keiren Westwood, Glenn Whelan, Marc Wilson

2012-2013: 25
Ciaran Clark, Seamus Coleman, Damien Duff, Robert Elliot, Darron Gibson, Shay Given, Ian Harte, Wes Hoolahan, Noel Hunt, Stephen Ireland, Stephen Kelly, Shane Long, James McCarthy, James McClean, Joey O'Brien, John O'Shea, Alex Pearce, Anthony Pilkington, Steven Reid, Enda Stevens, Jay Tabb, Marc Tierney, Jonathan Walters, Glenn Whelan, Marc Wilson

Monday, December 31, 2012

Things that were true about me on 1st January 2012 that are not true on 31st December 2012

I've never been to Belgium, Poland, Skibereen or Argentina
I speak no Polish
I've never seen grouplove, Two Door Cinema Club, Stone Roses or Snow Patrol live
I've never had a tooth removed
I haven't published an article since I left IBM
I've never been to two weddings on two consecutive days
I've never been photographed with a mayor
I've never had a photo go viral
I've never been to a Boca Juniors game
I've never organised a film screening
I've never been interviewed on 98FM, Q102 or Phantom 105.2
I've never been to an Irish rugby international at Thomond Park
I am not followed on twitter by anyone with Irish international caps
I've never been to a wedding in the Southern Hemisphere
I've never gotten into the second round of the Facebook Hacker Cup
I don't own a raspberry pi, tablet computer, or giant bean bag
I've never given a presentation in my new job

Tuesday, December 25, 2012

Ireland Monthly Records

After figuring out the highest ranked team beaten, and lowest ranked side lost to, by recent managers a few weeks ago, I was reminded of Staunton's quote that we play better in March anyway (at least I think that's what it was, the only record I can find of it is here: http://www.munster-express.ie/sports/studsup/staunton-survives-and-its-all-to-play-for-in-september/ ) so I decided to see if I could use the same results set as before to find out what month we play best in. The results history I'm working off of is here if you want to check any of them: https://sites.google.com/site/tetsujin1979/matches
Month         P  W  Win %  D Draw %  L  Loss %  GF GF/G   C  C/G
January       0  0  0.00%  0  0.00%  0   0.00%   0    0   0    0
February     26 13 50.00%  6 23.08%  7  26.92%  36 1.38  24 0.92
March        41 24 58.54%  7 17.07% 10  24.39%  61 1.49  37 0.90
April        38 15 39.47%  8 21.05% 15  39.47%  45 1.18  45 1.18
May         106 35 33.02% 22 20.75% 49  46.23% 123 1.16 165 1.56
June         64 25 39.06% 21 32.81% 18  28.12%  77 1.20  71 1.11
July          1  0  0.00%  0  0.00%  1 100.00%   0 0.00   2 2.00
August       16  4 25.00%  7 43.75%  5  31.25%  19 1.19  21 1.31
September    56 26 46.43% 18 32.14% 12  21.43%  85 1.52  55 0.98
October      75 30 40.00% 24 32.00% 21  28.00% 128 1.71 106 1.41
November     54 20 37.04% 17 31.48% 17  31.48%  93 1.72  66 1.22
December      9  0  0.00%  1 11.11%  8  88.89%   8 0.89  26 2.89

GF = Goals For
GF/G = Goals for Per Game
C = Conceded
C/G = Conceded Per Game

So, the first thing to note, is that Staunton was right, with a 58% win ratio, March is our strongest month!
Technically, July is our weakest month, losing the only game we ever played in July, the 2-0 loss to Holland in World Cup '94. However, December is probably worse, losing 8 of 9 games played in the final month of the year, also the most goals conceded per game in any month, with over 2 goals per game
We've scored more goals in October than any other month, just ahead of May, but by .01 of a goal per game, November has the highest goals per game
May is comfortably our worst defensive month, conceding 165 goals (probably due to end of season syndrome) almost 60 more than the next worst, 106 in October

Thursday, June 21, 2012

A Tale Of A Thumb

On Saturday evening, my friends and I returned from a day in Torun, a small town roughly halfway between Poznan and Gdansk, after attending a charity game between the Ireland fans group You Boys In Green (YBIG) and a local selection. Poland were playing the Czech Republic for a place in the knockout stages of the tournament, and, with the fanzone full to capacity, we headed to the main square to watch the game on one of the screens erected by its bars and restaurants. On the way there, one of the many volunteers for the city handed me a flier for a goodbye appreciation from the volunteers in the square on the following Monday afternoon. I took a quick snap of the flier in my left hand with only the edge of my thumb visible and tweeted the pic, using the free city wifi - https://twitter.com/tetsujin1979/status/214109757739503616/photo/1. Initially I didn't think anything more of it, it was one of many images I'd posted from Poland and another of the thousands of tweets I'd posted since joining the microblogging site After the game ended, and a downpour had convinced many of the fans to head home rather than risk being soaked, I checked twitter again and was surprised to see the image had been picked up by the sports and humour blog balls.ie - http://www.balls.ie/2012/06/16/crazy-poznan-is-throwing-a-goodbye-party-for-the-irish-fans/ - and had been retweeted several times The next morning I was surprised to see that Paddy Power had mentioned it on their twitter feed - https://twitter.com/paddypower/status/214281980760702976 - and credited me as the author of the pic. What followed on Monday caught me completely off guard, while browsing the Irish Independent's website, I noticed a headline for a goodbye party for the Irish fans in Poznan. Thinking this would be about the party itself, I opened the page only to have my photo staring back at me - http://www.independent.ie/sport/soccer/euro-2012/irish-news/so-lonely-round-the-streets-of-poznan-polish-city-throws-a-goodbye-party-for-irish-fans-3140886.html Finally, after the Ireland - Italy game I received a tweet from a former co-worker that my photo had appeared on Craig Doyle Live! The episode is still available on the RTE player - http://www.rte.ie/player/#!v=3321453 - at 7:30, I took a quick snapshot and you can see it here: Finally, using a site I built myself some time ago, I built a graph to show how my tweet progressed though the twittersphere - http://retweetgraph.appspot.com/Gallery?id=237001 - it received little traction until the RTESoccer account retweeted it and then it really took off, finishing up with 55 retweets, a personal best!

Thursday, January 13, 2011

Facebook Hacker Cup - Studious Student Solution

Here's my solution to the Studious Student problem in the Facebook Hacker Cup in Java


package com.facebook;

import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.StringTokenizer;

public class StudiousStudent {

public StudiousStudent(String wordLine) {

ArrayList strings = new ArrayList();
StringTokenizer st = new StringTokenizer(wordLine);
int wordCount = Integer.parseInt(st.nextToken());
while (st.hasMoreTokens())
strings.add(st.nextToken());

String[] stringArray = (String[]) strings.toArray(new String[strings.size()]);
for (int index1 = 0; index1 < wordCount; index1++) {

for (int index2 = 0; index2 < wordCount; index2++) {

if ((stringArray[index1] + stringArray[index2]).compareTo(stringArray[index2] + stringArray[index1]) > 0 && (index1 < index2)) {

String tmp = stringArray[index1];
stringArray[index1] = stringArray[index2];
stringArray[index2] = tmp;

}

}

}
for (int counter = 0; counter < stringArray.length; counter++)
System.out.print(stringArray[counter]);

System.out.println();

}

public static void main(String[] args) {

BufferedReader input = null;
try {

input = new BufferedReader(new FileReader("studiousStudent.txt"));
String inputLine = input.readLine();
Integer wordLineCount = Integer.parseInt(inputLine);
for (int counter = 0; counter < wordLineCount; counter++) {

new StudiousStudent(input.readLine());

}
input.close();

} catch (Exception e) {

System.out.println("e.getMessage():" + e.getMessage());
e.printStackTrace();

}

}

}

Facebook Hacker Cup - Double Squares Solution

Here's my java solution for the Double Squares problem in the Facebook Hacker Cup

import java.io.BufferedReader;
import java.io.FileReader;
import java.util.Date;

public class Squares {

public Squares(int square) {

double squareRoot = Math.sqrt(square);
int squareCount = 0;
for (int counter1 = 0; counter1 <= squareRoot; counter1++) {

for (int counter2 = counter1; counter2 <= squareRoot; counter2++) {

if((counter1 * counter1) + (counter2 * counter2) == square)
squareCount++;

}

}
System.out.println(squareCount);
}

public static void main(String[] args) {

BufferedReader input = null;
try {

input = new BufferedReader(new FileReader("squares.txt"));
String inputLine = input.readLine();
Integer squares = Integer.parseInt(inputLine);
for(int counter = 0; counter < squares; counter++) {

new Squares(Integer.parseInt(input.readLine()));

}
input.close();

}
catch(Exception e) {

System.out.println("e.getMessage():" + e.getMessage());
e.printStackTrace();

}

}
}

Results in less than a minute

Sunday, January 09, 2011

2010 - A Year In Fitness

Finished the year more or less as I started. Went to the gym more in February than I did in November and December combined.
2010GymSwimmingFootballTag RugbyWeight (kg)
January782094.5
February1274093.8
March1183094
April965095
May754596
June564794.3
July564494.5
August243494.6
September685494.6
October563494.8
November764295
December130095
Total77734130

Tuesday, November 02, 2010

ReTweetGraph

I launched a new site yesterday, it's more of a proof of concept (i.e. does this actually work) than anything else at the moment


If you're on twitter, and I know some of you are, there's an option called "retweeting" where you send a message you received from someone to all of your followers, similar enough to a chain message in email, only in this case you can track the progress of the message (or "tweet" as they are called).

Bearing this in mind, I set out to see if I could plot the progress of a tweet as it passed between users on a graph.

Turns out, I can, and did and now so can you - http://retweetgraph.appspot.com/

You can only create a graph if you have an account with twitter, but anyone can view the gallery of created graphs

Sunday, October 17, 2010

An open letter to the Irish Independent

Dear Sir/Madam,

I really do not know where to begin with the aticle "Vendetta is an Italian word" published Sunday, 17th October 2010 - http://www.independent.ie/sport/soccer/vendetta-is-an-italian-word-2382953.html

Quote - "Giovanni Trapattoni is making a mess of the Irish manager's job. And if he doesn't get his act together pronto, the FAI should give him the boot "
A fair comment, and the opinion of the author, but who would you replace the manager with? Also, given that the Independent have dedicated several articles to the state of the FAI's finances, should you really be advocating sacking a manager, which will result in paying off the rest of his contract, as well as the backroom staff, and then start paying a new man at the helm?

Quote - "We've become so used to Reid's omission from the Irish international squad that there's a tendency to treat it as a fait accompli"
Andy Reid has played a grand total of 39 minutes this season, only 6 of which were in Premier League games, the others were against Colchester United in the League Cup, and he failed to make it off the bench in a further two league games. What evidence is there that he would have made a difference against Russia?
Also, the phrase is "au fait accompli"

Quote - "Stephen Ward of Wolves, injured at the moment, was left out of the squad when he would have been a better bet than the increasingly ludicrous Kevin Kilbane at left-back."
Stephen Ward is not injured, he played in Wolverhampton's game against West Ham on the 16th October. He has only been omitted from the starting XI in two games for Wolves this season, both League Cup games. He's started every Premiership game, and only failed to complete two so far this season, so he was also not injured in the build up to the Russia/Slovakia double header either. Seriously, who is doing the research (or lack thereof) at the Independent in recent weeks?

Quote - "Marc Wilson moved up from Portsmouth to Stoke in the same deal that took Ireland first-teamer Liam Lawrence in the other direction. No place for him either."
Not only was Wilson in the squad, he was on the bench against Slovakia. Daniel McDonnell made the same error in his article "McCarthy certain to figure in future plans but Trap unlikely to change 'the system'" published Thursday, 14th October 2010 - http://www.independent.ie/sport/soccer/mccarthy-certain-to-figure-in-future-plans-but-trap-unlikely-to-change-the-system-2378540.html
Quote "His club colleague Marc Wilson, who failed to make the bench in Tuesday night's 1-1 draw with Slovakia, is in line for an international debut as well." A rudimentary search using google, not to mention reading any review of the game on any relevant site (rte.ie, uefa.com, wikipedia, fifa.com, fai.ie, soccernet, football365.com, skysports.com, etc) would have told you the correct lineup.

The title of the article is "Vendetta is an Italian word", which is ironic considering the tone and direction of articles in the Independent about the Ireland team and management in recent months.

The entire article boils down to "Giovanni Trappatoni should be sacked because he plays Paul Green instead of Andy Reid".

Yours, etc

Wednesday, August 11, 2010

U21s VS Estonia

Noel King's first game in charge of the U21s will be remembered as a complete turnaround from the previous game at Tallaght Stadium at this level, a 2-1 loss to ten men Armenia was replaced by a 5-0 win over third placed Estonia. Anthony Stokes delivered an excellent performance throughout as an inside left, scoring twice in the opening half, and providing two assists in the second.

After an opening few minutes where Ireland struggled to retain possession, and goalkeeper Henderson was called on to make two smart saves, the team settled into control of the ball before the opening goal. A smart cut inside from Stokes made some space for a right footed shot beyond the keeper. The second goal came from the penalty spot, Stokes both winning and taking the spot kick. After drawing a tackle from the Estonian full back, the Hibernian striker chipped the ball straight down the middle of the goal and off the underside of the crossbar to double his tally for the night. I managed to get a quick snap of it on my phone here - https://sites.google.com/site/tetsujin1979/Home/StokesPenalty.JPG It's not great quality though, it was at the opposite side of the ground to me and the camera on my phone isn't the best

The midfield of McCarthy, Gleeson and Garvan controlled possesion well in the middle of the park, and linked up with Clifford on the right. The two goal cushion eliminated the earlier nerves, and with the pressure off the central defenders (Gunning and Kiernan) were confidant on the ball. The Estonain right winger had previously enjoyed some space between Clifford and Coleman at right full, but with this space eliminated, his threat was removed. While some of the play was excellent to watch, the opening goal laid the plan for a lot of Stokes' play, despite several overlapping runs into space from full back Nolan, the simple out ball was ignored in favour of cutting inside again and again which was frustrating to watch when he lost possession. Also, a lot of the play from the Irish team seemed to be based around long balls from deep on the right to where Stokes was, playing as an old fashioned inside left.

The second half began in much the same fashion as the first, with Estonia looking to score before conceding possession and control to the Irish. Stokes was again involved in the best moves of the half, and showed some excellent hold up play to set up McCarthy for the third of the night, and the young Wigan midfielder's first at this level for his country.

Stokes was unlucky not to complete a deserved hat trick, a header from Garvan's free kick on the right going just over the crossbar. An audacious piece of skill from the forward led to the fourth goal. With his back to goal on the byline, he backheeled the ball through the full backs legs, before rounding the hapless defender, and collecting the ball to cross. The ball eventually fell to Owen Garvan outside the box, whose shot deflected off Seamus Coleman into the corner. The goal was awarded despite some (IMO legitimate) calls for offside against the Everton player who was withdrawn before the game restarted for Histon's Lanre Onyebanjo.

I've seen some criticism of Cillian Sheridan's play, but he was right in front of where I was sitting for the second half, and he never stopped running, dragging centre halves out of the penalty areas to create space for Stokes and McCarthy to run into. He didn't see a lot of the ball, but in my opinion the team wasn't set up for him to see much possession. He was clearly exhausted when withdrawn late on for Alan Judge, which allowed Stokes to play up front with Judge replacing him on the left.

The final goal was rifled in by Garvan from outside the area, following good work from Stokes again, receiving the ball and laying it off to the Crystal Palace midfielder in space.

The only real criticism (if you can call it that) was that it could have easily been 7 or more. Stokes, moreso in the first half, was wasteful in possession and Sheridan was never directly involved in play. However, when your biggest complaint is that the team didn't score enough goals you know it was a successful night.

Friday, August 06, 2010

A month disconnected from the matrix

I've become a pretty regular user of twitter and Facebook in the last 18 months. According to twitter, I created my account on 24 October 2008 and posted 2075 tweets until midnight 6th July 2010, which is 620 days. That works out at an average of 3.35 tweets a day although I didn't really start using it regularly until February 2009. In the last few months I wouldd say it was closer to 6 tweets a day. Going from that to none at all was a strange experience and gave me some time to think about how social media has impacted on my life. So in the month or so that I swore off social media what was learned? Any great insights? Anything at all, in fact? I did keep notes while I was on my self-imposed sabbatical, so read on.

In the first few days, it was my browsing habits that I noticed the most. While I'd keep track of social media updates during the day, via RSS feeds and email updates, during lunch I check out more content-driven sites (ign, gametrailers, rte, etc) than user-generated content on social media sites. The only reason for this I could think of was that everyone else is at lunch too, so there's less user-generated content to read up on?

Since I was staying away from social media, I soon realised how forcing yourself not to post links to articles, sites, etc makes you realise how often you do it, and how trivial the "share on Facebook" button in firefox/tweet button makes the act of sharing an item with your followers. Since the article doesn't appear in your own news feed on Facebook, it's easy to lose track of how often you actually do share content. As well as that, and to a much larger extent than I had realised, posting something on Facebook, or retweeting, has replaced forwarding jokes, vids, audio clips, etc in email. Think about the last ten forwards you were emailed, and the last ten links you saw in your timeline in Facebook or twitter. Which list has the older first entry? When you're only option is to email out stuff you find interesting, you spend more thought and effort before sending the mail out. Over the course of the month I realsed that you send a link because you think it will interest the recipients, but you tweet/Facebook a link because it interests you.

What I thought was bizarre was that some companies make information available via Facebook and twitter, but is not available on their own sites! For example Phantom FM needed you to be logged in and "like" phantom on Facebook to see the Oxegen track of the day, since I was staying off Facebook, there was simply no way for me to win this. Apart from that, this drives users to Facebook, instead of the company's own site. This can only be counter productive in the long run, Facebook gets more traffic, your site gets none, so you lose advertisers because of low traffic numbers. Facebook is a convenient, easy option for companies to use for competitions, instead of writing up their own competition pages, and including registration, etc, they can just use Facebook connect, and run the whole thing on Facebook's servers. Of course this means that if you don't use Facebook, you can't win.

Using twitter, Facebook, google reader, etc, as new sources bascially provides a central repository for your own customised news source. Without them, you have to go to individual sites to get news. The former takes up your time, whenever a new item is posted at the top of an RSS feed, you stop whatever you're doing to read it, which is a distraction from whatever you were working on, whereas in the latter use your own free time (lunchtime, etc) to browse content driven sites. It still takes up time, but has less of a lasting impact on what you were working on. As well as this, there is much less attention paid to new items in a feed, but when you've taken time to search out an article, it leaves more of a lasting impression on you.

As part of the exile, I removed Facebook and twitter from my browsing history, and deleted the cookies from the cache, so I would have to put effort into logging back into those sites I was avoiding, and removed the echofon pluging from firefox. This had to be repeated on my mobile - Facebook and twitter apps were removed, the shortcuts and cookies were removed from Opera Mobile. Not using those sites made me aware that I use my mobile for browsing more user generated content than content driven sites. But as well as that, I never realised that a lot of the sites I use don't have mobile versions. If content driven sites want to be among the more popular sites accessed from mobile devices, this will obviously be a necessity in future. For now, too many of them think that apps will fill this need, but people will want a simpler transition from desktop browsing to mobile browsing and will find using a mobile browser easier than installing an app. Another consequence of this was that I basically stopped using firefox outside the office, because I much prefer Opera as a browser.

I did still read some twitter feeds during the month, but I never logged into my own account. Something that struck me about "@" replies is that the majority of them are replies to statements made by users. Very few of them are opening statements in a conversation, e.g. @tetsujin1979 Hi, how are you. With that in mind, it might still be some time before twitter does replace SMS. I had thought previously that with the increase in use of twitter to the point of ubiquity, and the addition of unlimited data plans to most mobile contracts, that twitter was a viable replacement for SMS. As for the posts themselves, tweets tend to be what you are thinking about right now, whereas blog posts tend to be the end result of time spent researching a subject. Like this post for example.

As the month progressed, I started to think the difference between Texting/Emailing someone and social networking came down to the difference between asking a person "hi, what are you up to" and telling a crowd of people "hi, this is what I'm doing" and as such using social networking is a much more effective way of tracking who is doing what than mass texting/emailing "what you do this weekend/doing next weekend", but only after it passes a certain level of usage, or adoption. There's no point in posting on Orkut what you are going to do this weekend, nobody is going to read it. Since I did not post any updated, most people were surprised to find out I watched the World Cup Final on the big screen in the Aviva Stadium, and that I was at the opening rubgy game in the same stadium.

Since I had stopped using twitter, I stopped visiting some sites whose feeds I follow (e.g. fourfourtwo.com and limerickleader.ie), but for other sites that I visited regardless of how often their twitter feed was updated (e.g. football365) my browsing habits didn't really change. For this reason, for anyone looking for advice on trimming their number feeds they follow, I would advise you to drop sites you visit regularly. You are going to see the new content when you check the site soon enough.

Since some sites have started using Facebook Connect or Twitter OAuth as authentication mechanisms, logging into those sites automatically logs you into Facebook or twitter. It's convenient, but when you're trying to avoid those sites, it becomes a bit of a pain.

Facebook's birthday reminders are a convenient method to remember birthdays. Unfortunately, I missed Susan and Nichola's birthdays (sorry girls). However, I did email them a few days later when I did remember, and both responded. When a milestone event like this happens, (engagement, birth of a child, birthday, etc) messages can get lost in the clutter, and that's made emails more personal. Similarly, for some reason, I think giving someone your email address is more personal than saying "just search for me on Facebook"

Maybe it's just my friends, but more girls than guys got in contact with me to see if I was ok while I was off the grid. Have to say, I'd be the same. If a guy hears nothing from someone, he assumes everything is fine. If a girl hears nothing, she assumes something is wrong

So that was a month disconnected from the matrix.

Incidentally, the other title choice was "Going off the grid for a month"

Wednesday, August 04, 2010

What I've missed talking about

Watching the World Cup final on the big screen in the Aviva - http://picasaweb.google.com/tetsujin1979/2010WorldCupFinal - the Dutch tactics, and the result itself. Congratulations Spain.
Casillas kissing his missus on live tv, turnabout is fair play after she asked him what went wrong in the Swiss game
Glenn Whelan's rumoured move to Liverpool
The fallout from the Back to the Future "futureday" hoax from TotalFilm
I never knew the Wu-Tang Clan covered While My Guitar Gently Weeps as The Heart Gently Weeps - http://www.youtube.com/watch?v=u72nMAIJkno
Creating crowd sourced playlists on songvote.com
Google using youtube to create a documentary on what happened on July 24, 2010 - http://www.google.com/landing/youtube/lifeinaday/
Getting 66.67% in the Shrek quiz on movies.ie
Scoring the team try of the competition in the last game for the Randomers
The acts who refuse to put their music on iTunes: http://www.edibleapple.com/musical-acts-not-on-itunes/
Tony Stonem from Skins joining X-Men: First Class as Hank McCoy (Beast)
Through no action of my own (that I'm aware of anyway) I was awarded the bronze helper badge on twithelpme: http://twithelp.me/profile/tetsujin1979 http://twitter.com/twithelpbot/statuses/18148173923
iTunes randomly deleting 19 albums from my HD (I'm blaming iTunes anyway)
VG Cats's friendship strip: http://www.vgcats.com/comics/?strip_id=297
Using the phone in my house gave me a headache, because the smokers in my house use it, it's collected carcinogens (sp?) in the mouthpiece and had to be cleaned
Missing Ed Hally's birthday because I was in Limerick (sorry Ed)
Steven Reid retiring from international football. Really disappointed me actually, but I understand why he did it
Prankster's giving Sepp Blatter the most appropriate middle name ever - http://www.telegraph.co.uk/sport/football/world-cup-2010/7891632/Sepp-Blatter-given-embarrassing-nickname-on-World-Cup-award.html
computer games VS skaters and snowboarders: http://www.youtube.com/watch?v=tVljiwwqwfc
Inadvertently seeing another user's details when creating an account on momentumscreenings.co.uk
Brian Quinlivan getting married - Congrats Quindy
Missing the Hot Press Toy Story 3 screening in Dundrum on the 18th - hope you enjoyed it Phebes and nephew
Getting 64.71% in the Chris Nolan quiz on movies.ie, although I did guess Marilyn Manson (which was correct) and then told it was incorrect
Wonder if these machine gun robots come in white?? - http://news.cnet.com/8301-17938_105-20010533-1.html
System of a Down - Toxicity as played by a string quartet: http://www.emok.tv/videos/toxicity-cover-mit-streichquartett-klavier.html
American History X - The Game: http://www.phun.org/newspics/funny_friday/4658.jpg
The new N3 layout moving the bottleneck from the Blanchardstown Village/N3 interchange to the Navan Road/Auburn Avenue interchange. Did the planners learn nothing from the N1/Collins' Avenue junction??
Owen Garvan's proposed move to Palace, now completed. Their first signing in two years.
What if Bebo had a facebook "like" button?
Buckfast icecream?? Are you fucking kidding me?
Thierry Henry retiring from international football - we will never forget
Jenna from Barstool Sports getting well over 5 million views on youtube
Seeing Taylor Hawkins and the Coattail Riders in the Academy. First time seeing a drummer as a lead singer
Missing first thursday night football game since March
The first pictures of Ryan Reynolds as Green Lantern. I think it looks ok, the suit is supposed to be organic, and it looks like a nervous system. Not sure about the mask though
Fight Club/Ferris Bueller's Day Off mash up: http://www.youtube.com/watch?v=eiMuj85ngEo
Find out who's unfollowed you on twitter: http://who.unfollowed.me/
Picking my fantasy football team for the new Premiership season - David Silva and Joe Cole or Fabregas and Andy Reid?
Just when you think you're going to go into football withdrawal, preseason kicks off
The Beyond Black Mesa, Half-Life fan film: http://beyondblackmesa.com/
Valve releasing Alien Swarm for free: http://store.steampowered.com/app/630/
4chan ruining Rachel Wissner's and Jessi Slaughter’s lives. Because they can.
If Robbie Keane plays in the Champions League for Spurs, is he the first Irishman to play in the CL proper for two different clubs - Liverpool and Spurs
Hasbro release huge new toy AT-AT: http://comics.ign.com/articles/110/1106714p1.html
Steve Kilbane in top 10 Irish players: http://www.the12thmanblog.com/2010/03/top-10-irish-players.html
Civil unions being officially recognised by the Irish State
Noel King being announced as the new manager of the Irish mens U21 team
Pat Dundon's evil twin: http://nyc.barstoolsports.com/random-thoughts/does-this-look-like-the-face-of-a-bisexual-djgay-porn-actor-with-a-british-accent-and-a-lingerie-fetish-model-who-would-smash-a-tattoo-shop-owner-in-the-head-with-a-sledgehammer-at-a-sex-party/
RedEye mini, turn your iPhone, iPod Touch or iPad into a universal remote: http://thinkflood.com/products/redeye-mini/
Not sleeping and reading the weirdest stuff on the football365 forum at 3 in the morning
Bohemians' exit from the Champions League at the hands of TNS
First rumours coming out of Namco VS Capcom using the Tekken 6 engine and Capcom VS Namco using the Street Fighter 4 engine
The Pirate Party (of Pirate Bay infamy) launching their own ISP in Sweden. They're not keeping logs of user activity, and thus any record of illegal activity cannot be provided to law enforcement
Getting 76.47% in the Toy Story 3 quiz on movies.ie
Explanation of the Dyson Air Mutiplier: http://www.youtube.com/watch?v=4WNcjkZ6d0w Looks like a video from Ok Go!
Kristen Bell as Harley Quinn (fanart): http://www.cinematical.com/photos/batman-fan-art/990582/
Congratulations Jennifer and Adam on getting engaged.
Former professional footballer Mike Trusson blogging about becoming a FA-certified coach: http://www.grassrootscoaching.com/blog/
Dr Simon Tam, MD: http://www.youtube.com/watch?v=JutAnhS0tB0
After dropping to a 34" waist during the year, I'm back up to 35 or so. 34 is too small, and 36 is too big. Grrr
The facebook terms and conditions statement is longer than the US Constitution
The US Library of Congress is going to archive every tweet from 2006 onwards
Darth Vader robs a bank: http://www.youtube.com/watch?v=Xgu2rJfHMCU
Watching The Karate Kid without subtitles. Well, without English subtitles. Ok, it had Chinese subtitles. My old housemate Graham looks disturbingly like the kid Will Smith's son fights at the end of the new Karate Kid film
Seeing Aston Villa play Bohemians in Dalymount Park. Despite it being my sixth or seventh time in Dayler, it was my first time seeing Bohs play there. Quietly impressed with the Bohs keeper, left full, and both Bohs goals. Villa had all the possession but couldn't finish.
Comic-con attendees VS The Westboro Baptist Church: http://www.comicsalliance.com/2010/07/22/super-heroes-vs-the-westboro-baptist-church/ Things like this make you proud to be a geek
The DC Universe Online intro is pretty cool: http://www.gametrailers.com/video/exclusive-who-dc-universe/702050
Congratulations Cornelia Horohan on the birth of your first child, Conor
Rangers signing an Irish U19 goalkeeper, Alan Smith, from Crumlin United
Follow up to This Is England, called This Is England '86: http://www.guardian.co.uk/tv-and-radio/tvandradioblog/video/2010/jun/29/shane-meadows-this-is-england-86
Jailbreaking an iPhone declared legal by the US government: http://news.cnet.com/8301-13578_3-20011661-38.html
Anytime a movie fanboy claims Zack Efron is only in a movie because of High School: The Musical, remind him he started in Joss Whedon's Firefly
After hearing Ava Adore on Phantom, I was inspired to listen to Adore on my iPod for the first time in ages to see if it has improved with age. It hasn't disimproved. Read into that what you will
Getting 81.25% in the A-Team quiz on movies.ie
The CAS upholding the right of players born in Northern Ireland to declare for the Republic, regardless of where they, their parents, or grandparents were born, because they qualify for an Irish passport under the Good Friday Agreement
First there was Sarah, now there's Steven - http://www.independent.co.uk/news/people/news/kanye-west-follows-only-one-ndash--but-who-is-steven-of-coventry-2041208.html

Tuesday, May 25, 2010

Irish Abroad season statistics for 2009-2010

Almost exactly ten months after Aiden McGeady, Willo Flood and Darren O'Dea lined out for Celtic against Dynamo Moscow in the qualifying round of the Champions League, the season stats for 2009-2010* have been compiled and are available on Irish Abroad: http://irish-abroad.appspot.com/MonthlyStats?month=14
Aiden McGeady started the most wins of any player, the Celtic winger was on the winning side 26 times this season. Interestingly Damien Duff started more home wins than any other player, the Fulham winger started 15 home wins but only 2 successes away from Craven Cottage.
Richard Dunne topped the defender win table, and also topped the draw table for defenders with 15 games ending all square. Ipswich's Jonathan Walters managed more draws than any other Irishman, with games ending level on 18 separate occasions.
Midfielder Darren Potter reflected his side's relegation form this season by starting the most losing games. Surprisingly Potter also started more games than anyone else this season, appearing in the starting XI no less than 49 times, and tied with Sean St Ledger for the most completed games - 46.
Crystal Palace's Alan Lee had the misfortune to be the most substituted Irishman this season, he was withdrawn from the action 26 times, 13 home and away.
Keith Fahey and Lee Trundle were both introduced from the bench 19 times, while unsurprisingly it was the goalkeepers who were the most unused substitutes over the course of the season, with 4 (Wayne Henderson, Conrad Logan, Dean Kiely, James McKeown and Saul Deeney) clocking up more than 40 appearances on the bench.
Despite the criticism he's had for the season, Robbie Keane was still the top scoring Irishman, finding the back of the net 25 times, and also the top penalty scorer finishing from 12 yards 6 times in 2009-2010. Even more impressive was that he never finished on the losing side when scoring, and all but one game ended in a win for the Tallaght striker.

Note: stats do not take into account games played by teams in League One and League Two, to include them would render the pages unreadable and, with all due respect, the players have little chance of getting into the senior squad.

Thursday, April 15, 2010

Treme-ndous

checked out Tremé (pronounced Tre-may) last night. The pilot episode clocks in at just under 1hr 20m, so set aside some time for it. As with all the best pilots, this does a good job of introducing the characters and some of their backstory.

Most people are trying to rebuild their lives, or make the best of what they have. Families have been torn apart, by deaths and by relocation to other cities. Some are returning to reclaim what was theirs and rebuild what was destroyed, some have new lives and never want to return. Some of those unaffected by the disaster are doing what they can to help, and of course there are always people taking advantage of their situation for their own gain.

The soundtrack, as you would expect from anything set around New Orleans, is jazz based, and most of the characters do have some musical connection. There's also an excellent cameo that I won't spoil.

Already this looks to continue the excellent work to date of the the creative team - The Wire, Generation Kill - and after just one episode, it's been picked up for a second series.