Friday 28 December 2007

Guitar Hero III - The Fall of Gondor

I have just had a revelation. I will never be good at video games. ANY
video games. This was just made clear and stark to me during my
attempts at playing Guitar Hero III on the Wii. I will just have to
admit defeat and shout it out loud to the world - I SUCK at this.
Whether this is reflective of my lack of musical ability, or just lack
of hand eye coordination in general is beside the point. I wanted to
kick ass, and instead got the can of whup ass poured and spread all
over me like that time in Thailand when we were on that deserted
island, and this girl... oops...

I tried, Ma, I really tried. I haven't even gone past Easy level.
I've played Hit Me With Your Best Shot and Slow Ride umpteen times,
but I still can't get 100% note coverage. I played Cherub Rock, one of
my ultimate ever rock anthems, over and over and over again, and
eventually managed to get around 48,000. Then my 17-yr. old brother
comes along, who's never heard the song before, plays it for the first
time and gets 42,000. It's just not fair.

I absolutely love these songs on Guitar Hero III: Cherub Rock,
Paranoid, Kool Thing, Cult of Personality, Welcome to the Jungle,
Bulls on Parade. These alone are worth the price of admission. But
they don't seem to love me back. Shouldn't you get extra points if
the guitar controller detects your enormous, all-enveloping,
tingling-through-every-fiber-of-your-being worship of these songs?
Shouldn't a score multiplier apply when it sees that you've had them
on repeat in Winamp for like, forever? That you've annoyed countless
friends (okay, all three of them) when you sang along in the car and
you also *sing the guitar solos*? What, they didn't install that
feature?

It's pre-midlife crisis therapy for those of us who can't afford the
Harley or Ferrari. Pretending to be a golden god, struggling with your
own limitations in the harsh face of anonymity. Maybe you've already
missed the fucking bus. Maybe it's too late to be somebody significant
to anyone but your immediate kin. All you can do is pick up the
plastic Les Paul, shake your hips doing the Axl Rose snake dance, and
get the led out using Star Power.

Wednesday 26 December 2007

This revolution will be text messaged

This revolution will be text messaged
By Marguerite Reardon

Filipinos have been masters of using text messages to rally political
protesters. So what happened during last month's failed coup d'etat?

http://www.news.com/This-revolution-will-be-text-messaged/2100-1039_3-6222963.html

Monday 17 December 2007

Nintendo shortages for the 2nd year in a row

I just don't get it. Nintendo should have fixed their supply problems
by now. Or is there really a phenomenal spike in demand that have
caught them unaware? Christmas 2007 already and the shops *still*
don't have enough stock of the Nintendo Wii? Surely they wouldn't be
manufacturing these shortages to fuck with us salivating consumers!

http://www.nytimes.com/2007/12/14/technology/14wii.html

Thursday 13 December 2007

Today is the first day of the rest of your Gmail life - taking the zero inbox plunge

Finally bit the bullet and decided to start with a clean slate.
Selected the 3000+ messages wallowing in my Gmail inbox for the last 2
years and archived all of them.

Obviously, it's not as radical as it should be, since they're really
*still there* - just not in your face. So if I ever need to remember
that so-and-so sent me a link to their photo album on such a date, I
can possibly look it up. Possibly. All this hinges on the assumption
that I can search for old items if I ever really need to. If the
search terms in my head don't match anything in the message, then it's
effectively disappeared, but taking up precious inbox space.

I held off for such a long time. Kept saying "I'll go through the
unread ones, and read them and tag them." Nah, it was just all too
much. For me, trying to delete old emails is at times like trying to
decide which photos of my baby I should delete. Silly, I know, since
their value is way down on the sliding scale compared to pics of my
first child. I don't know. Maybe it's just my pack rat mentality gone
digital.

Here's to clean inboxes!

Maybe I should start learning those Gmail keyboard shortcuts, while
I'm at it. But would these work cross-browser? Firefox *and* Opera
*and* Safari *and* Camino. (yes, camino is using firefox engine, but
UI is native OSX, so maybe they handle things differently)

<drift />
<meander />


Oh boy, we have an official fun day at work tomorrow. Bowling in the
morning then lunch then watching the premier of Darjeeling Limited.
The title just prepares me to be bored. Darjeeling - tea, hmmm...
Could this be another "English Patient" experience? Good grief. Then
early mark and work party in the city from 7 to 11pm. Moulin Rouge
theme. Hope the hotties in marketing and sales all dress up like the
Green Fairy. Or some such sexy variant. The invite suggested at least
wearing black and/or red. Woohoo. My White Stripes tee will be
purfect. Too bad I don't have any black pants though. Maybe I should
wear green and orange, just to be contrarian.

Oh well, time to go.

Sunday 25 November 2007

Preferential Voting - how does it work?

I finally get it. It only took 16 years, but I've finally spent the
necessary 10 minutes to understand it. A bit sad really.

http://www.abc.net.au/elections/federal/2004/guide/howpreferenceswork.htm

And also found a Ruby implementation of Preferential voting, along
with other systems.

http://rubyvote.rubyforge.org/

Music i want to check out

The Pipettes
Gotye
Feist
Operator Please
Kaki King
Lior
Grinderman
Cat Power
Angus and Julia Stone

the latest Bjork album

Tuesday 30 October 2007

FasterCSV problem - NoMethodError when trying to call join()

I've been getting this error message:

C:\work\reportscraper\db_uploader>ruby db_uploader.rb --file "Ethos Corporation.xls" > ethos.log

db_uploader.rb:147: undefined method `join' for #<FasterCSV::Row:0x2ea3ab0> (NoMethodError) from c:/ruby/lib/ruby/gems/1.8/gems/fastercsv-1.2.1/lib/faster_csv.rb:65

9:in `each' from c:/ruby/lib/ruby/gems/1.8/gems/fastercsv-1.2.1/lib/faster_csv.rb:65

