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.

Friday, 2 March 2007

Steam cleaning Babel into Weng Weng

Stayed at home and moved furniture from living room so we could get it steam-cleaned.

Wife rings steam-clean guy, who says that he's just looking at the map. Says our street is not on the map. "Wait, i will just look at the internet". He arrives at 12, instead of 11 as originally scheduled.

(Later, i will find out that his map is from year 2000. Goddamn, wouldn't it make business sense to get a new street directory every year, just so you can bloody find your customers' houses without any problem?)

Cleaning, cleaning... it all looks good anyway.

Oh, he doesn't have change! What a surprise. Oh great.

Well at least he didn't go and try to rip us off like the previous steam-clean guy, who charged $30 extra! When my wife told him she already got a quote from his wife of $55, the guy goes, "Well that's my wife, not me." WTF? Amazingly, my wife booked him to come back to our place to clean the rest of the carpeted area. I got her to cancel that, of course. Talk about adding insult to injury.

But for a bargain hunter like me, paying $140 instead of $135...waah, it's the principle of it! So he's late AND gets a $5 tip? Nice.

We were planning to watch Babel at 6pm at Westfield Burwood, but now my wife decides NO I DON'T WANT TO WATCH IT, NOT THIS WEEKEND, NOT NEXT WEEK, NOT IN THE CITY. Under my new policy of not cancelling things I really want to see/ go to just because she friggin' changes her mind, otherwise i'll just be resenting her later.. I still go and catch the train in time and get there with a few mins to spare. They had other trailers anyway.

Babel was screening at Senstadium cinema.. biiig and nice. And there, your seats are booked, though seating is never really a problem when the 6pm session had only 3 people in the cinema. And we're all Asian.

I really want to cry at a movie. I want to be touched. To feel something so deeply. To get my buttons pushed, be emotionally manipulated, be a bigtime teary-eyed sucka. But no, not this movie. Throughout the film, you could sense there was this grand, profound statement about the connectedness of us all. Or maybe there isn't, and Innaritu just wanted to use that overlapping, sequential events thang used in Pulp Fiction, Amorres Perros.. oh, wait, Amorres Perros was his film! Anyway. Maybe it was all an artful, deeply felt, emotional way of saying "Shit happens. To everyone. At the same time."

The Mexican nanny played by Adriana Barraza was quite moving. As was Rinko Kikuchi as the rebellious, deaf-mute Japanese daughter. Who was also pretty hot, and amazingly still a virgin. WTF?

Brad Pitt and Cate Blanchett lent starpower, and quite possibly were major factors in this film getting made, but they didn't really have much to do. The drama was with the Moroccan characters, which I guess is a bit of a novelty for a big budget film like this.

I can just hear the studio execs before this was greenlit:

"Seriously? More than half the film is subtitled? But it doesn't have Zhang Ziyi or any kung fu? And it's not produced by Mel Gibson? And no steamy sex like Y Tu Mama Tambien? Or creepy monsters like Pan's Labyrinth? You mean, they really have to read the subtitles to know what's going on?"

"But the Japanese chick flashes her pussy. And takes it all off. Full frontal. She's emotionally fragile, you see."

"Bada-bing! Carry on then."

But at least it wasn't as down as Pan's Labyrinth. That was a good film, but I'd have to agree with my friend who called it depressing. The killing of hope is never a good thing.

Off to see Weng Weng films tomorrow! I never saw a single one when I was growing up back in the 80s, but now that I've heard theyr'e actually cult classics, hey, lemme have some o' that. That's my heritage. Hahahahaa... Been trying to ring my brother, who actually enjoyed these films in our childhood, but he never answers his phone, for some reason. He'll be kicking himself now, when I tell him what I saw! Maybe.

At the Chauvel in Paddington, 9pm, they're showing the films For Your Height Only, followed by The Impossible Kid. And I won a double-pass from Drum Media, so my name's at the door. So if it sucks really bad, it didn't cost me a thing! Except dinner. (This is actually the very first freebie/ prize of any sort I've won in Australia)

Tuesday, 30 January 2007

Rest in peace

We never gave you another chance, but I think twenty years was enough.
You fucked up bigtime, and now your children no longer care.

How did it feel to lose everyone in your life? For your family and
friends to stay away?
How did it feel to be the most intelligent man in your family, but the
only one to die alone?

You considered me dead ten years ago. And I saw you likewise.
But now I don't need to do any considering anymore.

I don't like myself at this very moment. Gloating. Relieved. Almost thankful.
I am not a good human being right now. I loathe myself this very second.

I do not want to feel this way. But I feel it still. You made me so.

Jose Gonzalez: Love Will Tear Us Apart

I don't know what it is, but he's got it. He doesn't seem to be as burdened with the legacy of this song. The New Order version just has too much fucking baggage, and inevitably triggers all these comparisons with the original. How could it not?

This guy just goes and does it, almost as if he's in a hurry, with a voice that reminds me a little of Ian Curtis - deep, and monotonous - the kind of voice you'd expect announcing the arrival of a new train, or paging somebody on the hotel PA.

I must admit, if it was Ian Curtis's voice announcing the coming train, maybe I wouldn't get on it.





R.I.P. to the ones who have left without joy from this world.

Thursday, 18 January 2007

Interesting book on website accessibility

http://joeclark.org/book/

Found while doing a search on a problem I've been having with a page
containing two forms, and they both have an input textbox with
tabindex="1".

The problem: One form on the page contains a search box, and the other
is a form for posting comments. Now what happens is when I'm in the
comment form, at the first textbox, when I press tab to get to the
next textbox, I end up going to the search box instead, I think
because it has tabindex="1" also.

And his advice is:

http://joeclark.org/book/sashay/serialization/Chapter12.html

"Of course, if there's a search field on every page but the content of
the page in question consists of a separate form not duplicated
elsewhere, then that big form is what takes precedence."

Though there's no advice on what to do about the conflicting tabindex
values. Maybe I should just experiment and see how it works out. Hmm..
interesting idea.

I like what he has to say about "Reset" buttons:

"In general, Reset buttons are a miserable idea. Real-world visitors
are quite likely to hit the button by accident and wipe out everything
they have entered in the form. Web developers seem to include Reset
buttons because HTML makes it easy. I've been online since before
there even was a Web and I can tell you categorically that I have
never once found a Reset button that truly needed to be there."

Friday, 12 January 2007

Taking Back Sunday: 12 Days of Christmas (animation)

This video actually got me thinking about the song, and how weird those gifts really are! Imagine, you get birds for the first four days, then jewellery, then geese, swans, maids, dancers, lords, pipers, drummers. I'm surprised they thought the geese were "laying", as in getting it on. Birds lay eggs! What are kids thinking these days.

If this was made in the early 20th century, you'd probably call this "surrealist". But these days, we just say NIIIIIIIIICE. Watch for cameos from Jerry Garcia and Gollum.

Sunday, 7 January 2007

New Year's resolution?

I'm not in the habit of making New Year's resolutions, but if I was, I might include this:

Babies laughing - always cute, always works!

Found the perfect vid to cheer me up after my despairing rant about h8rs on YouTube:



Turn up the volume, for best cheering up effect!

Wanted: YouTube h8r cancelbots/ crowd-moderation

YouTube, til recently a cause of great joy and wonder, is now turning into an embarrassment and cause for despair. Why? "leet h8rz" speech. Almost *any* post that gets popular enough is certain to receive shitloads of hateful comments. You can't call it criticism, and "comments" is giving it too much weight. It's more like cowardly sniping by morons, hiding behind their usernames.

David Pogue on the NY Times wrote something recently about the decline of Netiquette, so the issue's been lingering in my head and I'm wondering if this is all just being alarmist or if it's actually getting worse.