9:in `each'

from db_uploader.rb:145

It's failing on this line:

data.each { |row|

>>> insert_sql = "INSERT INTO [DATA_UPLOADS] VALUES ( #{row.join(',')});"

puts insert_sql
#db.execute(insert_sql)
}


But I don't understand why this fails but the same method call in
another script is working:

def extract_data_from(filename)

data = FasterCSV.readlines(filename, {:col_sep=>"\t"})

end


cmdoptions = get_commandline_options

data = extract_data_from cmdoptions.single_file

puts
data.size


data.each { |row|
puts row.join(',')
}


==============

Just discovered why. Because in the code with the error, I was passing the :headers option.

data = FasterCSV.readlines(filename, {:col_sep=>"\t", :headers=> true})

In the code that was working, I was only specifying the column separator.

data = FasterCSV.readlines(filename, {:col_sep=>"\t"})

Adding this line

puts row.class

confirms this. The first loop was returning a Row while the second was returning an Array.

Just looked at the documentation and it's actually described in the RDoc:

http://fastercsv.rubyforge.org/fr_method_index.html

"This setting causes FasterCSV.shift() to return rows as FasterCSV::Row objects instead of Arrays and FasterCSV.read() to return FasterCSV::Table objects instead of an Array of Arrays."

Monday 29 October 2007

Beatles reunion coming soon? W00t!



Noticed this ad while reading my mail today. Made me go "hmm...." a little bit, but hey, if they're selling tickets for it, then it must be true!

NOTE TO SELF: update html and make the image look biiiiger.

Wednesday 3 October 2007

YouTube viewing session



Interesting what I ended up watching and how I got there. (Most recent is at the top, so go through the list from the bottom.)

It all started with me trying to educate my wife about Rage Against The Machine, and how the Sydney Entertainment Centre would have to be one of the worst places to see them, since no one in their right mind really wants to be seated when watching these guys. "WHAT? You don't know who they are? ZOMG! Watch this then... And feel the funk, y'all!"

I love Daft Punk. I really do. Okay, maybe just the first 2 albums. They became popular around the time these new-fangled things called "electronica" and "big beat" were making the rounds. That faded, and then we all started listening to Post-Rock, then New Rock, then that "angular post-punk proto-new wave sound". God knows what they call it this year. At least hip-hop doesn't suffer from the proliferation of labels like this. There may be strains of hip-hop, but no one ever goes and denies that it is hip-hop. But yeah, you say, all these labels just come from music critics, press releases and assorted musical wankers who blog. Fair enough. You never hear the actual artists themselves putting labels on their music. They just tend to say "rock and roll". Okay... so I've just shot down my assertion about rock music in the second sentence of this paragraph.

Anyway, back to Daft Punk. I just realised last night what an utter fool I was for not getting those tickets to their upcoming appearance here in Sydney. Bugger. Bollocks. Fikifikifiki. Woof woof to the doof doof. Aaaaaargh. I was looking up their live performances on YouTube and they're pretty awesome. Not life changing, but enough to make you dance so hard that you'd fall down. I remember actually dancing to Around The World in front of the stereo over and over again. Of course, only after checking that there was no one home!

I, for one, welcome our new (old) robot overlords.

Wednesday 19 September 2007

Buildr: Using ruby to build java.. hmmm...

http://blog.labnotes.org/2007/05/03/buildr-or-when-ruby-is-faster-than-java/

http://buildr.rubyforge.org/

I've just started getting comfortable with using Maven, and
appreciating all the goodies that cam be used from it, then this comes
along... I wonder how much traction they'll get though, considering
the number of people already using Maven. I guess Ant didn't
disappear when Maven came along, so Maven probably won't disappear
with the appearance of Buildr.

Tuesday 18 September 2007

Pardon the splatter, I just had my mind blown again...



DJ Sara (8 yrs old) and DJ Ryusei (5 yrs old) tearing it up on the turntable. I wonder if there's a DMC Junior competition somewhere.

Friday 14 September 2007

Converting a DOS text file into Unix format

I was working on a config file in Ubuntu that had those nasty ^M
carriage returns at the end, and dos2unix doesn't seem to be around
anymore. So came across this info in Wikipedia:

http://en.wikipedia.org/wiki/Newline


The same tasks can be performed with sed, or in Perl if the platform
has a Perl interpreter:

sed -e 's/$/\r/' inputfile > outputfile # UNIX to
DOS (adding CRs)

sed -e 's/\r$//' inputfile > outputfile # DOS to
UNIX (removing CRs)

perl -p -e 's/(\r\n|\n|\r)/\r\n/g' inputfile > outputfile # Convert to DOS

perl -p -e 's/(\r\n|\n|\r)/\n/g' inputfile > outputfile # Convert to UNIX

perl -p -e 's/(\r\n|\n|\r)/\r/g' inputfile > outputfile # Convert to old Mac


It's probably the first time I've used sed!

Fixed: Maven 2 plugin problems with Bamboo/ Hudson + Tomcat setup on Windows

I've been tasked with setting up a continuous integration system at
work, and I've been evaluating - or trying to at least run - these
packages:

- Continuum
- Hudson
- Bamboo


I've yet to try these out:

- Luntbuild
- Cruisecontrol

From the looks of things, I proably should have tried out other two
before the other ones, given the lack of success I've had so far. :(

After a few emails exchanged with Atlassian Support re: Bamboo, I've
fixed a problem I was having with Bamboo and Hudson on my PC. I was
running them under Tomcat, which was installed as a Windows service.
My Ant builds were working fine, but my Maven2 builds were failing,
and would constantly complain that the 'maven-clean-plugin' was
missing, with errors like this:

Bamboo:

12-Sep-2007 16:48:01 [INFO]
----------------------------------------------------------------------------
12-Sep-2007 16:48:01 [INFO] Building AppFuse Core Application
12-Sep-2007 16:48:01 [INFO] task-segment: [clean, test]
12-Sep-2007 16:48:01 [INFO]
----------------------------------------------------------------------------
12-Sep-2007 16:48:01 [INFO] artifact
org.apache.maven.plugins:maven-clean-plugin: checking for updates from
appfuse
12-Sep-2007 16:48:02 [WARNING] repository metadata for: 'artifact
org.apache.maven.plugins:maven-clean-plugin' could not be retrieved
from repository: appfuse due to an error: Error transferring file
12-Sep-2007 16:48:02 [INFO] Repository 'appfuse' will be blacklisted
12-Sep-2007 16:48:03 [INFO]
------------------------------------------------------------------------
12-Sep-2007 16:48:03 [ERROR] BUILD ERROR
12-Sep-2007 16:48:03 [INFO]
------------------------------------------------------------------------
12-Sep-2007 16:48:03 [INFO] The plugin
'org.apache.maven.plugins:maven-clean-plugin' does not exist or no
valid version could be found
12-Sep-2007 16:48:03 [INFO]
------------------------------------------------------------------------
12-Sep-2007 16:48:03 [INFO] For more information, run Maven with the -e switch
12-Sep-2007 16:48:03 [INFO]
------------------------------------------------------------------------
12-Sep-2007 16:48:03 [INFO] Total time: 1 second
12-Sep-2007 16:48:03 [INFO] Finished at: Wed Sep 12 16:48:03 EST 2007
12-Sep-2007 16:48:03 [INFO] Final Memory: 1M/?4M
12-Sep-2007 16:48:03 [INFO]
------------------------------------------------------------------------

HUDSON:

[struts2-starter] $ C:\javatools\maven-2.0.6\bin\mvn.bat package
[INFO] Scanning for projects...
[INFO] ----------------------------------------------------------------------------
[INFO] Building Struts 2 Starter
[INFO] task-segment: [package]
[INFO] ----------------------------------------------------------------------------
[INFO] artifact org.apache.maven.plugins:maven-resources-plugin:
checking for updates from central
[WARNING] repository metadata for: 'artifact
org.apache.maven.plugins:maven-resources-plugin' could not be
retrieved from repository: central due to an error: Error transferring
file
[INFO] Repository 'central' will be blacklisted
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] The plugin 'org.apache.maven.plugins:maven-resources-plugin'
does not exist or no valid version could be found


I had already come across an issue raised for Hudson concerning this,
but didn't completely figure out what it meant:

https://hudson.dev.java.net/issues/show_bug.cgi?id=470

"The current workaround is to have hudson run under a new user with
its own .m2 directory and have whichever profiles are necessary
activated by default. That way, the profiles are picked up as part of
the alignWithUserInstallation mechanism in the embedder."

Atlassian support was able to replicate the error I was getting by
running the Bamboo standalone running under the SYSTEM directory, and
asked me to check if Tomcat was running as SYSTEM, which it was, as I
that is the default when you install Tomcat as a Windows service.
Ah, of course! <lightbulb moment>

When these packages do their continous integration, Bamboo and Hudson
are calling outside the web application to an external batch file. So
when Maven gets run by Bamboo or Hudson, Maven will run as *that*
user, which in this case is the SYSTEM user. I guess SYSTEM user will
try to get its settings from C:\Documents and Settings\Default User\
and not my own user account with the correct maven settings.

So the solution was to go into Services, look for "Apache Tomcat" then
in the "Log On As" column, get it to run as a user with the correct
Maven settings.

Now I don't know if I would have gotten this problem if I was running
under Linux. I think I would still have, because if Tomcat was running
under the user "tomcat", but my maven settings were under a
"autobuild" directory, it would be the same scenario, and the fix
would be to run Tomcat - or whatever app server you're using - under
the "autobuild" account.

Friday 7 September 2007

Unable to mount .dmg files in OS X - "Device not configured" error. How to fix it.

I had downloaded some DMG files to install some software and kept
getting these error messages:

Unable to attach "Foo.dmg" - Device not configured.

It was happening for more than one .dmg file, and I'm sure the
download was not corrupted.

At first, I tried using the Disk Utility, thinking it was related to
disk permissions, but the option wasn't present when I selected the
DMG. Clicking on "Verify disk" didn't help either, and resulted in the
same error "Device not configured".

Tried the instructions below and they worked.

1. Go into terminal

2. type

su [username that has admin rights]

you will be asked for your admin password.

3. Then run these commands. (I don't know what they do but they worked)

sudo kextunload -c com.apple.AppleDiskImageController

sudo kextload -b com.apple.AppleDiskImageController

4. Now try to mount those .dmg files.

Addendum: It's still not fixed. Now I'm just getting a new error message - "no mountable file systems". Oh great.

Do I believe in Free Markets? Why Sure I do!

http://www.theonion.com/content/news/u_s_to_give_every_iraqi_3_544_91

Tuesday 4 September 2007

Set up Tomcat to redirect HTTP requests to HTTPS

We had JIRA installed and using the built-in Tomcat app server,
accepting both HTTP and HTTPS requests. We wanted to restrict it so
that all JIRA access was only via SSL. The config changes were pretty
simple.
1. Change Tomcat's server.xml.
Edit the non-SSL <Connector> entry listening on port 80 and add or
edit the redirectPort atribute to point to the port on which the SSL
<Connector> is listening. By default, the redirectPort was pointing
to port 443.
Was:
<Connector port="80"
enableLookups="false" redirectPort="8443"
maxThreads="100" minSpareThreads="100" maxSpareThreads="100"/>

Changed to:
<Connector port="80"
enableLookups="false" redirectPort="443"
maxThreads="100" minSpareThreads="100" maxSpareThreads="100"/>
Because the SSL entry was:


2. In the Tomcat web.xml file the following <security-constraint> has
to be added within the <web-app> element. This new element must be
added after the <servlet-mapping> element:

<!-- SSL settings. only allow HTTPS access to JIRA -->
<security-constraint>
<web-resource-collection>
<web-resource-name>Entire Application</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>

Friday 31 August 2007

Why does Artifactory detect your Maven settings.xml

I've been given the job of setting up a build environment at work, and
one of the things I'm setting up is a local Maven repository, and to
have an easy way of maintaining it. I'm testing out Artifactory
(http://www.jfrog.org/sites/artifactory/latest/), and I've come across
what seems to be a bug. In the Config instructions, it only mentions
artifactory.config.xml. There is no mention of any config files
outside the Artifactory install directory.

It seems that if you install Artifactory on a machine that already has
Maven installed on it, it will use the settings.xml for that Maven
installation. This however means that if there are any errors in that
local settings.xml - ie, invalid XML, etc - then Artifactory will not
run.

A few of the things I tried that didn't work:

- delete [ARTIFACTORY_HOME]/data directory
- renamed old Artifactory directory and reinstalled from zip file
- cleaned out C:/Temp

In the console output I noticed this error:

Caused by: org.codehaus.plexus.util.xml.pull.XmlPullParserException: in comment
after two dashes (--) next character must be > not - (position: START_TAG seen .
..</nonProxyHosts>\r\n---... @15:4)
at org.codehaus.plexus.util.xml.pull.MXParser.parseComment(MXParser.java
:2334)
at org.codehaus.plexus.util.xml.pull.MXParser.nextImpl(MXParser.java:117
4)
at org.codehaus.plexus.util.xml.pull.MXParser.next(MXParser.java:1090)
at org.apache.maven.settings.io.xpp3.SettingsXpp3Reader.parseSettings(Se
ttingsXpp3Reader.java:1325)
at org.apache.maven.settings.io.xpp3.SettingsXpp3Reader.read(SettingsXpp
3Reader.java:1637)
at org.apache.maven.settings.io.xpp3.SettingsXpp3Reader.read(SettingsXpp
3Reader.java:1648)

Which would indicate something wrong with an XML config file. I had
settings.xml open and I remembered I'd had this problem before with
XML files.

I removed the dashes in the XML comment, restarted Artifactory, and
w000t, it was working again.

Wednesday 29 August 2007

Is it too much to expect examples to work as described?

Tried creating and running a sample app in AppFuse:

http://appfuse.org/display/APF/AppFuse+QuickStart


Yes, set up MySQL 5 on my PC, have Maven and the JDK installed.

Then created two examples:

mvn archetype:create -DarchetypeGroupId=org.appfuse
-DarchetypeArtifactId=appfuse-modular-struts
-DremoteRepositories=http://static.appfuse.org/repository
-DarchetypeVersion=2.0-m5 -DgroupId=com.mycompany.app
-DartifactId=simplecrud


mvn archetype:create -DarchetypeGroupId=org.appfuse
-DarchetypeArtifactId=appfuse-modular-tapestry
-DremoteRepositories=http://static.appfuse.org/repository
-DarchetypeVersion=2.0-m5 -DgroupId=com.mycompany.app
-DartifactId=tapestry-mod-crud

Then tried to run "mvn integration-test" on each of them.

Both are failing at this point:

[INFO] [antrun:run {execution: default}]
[INFO] Executing tasks
[delete] Deleting: C:\work\tapestry-mod-crud\web\target\webtest-data\web-test
s-result.xml
[echo] Testing 'tapestry-mod-crud-webapp-1.0-SNAPSHOT' with locale 'en'

Login:
log4j:WARN No appenders could be found for logger (com.canoo.webtest.ant.TestSte
pSequence).
log4j:WARN Please initialize the log4j system properly.
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error executing ant tasks

Embedded error: The following error occurred while executing this line:
C:\work\tapestry-mod-crud\web\src\test\resources\web-tests.xml:27: Canoo Webtest
: R_1454.
Test failed.
Test step steps (C:\work\tapestry-mod-crud\web\src\test\resources\web-tests.xml:
29: ) null failed with message "Step[invoke "get Login Page" (1/6)]: HTTP error
502, at: invoke"
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 39 seconds
[INFO] Finished at: Wed Aug 29 18:33:37 EST 2007
[INFO] Final Memory: 22M/44M
[INFO] ------------------------------------------------------------------------


AAARGH.

My co-worker seems to have a sample app set up and running correctly,
but most likely he's not going through the integration tests, or
didn't create the modular projects.

Interesting projects to write

Interesting scripts to write, just as an exercise. Write them in Ruby
then Python.

1. A script that goes through a directory of images and

- renames them, based on EXIF data with name format yyyymmdd-hhmmss.jpg
- creates directories for each distinct date

ie,

create

/20070828/
/20070829/

if the images in the directory are from 28 and 29 august

- (optional) if within the day there is a big gap in the batches of
images (ie, next image is 2 hrs later - have this gap specified in the
parameters), create a directory with " - [number]"

ie,

20070828 - 1

(because the next image timestamp is >=2 hrs later, this must be
another event, so better to have a separate directory)

20070828 - 2


2. The user types in a string and the program constructs an image or
web page with the message typed in "ransom note" format (ie, varying
font types per letter), with letter images fetched from Flickr


3. Go through all my entire Flickr photos and change licensing of all photos.

4. Go through all my mp3s and see if there are any podcasts that don't
have the "podcast" flag missing, then 'switch it on'

5. Get my bookmarks from del.icio.us, then upload to Google Bookmarks.

6. Go through all my photos and flag which ones
- are not readable
- have incomplete EXIF date info
- don't have thumbnails

7. Consolidate my del.icio.us tags. Right now I have some links tagged as "blog", and some are "blogs". Some are "book" and others are "books". Go through all the link tags, and based on which ones are in the majority, rename the tag with a smaller count to the one with the higher count.

Tuesday 28 August 2007

Work research - build server, continuous integration, java+ruby+.Net

We're planning to use Ruby and Java and possibly a little .Net in our new project, so just keeping track of some notes and things I've been researching. This will probably look ugly and require formatting from me.

More SVN config TODO:

* set up SVN+SSSH - otherwise, how will automated builds connect to SVN?
* Web interface for Subversion
ViewVC - requires python, GNU diff
WebSVN - http://websvn.tigris.org
Polarion - http://www.polarion.org/index.php?page=overview&project=svnwebclient

Continuous Integration environments

Java:
Continuum
Hudson - https://hudson.dev.java.net/
- handles maven2
- plugins for Jira, Findbugs, Violations (checkstyle, pmd, cpd and findbugs), Clover

http://damagecontrol.codehaus.org/Continuous+Integration+Server+Feature+Matrix

Ruby -- http://cruisecontrolrb.thoughtworks.com/
Continuous Integration Automater. - http://dev.rubyonrails.org/file/tools/cia/trunk/README
Damage Control - http://damagecontrol.codehaus.org/
Cerberus CI tool for Rails - http://cerberus.rubyforge.org/
handles ALL:

Luntbuild
Cruisecontrol - also has .Net

* Code Coverage
Emma - http://emma.sourceforge.net/samples.html - NO MAVEN PLUGIN - DOES NOT WORK IN INTELLIJ ANYMORE - works in cmd-line and Ant
Cobertura - http://cobertura.sourceforge.net/ - open source - originally from same source code as Clover... has Maven and Ant tasks
Clover - http://www.atlassian.com/software/clover/ - should integrate easily with Jira - supported everywhere! $2200 for team of 10.
features: http://www.atlassian.com/software/clover/whats-new.jsp

Utils to install on server:
Unix utils for win32
http://unxutils.sourceforge.net/
Zip - http://www.info-zip.org/

Saturday 18 August 2007

Ah, YouTube has yet again made my day

Nothing illustrates the quality of most user-generated content better
than YouTube comments such as this:

"sk8rat420: its spelled "nazis" and its the comunist group in germany
during world war 2"

LOL! OMG! He mispelt the word comunnist!

:P

Words simply fail me. I can't find it in me to even pick on him. I am
just in despair, at how many of his ilk are out there.

The comment was found on this video:

http://www.youtube.com/watch?v=N1ftKOQaGbU

Tuesday 14 August 2007

File under: "should've used better encryption"

http://www.smh.com.au/news/national/reprisal-raids-man-guilty/2007/08/14/1186857497172.html

Man taped using Pig Latin to organise Cronulla riot reprisal attacks.


A 29-year-old man was taped using the code language Pig Latin to
organise reprisal gangs the day after the Cronulla riots, a Sydney
court heard today.

Jeffrey Ismail, from Greenacre, pleaded guilty in Bankstown court this
morning to two charges of using a mobile phone to menace, harass or
offend on the day after the riots, December 12, 2005.

Social Software is the new vendor lock-in

An intriguing post about how "social software is the new vendor
lock-in." - http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=69141977-7514-443d-800b-1f95c1ff8dbe

Monday 30 July 2007

50% packet loss on my wireless network!

Now I've always had problems with my wireless router, but never this bad.

This is from 2 metres away:

Ping has started ...

PING 192.168.1.254 (192.168.1.254): 56 data bytes
64 bytes from 192.168.1.254: icmp_seq=1 ttl=128 time=35.500 ms
64 bytes from 192.168.1.254: icmp_seq=4 ttl=128 time=13.359 ms
64 bytes from 192.168.1.254: icmp_seq=7 ttl=128 time=83.702 ms
64 bytes from 192.168.1.254: icmp_seq=8 ttl=128 time=98.455 ms
64 bytes from 192.168.1.254: icmp_seq=9 ttl=128 time=60.282 ms

--- 192.168.1.254 ping statistics ---
10 packets transmitted, 5 packets received, 50% packet loss
round-trip min/avg/max/stddev = 13.359/58.260/98.455/30.988 ms


Ping has started ...

PING 192.168.1.254 (192.168.1.254): 56 data bytes
64 bytes from 192.168.1.254: icmp_seq=0 ttl=128 time=8480.132 ms
64 bytes from 192.168.1.254: icmp_seq=1 ttl=128 time=7493.772 ms
64 bytes from 192.168.1.254: icmp_seq=2 ttl=128 time=6494.477 ms
64 bytes from 192.168.1.254: icmp_seq=3 ttl=128 time=5491.412 ms
64 bytes from 192.168.1.254: icmp_seq=4 ttl=128 time=4490.754 ms
64 bytes from 192.168.1.254: icmp_seq=5 ttl=128 time=3491.359 ms
64 bytes from 192.168.1.254: icmp_seq=6 ttl=128 time=2491.809 ms
64 bytes from 192.168.1.254: icmp_seq=7 ttl=128 time=1496.600 ms
64 bytes from 192.168.1.254: icmp_seq=8 ttl=128 time=497.477 ms

--- 192.168.1.254 ping statistics ---
10 packets transmitted, 9 packets received, 10% packet loss
round-trip min/avg/max/stddev = 497.477/4491.977/8480.132/2578.873 ms


What the hell is going on?

I then turned the antenna on its side and I got these from Network
Utility (OS X):

Ping has started ...

PING 192.168.1.254 (192.168.1.254): 56 data bytes
64 bytes from 192.168.1.254: icmp_seq=0 ttl=128 time=2.717 ms
64 bytes from 192.168.1.254: icmp_seq=1 ttl=128 time=3.083 ms
64 bytes from 192.168.1.254: icmp_seq=2 ttl=128 time=2.876 ms
64 bytes from 192.168.1.254: icmp_seq=3 ttl=128 time=5.423 ms
64 bytes from 192.168.1.254: icmp_seq=4 ttl=128 time=6.824 ms
64 bytes from 192.168.1.254: icmp_seq=5 ttl=128 time=5.982 ms
64 bytes from 192.168.1.254: icmp_seq=6 ttl=128 time=3.871 ms
64 bytes from 192.168.1.254: icmp_seq=7 ttl=128 time=3.115 ms
64 bytes from 192.168.1.254: icmp_seq=8 ttl=128 time=2.946 ms
64 bytes from 192.168.1.254: icmp_seq=9 ttl=128 time=2.711 ms

--- 192.168.1.254 ping statistics ---
10 packets transmitted, 10 packets received, 0% packet loss
round-trip min/avg/max/stddev = 2.711/3.955/6.824/1.457 ms


Ping has started ...

PING 192.168.1.254 (192.168.1.254): 56 data bytes
64 bytes from 192.168.1.254: icmp_seq=0 ttl=128 time=4.986 ms
64 bytes from 192.168.1.254: icmp_seq=1 ttl=128 time=2.697 ms
64 bytes from 192.168.1.254: icmp_seq=2 ttl=128 time=2.659 ms
64 bytes from 192.168.1.254: icmp_seq=3 ttl=128 time=329.426 ms
64 bytes from 192.168.1.254: icmp_seq=4 ttl=128 time=3.694 ms
64 bytes from 192.168.1.254: icmp_seq=5 ttl=128 time=2.686 ms
64 bytes from 192.168.1.254: icmp_seq=6 ttl=128 time=6.140 ms
64 bytes from 192.168.1.254: icmp_seq=7 ttl=128 time=2.736 ms
64 bytes from 192.168.1.254: icmp_seq=8 ttl=128 time=3.012 ms
64 bytes from 192.168.1.254: icmp_seq=9 ttl=128 time=3.351 ms

--- 192.168.1.254 ping statistics ---
10 packets transmitted, 10 packets received, 0% packet loss
round-trip min/avg/max/stddev = 2.659/36.139/329.426/97.769 ms

Solution:
Change the antenna position - make it horizontal instead of vertical.
The direction where it's pointing might make all the difference.

Sunday 1 July 2007

Okay... now LinkedIn is starting to get scary.

I accepted an Invite from a former co-workeer in LinkedIn, and then on
the next page it showed a few names under "People you may know",
including an email friend that I have never worked with before, and
with whom I'm pretty sure I don't have any common connections. How it
found her, I have no idea. I didn't enter any friends emails in
LinkedIn to check if they were on the site, so other than that I can't
explain how the system ended up suggesting her name. Has LinkedIn
become part of the Google Skynet? :P

Saturday 23 June 2007

Maven depgraph plugin: getting a better picture of your Maven dependencies

Dependency management has always been a beeyotch, and it's only gotten
worse over the years. This library needs that and that and that
library, and another jar needs that and that jar. Then you could get
one jar depending on an older version of another jar, and another
requiring a newer one. God knows this leads to simple webapps that
only have 4 classes but so many dependencies that they balloon to 14Mb
.war files!

Maven has been a big help in managing this, but the introduction of
transitive dependencies in Maven2 has also resulted in the developer
knowing even less about what libraries are being used. Granted, the
whole thing saves you from having to specify each and every one of
those dependencies, but the fact you had to do it also meant you at
least *knew* what was going in there. And if there were any errors due
to conflicting library versions, you didn't have to trawl through as
many directories to find out what the conflict was. In Maven2, this
pretty much means you have to go through the .pom files in your
repository, whereas in Maven 1 you just had to look in your project's
project.xml.

Anyway, I came across this blog post about a maven plugin that
generates a diagram showing your maven dependencies:

http://mult.ifario.us/articles/2007/03/07/ok-who-put-the-junit-jar-in-my-war

It uses the very useful GraphViz (http://www.graphviz.org/) to create
the images.

It should be as easy as running:

mvn depgraph:depgraph

Sadly, I couldn't get it to work on my PC. Looks like there's a
parameter you pass in so the plugin knows your local repository -
which is kinda strange, since shouldn't it be able to get this from
Maven, which obviously *would* already have this information? The
parameter "m_localRepository" is a required parameter but the plugin
site (http://el4j.sourceforge.net/plugins/maven-depgraph-plugin/depgraph-mojo.html)
lacks examples of the proper usage. I mucked around and *seemed* to
get it working with a call to:

mvn depgraph:depgraph -Dm_localRepository="C:\localrepository"

But again, that didn't work. One of these days I'll get it working,
but looming deadlines require my attention on more immediate things to
do.

.

Wednesday 20 June 2007

Resolved: stick to Log4j for logging

A pretty clear reason why if it ain't broke, don't fix it.


http://radio.weblogs.com/0122027/2003/08/15.html

" The purpose of Commons Logging is not to isolate your code from
changes in the underlying logging framework. (That's certainly easy
enough to do on your own, and not really worth doing in the first
place given the ease of switching from one logging framework to
another.) The purpose of Commons Logging is not to somehow be more
useful than actual logging frameworks by being more general. The
purpose of Commons Logging is not to somehow take the logging world by
storm. In fact, there are very limited circumstances in which Commons
Logging is useful. If you're building a stand-alone application, don't
use commons-logging. If you're building an application server, don't
use commons-logging. If you're building a moderately large framework,
don't use commons-logging. If however, like the Jakarta Commons
project, you're building a tiny little component that you intend for
other developers to embed in their applications and frameworks, and
you believe that logging information might be useful to those clients,
and you can't be sure what logging framework they're going to want to
use, then commons-logging might be useful to you."

Tuesday 19 June 2007

Tomcat Native library

While working in IntelliJ and running Tomcat, I came across this message:

INFO: The Apache Tomcat Native library which allows optimal
performance in production environments was not found on the
java.library.path: C:\Program
Files\Java\jdk1.5.0_09\bin;.;C:\WINNT\system32;C:\WINNT;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program
Files\Intel\DMIX;C:\javatools\maven-2.0.6\bin;C:\javatools\apache-ant-1.7.0\bin;C:\PROGRA~2\XRay;C:\Program
Files\QuickTime\QTSystem\;C:\Program
Files\jEdit;C:\Sun\jwsdp-2.0\jwsdp-shared\bin

I'd never heard of this library before, so I had a look around and found this:

http://tomcat.apache.org/tomcat-5.5-doc/apr.html

The file is called tcnative-1.dll and is here: http://tomcat.heanet.ie/native/

I placed it in WINNT\System32 and all is sweet. Not that I'd notice it
much, but startup seems to have decreased from 4 to 2 seconds. :P

Saturday 16 June 2007

Launchy - application launcher for Windows, similar to Spotlight on OS X.

I've been looking for a tool similar to Spotlight on OS X that allows
you to start applications by just typing their name. Finally came upon
one - Launch @ http://www.launchy.net/

Just type Alt-Space to bring it up, then type the program name.

Much much better than screwing around with the Start Menu programs list.

(and yes, I know Spotlight does so much more than this)

Thursday 31 May 2007

Maven woes #98797894 - WTF is going on? Why the hell do I continue to get these plugin resolution errors? (Problems AND Solutions)

What the hell is this "just supposed to work" idea I've somehow got into
my head? Did I accidentally drink the Kool-Aid in the 3 years we had
one of the Maven developers in our team? The dependency management
aspect is cool and all, but plugin resolution sucks so badly.

I'm trying to run the Spring-WS samples, and I can't even get past STEP
2! For chrissake, I'm already doing this from home, not going through a
proxy, directly connected via Ethernet to my router, and it is still
getting these goddamn problems getting its plugins!


$ mvn -P hsqldb sql:execute
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'sql'.
[INFO]
------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO]
------------------------------------------------------------------------
[INFO] Error building POM (may not be this project's POM).


Project ID: org.codehaus.mojo:sql-maven-plugin

Reason: Error getting POM for 'org.codehaus.mojo:sql-maven-plugin' from
the repo
sitory: Failed to resolve artifact, possibly due to a repository list
that is no
t appropriately equipped for this artifact's metadata.
org.codehaus.mojo:sql-maven-plugin:pom:1.1-SNAPSHOT

from the specified remote repositories:
central (http://repo1.maven.org/maven2)

[INFO]
------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO]
------------------------------------------------------------------------
[INFO] Total time: < 1 second
[INFO] Finished at: Thu May 31 04:16:24 EST 2007
[INFO] Final Memory: 1M/2M
[INFO]
------------------------------------------------------------------------

me@homer /spring-ws/samples/airline/hsqldb

$ mvn -P hsqldb sql:execute -U -e
+ Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'sql'.
[INFO] org.apache.maven.plugins: checking for updates from central
[INFO] org.codehaus.mojo: checking for updates from central
[INFO] artifact org.codehaus.mojo:sql-maven-plugin: checking for updates
from ce
ntral
[INFO]
------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO]
------------------------------------------------------------------------
[INFO] Error building POM (may not be this project's POM).


Project ID: org.codehaus.mojo:sql-maven-plugin

Reason: Error getting POM for 'org.codehaus.mojo:sql-maven-plugin' from
the repo
sitory: Failed to resolve artifact, possibly due to a repository list
that is no
t appropriately equipped for this artifact's metadata.
org.codehaus.mojo:sql-maven-plugin:pom:1.1-SNAPSHOT

from the specified remote repositories:
central (http://repo1.maven.org/maven2)

[INFO]
------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: Error resolving
version
for 'org.codehaus.mojo:sql-maven-plugin': Unable to read the metadata
file for a
rtifact 'org.codehaus.mojo:sql-maven-plugin:pom': Error getting POM for
'org.cod
ehaus.mojo:sql-maven-plugin' from the repository: Failed to resolve
artifact, po
ssibly due to a repository list that is not appropriately equipped for
this arti
fact's metadata.
org.codehaus.mojo:sql-maven-plugin:pom:1.1-SNAPSHOT

from the specified remote repositories:
central (http://repo1.maven.org/maven2)

at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.verifyPlugin(Defa
ultLifecycleExecutor.java:1266)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.getMojoDescriptor
(DefaultLifecycleExecutor.java:1522)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.segmentTaskListBy
AggregationNeeds(DefaultLifecycleExecutor.java:386)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLi
fecycleExecutor.java:138)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:334)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:125)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:272)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at
org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)

at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by:
org.apache.maven.plugin.version.PluginVersionResolutionException: Err
or resolving version for 'org.codehaus.mojo:sql-maven-plugin': Unable to
read th
e metadata file for artifact 'org.codehaus.mojo:sql-maven-plugin:pom':
Error get
ting POM for 'org.codehaus.mojo:sql-maven-plugin' from the repository:
Failed to
resolve artifact, possibly due to a repository list that is not
appropriately e
quipped for this artifact's metadata.
org.codehaus.mojo:sql-maven-plugin:pom:1.1-SNAPSHOT

from the specified remote repositories:
central (http://repo1.maven.org/maven2)

at
org.apache.maven.plugin.version.DefaultPluginVersionManager.resolveMe
taVersion(DefaultPluginVersionManager.java:681)
at
org.apache.maven.plugin.version.DefaultPluginVersionManager.resolvePl
uginVersion(DefaultPluginVersionManager.java:186)
at
org.apache.maven.plugin.version.DefaultPluginVersionManager.resolvePl
uginVersion(DefaultPluginVersionManager.java:90)
at
org.apache.maven.plugin.DefaultPluginManager.verifyPlugin(DefaultPlug
inManager.java:166)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.verifyPlugin(Defa
ultLifecycleExecutor.java:1257)
... 14 more
Caused by:
org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException
: Unable to read the metadata file for artifact
'org.codehaus.mojo:sql-maven-plu
gin:pom': Error getting POM for 'org.codehaus.mojo:sql-maven-plugin'
from the re
pository: Failed to resolve artifact, possibly due to a repository list
that is
not appropriately equipped for this artifact's metadata.
org.codehaus.mojo:sql-maven-plugin:pom:1.1-SNAPSHOT

from the specified remote repositories:
central (http://repo1.maven.org/maven2)

at
org.apache.maven.project.artifact.MavenMetadataSource.retrieve(MavenM
etadataSource.java:134)
at
org.apache.maven.plugin.version.DefaultPluginVersionManager.resolveMe
taVersion(DefaultPluginVersionManager.java:672)
... 18 more
Caused by: org.apache.maven.project.ProjectBuildingException: Error
getting POM
for 'org.codehaus.mojo:sql-maven-plugin' from the repository: Failed to
resolve
artifact, possibly due to a repository list that is not appropriately
equipped f
or this artifact's metadata.
org.codehaus.mojo:sql-maven-plugin:pom:1.1-SNAPSHOT

from the specified remote repositories:
central (http://repo1.maven.org/maven2)

at
org.apache.maven.project.DefaultMavenProjectBuilder.findModelFromRepo
sitory(DefaultMavenProjectBuilder.java:560)
at
org.apache.maven.project.DefaultMavenProjectBuilder.buildFromReposito
ry(DefaultMavenProjectBuilder.java:234)
at
org.apache.maven.project.artifact.MavenMetadataSource.retrieve(MavenM
etadataSource.java:105)
... 19 more
Caused by:
org.apache.maven.artifact.resolver.ArtifactResolutionException: Faile
d to resolve artifact, possibly due to a repository list that is not
appropriate
ly equipped for this artifact's metadata.
org.codehaus.mojo:sql-maven-plugin:pom:1.1-SNAPSHOT

from the specified remote repositories:
central (http://repo1.maven.org/maven2)

at
org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(De
faultArtifactResolver.java:190)
at
org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(De
faultArtifactResolver.java:73)
at
org.apache.maven.project.DefaultMavenProjectBuilder.findModelFromRepo
sitory(DefaultMavenProjectBuilder.java:526)
... 21 more
[INFO]
------------------------------------------------------------------------
[INFO] Total time: 3 seconds
[INFO] Finished at: Thu May 31 04:39:40 EST 2007
[INFO] Final Memory: 1M/2M
[INFO]
------------------------------------------------------------------------


Okay, so the main error is this:

Caused by: org.apache.maven.project.ProjectBuildingException: Error
getting POM
for 'org.codehaus.mojo:sql-maven-plugin' from the repository: Failed to
resolve
artifact, possibly due to a repository list that is not appropriately
equipped f
or this artifact's metadata.
org.codehaus.mojo:sql-maven-plugin:pom:1.1-SNAPSHOT


Does anyone actually check this metadata before dumping it in the
fucking maven repository?


In the .m2\repository\org\codehaus\mojo\sql-maven-plugin directory on my
PC, I have a file maven-metadata.xml which contains:


<?xml version="1.0" encoding="UTF-8"?><metadata>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sql-maven-plugin</artifactId>
<version>1.0-beta-1-SNAPSHOT</version>
<versioning>
<latest>1.1-SNAPSHOT</latest>
<versions>
<version>1.0-beta-1-SNAPSHOT</version>
<version>1.0-beta-2-SNAPSHOT</version>
<version>1.0-beta-2-20060821.223722-1</version>
<version>1.0-beta-2-20060821.234648-2</version>
<version>1.0-beta-2-20060822.021210-3</version>
<version>1.0-SNAPSHOT</version>
<version>1.1-SNAPSHOT</version>
</versions>
<lastUpdated>20070221045741</lastUpdated>
</versioning>
</metadata>


However, if I go to the URL:

http://repo1.maven.org/maven2/org/codehaus/mojo/sql-maven-plugin/maven-metadata.xml

The file contains this:

<?xml version="1.0" encoding="UTF-8"?><metadata>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sql-maven-plugin</artifactId>
<version>1.0-beta-1</version>
<versioning>
<latest>1.0</latest>
<release>1.0</release>

<versions>
<version>1.0-beta-1</version>
<version>1.0-beta-2</version>
<version>1.0</version>
</versions>
<lastUpdated>20070125135425</lastUpdated>
</versioning>

</metadata>


So where in heaven's name did Maven get the metadata file that got
downloaded to my computer?

=======================

Okay, looks like I found the problem:


<mirrors>
<mirror>
<id>codehaus snapshots</id>
<name>Codehaus snapshots</name>
<url>http://snapshots.repository.codehaus.org/
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>

Which is copied from a setting in my work PC settings.xml. I don't think
it should be there at all. Maven ends up copying the latest version of
the plugin, or trying to anyway, since there is no 1.1-SNAPSHOT release,
only a timestamped jar:

http://snapshots.repository.codehaus.org/org/codehaus/mojo/sql-maven-plugin/1.1-SNAPSHOT/sql-maven-plugin-1.1-20070221.045741-1.jar

<http://snapshots.repository.codehaus.org/org/codehaus/mojo/sql-maven-plugin/1.1-SNAPSHOT/sql-maven-plugin-1.1-20070221.045741-1.jar>


Ah, better. It works now, but I had to move up a directory to
/spring-ws/samples/airline/

But wait... there's more:

me@homer /spring-ws/samples/airline
$ mvn -P hsqldb sql:execute
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'sql'.
[INFO]
-------------------------------------------------------------------------
---
[INFO] Building Spring WS Airline Sample
[INFO] task-segment: [sql:execute]
[INFO]
-------------------------------------------------------------------------
---
[INFO] [sql:execute]
[INFO] Executing file:
d:\work\careerone\spring-ws\samples\airline\src\main\sql\
hsqldb\airline-schema.sql
[INFO] Executing file:
d:\work\careerone\spring-ws\samples\airline\src\main\sql\
airline-dataload.sql
[INFO] 18 of 18 SQL statements executed successfully
[INFO]
------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO]
------------------------------------------------------------------------
[INFO] Total time: 2 seconds
[INFO] Finished at: Thu May 31 04:56:53 EST 2007
[INFO] Final Memory: 2M/4M
[INFO]
------------------------------------------------------------------------


Good. But then.

me@homer /spring-ws/samples/airline
$ mvn -P hsqldb jetty:run
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'jetty'.
[INFO]
------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO]
------------------------------------------------------------------------
[INFO] The plugin 'org.apache.maven.plugins:maven-surefire-plugin' does
not exis
t or no valid version could be found
[INFO]
------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO]
------------------------------------------------------------------------
[INFO] Total time: 1 second
[INFO] Finished at: Thu May 31 04:58:12 EST 2007
[INFO] Final Memory: 1M/4M
[INFO]
------------------------------------------------------------------------

Okay, try it with -e parameter.

me@homer /spring-ws/samples/airline
$ mvn -P hsqldb jetty:run -e
+ Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'jetty'.
[INFO]
------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO]
------------------------------------------------------------------------
[INFO] The plugin 'org.apache.maven.plugins:maven-surefire-plugin' does
not exis
t or no valid version could be found
[INFO]
------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: The plugin
'org.apache.m
aven.plugins:maven-surefire-plugin' does not exist or no valid version
could be
found
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.verifyPlugin(Defa
ultLifecycleExecutor.java:1286)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.getMojoDescriptor
(DefaultLifecycleExecutor.java:1469)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.segmentTaskListBy
AggregationNeeds(DefaultLifecycleExecutor.java:386)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLi
fecycleExecutor.java:138)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:334)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:125)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:272)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at
org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)

at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by:
org.apache.maven.plugin.version.PluginVersionNotFoundException: The p
lugin 'org.apache.maven.plugins:maven-surefire-plugin' does not exist or
no vali
d version could be found
at
org.apache.maven.plugin.version.DefaultPluginVersionManager.resolvePl
uginVersion(DefaultPluginVersionManager.java:228)
at
org.apache.maven.plugin.version.DefaultPluginVersionManager.resolvePl
uginVersion(DefaultPluginVersionManager.java:90)
at
org.apache.maven.plugin.DefaultPluginManager.verifyPlugin(DefaultPlug
inManager.java:166)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.verifyPlugin(Defa
ultLifecycleExecutor.java:1257)
... 14 more
[INFO]
------------------------------------------------------------------------
[INFO] Total time: 1 second
[INFO] Finished at: Thu May 31 04:58:22 EST 2007
[INFO] Final Memory: 1M/3M
[INFO]
------------------------------------------------------------------------

Isn't maven-surefire-plugin one of the core plugins that maven is
supposed to already know about?

AAAAAARGH. Tried running it with -e -X parameter. Lightbulb moment.
Again, a wayward setting I pasted from somewhere else that screwed
things up for maven.

In trying to fix the sql-maven-plugin issues, I had placed these
settings in, but forgot to replace them with appropriate values.

<profiles>
<profile>
<id>my-snap-repo-profile</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>my-snap-repo</id>
<name>My In-House SNAPSHOT Repository</name>
<url>http://www.my-server.com/maven-snap
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>my-snap-plugin-repo</id>
<name>My In-House SNAPSHOT Plugin Repository</name>
<url>http://www.my-server.com/maven-snap
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>interval:15</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>

running it with -X then showed the problem:

[INFO] Searching repository for plugin with prefix: 'jetty'.
[DEBUG] Skipping disabled repository my-snap-plugin-repo
[DEBUG] Skipping disabled repository my-snap-plugin-repo
[DEBUG] Skipping disabled repository my-snap-plugin-repo
[DEBUG] maven-compiler-plugin: resolved to version 2.0.2 from repository
central

[DEBUG] Retrieving parent-POM: org.apache.maven.plugins:maven-plugins::8
for pro
ject: null:maven-compiler-plugin:maven-plugin:2.0.2 from the repository.
[DEBUG] Retrieving parent-POM: org.apache.maven:maven-parent::5 for
project: org
.apache.maven.plugins:maven-plugins:pom:8 from the repository.
[DEBUG] Retrieving parent-POM: org.apache:apache::3 for project:
org.apache.mave
n:maven-parent:pom:5 from the repository.
[DEBUG] Skipping disabled repository my-snap-plugin-repo
[DEBUG] maven-surefire-plugin: using locally installed snapshot
[DEBUG] Artifact not found - using stub model: Unable to determine the
latest ve
rsion

org.apache.maven.plugins:maven-surefire-plugin:pom:LATEST


[DEBUG] Using defaults for missing POM
org.apache.maven.plugins:maven-surefire-p
lugin:pom:LATEST
[DEBUG] maven-surefire-plugin: using locally installed snapshot
[DEBUG] Artifact not found - using stub model: Unable to determine the
release v
ersion

org.apache.maven.plugins:maven-surefire-plugin:pom:RELEASE


[DEBUG] Using defaults for missing POM
org.apache.maven.plugins:maven-surefire-p
lugin:pom:RELEASE
[INFO]
------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO]
------------------------------------------------------------------------
[INFO] The plugin 'org.apache.maven.plugins:maven-surefire-plugin' does
not exis
t or no valid version could be found
[INFO]
------------------------------------------------------------------------

So eventually, Maven decides "OK, I'll just go find the RELEASE version
of maven-surefire-plugin, but then it's pointing to a nonsense plugin
repository. Which still doesn't make sense because that plugin
repository is supposed to be disabled. So does this mean having a
setting in there disables Maven from doing any further searches on the
main repo1.maven.org repository? Looks like it.

Nah, that wasn't the problem. The problem was the version I have
installed locally - it looks like when I installed it manually, it
didn't get set up with any version info, so the metadata.xml for that
and maven-resources plugin reads:

<?xml version="1.0" encoding="UTF-8"?><metadata>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
</metadata>

and

<?xml version="1.0" encoding="UTF-8"?><metadata>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
</metadata>

The fix? Remove those installed jars and just let maven re-fetch them
from the repository.

Maven then re-installed these plugins and we now have:

<?xml version="1.0" encoding="UTF-8"?><metadata>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.1.3</version>
<versioning>
<latest>2.3</latest>
<release>2.3</release>
<versions>
<version>2.0-beta-1</version>
<version>2.0</version>
<version>2.1</version>
<version>2.1.1</version>
<version>2.1.2</version>
<version>2.1.3</version>
<version>2.2</version>
<version>2.3</version>
</versions>
<lastUpdated>20070301014816</lastUpdated>
</versioning>
</metadata>

and

<?xml version="1.0"?><metadata>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<versioning>
<latest>2.2</latest>
<release>2.2</release>
<versions>
<version>2.0-beta-1</version>
<version>2.0-beta-2</version>
<version>2.0</version>
<version>2.1</version>
<version>2.2</version>
</versions>
<lastUpdated>20060514041911</lastUpdated>
</versioning>
</metadata>


Finally got the sample app running. Looks like installing a plugin
without version number (eg, the -Dversion parameter) caused that last error.

Saturday 5 May 2007

Cough up extra $$ to see Marilyn Manson's great grandad! Oooh yeah, that'll work.

I got an email from Ticketek announcing pre-sales for Alice Cooper's tour. This bit caught my eye:

During this pre-sale, a Premium Access fee of $20 per ticket**
has been applied to ensure the allocation of premium seating prior to
general public sale.


Okay, so you mean pre-sales for premium seats will now cost $20 extra, over the normal cost of the Premium ticket - which tends to be overpriced as it is!

What's next? An early bird pre-pre-sale, with $20 extra on top of the Premium Access fee? W000t!

Come on, Ticketek, you know you want to.

Friday 4 May 2007

Magic hex numbers

So rumour has it there's this magic code that's kinda like that video in The Ring. Post it on your blog and then seven days later, your blog will dieeeee!

09 F9 11 02 9D 74 E3 5b D8 41 56 C5 63 56 88 C0

....click

...DROPPED CARRIER

Wednesday 2 May 2007

MP3s to make you mellow

A few months ago I went on a self-help, hypnosis bender. Or rather, I browsed websites and downloaded mp3s on said topics. I didn't really follow all of the tips or listened to all the mp3s. There just wasn't enough time! I tried, but eventually got bored. The new Justin T. album was more fun.

For a few weeks, I had Anthony Robbins on my headphones while I walked to work in the morning. Then I started thinking about his teeth, and how much work he must put in to keep them gleaming. And how fun it would be to own your own island. Wait, maybe that was Richard Branson. Or maybe they both own their own islands and are neighbours in the South Pacific. Whatever.

One of the sites I got the mp3s from had a lot of audio files, but it pissed me off when I listened to them because they were all read out by a text to speech program. Ugh. And not like Hal from 2001. More like Radiohead's "Fitter, Happier". Anyway, I didn't really get much out of them, and they didn't seem to work.

The good people at The Positivity Blog are recommending this file called "Double Induction", and it's supposed to put you in a state of relaxation for up to 24 hours. The comments from people seem to indicate that it works. And it's free, with no risk of prosecution, unlike some other things I can think of but can't afford right now...

Now if only someone could come up with that "learn Kung-fu subliminally" mp3. Would be easier with a plug-in-the-back-of-the-neck option ala The Matrix but I'm kinda chicken when it comes to cybernetic enhancements to my puny frame.

Crypto scandal: Alice and Bob are having an affair

I always wondered why Alice and Bob needed all that encryption for their messages. Now I know.



Alice and Bob are the example names regularly used in explanations and discussions of public key cryptography. "Eve, an eavesdropper, is usually a passive attacker. While she can listen in on messages between Alice and Bob, she cannot modify them." These two have been the talk of the geekosphere for quite a while now.

Stumbled on this via tabo @ aureal.

Update on Powerbook problems with WPA and wi-fi

I don't know what happened, but this afternoon, my wi-fi connection at home was going crazy. First, the signal just vanished, even though my Powerbook was still at the same location as yesterday - downstairs in the living room. I tried changing channels a few times, fearing that it was conflicting with someone else's network or a cordless phone, or whatever. No dice. Advice I found suggests to try Channels 1, 6 and 11.

In doing so I discovered utilities such as iStumbler and Air Traffic Control for Dashboard, both of which are pretty handy at checking which networks are being detected by Airport and what channel they are using. The only noteworthy difference between the two for me was that the former has a nice looking graph of the samples it takes of the signal, and the latter also displays the type of encryption used. (iStumbler also handles Bluetooth and Bonjour signals)

Knowing what channels were being used didn't really help, since my neighbours were already using different channels. I took the laptop upstairs and put it beside my modem - no dice. The signal was still at zero. Turning Airport off and on, then re-entering my WPA password only resulted in the message "There was an error joining the Airport Network..." I removed any entries for the WPA password in Keychain, typed in the password s-l-o-w-l-y in case of any typos - nah, still no wi-fi.

Finally I shut everything down. Turned off the modem/router, left it off for 30 seconds, turned back on. Then shut down my Powerbook and restarted. Works now.

And you thought the days of "restart the machine if things still don't work" were a thing of the past just because you'd moved to OS X? Think again.

Oh great, my signal just dropped out again - despite my Powerbook sitting here one metre away from my wireless router! WTF is going on here? Restarting the router seems to fix it, but for how long? Aaargh.

I never had these problems when I was using WEP. Maybe I should upgrade my modem, since I'm already on ADSL2+ and it only does ADSL. Then maybe try using WPA2.

I've just found that MAC address filtering doesn't offer much security, since "Wireless clients send their MAC address in the clear, regardless of whether the AP requires WEP or not." I'll test this using a KisMAC, an OS X packet sniffer.

Sunday 29 April 2007

The Polyphonic Spree, Enmore Theatre, Sydney, 27 Jan 2005

Found this while archiving in Gmail. Don't think i ever sent this to anyone except the band. Added a few comments in [italics].

=============

Confused post-gig ramblings, which I'll reorder into coherence and post in the forums later:

I've just come back from their gig at the Enmore Theatre in Sydney. This has been the strangest, most uplifting, most ecstatic gig that I have ever been in.

I'd never actually heard their music before I got the tickets to the gig. I'd read some articles about them, and of all the post-Big Day Out shows - the Hives and Chemical Brothers also had gigs on the same night - decided this would have to be the most unique. Twenty-piece plus band, with guitars, drums, horns AND theremin, how could it fail? I asked a guy at the music store to describe what they sounded like - was it like choir music, 60s pop, or more like gospel? He had one word - "happy". I eventually managed to get a copy of the album, but had only listened to it a few times, and the most familiar ones have been the poppier tunes like Hold Me Now and Two Thousand Places. Unfortunately, I won't be able to give an accurate setlist, as the songs are still quite new to me, and I don't have the first album.

My friend and I arrived to see support act Sarah Blasko nearing the end of her set, to my regret. Damn. The last song was pretty good, with some layered vocal effects at the end that reminded me of recent Bjork. I wonder if this was a single. Sounds like it. Faster than the previous song.

I'm glad I didn't get any seated tickets. I originally wanted to get seats for the dress circle/balcony, but they only had General Admission, and Reserved Seating at the bottom. Since everyone was gonna stand up eventually, seats at the bottom would be useless anyway.

What does it all remind me of?

  • Sesame Street --- pampam, papap, papapam, papaman.. sunny days sweeping the clouds away...

  • Pokemon - because they're also cute

  • Sanrio - because it's the asian symbol for happy, hehehe...

  • The intro to the Velvet Underground's "Head Held High", which starts with these voices in harmony going "haaa..." then the drums kick, and you keep on jumping back to the start, so you can figure out which air drums to "play" when you're pretending to be Mo Tucker... did
    the kick drum come first, or was that a snare?

  • Speaking of "haa..." does anyone remember that Jim Henson animated movie from the 80s, the Dark Crystal? There was a part where all the turtle-like creatures come out and also go.. "haaa...", and it piles up, all these deep bassy tones converging...

  • Jesus Christ Superstar, though not as wide-eyed and funky. Hmm.. must be the robes and the hair then!

  • tibetan throat singing



Oh my god, I've got a crush on someone from the band! O gorgeous Lady of The Orange Robe, of the first row in the choir, standing beside the lady in Red robe, who was also looking extremely cool in her choreography. Love those head-shakes! Does anyone know all their names, and more importantly, *her* name? There's a list of names on the PS website, but no pictures to match the names to!

[I later found out her name: Apotsala Wilson]

We're all high, and we don't wanna come down!

There was one part of the gig where they're playing a song, and then it all goes quiet and everyone onstage was standing still in a pose, except for Tim, who got the audience to start singing this single note for what seemed like ages - ME: "Haaaa......" "Aaaaa......" "Aaaaa......" "Aaaaa......" "Aaaaa......"

They returned to the stage for their encore by coming through the theatre entrance, and going through the crowd.

Little kid in robes at the side of the stage on his little drum kit, sooo cute!! Later, the percussionist came to him and got him to play tambourine.

[This was lead singer Tim De Laughter's son]

Percussion guy comes out and lifts one of the drumkit cymbals and stand, and goes to the left speaker.. I think the's the same guy who went offstage and into the crowd with the cymbals.

Drummer comes out with drum hanging from his neck, like in a marching band

Songs played, in no order:

A Long Day Continues
Hold Me Now
Two Thousand Places
One Man Show
Suitcase Calling
When The Fool Becomes A King

I dont' have the prev. album, but this song -
"It's the sun... It's the sun.. " - must be from that one...

Short verse of "Oh what a night"
A bit of "You are my sunshine"... don't know if this was a request from someone in the audience, but I assume so, seeing Tim holding up a sheet of paper with "You are my sunshine" written in red marker.

Last song of the night - Sergeant Peppers Lonely Hearts Club Band (!) - main song and reprise.


[Best cover ever of Sgt Pepper! They played it regularly during this tour. My friend in San Francisco also heard it there.]

The dials were always at 11. Not in terms of volume, but in how it made us all feel. Every song was played like it was the last song of the night.

You don't watch The Polyphonic Spree - you become one of them, if only for the hour and a half that you share the same room.

Friday 27 April 2007

The Story of E

"After hitting it big during the dot-com boom of the 90's, the tech
world's best-known letter comes out of seclusion for a rare
conversation with BidnessWeek's Steve Rosenblush."

http://www.cerado.com/web20-interview-with-e.htm

Current linkies

A link in an old "starred" email in Gmail led me on this 2 hour round
of click, click, click, following links that took me for a bit more
reading on this low-level web 2.0 goodness:

http://www.geobloggers.com/archives/

http://geobloggers.com/archives/2007/03/31/geonames-rdf-triplr-json-yahoo-pipes-and-the-semantic-web-oh-my/


* Triplr - online tool to transform feeds into different formats:

http://triplr.org/

"Form a URI in your head that is http://triplr.org/output format/input URI

Give that to a web browser or other application."

* geodata - free geographic data

http://www.geonames.org/

"About Geonames
The geonames.org geographical database is available for download free
of charge under a creative commons attribution license. It contains
over eight million geographical names and consists of 6.3 million
unique features whereof 2.2 million populated places and 1.8 million
alternate names. All features are categorized into one out of nine
feature classes and further subcategorized into one out of 645 feature
codes. (more statistics ...).

The data is accessible free of charge through a number of webservices
and a daily database export. Geonames.org is already serving up to
over 3 million web service requests per day."


* Comparison of JSON vs XML, and how with increasing complexity, both
of them start to look pretty.. well, complex:

http://www.megginson.com/blogs/quoderat/2007/01/03/all-markup-ends-up-looking-like-xml/


* More JSON goodies:

http://www.json.org/xml.html


* Yahoo Pipes - Just started playing around with this. Awesome stuff!

http://pipes.yahoo.com/pipes/docs?doc=overview

http://www.hunlock.com/blogs/Yahoo_Pipes--RSS_without_Server_Side_Scripts

http://pipes.yahoo.com/pipes/docs?doc=tutorials

Thursday 26 April 2007

changed MTU with DrTCP.exe --> MTU=1464

Used DrTcp.EXE to change MTU settings in winxp to 1464.

Why this value?

Because of this:

-- 1464 seems to be the biggest value I can set for the ping without
getting the "Packet neesd to be defragmented but DF set" message from
ping.

-- how this relates to the MTU I have set in my modem. I don't know.
Currently set to 1492 but changed it to MTU=1500 because it is now
back to using PPPoA


C:\>ping -f -l 1472 www.broadbandreports.com

Pinging broadbandreports.com [209.123.109.175] with 1472 bytes of data:

Reply from 192.168.1.254: Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.

Ping statistics for 209.123.109.175:
Packets: Sent = 4, Received = 1, Lost = 3 (75% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms

C:\>ping -f -l 1500 www.broadbandreports.com

Pinging broadbandreports.com [209.123.109.175] with 1500 bytes of data:

Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.

Ping statistics for 209.123.109.175:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),


C:\>ping -f -l 1500 www.broadbandreports.com

Pinging broadbandreports.com [209.123.109.175] with 1500 bytes of data:

Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.

Ping statistics for 209.123.109.175:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

C:\>ping -f -l 1472 www.broadbandreports.com

Pinging broadbandreports.com [209.123.109.175] with 1472 bytes of data:

Reply from 192.168.1.254: Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.

Ping statistics for 209.123.109.175:
Packets: Sent = 4, Received = 1, Lost = 3 (75% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms

C:\>ping -f -l 1200 www.broadbandreports.com

Pinging broadbandreports.com [209.123.109.175] with 1200 bytes of data:

Reply from 209.123.109.175: bytes=1200 time=261ms TTL=51
Reply from 209.123.109.175: bytes=1200 time=264ms TTL=51
Reply from 209.123.109.175: bytes=1200 time=279ms TTL=51

Ping statistics for 209.123.109.175:
Packets: Sent = 3, Received = 3, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 261ms, Maximum = 279ms, Average = 268ms

C:>ping -f -l 1300 www.broadbandreports.com

Pinging broadbandreports.com [209.123.109.175] with 1300 bytes of data:

Reply from 209.123.109.175: bytes=1300 time=262ms TTL=51

Ping statistics for 209.123.109.175:
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 262ms, Maximum = 262ms, Average = 262ms

C:\>ping -f -l 1400 www.broadbandreports.com

Pinging broadbandreports.com [209.123.109.175] with 1400 bytes of data:

Reply from 209.123.109.175: bytes=1400 time=273ms TTL=51
Reply from 209.123.109.175: bytes=1400 time=269ms TTL=51

Ping statistics for 209.123.109.175:
Packets: Sent = 2, Received = 2, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 269ms, Maximum = 273ms, Average = 271ms

C:\>ping -f -l 1450 www.broadbandreports.com

Pinging broadbandreports.com [209.123.109.175] with 1450 bytes of data:

Reply from 209.123.109.175: bytes=1450 time=272ms TTL=51

Ping statistics for 209.123.109.175:
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 272ms, Maximum = 272ms, Average = 272ms

C:\>ping -f -l 1472 www.broadbandreports.com

Pinging broadbandreports.com [209.123.109.175] with 1472 bytes of data:

Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.

Ping statistics for 209.123.109.175:
Packets: Sent = 2, Received = 0, Lost = 2 (100% loss),

C:\>ping -f -l 1470 www.broadbandreports.com

Pinging broadbandreports.com [209.123.109.175] with 1470 bytes of data:

Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.

Ping statistics for 209.123.109.175:
Packets: Sent = 2, Received = 0, Lost = 2 (100% loss),

C:\>ping -f -l 1460 www.broadbandreports.com

Pinging broadbandreports.com [209.123.109.175] with 1460 bytes of data:

Reply from 209.123.109.175: bytes=1460 time=263ms TTL=51
Reply from 209.123.109.175: bytes=1460 time=263ms TTL=51

Ping statistics for 209.123.109.175:
Packets: Sent = 2, Received = 2, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 263ms, Maximum = 263ms, Average = 263ms

C:\>ping -f -l 1465 www.broadbandreports.com

Pinging broadbandreports.com [209.123.109.175] with 1465 bytes of data:

Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.

Ping statistics for 209.123.109.175:
Packets: Sent = 2, Received = 0, Lost = 2 (100% loss),

C:\>ping -f -l 1463 www.broadbandreports.com

Pinging broadbandreports.com [209.123.109.175] with 1463 bytes of data:

Reply from 209.123.109.175: bytes=1463 time=264ms TTL=51
Reply from 209.123.109.175: bytes=1463 time=267ms TTL=51

Ping statistics for 209.123.109.175:
Packets: Sent = 2, Received = 2, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 264ms, Maximum = 267ms, Average = 265ms

C:\>ping -f -l 1464 www.broadbandreports.com

Pinging broadbandreports.com [209.123.109.175] with 1464 bytes of data:

Reply from 209.123.109.175: bytes=1464 time=262ms TTL=51
Reply from 209.123.109.175: bytes=1464 time=266ms TTL=51
Reply from 209.123.109.175: bytes=1464 time=264ms TTL=51
Reply from 209.123.109.175: bytes=1464 time=263ms TTL=51

Ping statistics for 209.123.109.175:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 262ms, Maximum = 266ms, Average = 263ms

C:\>ping -f -l 1465 www.broadbandreports.com

Pinging broadbandreports.com [209.123.109.175] with 1465 bytes of data:

Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.

Ping statistics for 209.123.109.175:
Packets: Sent = 2, Received = 0, Lost = 2 (100% loss),
Control-C

C:\>ping -f -l 1464 www.broadbandreports.com

Pinging broadbandreports.com [209.123.109.175] with 1464 bytes of data:

Reply from 209.123.109.175: bytes=1464 time=273ms TTL=51
Reply from 209.123.109.175: bytes=1464 time=262ms TTL=51
Reply from 209.123.109.175: bytes=1464 time=263ms TTL=51

Ping statistics for 209.123.109.175:
Packets: Sent = 3, Received = 3, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 262ms, Maximum = 273ms, Average = 266ms

Setting up Airport Extreme to use WPA-Personal on a Powerbook G4

I've been trying for quite a while, but not really hard enough, to set up my Powerbook to use WPA instead of WEP for its wi-fi connection. I finally got it working!

1. Enable ESSID Broadcast on your wireless modem. Restrict the clients that can connect to your network by setting up a list of allowed MAC addresses.

On the modem's Wireless settings, the "ESSID Broadcast" field must be set to "Enable". I found that whenever this was Disabled, I would get the error on my Powerbook when I tried to create a new Network entry:

"The wireless network [network name] does not support the requested encryption method."

This error occurs even if I entered the correct WPA key.

If you really want to turn ESSID Broadcast off, you can still do so by first connecting from your Powerbook while ESSID Broadcast is enabled. Then after that, you can go into your modem's settings and set it back to Disabled.

However, if you turn Airport off, or lose the connection to the network, you won't be able to go back unless you re-enable ESSID Broadcast.

A better way of ensuring no one else connects to your wireless network is to set up a list of allowed clients. In my modem, I went into Wireless Client Filter settings and put in the MAC address of my Powerbook's Airport card. Set the "Filter Action" to "Allowed".

In OS X, you get this value by using Network Utility. Click on the Info tab, then copy the values listed in the Hardware Address field.

Note that my modem is a Billion - BIPAC-743GE. I don't know if this fault/feature is specific to Billion modems or my model. For any other modems, YMMV.

2. On your Powerbook, ,make sure you WPA key is in ASCII and is 63 characters long

I'd previously tried creating Network entry using a shorter WPA key and it didn't work. I kept getting a message "There was an error joining the Airport Network [network name]"

(2.5 hours later)

Shit. I went into my modem settings and tested the above statement, and entered a shorter phrase for testing. I then entered the same values in my Powerbook. Tried to connect and it failed.

I then entered the original values in the modem, saved the settings, then restarted it. Did the same on the Powerbook, changing the password in KeyChain. Didn't work. Network Utility crashed continuously. Re-entered the values a couple of times. No dice.

Then I connected the Powerbook via Ethernet cable, and turned Airport off. Browsed a few pages. I disconnected the cable, then turned Airport back on. It was working, and selected the default network that I had set up.

So what was the actual problem? I have no idea. Maybe some magic gremlin in OS X feels happier when it detects an internet connection via Ethernet, then decides to let WPA work. Aaaargh!

I could have saved two and a half hours of my life by just disabling security or going back to using WEP, since I'd already restricted the wireless clients anyway.

Saturday 21 April 2007

Getting problems with Taiyo Yuden

How ironic. I've started burning a backup set of my photos using my newly-opened stack of Taiyo Yuden DVD-R discs bought from MSY, the discs that are supposedly the best brand in the business, and I've already had 3 coasters, out of the 9 I've used so far.  I'm still checking if it's related to the speed that I'm using... previously I could only burn at 4x, even though the TDK case says 1-16x, and have rarely had issues.  But this time Nero displayed the 8x option as default, but it failed during verification.  I then tried burning at 6x but only got one disc fine,  then the second one also failed. I'll try using 4x for the next ones, after I finish with the TDK disc I'm using as "control" for my test.  Arrrgh.

So possible causes:

1. Burning speed - previously only burnt using 4x so I should try doing the TY discs at 4x
2. Hardware problem - forum posts I've seen have mentioned that sometimes the lens getting dirty can cause this, so I should try burning using the TDK DVD-R blanks I still have. 
3. The Taiyo Yuden DVDs I have are either fake or a bad batch.   (I'd like to think MSY only source from genuine dealers, but at those prices, kinda makes you wonder -- $53 for 100 Taiyo Yuden DVD-Rs)

Not happy! >:(



Thursday 12 April 2007

Copy del.icio.us bookmarks to Google bookmarks

Ever wanted to be able to just restrict a Google search to only go
across the ones you've already bookmarked? Google can do it by
searching only sites in your Google bookmarks. Unfortunately, I don't
use Google bookmarks, as all my bookmarking is done in del.icio.us.
You can do it by going to this site that has a script which uploads
your del.icio.us bookmarks and puts it in Google.

http://blog.persistent.info/2006/10/import-your-delicious-bookmarks-into.html

Warning though: you will have to log in with your del.icio.us login. To be safe, just change your password before using this utility, then change it back to the original once the import process has finished.

Wednesday 11 April 2007

Cat with 26 toes



Found this on my PC, dated 23 Feb 2007. Better blog it before I forget again.

Wednesday 14 March 2007

Cy, the one-eyed kitten


(it's old, but this is the one that got me interested in this)

News of this cyclops kitten came out on 10 January 2006. Sadly, it only lived one day.