I was just looking at a video of a baby smiling after it farted (it was a YouTube Featured video okay, I didn't look for it!) and it has received a 1million views and around 2000 comments. Most of the comments consist of - "ugh! this is so gay", "faaaake!", "this baby should've been aborted", "ignorant white trash dads". Oh come on! Whatever happened to babies being cute and adorable and undeserving of such trash talk?



Then I clicked on a similar vid, of a Spanish baby making farty noises with its mouth (it's a whole new genre for short film!), and what do we get? Racist taunts about Mexican immigration! Fucking hell. Doesn't take long to get the rats coming out of the woodwork.




Was looking at another one where this Vietnamese-Australian girl was complaining about "bogans" causing a disturbance on public transport , and sure enough, after a day or two, out comes the comments along the lines of "If you don't like it, go back to your country", "Your ancestors were savages in rice paddies", "Me love you long time suckee suckee".



I think there should be another law similar to Godwin's law, a YouTube version of it, stating that "As the number of comment pages on a video goes past 4 and there's any indication that the person in the video is not a white American, the probabilty of a racist comment approaches 1."

Anonymity is the reason why juvenile idiots, racist scum, and plain old jerks are able to pour out their hate (and I use that word repeatedly because that's what it is) without any regard for the consequences of their speech. I'm pretty sure people would at least think twice before spewing this much bile and filth if they had to use their real names to make a post.

Of course, those with underdeveloped IQs and potty mouths would be doing it - but how long would you persist if you knew that everyone in the world, or at least everyone you would ever meet from that point on - friends, future schools, universities, employers, would-be lovers - would be able to Google your name and see what an asshole you really are.

I can't see why Google, having spent truckloads of money to buy YouTube, would just sit by and let it get clogged with all these moronic, hateful comments. Given the collective IQ at that place, can't they find a way to institute some form of self-policing by the public, or have a system where certain users can get responsibility for controlling the comment flood. Slashdot and Digg have crowd-moderated systems, and WikiPedia still seem to be successful with a system that everyone can still edit - so what's YouTube gonna do?

This is the user-generated content that Time voted as "Man of the Year"? Nice one.

Friday, 5 January 2007

Preventing a page from reloading when using onClick event in a HREF

The hyperlink is often used instead of a button to run a javascript method using the onClick() event of a link with a value of "#"

<a href="#" onclick="someMethod();">This Does Something</a>

However this also reloads the page, which may result in loss of some changes performed by someMethod(). For example, if someMethod() changes the display of page elements -- a page reload will result in the page looking like it was *before* someMethod() was called.

To prevent this, it's good practice to return false to the onclick event, similar to the way we return false to onsubmit event in a form, where we don't want the form to submit.
so we either:

1. Modify someMethod() to return a value of false and change our HREF to:
<a href="#" onclick="return someMethod();">This Does Something</a>

2. Or add a return false; after calling someMethod(), like so:
<a href="#" onclick="someMethod(); return false;">This Does Something</a>


Wednesday, 27 December 2006

My first post-apocalyptic dream

Well, maybe not the absolute first, but it's the first one I remember.

I was waiting in line, wearing my German army jacket, and another coat underneath. The line seemed to be for food rations, but the rations were freshly cooked, just like in Chinese takeaway shops. And they had a menu! I only remember seeing fried rice and tofu. I remember thinking, "Hmm.. I'd really like to get Ma Po Tofu, but I wonder if they have any mince pork."

I really should sleep earlier. Since starting the holidays I've been remembering a lot more of my dreams, though I think normally you finish the dreaming state and go back into "sleep" phase so most of the time you don't remember them anyway. But five hours of sleep a night doesn't seem to be enough. One more New Year's resolution!

Thursday, 28 September 2006

Sunday, 24 September 2006

flickr: wayne freaking flaming coyne

Sometimes you're just randomly clicking on flickr, minding your own business, then you come across a photo that completly floors you. I cannot even begin to describe my awe at this photo.

I really have to see the Flaming Lips next time they're in Sydney.

Hmmm.. can I afford to wait that long?

What if they suddenly go all Radiohead on us and become annoyingly contrary and anti-fame, "waa waah waaah.. we're too popular, everybody acts like they like us, waa waaa, let's make albums full of bleeping sounds and piss off the classic rock kind of crowd, let's stick to the cool crowd fan base, but let's keep my whining singing voice..."

Whups, went off on a tangent there. Sorry. I guess I still haven't gotten over Kid A. Heh.

Addendum:
7 Feb 2010
Shit, what a dumbass.. why didn't I download the photo?? Shit. No longer available on Flickr. Fuck. The photo was totally awesome. Sorry if anyone reads this and wonders


Thursday, 21 September 2006

From Outlook to Thunderbird pt3


http://www.postneo.com/2005/02/26/thunderbird-shortcomings-outlook-import-support

OLEXP: How to Import MMF File into Outlook Express:
http://support.microsoft.com/?kbid=176267

MAPI error messages when you import or export messages:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q179637

How to reinstall or repair Internet Explorer and Outlook Express in Windows XP:
http://support.microsoft.com/default.aspx?kbid=318378

How to Import Archived Outlook Email Into GMail Using GML:
http://www.wikihow.com/Import-Archived-Outlook-Email-Into-GMail-Using-GML

"1. Import your Outlook mailbox into Microsoft Outlook Express. Open
Outlook, then open Outlook Express. In Outlook Express, select Tools > Import, and instruct it to import Mail from Outlook.

2. Download and install Mozilla Thunderbird, an open source replacement for Outlook from the people who make Firefox. Be sure during the installation process to have Thunderbird import your mail from Outlook Express. Installing Thunderbird allows extraction of your old mail from Microsoft's proprietary (and difficult) PST file format into a more open
mBox file. While Thunderbird offers the option to import mail directly from Microsoft Outlook, the data is less likely to get corrupted if you add the intermediate step of importing to Outlook Express. "

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

http://andrewcain.blogspot.com/2006/06/migrating-to-mac-part-2.html

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

http://www.littlemachines.com/

O2M (formerly known as Outlook2Mac) may be the fastest way to move your Windows(r) Outlook(r) email, contacts, and calendar appointments from your PC to your Macintosh(r) computer!

And it's only $10!

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

http://64.233.187.104/search?q=cache:2wvO2kUZQaEJ:gladiator-antivirus.co
m/forum/lofiversion/index.php/t18295.html+convert+from+outlook+2003+to+t
hunderbird&hl=en&gl=au&ct=clnk&cd=6&ie=UTF-8&client=firefox-a

"It is easy to do From Outlook Express to Thunderbird

http://jamie.typepad.com/ontheverge/2003/0...outlook_ex.html

But if you are trying to import your emails from outlook 2003 pst file but TB does strip all html stuff and you get plain txt emails instead of some beautiful email ....

Then you must do this..

Import it into Outlook Express, and then import it from Outlook Express into Thunderbird. That solves most Outlook import problems.

It also doesn't hurt to doublecheck "view->message body as" is set to "original html".

That was exactly what you do , Thunderbird will not "find" you Outlook 2k3 which is installed on your system. So do the Outlook --> OE --> TB and it works fine for email, about 600MB transfered into TB in less then 2 minutes!

The Contacts, however, you needed to export to a CSV and then put the columns in the correct order.

Somebody in another thread recommended using the shareware program Outlook2Mac to convert a .pst file to mbox's (the format thunderbird uses to store emails) if you don't have a copy of Outlook installed.

http://www.littlemachines.com/

You might want to try converting the address book with Dawn if you have order problems.
http://www.joshie.com/projects/dawn/

Good luck..let me know who it all works out for YOU."

Wednesday, 20 September 2006

outlook mail conversion pt2

i thought i could use this:

http://alioth.debian.org/projects/libpst/

but turn out it doesnt handle Outlook 2003 (according to the forums),
which i use at work.

converting Outlook mail to mbox format

Has there ever been a task more hideous?

Just tried using a program called "ABC Amber Outlook Converter". What a
piece of shit! I ran it and the first thing it does is try to convert
ALL of my .pst files it detected from Outlook, and the gui locks up,
leaving me no alternative but to shut it down. F*ck. I hate badly
designed software. Before you try and do some gargantuan task, at least
they should inform the user and give them a chance to *not* run the
process. Aaargh..

Oooh, talk like a Pirate Day was yesterday, 19 Sept... ARRRRR...

Next in line - Thunderbird! I used Netscape Mail long ago to convert
Outlook... but that was in 1999. Does Thunderbird handle compressed
Outlook 2003 .pst files? We'll find out...

Monday, 28 August 2006

Unix file processing magic...


Given a bunch of files like this

2.csv
3.csv

- divide each file into chunks small enough to upload to Dartmail.
Dartmail handles maximum of 1,000,000 bytes

-- find out how many lines in each file, and how big each one is

wc -l 2.csv

ls -l 2.csv

-- split a file into equal chunks, or max. specified number of lines per
segment

$ split --help
Usage: split [OPTION] [INPUT [PREFIX]]
Output fixed-size pieces of INPUT to PREFIXaa, PREFIXab, ...; default
size is 1000 lines, and default PREFIX is `x'. With no INPUT, or when
INPUT
is -, read standard input.

Mandatory arguments to long options are mandatory for short options too.
-a, --suffix-length=N use suffixes of length N (default 2)
-b, --bytes=SIZE put SIZE bytes per output file
-C, --line-bytes=SIZE put at most SIZE bytes of lines per output
file
-d, --numeric-suffixes use numeric suffixes instead of alphabetic
-l, --lines=NUMBER put NUMBER lines per output file
--verbose print a diagnostic to standard error just
before each output file is opened
--help display this help and exit
--version output version information and exit

SIZE may have a multiplier suffix: b for 512, k for 1K, m for 1 Meg.

Report bugs to <bug-coreutils@gnu.org>.

$ split -l 110000 2.csv 2

-- get header row from csv

$ head -1 2.csv > header.txt

-- add header file to other files that don't have header row

(doing it for 3* files

$ for i in b c <-- b and c is the array.. we'll be processing 3ab and
3ac
> do
> cat header.txt 3a$i > 3a${i}.csv <-- the 2nd i is in {} because of
the . after it.
> rm 3a$i
> done

do-done defines the block ...

-- can also be written out as one row, with commands separated by ";"
for i in b c; do cat header.txt 3a$i > 3a${i}.csv ; rm 3a$i; done

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

history of all commands:

split
split -h
split --help
cd e:
less 0.csv
q
wc -l 2.csv
split -l 110000 2.csv 2
ls 2*
ls -l 2*
head -1 2.csv > header.txt
cat header.txt 2ab > 2ab.csv
less 2ab.csv
cat header.txt 2ac > 2ac.csv
cat header.txt 3ab > 3ab.csv
mv 2aa 2aa.csv
rm 2ab 2ac 2ad
ls 2*
wc -l 3.csv
ls -l 3.csv
split -l 90000 3.csv 3
ls -l 3*
for i in b c; do cat header.txt 3a$i > 3a${i}.csv ; rm 3a$i; done
ls 3*
mv 3aa 3aa.csv
less 3ab.csv
wc -l 4.csv
ls -l 4.csv
ls -l 5.csv
ls -l 6.csv
ls -l 7.csv
split --help
history

Saturday, 26 August 2006

Bebot bebot bet bebot bebot

Damn. My eyes are glazing over. Why don't you guys just get an interview with Apl so you can grill him over what the songs really mean?

"So Apl... what is the moral of your song? What is your mesasge to all the Filipinos out there?" (ala-Germspesyal questions)

Juskoday. It's a freaking song. A freaking bad song - bad rapping, incoherent lyrics. (not Snakes on a Plane bad.. you know what i mean)

Ang tawag sa lalake, "kelots", ang babae naman yung "bebot". It's not a derogatory term. It's just ancient 70s slang. Di ko nga maintindihan bakit niya ginamit yung salitang "bebot", considering I last heard it used around the early 80s. =)

APL: (rings a family friend) "Tito, I'm kinda writing this song, and like, it's gonna be like an anthem about Filipinos and pride and raising our game and shit, y'knowhamsaying, giving us visiblity, without any sampling issues like that Asin jam I had on the previous album. (cos i know we should've paid them royalties for using the bloody stanza of "Balita", but let's not get into that)

So, like, I was kinda wondering what's a Filipino term for 'mah gurl', or 'baybeee'"

Tito: E di Baby! Like your Tita Baby, you know? You know what I em saying also, ha?

APL: Yeah, well, it's kinda too American.. isn't there a Pinoy word, something indigeneous?

Tito: Ah, like "bebot", "chicas", "chicks".

APL: So, that's not a word that's gonna get me in trouble Tito? I'm not going for that snoop dogg angle.

Tito: Ay, hinde, iho, that's a word we used in college.. tandang tanda ko pa nung magkasama kami nina Tisoy at Pomposa... (harp strums, fade out.. flashback sequence)

Fek. Academe. Tends to remove intelligible words from vocabularies.

Check this out:

"i suggest that this focus might be a way for the female poet to harness the political power to be garnered from heteronormative sympathy for the manongs and then by extension/lateral movement to inherit a largely male tradition of filipino american writing established by manong-generation writers bulosan, gonzalez, santos, and villa as well as the flip generation of robles, tagatac, syquia, penaranda, and others."

Goddamn! That's supposed to be English?

Thursday, 24 August 2006

Clerks 2, State Theatre, 22 August 2006

Went to Australian premiere of Clerks 2, with Q&A with Kevin Smith
afterwards. Made the BIG mistake of only lining up at 10 to 6. There
were probably a few hundred people before me, lined up from the State
Theatre entrance, down the alleyway beside the theatre, then going
back out again. By the time we were near the entrance the line was now
going down the side, back up, then out along Market St.



Kevin Smith introduced the film by saying, "This place is <i>way </i>too classy for a film like this"



There was 15 min break after the movie (finished around 9), then the
Q&A. It went on til 12pm! Originally Q&A was supposed to be 90 mins,
and it went for 150 (9.30-12).



Surprising, heart-warming story about Jason Mewes, his battle with
drugs and alcohol, and how cleaned up he was on this film, and he
played the role of cheerleader for the rest of the team.

Was his first time in Sydney, didn't think anyone gave a fuck over
here. Hah! And then the usual stuff about this place being really
nice, wanting to move here, bla bla. We lap it up anyway cos we love
him!



Everyone except me, and my 2 other friends left. I knew my wife wasnt
really into it, but I thought one of my brothers might. Feh. They
missed out bigtime.

Sunday, 20 August 2006

Fixing Windows error "NTLDR is missing"

My friend rang this morning and asked if I had a Windows XP install
CD. His girlfriend's laptop wasn't booting up and she had an
assignment due this week. They were getting the message "NTLDR is
missing". Initially, we booted up using the Bootable XP rescue disk
(see Bart PE Loader) but didn't really know what to do once we got in.
Then tried booting with Windows XP install CD and selecting "Repair
Windows" option. It eventually got to command-prompt but again, we
didn't know what to fix.

Then finally, I went to google, entered the error message and in about
30 seconds I had the solution:

http://www.computerhope.com/issues/ch000465.htm

Windows XP users

1. Insert the Windows XP bootable CD into the computer.
2. When prompted to press any key to boot from the CD, press any key.
3. Once in the Windows XP setup menu press the "R" key to repair Windows.
4. Log into your Windows installation by pressing the "1" key and
pressing enter.
5. You will then be prompted for your administrator password, enter
that password.
6. Copy the below two files to the root directory of the primary hard
disk. In the below example we are copying these files from the CD-ROM
drive letter "E". This letter may be different on your computer.

copy e:\i386\ntldr c:copy e:\i386\ntdetect.com c:\

7. Once both of these files have been successfully copied, remove the
CD from the computer and reboot.

--------------

Makes you wonder why the hell these files constantly get corrupted!

Wednesday, 9 August 2006

Lily Allen!

OMG. I'm grinning stupidly. I love her album, Alright Still. I love it so much I'm actually thinking of buying the CD. Imagine that. All that adsl2+ bandwidth and this album's good enough to make me pay for it? Hot damn.

I was pretty sure I would looove the new Pharrell album, but it kinda fell flat. But with this one - love at first listen, baby!

NOTE: I wrote this at around 3am, and my English composition skillz are not as 1337 as they should be, and all these are first impressions anyway. I might be more coherent in a future attempt at a review.

Funny how Smile has already made its way onto TV, via the Just Jeans commercial, when it's only started climbing the charts. I guess the marketing department's learned the lessons of Moby - saturate the ether, by any means necessary! Not that this addictive stew of reggae, dancehall, funk, ska, girl group pop would have any trouble making its mark.

Knock Em Out is like a Streets-y successor to TLC's No Scrubs. How English - to actually be taking the trouble to find a polite way to say, "Just get out my face/ just leave me alone/ oh no you can't have my number/ cos I lost my phone". Possible next single?

Everything is wonderful in Everything's Just Wonderful. That 60s sounding beat. (papap-PAP, papap-PAP!) Handclaps! Farfisa! (or whatever makes that carnival-sounding organ sound). Harmonies. The heady chorus "Oh yeah, just fine/ everything's just wonderful/ I'm having the time of my life" contrasts with verses like "I wanna be able to eat spaghetti bolognaise/ and not feel bad about it for days and days and days/ all the magazines they talk about weight loss/ if i buy those jeans i can look like kate moss" This also gets a vote as the next single. The swearing might be an issue with radio though.

Not Big is one of the most hummable diss songs. Reminds me of that 90s song Short Dick Man, but clever. Telling your ex he's rubbish in bed and you'll making your way through his mates, and tell them that he's "small in the game". Damn, that's harsh. But you still end up singing it, even if you're a guy.

Shame For You reminds me of Dawn Penn's "No No No (You Don't Love Me)". There's a mashup out there, waiting to be made! Or maybe Lily's already made one.

Littlest Things takes the Karma Police intro, sends it through a harpsichord, then gets a bit Dido. But a bit more melody.

Take What You Take sounds like an indie-rock, girl power anthem - Spice Girls go back to '89 and hook up with the Stone Roses.

Alfie reminds me of The Beatles' "Obladi-Oblada". In a good way. =) Song to a younger brother wasted and smoking pot and pulling her hair. Unexpected closing song. Heck, it's all unexpected anyway.

Just emailed my friend MA to ask if she wants to check out Lily at her (only) Sydney gig at Club 77 in Sydney, on Thursday, 10 August. Hope a proper tour comes soon!

It's the melodies that hook you in. Reminds me of those old Beatle's albums where practicallly every song sounds like it was made as a single. No meandering, noodly, wanky, time-wasting, spinach art (it's good for you!). Hooks, melodies, and more hooks. My favourite album, probably for the rest of the year.

Friday, 21 July 2006

All I Ever Needed To Know I Learned From Voltes V

  1. There is no problem that cannot be solved by the judicious application of Chain Knuckles, Voltes Bazooka, Ultraelectromagnetic Top, Volt Boomerang, and a Laser Sword.
  2. You may be leader of a team of hyper-fit space fighters and the best fighter pilot in the galaxy but you will never get the girl because you don't ride a motorcycle or brandish a whip.
  3. The enemy is always supremely ugly, except for their leader - but that's only because he's actually your half brother!
  4. The enemy leader's female assistant is in love with him but he's too caught up with dreams of conquest and revenge to realise no one else actually likes him, and this may be his only chance at getting some.
  5. Aerial battles and explosions are always better with a funky track containing appropriate horn blasts.
  6. Little brothers may be annoying pipsqueaks but you never know when their robot pet octopus might save your collective skins using its tiny laser torch.
  7. Victory is always sweeter if you twist your sword once you have it in the enemy's sternum and then and pull it back upwards to slice them in half with a "V" flashing from their torso just before they explode into a million pieces.
  8. Anytime you have a heart-rending, emotional moment with your father, a giant beast robot's hand will punch in the wall and (again!) take him prisoner.

Friday, 7 July 2006

TODO - Programming ideas

- (for work) a web crawler to go through a URL, go thru all internal links, and validate that pages are all valid xhtml - to use on mobile site

- (for work) util to decrypt payloads, given a payload, and keys, -- able to select encryption method (twofish, blowfish, etc) and mode (ie,ECP) and padding...

- program to go through photos in a directory and verify that all photos are non-corrupt (ie, can be opened as images and all headers are valid)

- need to work on this... obviously, photos that can be opened but have their image data corrupted.. there's no way to know that other than viewing the damn thing... maybe get it to make a list of the suspect images.. perhaps just a html page with <IMG tags pointing to suspect images

- script to go to 2 different URLs and compare their contents... allowing for differences in whitespace

- Podcast manager - to allow you to 'podcast-ify' an arbitrary mp3.. such as mp3s downloaded from podcast archives that aren't in the feed anymore. is there a way to interface with itunes so it gets listed in the Podcast list in itunes?

-- as changing metadata in a photo will result in changes to MD5 of the file, how can we verify that the *photo* information is still the same but only the EXIF/metadata info has changed? (problem: the metadata is different in photos. some have none. some only EXIF. some IPTC and/or XMP - supported by Photoshop.) wouldnt we need to 1. make a copy of the file with all metadata left blank.. 2. calculate hashes based on this... store this info... and compare it when verifying an image...

Thursday, 6 July 2006

3d tetris


Installed the new Opera 9 last night and discovered the 3d tetris
widget. Goodbye productivity! =)

Good to check out these other standalone versions of Tetris.

http://www.csc.calpoly.edu/~zwood/teaching/csc471/finalproj24/gzipkin/

http://www.sfu.ca/~vwchu/3dtetris.html

http://www.freedownloadscenter.com/Best/3d-tetris-pc.html

http://www.terminalstudio.com/tetrisarena.shtml

Wednesday, 5 July 2006

using jetty in maven and webwork


Check these out:

http://blogs.codehaus.org/people/brett/archives/001306_developing_with_j
etty_where_have_you_been_all_my_life.html

and this:

http://jetty.mortbay.org/jetty6/maven-plugin/howto.html

Web Work Quickstart also look useful - uses embedded Jetty.

http://www.opensymphony.com/webwork/wikidocs/QuickStart.html

Monday, 3 July 2006

Oh yes, I've started to sip that Kool-Aid...

After years of wishy-washy longing to get some of that Mac OSX lovin', I've finally taken the plunge and purchased a Mac - a nice, shiny 17" Powerbook 1.67Ghz PowerPC G4 (M6989LL/A) with 512Mb RAM, 100Gb hard drive, Superdrive. Just when Apple has almost completely moved over to Intel for their CPUs, I somehow decide to get the End-of-line model. How so?

It all started with the Macbook. After looking at the specs, and the few reviews out there that I've come across, I'd decided that the Macbook offered better value then the Macbook Pro. To me the main difference was that the Pro had 1) a separate video card, 2) a spiffy looking case, 3) slightly faster CPU, and 4) ambient light sensor + illuminated keyboard. The great price difference by just getting the Macbook made it even more compelling. I planned to get one upgraded to 1Gb RAM and 100Gb drive.

But then the Macbook stains story came out, and Apple were at first unresponsive, denying that there was even a problem. Then I heard issues about excessive heat, cases warping, magnetic adaptors melting - it all became too much. The fact that things like this have happened before with ver.1.0 hardware or software, reminded me about my policy of avoiding products in their first revision. Get other people to sort out the bugs first! =)

So I started thinking maybe I should just get an iBook, as they would be trying to clear end of line stock. Domayne were selling the 1.33Ghz 12" iBook for $1099. I went to Myer, George St last Thursday to look for similar bargains. I saw a 12" iBook, 1.2Ghz going for $699! Awesome price. I rang my longtime machead friend just to tell someone, and so he'd encourage me to buy it. (I am extremely indecisive when spending anything over $200!) Then I rang my wife, to tell her about the new laptop that I was "getting for her". While on the phone, I kept glancing at the iBook display and noticed one woman spending quite bit of time near them.

When I went to the display to ask about it, the salesguy told me that someone had just purchased the last one! The woman I saw two minutes earlier had bought it, and I got there just in time to see the salespeople changing the display prices, and bringing the box out of the stock room. I actually said, "Bullshit, you can't be serious!"

Now the next day, I rang around to see if other Myer branches had any others left. Not all Myer stores sell Apple computers. Actually, the only ones I know off are in the City and Bondi. I rang the latter and ended up speaking to the same guy who told me yesterday it was all sold out. I asked specifically about the 12" iBooks selling for $699 and he immediately remembered me from the day before. They were all gone, he said, and instead he recommended checking out the 17" Powerbooks selling for $1799, discounted from $3300.

I went with a friend to Myer and got the damn thing. I almost missed my chance again, as my friend wanted to go to lunch first, as I asked one of the staff (the guy in the black polo shirt who's the Apple-employed consultant) if there was still any stock of this model and he said yes. I asked another guy and he said the display unit was the last one. Whew! I also got a 3-yr extended warranty from Myer for $150, which is much cheaper than Applecare, which goesfor the same amount of time but costs more than $400. I'm surprised Apple allow this, but I guess the profits aren't really made in the warranties. I left it at the store since I was going out that night and just picked it up the next day, Saturday.

But now the peripheral/ accesory spending begins! I first bought $105 worth of books, on Sunday, and am now looking to get extra memory (2Gb -- approx $360), then a bag - $59, then maybe a pouch for the powerbook ($55), then maybe the apple mighty mouse ($75) and keyboard ($70). God!

So much for the bargain.. i might end up spending a thousand extra anyway! =)

Friday, 30 June 2006

Recursive Grep in a subdirectory

To find a text in a subdirectory, do something like:

grep '192.168.1.1' /etc -d recurse

if you're looking for '192.168.1.1' in the /etc directory

How come I never found this in cygwin's "grep --help" but it actually
works?

Wednesday, 28 June 2006

Australian Copyright "Reform" - yet another reason to say, "Fuck you Mr Philip Ruddock!"

Yes, it's kinda late but it's another case of me not following my gut instinct and posting immediately when an issue comes out.

This shows the sheer idiocy of this recent "reform" they've made to Australian copyright law. We have laws being modified to supposedly take into account things people have been doing normally for the past thirty fucking years, so why has it all been so half-assed?

Yes, it will now be legal to record TV shows on that 20-year old VCR you've had, BUT YOU CAN ONLY WATCH IT ONCE. Keeping those recordings to watch again on the weekend or anytime in the future is now definitely illegal. You can't even record something for a friend then give it to them without watching it. You can, however, invite your friend over to watch it. Goddamn.

How nice of them to not mandate an audience headcount or eyeball limit. I can just imagine that fervent consumer advocate Philip Ruddock heatedly arguing against the copyright assholes pushing for a 2-eyeball limit to viewing of recorded TV programs. Otherwise, me and my friend might have to wear eyepatches to be able to legally watch last night's episode of OC. (Damn - just noticed that Marissa's mom is *hot*)

Yes, you can now encode songs to transfer to your iPod. This is supposedly in recognition of that practice called "format shifting". Shit, how nice to have certainty for mp3 players that have been around for almost a decade.

But why this inconsistency? It's illegal to encode a movie from a DVD you own to your video iPod or any other portable video player (AOPVP).

HOWEVER, if you have a copy of the same movie in VHS, and are tenacious enough to go through the dumbfuck torturous rigamarole of bending over, putting your right middle index finger in your asshole and then pulling it out, then reaching over your back, putting it into your left ear, and whatever the hell else you have to do to encode it into a format viewable on said video iPod or AOPVP, well, hell yeah, that's all legit.

Encode video from digital source: bad. Encode video from crappier, almost obsolete "analogue"(?) format: okay. Why all this fuss on where the source video comes from?

The fact is, no matter where it comes from, the video gets encoded via a shitload of lossy compression, removing a helluva lot of information that isnt going to be noticeable when viewed on a 2.5" screen. And once it's in that smaller, re-encoded format - there is absolutely no way you can make pirate DVDs from these.

And you can't make backups of your CDs and DVDs. No sireee. Fair use provisions under US Copyright Law allow this in America. But in Australia? Nah.

Can you make mix-CDs just to play in the car or at a party? Absolutely not, if it's going to be an audio CD. If it's a compilation of mp3s however, it's okay. If you "format-shift", then it's fine.

But this also means you can still make backups of your CDs as long as they end up in another format. If you use a lossless audio format however, then you retain all the digital information from the original CD. Save the entire CD as one huge WAV file? Legit.

But a better way would be to use a format that is non-lossy and compressed. Something like FLAC - Free Lossless Audio Codec. You can use software like EAC and the FLAC encoder to rip the songs off the CD, then burn them to backup. Some postings I've seen talk about encoding it all to a single FLAC image and using a cue-sheet to retain track information, using tools like FlackAttack

Here's a posting detailing the encoding process, and burning the CD from FLAC.

Not as convenient as a straight-out CD copy, but entirely within the law.

Friday, 16 June 2006

Sixpence None the Wiser - Keys Me


I never knew this song was also about Charles Barkley.



According to the comments on YouTube this is a Filipina starlet with a stagename of Alyssa Alano, from the Viva Hotbabes group.

Almost as funny is the angsted comments from some Filipinos on the site, ranging from "this is a disgrace to the race, for shame!", to "oh, how could you do this to our country, we'll never get those IMF loans now!" Lighten up doodz. If there's one thing Pinoys excel at, it's making fun of our own. Which makes me wonder if the reaction would be worse if the person posting the video wasn't Pinoy.

Tuesday, 30 May 2006

macdaily: Microsoft wants to replace JPEG with Windows Media Photo

scary....

Microsoft wants to replace JPEG with Windows Media Photo
Thursday, May 25, 2006 - 12:46 PM EDT

Microsoft has spent their time and money creating something "useless," Justin Powell writes for The NET Results Blog. It's a new digital photo format called "Windows Media Photo."

"In case the folks in Redmond weren't aware, we already have JPEG for Internet and consumer applications, plus RAW and TIFF for professional applications. Adobe Systems even threw their hat in the ring to create the Digital Negative (DNG) format for digital cameras and professional imaging workflows and lest we forget the essentially defunct PhotoCD format from Kodak. There's also other raster image formats with varying degrees of usefulness: GIF, BMP, PICT, etc.," Powell writes.

"I'm not exactly sure why Microsoft believes we needed another digital image format. I haven't personally heard anyone complaining about the
available formats or begging for Microsoft to step in and save them. Could it be that Microsoft didn't control these other formats and likewise couldn't make them exclusive to Windows users? Microsoft's new Windows Media Photo will work in Vista and XP, but there's no mention of making the format available to older versions of Windows or other operating systems," Powell writes. "Microsoft calls the overall functionality 'digital memories,' but they didn't mention that you'll forget everything if you switch to a non-Microsoft product. No thanks, I'll stick with JPEG and RAW."

The pain of mp3 metadata cleanup

I have spent at least two weeks already trying to tidy up all my mp3 files before loading up everything back to my iPod. And it's still not finished.

The main issues I've had relate to metadata and file formats. Such as:

1. incomplete metadata. In a lot of cases the only information available is the filename, which always has the artist and song title, but occasionally has instances of track number, album title and genre. I've started using the excellent mp3tag, which has the "filename to tag" function, allowing metadata fields to be filled in based on information in the filename. Just right-click on the file, select the function you want (it also does "tag to filename", etc), select or enter the format of the filename info (eg, "%artist% - %track% - %title%"), then it will fill in the relevant fields. It works not just on mp3, but also on m4a, and FLAC formats.

2. inconsistent information. In some cases it can be as simple as some files missing a '.' at the end of the name, ie, N.E.R.D vs N.E.R.D. In some cases some files in the same album are tagged with a different genre. Or some, but not all files have a particular field filled in.

3. audiobook mp3s not identified as audiobooks by itunes/ iPod. This could be just because I've been to lazy to actually read up on the iPod documentation - which is probably in the CD that came in the iPod box - but I didn't know that your files need to end in *.m4b so iPod treats them as audiobooks and excludes them from any song shuffling that might occur. I've just been putting up with getting the occasional audiobook track mixed in when I select Shuffle Songs and just clicking to the next song. The problem is, the audiobooks I have are in mp3 format. So I need to convert them to AAC, then rename their file extension to *.m4b.

Thursday, 25 May 2006

Interesting linkies


Stateful programmatic web browsing in Python -
http://wwwsearch.sourceforge.net/mechanize/

Using Wikipedia and the Yahoo API to give structure to flat lists -
http://www.hackdiary.com/archives/000070.html

Building bubble up folksonomies -
http://www.plasticbag.org/archives/2005/09/how_to_build_on_bubbleup_folk
sonomies.shtml

Yahoo Term Extraction Service -
http://developer.yahoo.com/search/content/V1/termExtraction.html

Constructing Web Services with the Globus Toolkit (grid related) -
http://www.onjava.com/pub/a/onjava/2005/10/19/constructing-web-services-
with-globus-toolkit.html?page=1

Tuesday, 23 May 2006

Okay, let us start collating our linkies

Til Opera is able to export a session and save it online somehow, I'll just have to do it the old-fashioned way.. create a blog entry for the links.

Top 10 OSS Games you've never played - http://akaimbatman.intelligentblogger.com/wordpress/

So maybe Al Gore did kinda invent the Intarweb - http://www.sethf.com/gore/

http://www.gamasutra.com/features/20060518/sheffield_01.shtml

Kinda like serverside.com - Info Q

The latest thing to catch my fancy - Self help stuff ala-Anthony Robbins and subliminal messages. Yay

I still haven't been able to download the damn thing - but Starlords is just geek dream come true -- LOTR AND STAR WARS mashup

BBC Podcasts

Google Video Top 100 -- check out Alizee at - -arrrgh!! I think she's dropped out of the list.. anyway, find her stuff at http://video.google.com/videosearch?q=alizee

Interesting essay about contemporary design - much noise signifying nothing - kinda like what happened to surrealism, which was originally rooted in the subconscious. But now everyone's a surrealist!

Clean up that metadata before loading your iPod! You won't regret it and mp3 tag is one of the best

While you're at it, add some cover art to your albums as well.

Additional iPod linkies - http://www.gudlyf.com/2004/08/19/obscure-ipod-audiobook-issue/, ripping audiobooks, converting audio formats, importing audiobooks. I should really read the iPod instructions one of these days. At least set it up so Richard Clarke doesnt intrude on your shuffled songs, dude! "President Bush and Condi Rice stood in the Oval Office..." -- bla bla... Aaaargh! really destroys the mood you've just gotten into after hearing The Cramps' "She Said".

Gad. Doncha hate it when geeks start posing like they're in GQ? Those WROX Books set a baaaad example!! I hope O'Reilly never ever gets rid of the animal line drawings. =)

Someday, I will fill in this big gap of blog posts between February and May, when a lot actually did happen to me, including:

  • Philippines Trip, BenC's wedding, getting drunk for the 2nd time in my life (though didnt get photos of myself)

  • Girlie and Jasmine going home (wah!) and hopefully coming back later this year or next year

  • getting my wisdom teeth out, surviving on porridge and pumpkin soup for the first 4 days

  • reassembling and slightly upgrading my PC

  • oh, almost losing my hard drive and all my goddam photos

  • major RAID plans for the new PC, as a result of the hard drive scare

  • had the degustation dinner at Quay restaurant for my birthday

  • then Billy Kwong's for Lani's last nite (we got postponed last week as they were closed for a private function)

  • making the move to ADSL2+ and getting a 10x jump in bandwidth



Of course, these are in no order at all, and are just the first things to pop into my head!

Okay, time to go. This will make sense later, after much editing.



Tuesday, 7 February 2006

Delayed gratification

I was thinking of charging it a little bit while at work, so I could actually get to use it on the way home.

So I opened the outer box. Oooh. But this means when I get home and take pictures of the "opening" festivities, I would have to pretend I was opening it for the first time. It wouldn't be right! I couldn't bring myself to open the box itself.

Oh, let this moment last a little longer. Let it be near yet not in my grasp.

Self-denial. Just like any good Catholic. :)

The ipod arrived at work at 10.30am

So I cannot be reasonably expected to do any more meaningful work today. All brain cycles are now devoted to thinking of ipod accessories and what music to load on the device. ebay here I come.