Main

technology Archives

October 29, 2004

MySql & XML Output

Pulled this from DECAFBAD... Nice tasty article all about -X command line switch in mysql. Wonderful I thought. XML based power in the worlds most popular and free relational database. I heard the sounds of dreams coming true.. well maybe ;) There had to be a catch however.

However, just when I thought everything was peachy I started playing with this feature with less than spectacular results. Some intensive googling yielded the answer.
It seems that using the -X command line option for exporting the data in XML format produces invalid XML. It assumes XML escaped data in the DB!.. On what grounds??? Mysql only encloses the query results in XML element tags, but doesn't do encoding of the contents inside the tags.


In XML, if you want to use one of the characters <, >, &, etc. inside an element tag is not valid. If you want to use one of those characters, you have to use the respective entity instead. Mysql doesn't seem to do that, so when selecting tagged data or markup like "<foo>red & green</foo>" with the -X command line option will always lead to invalid XML.
An uncool workaround would be to perform some string replacements for every selected column when using the -X option:


  • replace all & by &amp;

  • replace all < by &lt;

  • replace all > by &gt;

  • replace all " by &quot;

  • replace all ' by &#39;


Other stuff, like language specific characters (umlauts etc.) has to be encoded as well or has to be handled by defining or applying a different character set when post processing the XML output.

So the command produces invalid XML as invalid chars haven't been escaped... Now this is a shame as writing some code to escape it in the db server coulda been done quite easily. A combination of escapes and using different charsets (perhaps as a command line option) along the lines of mysql --xml --xmlcharset=mycharset would be sweet. We'll see what happens in the next release

October 30, 2004

Web Services standardisation (or trying to pass a herd of overkeen elephants through the eye of a needle)

In a previous life as a research manager in an Irish research group called TSSG I wrote a piece about semantic web for a technology column in a local paper. It's the usual non-critical high-level look at a technology but the excitement at the promise of semantic web is very real.


However I'm less than convinced about the current web services standardisation effort. In comments to another blog I was scathingly critical of the original WS technology (SOAP & XML-RPC) and the malaise of WS standards and specs. I've also been keenly following the wise words of Steve Vinoski, Chief Engineer of IONA technologies, another company I used to work for. Before I digress onto another topic entirely I'm going to reiterate some of my original comments about WS standardisation, mirroring steve's feelings about the lessons that can be learned from CORBA regarding tool & vendor support. So without wanting to offend too many of the great people involved in the process, here are my considered thoughts:

  • "Web Services" is a brand name for a range of disparate and relatively unfocused technologies.

  • The technology was hugely overhyped without accepted standards to back it up

  • XML messages were touted as human-readable. If you know that many humans who read large XML schemas in their spare time you need to get yourself and your friends "to a nunnery". OK, maybe not but you get the point ;-)

  • It often seems that around 20 years of distributed systems thinking was ignored in their creation. Hence SOAP was misnamed "Simple". "Incomplete" would have been more appropriate.

  • With usefulness comes complexity. With complexity comes unwieldiness and with unwieldiness comes confusion. The secret is normally appropriate abstraction but it's early days yet

  • The standardisation effort is frustrating and feels uncoordinated. All too often standards are hurriedly created to plug holes in other standards. Often if feels like the wheel is being reinvented, as if nobody in the effort knows that RPC has been done before. I hear Vinoski's cries for an overarching Architecture spec so have both a map and a flashlight

  • Almost none of this matters as the major industry players are now behind it in a bid to recapture the goldrush of the late 90s with a 'must-have'technology. For this reasons alone the tool support will hide much of the complexity and encourage utilisation. This is already happening. Thank you Microsoft, IBM, HP, BEA, IONA, SUN etc.

  • The most loosely coupled thing about WS/SOA is often the standardisation process. There could be trouble ahead



However there's hope for us all in the form of REST. It may correct several issues with webservices (including the loengthy standardisation process). WS piping is so incredibly powerful that it can't be overlooked. Also, REST provides some neat answers to security issues, automation, semantic web & may just bring about world peace given an appropriate level of vendor support


Arguably the URI is the reason the web took off in the 1st place. There were better transport and application layer protocols, more elegant markup grammars but the idea of the URI is compelling. Arguably with REST, semantic web & canonical URI's we may just be getting somewhere. I believe that these technologies will determine the success or failure of the web service initiative and everything else is pretty much window dressing.

November 1, 2004

Native XML support in ECMAScript (E4X)

Yet another interesting nugget of information pulled from Jon Udell's site. Makes you wonder how many bloggers are merely human blog aggregators of other people's blogs. Eventually there's 1 part content and O(nn) level of repetition, like P2P only worse as info is wrapped with 'opinion' by each subsequent blogger. There's a study that could be done here using a combination of the google API and bloglines. Blog information is distributed virally? Discuss...
E4X is native data type for XML in ECMAScript. More information here

P2P traffic's effect on ISP's

The Internet was designed as a content access system which a predominantly client/server, assymetrically biased towards downstream (downloads etc.) With P2P exchange of data, the creation of decentralized groups allows for information to flow over the public Internet in an anonymous logical fashion. The individual users of these applications are shielded via this anonymity. There are obvious issues with IPR here but also more subtle issues regarding the categories and topology of P2P traffic. (I'll provide a more rigorous mathematical look on this soon) via this form of information exchange, the service providers no longer have the ability to forecast network capacity based on historical subscriber usage patterns. There are four key areas where service providers are feeling the pinch:


  1. Upstream/downstream traffic is flipped where the upstream traffic is much larger then the downstream traffic. This results in network congestion on the upstream link that was never planned for with initial broadband deployments.

  2. Time of day usage statistics no longer apply. Previously, service providers could assume peak usage at certain times of the day and lower usage at other times. With P2P applications, the computers are often left to transfer data throughout the day in an unattended fashion.

  3. Previously, peering traffic always traversed the Internet to another location. In today’s world, two home users can form a direction connection.

  4. Over-subscription assumptions no longer apply. A handful of power users can “hog” all of the bandwidth deployed for a much larger usage base.


Thanks to network world for some pointers in this post.

November 3, 2004

IDC information society index

This index was established in mid 90s and provides a statistical analysis of the degree of IT access and absorbtion within 53 countries worldwide. Ireland can only manage 23rd spot, which is less than impressive considering we're a small nation with such a disproportionate amount of our Gross Domestic Product (GDP) coming from IT. (For a cold hard look at our GDP/GNP comparisons read this) Our neighbours in the UK fare better in 10th, while the tech savvy danes and swedes claim 1st and 2nd place respectively.

November 4, 2004

Browser Identities

Browser incompatibilities are definitely the bane of a web developer's life. Having spent much of my development life messing around with command lines, I'm now spending a lot of time looking ath CSS section of w3schools grabbling with CSS positioning & layout issues.


I decided that I'd solve some of these browser incompatibilites on the server side rather than with client side javascipt.. MT's natty Perl-plugin interface looked the best bet and I whipped up a few quick lines of PERL to pull the HTTP_USER_AGENT from the env and parse it. Easy-peasy I thought having read all about browser identities here (skipped the RFC)... This turned out to be no fun. I learned a lot about writing plugins which are a really great feature but when I outputted the browser ID for both IE and Opera I got guess what?
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Opera 7.54 [en]
Not exactly what I was expecting. A diff of the two confirmed that I wasn't going nuts. They're the same so my plugin is effectively useless for sorting out CSS layout issues between IExploder, Opera and Nutscrape... So HTTP_USER_AGENT is apparently not the thing to use.. The appName in javascript would be more reliable apparently. SO much for sorting out the problem on the server side. Ah well... de nouveau au conseil de dessin as they say in pidgin french :P

November 5, 2004

Steve Vinoski's comments on the WS* standardisation track

Following on from my earlier post about WS standardisation. Steve Vinoksi points out that traditional standardisation efforts are often too slow and overly political. In this month's IEEE Distributed Systems Online (DSO) he discusses WS-NonexistentStandards. Lots of standardisation work but where are the accepted standards and how does the process facilitate the creation and adoption of practical standards?

To get around these problems, WS-* authors appear to be taking a different approach toward standardization:



  1. Write a specification and make it publicly available.

  2. Invite interested parties to one or more private workshops where they can learn more details about the specification and provide feedback.

  3. Iterate steps 1 and 2 until chosen feedback from the workshop participants has been incorporated, and the specification is considered finished.

  4. Submit the specification to an official standards body with the hope of fast tracking it to actual standardization with minimal changes.


Overall, this approach reduces the number of participants involved, which can be a good thing because it reduces the overall volume of communication required to create the specification and resulting standard. However, it can also reduce the resulting standard’s effectiveness, even rendering it useless, because it circumvents at least some of the process of building consensus by not being a truly open process. A standard that is not generally agreed on is a standard on paper only.

This definitely seems to be part of the problem. It's in marked contrast to the IETF standardisation process which often appears much more open and perhaps democratic. However, it's a fine line to walk. I can't help but feel that 2 modifications to the process would significantly improve matters.

  1. The creation of WS-arch so we can categorically say what piece of the WS-jigsaw goes WS-where? ;-)

  2. Incentivised involvement of independent s/w developers in the standardisation process. Spec consumers rather than spec producer/pushers who can't provide neutral guidance. Maybe even some decisions could be put to general developers using a web-based voting system.


Probably/definitely need to think about this more...

Design By Contract in C

Charlie Mills creates a Design-By-Contract library for C (which could equally be used for C++ with minor changes) in his most recent OnLamp article. DBC views functions and methods as contractual agreements between the functional caller and the object/module providing the function. Charlie's implementation is a really neat idea using Object Constraint Language (OCL)to describe:


  • function preconditions

  • function postconditions

  • type and function invariants


The implementation is hacked up using Ruby and Racc and is available here.. I'm currently playing around with DBC for Java using iContracts and I'll post the inevitable success stories here soon...

November 9, 2004

Putting the brakes on spammers

Pulled this off benezedrine.cx. It a tasty, easy to replicate mechanism for dealing with spammers, safe in the knowledge that you're slowing down their grubby, stinking little operations in the process. As most spammers get paid by volume this reduces the money they make from slowing down the internet, helping to spread viruses and generally being complete assholes. The author advocates the creation of a tarpit using spamd which is basically an MTA which keeps SMTP relaying connections open but slows responses down to a C-R-A-W-L... Throw in the use of spamassasin for some dynamic spam detection together with the creation of a blacklist for tarpit redirection using information from an authoritative site like spews.org and you have a reliable system that kicks the majority of spammers where it hurts. The original text is shown below.
To quote Bill Hicks: "just trying to plant seeds"


Introduction
I don't like getting spam. The problem is not detecting it automatically, that works very well with tools like SpamAssassin and bmf . Even though I can automatically delete spam without reading it, the spammers still successfully deliver their mails and get paid by volume. I want to hurt them. They should not be able to deliver their mails, and waste as much of their resources as possible attempting to do so.

Tarpits
Tarpits like spamd are fake SMTP servers, which accept connections but don't deliver mail. Instead, they keep the connections open and reply very slowly. If the peer is patient enough to actually complete the SMTP dialogue (which will take ten minutes or more), the tarpit returns a 'temporary error' code (4xx), which indicates that the mail could not be delivered successfully and that the sender should keep the mail in his queue and retry again later. If he does, the same procedure repeats. Until, after several attempts, wasting both his queue space and socket handles for several days, he gives up. The resources I have to waste to do this are minimal.

If the sender is badly configured, an uncooperative recipient might actually delay his entire queue handling for several minutes each time he connects to the tarpit. And many spammers use badly configured open relays.

Obviously, I only want known spammers to get connected to my tarpit instead of my real MTA.

Blacklists
I can use an externally maintained list of spammers like spews.org to redirect senders to the tarpit selectively. But such lists may be either to slow to include new spamming hosts, or too aggressive for my taste. Some blacklists will not only include single hosts, but entire networks that contain a single spamming host, willingly hurting innocent customers of an ISP to pressure the ISP to terminate the spammer. The blacklist maintainers document such policies, and if I agree with them, it's my decision to block mail from such networks by using their blacklist.

But even if I'm comfortable with blocking mail from innocent bystanders and use the most aggressive blacklists combined, there will still be spammers getting mails delivered to me through newly discovered open relays. Those spam mails will of course be detected by my spam filters, so I'd like to use these IP addresses to build my own blacklist.

Building my own blacklist
Assume I have the following procmail configuration in place to detect (and file) spam:

:0fw
| /usr/local/bin/bmf -m maildir -p
:0:
* ^X-Spam-Status: Yes
in-x-spam

:0fw
| /usr/local/bin/spamc
:0:
* ^X-Spam-Status: Yes
in-x-spam

Each incoming mail is piped through the two spam detectors. If either one of them classifies the mail as spam, the message gets stored in a separate file. I could delete them instead, but I might want to check the mails for false positives every once in a while. Once the classifiers are tuned right, there will be almost no false positives, and almost all spam is detected. I'm reaching 99.95% accuracy here, with maybe 0.01% false positives, which is fine for me.

Analyzing Received: headers
I'm using one additional tool, relaydb , to build a database of all hosts that send me mail. This is done after the classification by the spam detectors, so I can tell the database whether the sender was sending spam or legitimate mail.

I add the following parts to my procmail configuration:

:0fw
| /usr/local/bin/bmf -m maildir -p
:0c
* ^X-Spam-Status: Yes
| /home/dhartmei/bin/relaydb -b
:0:
* ^X-Spam-Status: Yes
in-x-spam

:0fw
| /usr/local/bin/spamc
:0c
* ^X-Spam-Status: Yes
| /home/dhartmei/bin/relaydb -b
:0:
* ^X-Spam-Status: Yes
in-x-spam

:0c
| /home/dhartmei/bin/relaydb -w

So, detected spam gets piped through relaydb -b (blacklist), and legitimate mail through relaydb -w (whitelist). Note that only copies of mails get piped through relaydb, the program never modifies or drops a mail. All it does is build a database of hosts that sent me mail, counting spam and legitimate mail from each one.

relaydb traverses all Received: headers in a mail from top (nearest relay) to bottom. It only acts on valid numerical IP addresses in [] brackets, which is the only reliable part. And it's only reliable when I trust the previous relay in the chain, as spammers often add fake Received: headers. So relaydb starts with the top-most relay in the header and consults its database to see whether it is a known host, and if so, whether it sent me legitimate mail before. If that's the case, it increases the respective counter (spam or legitimate, as told through the -b/-w option) for that host and continues with the next relay found in the header. If the relay is a known spammer, traversal ends, as further headers cannot be trusted.

After I run this setup for a while, relaydb has built both a blacklist and a whitelist. One important detail is that a legitimate mail has more weight than than a spam mail. I regularly receive spam through mailing lists. Of course, I don't consider the mailing list server a spamming host. Yet, each spam I receive through it will increase the spam counter for that server. Therefore, relaydb only reports hosts as blacklisted when their spam counter is at least three times as high as the counter for legitimate mail (and the factor can be adjusted, of course). So a relay doesn't get blacklisted as long as it sends me legitimate mail to compensate for spam it sends, which covers mailing list servers. But if I get a spam from a host that never sent me anything before, that will cause it to get blacklisted immediately (1 >= 0*3).

Completing the puzzle
Now I'm building my own blacklist, based on the evidence I've seen myself, classified by my own spam detector configuration. The only politics involved in someone getting blacklisted are my own, I don't have to trust a third party to make fair decisions.

And I use this blacklist to redirect hosts to the tarpit, using pf and some cronjobs:


$ pfctl -sn
rdr inet proto tcp from to any port 25 -> 127.0.0.1 port 8025

$ relaydb -lb | pfctl -t spammers -T replace -f -

This requires a recent OpenBSD -current system.

Instead of just loading the relaydb blacklist to redirect to spamd, I could combine it with spews. Or I can use the whitelist to prevent hosts which have sent me legitimate mail before from getting redirected to spamd due to a spews listing, etc. There are many interesting combinations.

And how well does it work?
I'm getting several dozen connections redirected to the tarpit per hour, and most peers waste about ten minutes per connection, and retry several times, for multiple days. The impact on my own resources is minimal.

Best of all, I regularly get spam through a mailing list and the sender (not the mailing list server!) gets blacklisted. Then the same spammer connects to me directly, too, as it harvested my address like the one of the mailing list. And it gets stuck in the tarpit. For long. And many times.

Remember, I'm doing all of this not to reduce the amount of incoming spam. That gets detected and filed very reliably, anyway. The sole purpose is to hurt the spammers. And I'm thoroughly enjoying watching my spamd log now, as I'm perfectly sure that each of those connections comes from a spammer who has spammed me before.

"Spam me once, shame on you. Spam me twice, shame on me." :)

If you have questions or comments, write to daniel@benzedrine.cx . And all you spammers harvesting email addresses from pages like this, please spam me. My trap is awaiting you.


Thanks to benzedrine and fif3. Also thannks to my mate Kieran for pointing me towards the original link. Cheers!

November 10, 2004

VoIP battle is really heating up in the US ... but where's the FCC going with all this?

The Federal Communications Commission (FCC) have decided that individual states cannot impose additional restrictions on VoIP service providers. This follows an attempt by the Minneapolis public utilities commission to force Vonage to abide by the same rules as existing telephony service providers. The FCC overruled deeming that this stance was "inconsistent with the FCC's deregulatory policies". More information on the reg. This is a fascinating story as the implications of this ruling are unclear. The FCC's policies to-date regarding VoIP are supportive but not coherent. It's very much a wait-and-see approach rather than a strategy promoting adoption of VoIP while reasonably compensating existing operators for the user of their network. This kind of sustainable policy is required to ensure that VoIP services are deployed in a safe and responsible manner with the reliability and security that users expect.

How to distribute an atomic bomb!

This post is actually about U2's new record "How to Dismantle an Atomic Bomb" which is currently spreading like wildfire on certain well-known P2P networks. The problem, apart from the obvious copyright infringements, is that the record hasn't even been released yet. It's due for release the 22nd of November. However, a copy of the album dissappeared at a photo shoot and since then there's been intense speculation about whether the band would bring forward the release date. No decision has been made as yet. More info at the reg..

Which command in DOS

I've been told that I should add more of the little programming hints and tips that I used to come up with during my reearch days to this site. Well here's something I was playing around with today that's useful for many windows developers. Like many programmers I'm often more comfortable at the command line than using some funky GUI where I have to drag (or learn so many command alias key-strokes that I may aswell be at the console anyway).
I was stuck for a UNIX version of the which command. According to man which this command


Which takes a series of program names, and prints out the
full pathname of the program that the shell would call to
execute it. It does this by simulating the shells search-
ing of the $PATH environment variable.

Replicating this functionality using DOS batch ain't that bad...

@ECHO OFF
rem Sanity check OS version and arguments.
IF "%OS%"=="Windows_NT" (SETLOCAL) ELSE (GOTO Syntax)
IF "%~1"=="" GOTO Syntax
IF NOT "%~2"=="" GOTO Syntax
ECHO.%1 ¦ FIND /V ":" ¦ FIND /V "\" ¦ FIND /V "*" ¦ FIND /V "?" ¦ FIND /V "," ¦ FIND /V ";" ¦ FIND /V "/" ¦ FIND "%1" >NUL
IF ERRORLEVEL 1 GOTO Syntax


SET Found=
rem Get the short name for the current directory
COMMAND /C REM
rem Search CurrentDir, path and pathext for the file
FOR %%A IN (%CD%;%Path%) DO FOR %%B IN (.;%PathExt%) DO IF EXIST "%%~A.\%~1%%~B" CALL :Found "%%~A.\%~1%%~B"
rem Display the result
ECHO.
IF DEFINED Found (ECHO.%Found%) ELSE (ECHO -None-)
rem Done
GOTO End


:Found
IF DEFINED Found GOTO:EOF
rem Store the first match found
SET Found=%~f1
GOTO:EOF
:Syntax
ECHO.
ECHO WHICH, Version 2.00
ECHO UNIX-like WHICH utility for Windows NT 4 / 2000 / XP
ECHO.
ECHO Usage: WHICH program_name
ECHO.
ECHO Specify program_name with or without
ECHO extension and without a drive or path.
ECHO Just like the UNIX command. (no wildcards please)


:End
IF "%OS%"=="Windows_NT" ENDLOCAL

November 12, 2004

Static substitution (Fowler Style)

Martin Fowler has a neat little article on refactoring class statics using instance variables. Most languages can't support polymorphism for static methods. e.g.

class A{
public void doInitStuff() { /*do stuff necessary for static init of B objects*/};
} ...
}
class B extends A{
public void doInitStuff() { /*do other stuff necessary for static init of B objects*/};
} ...
}
...
A a = new B();
A.doInitStuff(); /* but I'd quite like to polymorphically call B.doStuff(); Actually, could be trouble! */

Martin's solution is very elegant.

Creating shim libraries in Linux

Anybody who's done a bit of device driver development will know that occasionally system logs just don't provide enough information about the various problems you'll encounter and you have to hack up a shim library which sits between a problem library and it's loader/calling module. Linux Journal has a very nice article this month on creating just such a library for libusb. This could be useful for anybody developing an application or driver which needs to communicate with a USB device. Like writing a synch for a PDA, MP3 player or somesuch..

iPod wireless transceivers (only in Japan as yet)

Japanese Ratoc Systems Corp. has a new lineup of wireless audio products called the "REX-Link" series, and some of them are even specifically designed to fit your 3/4G iPod or iPod mini.

rexlink1p.jpg


There are four products in the series—two "receivers" and two "transmitters." Receivers come in the form of the "CR-RX01" with optical and analog audio outputs or the "REX-WHP1" headphones. For your transmitter, you have two options: the "CR-TXB01" USB transmitter, or "CR-TXB02" USB/analog transmitter (which also attaches to the back of 3/4G/mini iPods). These four products are matched to give three available packages: one with CR-TXB02 analog/USB transmitter and CR-RX01 receiver, one with CR-TBX01 USB transmitter and REX-WHP1 headphones, and one with CR-TXB02 analog/USB transmitter and REX-WHP1 headphones.
Original link from Gizmodo

November 15, 2004

Microsoft Shell (MSH)

Read about Microsoft Shell a few months ago and it seems like it's getting some serious attention. (maybe not as much as MS's search engine pitch but I'll hold fire for the moment).
MSH is a genuinely great idea from Microsoft. Not an unusual thing in itself but this is a bit different. To quote Udell


System administration has always been Windows' Achilles' heel. The graphical tools that simplify basic chores just get in the way when there's heavy lifting to be done. And CMD.EXE, the hapless command shell, pales in comparison to the Unix shells that inspired it. Win32 Perl has been my ace in the hole, combining a powerful scripting language with extensions that can wield Windows' directory, registry, event log, and COM services. But I've always thought there should be a better way.

Jeffrey Snover thought so, too. He's the architect of Monad, aka MSH (Microsoft Shell), the radical new Windows command shell first shown at the Professional Developers Conference last fall.

MSH is quirky, complex, delightful, and utterly addictive. You can, for example, convert objects to and from XML so that programs that don't natively speak .Net can have a crack at them. There's SQL-like sorting and grouping. You write ad hoc extensions in a built-in scripting language that feels vaguely Perlish. (sd: reminds me a bit of bash scripting) For more permanent extensions, called cmdlets, you use .Net languages.


This will really appeal to hardcore MS administrators and Winadmins coming from a Unix background. Also this is potentially a reall cool tool to enable the policy based management of collections of windows boxes using .NET commandlets. Very tasty... Thank you Microsoft, just what the doc ordered..

More on MSH

Just reading the complete Udell article again.
Can't help but feel that getting an XML representation of system processes over a certain size using a command like: <

MSH> get-process | pick-object name,vs | where { $_.vs -gt 150000000} | convert-xml

is extremely neat. Sample results are listed below. I'm less than convinced about the two-part name/type syntax for the XML representation (it's a bit clunky) but this is a small quibble.


<MshObjects>
<MshObject ReferenceID="ReferenceId-0" Version="1.1">
<MemberSet>
<Note Name="name" IsHidden="false" IsInstance="true" IsSettable="true">
<string> firefox</string>
</Note>
<Note Name="vs" IsHidden="false" IsInstance="true" IsSettable="true">
<int> 220983296</int>
</Note>
</MemberSet>
</MshObject>
</MshObjects>

November 16, 2004

Escaping entities using XSLT

While writing the last post I didn't fancy the idea of hand escaping the HTML entities into the MSN XML output. So I cheated using a funky little piece of XSLT that I cooked up earlier tonight. It's listed below...

<xsl:stylesheet version="1.0">
<xsl:output method="xml" indent="yes" omit-xml-declaration="no" doctype-
system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" doctype-public=
"-//W3C//DTD XHTML 1.0 Transitional//EN"> </xsl:output>
<xsl:template match="/">
<xsl:call-template name="escapexml">
<xsl:with-param name="block" select="."> </xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="escapexml">
<xsl:param name="block"> </xsl:param>
<xsl:for-each select="$block/*|$block/text()">
<xsl:choose>
<xsl:when test="self::text()">
<xsl:value-of select="."> </xsl:value-of>
</xsl:when>
<xsl:otherwise>
<xsl:text> &lt;</xsl:text>
<xsl:value-of select="name(.)"> </xsl:value-of>
<xsl:for-each select="@*">
<xsl:value-of select="concat(' ', name())">
</xsl:value-of>
<xsl:text> ="</xsl:text>
<xsl:value-of select="."> </xsl:value-of>
<xsl:text> "</xsl:text>
</xsl:for-each>
<xsl:text> &gt; </xsl:text>
<xsl:choose>
<xsl:when test="*">
<xsl:call-template name="escapexml">
<xsl:with-param name="block" select=".">
; </xsl:with-param>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="."> </xsl:value-of>
</xsl:otherwise>
</xsl:choose>
<xsl:text> &lt;/</xsl:text>
<xsl:value-of select="name(.)"> </xsl:value-of>
<xsl:text> &gt; </xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

I'll produce a tidier more beautifying version when I get the time but it's OK for a first attempt and I know of at least one person who's asked me to do something similiar in the past. And on that note.. it could be time to hit the hay ;-)

November 25, 2004

SUN's Java 6 (May the source be with you)

Picked up a useful piece of information from Xyling Java blog about Java 6 becoming increasingly open source
Building on the success of the snapshot release process started during the development of J2SE 5.0, SUN will make early snapshots available for J2SE 6. This will afford developers the chance to make a greater contribution to the Java development lifecycle. Mb>Only fair considering developers generally have an idea or two about improvements they'd like to see in languages, libraries, API's etc. Well done to SUN on this developer friendly initiative.
(thinking of coming up with a "developer-friendly" logo similiar to the dolphin friendly one you see on some cans of tuna! Put suggestions on the comments page )

SUN's Java coding conventions on one page

Save time writing a difficult and boring java style guide! Refer to William Blake's handy page which covers everything from Java exceptions to method and variable naming. I used to have something similiar in my lecturing days but this version is definitely better.

December 4, 2004

Web Service Ports

Just read an interesting post on Steven Vinoski's middleware matters about the lack of multiple-port support in the End-Point Reference EPR currently under review by the WS-Addresing working group and augmenting WSDL 1.1 by allowing for more dynamic usage patterns. Currently the EPR doesn't suport multiple ports. Ports, for those that remember the original WSDL spec, enable a webservice to be accesible through multiple protocol/transport/format alternatives. Steve Vinoski proposes a useful "business card" analogy to explain the practicality of multiple ports, covered by one EPR. Personal addressing on the internet has arguably evolved this way anyway. Here are some examples of ports associated with the person Shane Dempsey (of Geesan Tech, for SPAM avoidance purposes) with basic URI: sdempsey@geesan.com


  • EMAIL: mailto:sdempsey@geesan.com (TCP, port 25)

  • MULTIMEDIA SESSIONS: sip:sdempsey@geesan.com (UDP/TCP, port 5060)

  • SIP INSTANT MESSAGING: im:sdempsey@geesan.com (UDP, port 5060)

  • JABBER INSTANT MESSAGING: sdempsey@geesan.com (TCP, port 5222)


In some cases the URL scheme is provided, indicating a particular port (e.g. mailto: implies SMTP). The use of schemes is far from uniform however, meaning that there is not a direct port-scheme correlation. In the service domain, this is better. For example a SOAP service where information is transferred over an alternative application layer protocol such as SOAP, SIP or SMTP is possible. A hyperlink to such a SOAP service would take a form similiar to mailto:soap@mydomain.com

December 5, 2004

Can't Add, Can't Post!

Picked up the following link from Jon Udell about the CAPTCHA (Computer Automated Public Turing test to tell Computers & Humans apart) preventing blog spam. This is a really (should that be raelly) tasty idea from Rael Dornfest. It can be summed up as can't add, can't post. He uses the Blosxom Writeback function which provides weblog comments with write-backs. An arithmetic sum is embedded in the writeback and no commets are allowed unless the answer is posted correctly. An example of this is
5 + 2 =
Neatly sidestepping more general blog spambots. The numbers are generated randomly. A definite improvement would be image obfuscation (a la Captcha!) and a bigger range.. He currently only uses 0-9 meaning a 1 in 20 chance you're gonna get the right number. I'm not sure I want to encourage blogspammers to brute force my site, especially when a post is so tantalisingly close
I'm working on my own interesting weapon in the battle against blogspam. It currently has the catchy title of blogassasin (Apologies to jmason & the rest of the spamassasin team). Also, it doesn't kill blogs but early versions come close. Active blacklist generation is another tidy feature. So spammers should think before thy HTTPiss Off innocent bloggers. Personally I don't believe that my blog (or anyone else's for that matter) needs to become any less relevant or increasingly grbled. So let's say NO to blogspam ;-)

December 8, 2004

Blog trading

It had to happen at some stage I suppose. (although I'm still not quite sure why???). Blogshares enables users to trade blogshares similiar to a fantasy stockbroker game.
Blogs are assigned monetary values based on the number of incoming and outgoing links to other blogs. It's similiar to Google in that it measures 'connectedness' Currently this blog is very lowly ranked :( Probably due to the fact that most of my friends don't actually maintain blogs so the usual web of trackbacks is avoided. It could also be that I haven't said anything interesting. I hope not. Also my blogroll is generated using javascript and it appears that the blogshare parser has failed to pick up these links...

December 9, 2004

Is spam driving you mad?

Evolutiontwo has a profane and funny response to all spammers. I hear you brother. Like the rest of the sane world he has no intention of passing his bank a/c details over to some spammer claiming to be from Africa, buying a fake rolex or using a super-cheap online pharmacy to buy drugs to enlarge various body parts. Also, to give a lot of net user's credit they're bright enough to know that it was a spammer rather than an online lottery that harvested their email address.

December 10, 2004

Fun with Regular Expressions

I was playing around with regular expressions in Java. AFAIK these are only around since the JDK 1.4 and are therefore quite new. As a sometimes Perl programmer I've some experience with these but .
Hoever, all this hacking reminded me of the most amazing regular expression I ever saw. I saw this on the ActiveState's RX cookbook some time ago.
It's actually a useful and logically sound solution to a common problem... How to match all RFC 1738 compliant URLs and turn them into hyperlinks! It was posted by Abigail to comp.lang.perl.misc on 08/14/2000. Abigail, I love you!!!


$string =~ s<
(?:http://(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.
)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:\d+)
){3}))(?::(?:\d+))?)(?:/(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F
\d]{2}))|[;:@&=])*)(?:/(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{
2}))|[;:@&=])*))*)(?:\?(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{
2}))|[;:@&=])*))?)?)|(?:ftp://(?:(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?
:%[a-fA-F\d]{2}))|[;?&=])*)(?::(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-
fA-F\d]{2}))|[;?&=])*))?@)?(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-
)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?
:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+))?))(?:/(?:(?:(?:(?:[a-zA-Z\d$\-_.+!
*'(),]|(?:%[a-fA-F\d]{2}))|[?:@&=])*)(?:/(?:(?:(?:[a-zA-Z\d$\-_.+!*'()
,]|(?:%[a-fA-F\d]{2}))|[?:@&=])*))*)(?:;type=[AIDaid])?)?)|(?:news:(?:
(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;/?:&=])+@(?:(?:(
?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:[
a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:\d+)){3})))|(?:[a-zA-Z](
?:[a-zA-Z\d]|[_.+-])*)|\*))|(?:nntp://(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[
a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d
])?))|(?:(?:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+))?)/(?:[a-zA-Z](?:[a-zA-Z
\d]|[_.+-])*)(?:/(?:\d+))?)|(?:telnet://(?:(?:(?:(?:(?:[a-zA-Z\d$\-_.+
!*'(),]|(?:%[a-fA-F\d]{2}))|[;?&=])*)(?::(?:(?:(?:[a-zA-Z\d$\-_.+!*'()
,]|(?:%[a-fA-F\d]{2}))|[;?&=])*))?@)?(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[a
-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d]
)?))|(?:(?:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+))?))/?)|(?:gopher://(?:(?:
(?:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:
(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+
))?)(?:/(?:[a-zA-Z\d$\-_.+!*'(),;/?:@&=]|(?:%[a-fA-F\d]{2}))(?:(?:(?:[
a-zA-Z\d$\-_.+!*'(),;/?:@&=]|(?:%[a-fA-F\d]{2}))*)(?:%09(?:(?:(?:[a-zA
-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;:@&=])*)(?:%09(?:(?:[a-zA-Z\d$
\-_.+!*'(),;/?:@&=]|(?:%[a-fA-F\d]{2}))*))?)?)?)?)|(?:wais://(?:(?:(?:
(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:
[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+))?
)/(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))*)(?:(?:/(?:(?:[a-zA
-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))*)/(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(
?:%[a-fA-F\d]{2}))*))|\?(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]
{2}))|[;:@&=])*))?)|(?:mailto:(?:(?:[a-zA-Z\d$\-_.+!*'(),;/?:@&=]|(?:%
[a-fA-F\d]{2}))+))|(?:file://(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]
|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:
(?:\d+)(?:\.(?:\d+)){3}))|localhost)?/(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*'()
,]|(?:%[a-fA-F\d]{2}))|[?:@&=])*)(?:/(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(
?:%[a-fA-F\d]{2}))|[?:@&=])*))*))|(?:prospero://(?:(?:(?:(?:(?:[a-zA-Z
\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)
*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+))?)/(?:(?:(?:(?
:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[?:@&=])*)(?:/(?:(?:(?:[a-
zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[?:@&=])*))*)(?:(?:;(?:(?:(?:[
a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[?:@&])*)=(?:(?:(?:[a-zA-Z\d
$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[?:@&])*)))*)|(?:ldap://(?:(?:(?:(?:
(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:
[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+))?
))?/(?:(?:(?:(?:(?:(?:(?:[a-zA-Z\d]|%(?:3\d|[46][a-fA-F\d]|[57][Aa\d])
)|(?:%20))+|(?:OID|oid)\.(?:(?:\d+)(?:\.(?:\d+))*))(?:(?:%0[Aa])?(?:%2
0)*)=(?:(?:%0[Aa])?(?:%20)*))?(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F
\d]{2}))*))(?:(?:(?:%0[Aa])?(?:%20)*)\+(?:(?:%0[Aa])?(?:%20)*)(?:(?:(?
:(?:(?:[a-zA-Z\d]|%(?:3\d|[46][a-fA-F\d]|[57][Aa\d]))|(?:%20))+|(?:OID
|oid)\.(?:(?:\d+)(?:\.(?:\d+))*))(?:(?:%0[Aa])?(?:%20)*)=(?:(?:%0[Aa])
?(?:%20)*))?(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))*)))*)(?:(
?:(?:(?:%0[Aa])?(?:%20)*)(?:[;,])(?:(?:%0[Aa])?(?:%20)*))(?:(?:(?:(?:(
?:(?:[a-zA-Z\d]|%(?:3\d|[46][a-fA-F\d]|[57][Aa\d]))|(?:%20))+|(?:OID|o
id)\.(?:(?:\d+)(?:\.(?:\d+))*))(?:(?:%0[Aa])?(?:%20)*)=(?:(?:%0[Aa])?(
?:%20)*))?(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))*))(?:(?:(?:
%0[Aa])?(?:%20)*)\+(?:(?:%0[Aa])?(?:%20)*)(?:(?:(?:(?:(?:[a-zA-Z\d]|%(
?:3\d|[46][a-fA-F\d]|[57][Aa\d]))|(?:%20))+|(?:OID|oid)\.(?:(?:\d+)(?:
\.(?:\d+))*))(?:(?:%0[Aa])?(?:%20)*)=(?:(?:%0[Aa])?(?:%20)*))?(?:(?:[a
-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))*)))*))*(?:(?:(?:%0[Aa])?(?:%2
0)*)(?:[;,])(?:(?:%0[Aa])?(?:%20)*))?)(?:\?(?:(?:(?:(?:[a-zA-Z\d$\-_.+
!*'(),]|(?:%[a-fA-F\d]{2}))+)(?:,(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-f
A-F\d]{2}))+))*)?)(?:\?(?:base|one|sub)(?:\?(?:((?:[a-zA-Z\d$\-_.+!*'(
),;/?:@&=]|(?:%[a-fA-F\d]{2}))+)))?)?)?)|(?:(?:z39\.50[rs])://(?:(?:(?
:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?
:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+))
?)(?:/(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))+)(?:\+(?:(?:
[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))+))*(?:\?(?:(?:[a-zA-Z\d$\-_
.+!*'(),]|(?:%[a-fA-F\d]{2}))+))?)?(?:;esn=(?:(?:[a-zA-Z\d$\-_.+!*'(),
]|(?:%[a-fA-F\d]{2}))+))?(?:;rs=(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA
-F\d]{2}))+)(?:\+(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))+))*)
?))|(?:cid:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;?:@&=
])*))|(?:mid:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;?:@
&=])*)(?:/(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;?:@&=]
)*))?)|(?:vemmi://(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z
\d])?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:.(?:\d+)){3}))(?::(?:\d+))?)(?:/(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a
-fA-F\d]{2}))|[/?:@&=])*)(?:(?:;(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a
-fA-F\d]{2}))|[/?:@&])*)=(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d
]{2}))|[/?:@&])*))*))?)|(?:imap://(?:(?:(?:(?:(?:(?:(?:[a-zA-Z\d$\-_.+
!*'(),]|(?:%[a-fA-F\d]{2}))|[&=~])+)(?:(?:;[Aa][Uu][Tt][Hh]=(?:\*|(?:(
?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[&=~])+))))?)|(?:(?:;[
Aa][Uu][Tt][Hh]=(?:\*|(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2
}))|[&=~])+)))(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[
&=~])+))?))@)?(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])
?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:
\d+)){3}))(?::(?:\d+))?))/(?:(?:(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:
%[a-fA-F\d]{2}))|[&=~:@/])+)?;[Tt][Yy][Pp][Ee]=(?:[Ll](?:[Ii][Ss][Tt]|
[Ss][Uu][Bb])))|(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))
|[&=~:@/])+)(?:\?(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[
&=~:@/])+))?(?:(?:;[Uu][Ii][Dd][Vv][Aa][Ll][Ii][Dd][Ii][Tt][Yy]=(?:[1-
9]\d*)))?)|(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[&=~
:@/])+)(?:(?:;[Uu][Ii][Dd][Vv][Aa][Ll][Ii][Dd][Ii][Tt][Yy]=(?:[1-9]\d*
)))?(?:/;[Uu][Ii][Dd]=(?:[1-9]\d*))(?:(?:/;[Ss][Ee][Cc][Tt][Ii][Oo][Nn
]=(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[&=~:@/])+)))?))
)?)|(?:nfs:(?:(?://(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-
Z\d])?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:
\.(?:\d+)){3}))(?::(?:\d+))?)(?:(?:/(?:(?:(?:(?:(?:[a-zA-Z\d\$\-_.!~*'
(),])|(?:%[a-fA-F\d]{2})|[:@&=+])*)(?:/(?:(?:(?:[a-zA-Z\d\$\-_.!~*'(),
])|(?:%[a-fA-F\d]{2})|[:@&=+])*))*)?)))?)|(?:/(?:(?:(?:(?:(?:[a-zA-Z\d
\$\-_.!~*'(),])|(?:%[a-fA-F\d]{2})|[:@&=+])*)(?:/(?:(?:(?:[a-zA-Z\d\$-_.!~*'(),])|(?:%[a-fA-F\d]{2})|[:@&=+])*))*)?))|(?:(?:(?:(?:(?:[a-zA-
Z\d\$\-_.!~*'(),])|(?:%[a-fA-F\d]{2})|[:@&=+])*)(?:/(?:(?:(?:[a-zA-Z\d
\$\-_.!~*'(),])|(?:%[a-fA-F\d]{2})|[:@&=+])*))*)?)))
><a href = "$1">$1</a>>gx;

Needless to say, anything this complex requires a license to say that it may not work which is reprinted here (even though it logically should work at all times). Wow and wholeheated respect to Abigail...

The Gaisan regular expression toolkit

If you want to match URL's reliably without creating a regexp monster so big that you need to connect up the digital projector just so you can work on it then this is something tasty I've come up with. Demonstrated in java, my language of choice


Pattern urlPattern = Pattern.compile("(((URL:|url:|http:|htt:)\\/\\/)|www\\.)(((([A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]"+
"|[A-Za-z0-9])\\.)*([a-zA-Z][A-Za-z0-9-]*[A-Za-z0-9]|[a-zA-Z]))|([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+))"+
"(:[0-9]+)?(\\/([a-zA-Z0-9$_.+!*'(,);:@&=\\~\\#-]|%[0-9A-Fa-f][0-9A-Fa-f])*(\\/([a-zA-Z0-9$_.+!*'(,)"+
";:@&=\\~\\#-]|%[0-9A-Fa-f][0-9A-Fa-f])*)*(\\?([a-zA-Z0-9$_.+!*'(,);:@&=\\~\\#-]|%[0-9A-Fa-f][0-9A-Fa-f])*)?)?)";
Matcher urlMatcher = urlPattern.matcher("http://streamserver.gaisan.com/ourapplication?sd=234324&cam=1");
boolean matches2 = m2.matches();
System.out.println("Match should be true:\t" + urlMatcher.matches());

December 15, 2004

Ban P2P applications

Perhaps not. I've commented in the past about the effects that P2P networks have upon the ISP traffic topologies (timing, upstream/downstream biases etc.) and we all know they can be used to illegally share copyrighted files. However, I strongly believe that P2P applications are the prototype for the next generation of highly resilient and scalable internet applications. In my former job as a telecomms researcher at TSSG we came up with quite a novel approach to integrating active networking and peer-2-peer apps at the top of the stack. I'm not sure what became of that work but my faith in the technology hasn't waivered.
I guess that's why I was so fascinated by the following post on boing-boing about 2 Princeton researchers who've cooked up a P2P app in 15 lines of concise Python code. The original post is located on Ed Felton's blog. It was damn funny to see someone hack up a Perl version in 9 lines. Without disrespect, the python implementation is more legible but the Perl code wins my "tight code" Award for 2004. Matthew Scala has a well used styrofoam cup with an strategicaly embedded 1/2 fried 2Mb Dimm (circa 1993) winging its way to him at this very moment. Enjoy! What a prize and what a hack :D

Where old computers go to die :(

IBM_AT_System_s1.jpg
While I was typing the last entry I wondered if there were any websites devoted to old PC technology. My sense of nostalgia overwhelmed me when I visited Old-Computers.com. In particular this article on the IBM PC AT brought it all back. I remember using one of these in school when I was younger. It had the 286 processor (which really kicked ass in its day) an outlandish 1Mb of RAM and 16-bit expansion slots, of course. This had a type 2 mobo with 4 standardised 256k slots instead of 128.. Those were the days.. when computers were dumb, real men used DOS, we played footie in the park, jumpers for goalpsots...
Apparently the 128 k slots were a bit weirder than they seemed initially.

The first AT used 128 k chips, which appeared to be two 64k chips stacked. It used two DMA chips, which tended to fail in tandem. It also used a second IRQ controller. If the AT had more than 640 k of RAM, the CMOS would only allocate the first 512 as Convential, the rest as Extended.
Only 17 hard drive type were supported in the CMOS, causing no end of headaches when Seagate realsed their 40 meg half height. The 1.2 meg floppy drive could read and write 360's, but if you formatted one, it couldn't be read by a regular double density drive.

December 20, 2004

headmap

I must confess to being absolutely fascinated by headmap.org. I'm fascinated by the idea of smart spaces which infer user intent based on learned context. For example an office space that learns that automatically adjusts the heating in a room based on predictions about a meeting occuring. Lights that switch themselves off when there's nobody around etc. The most value is achieved when the ambient intelligence is fully integrated with other organisational information systems such as email and IM servers, project management tools, data and profile repositories etc. I fancy the idea that every node in an increasingly networked world could dynamically negotiate new cooperative strategies and operations based on an understanding of user intent. A true User Oriented Architecture. This could be communicated using a standardised information markup with transforms for hetergeneous devices to address capability differences. I'm straying into agents territory here but there was a lot of value in that research. In essence,extending the human computer interface (HCI) throughout the user environment. In particular I like the idea about capturing memories at locations, augmenting the real world with location/memory tags, a bit like the virtual worlds created by multi-player games. The possibilities are amazing & the results would perhaps be indistinguishable from magic...

December 21, 2004

p2(very small)p

This is getting ridiculous. Following my recent post about Ed Shelton's P2P program in 15 lines of Perl there's been a P2P app done in 9 lines of Perl and now (wait for it) a full peer-2-peer application in 6 lines of Ruby with a 3 lines of comments.
Just to show everybody how nuts this has become the code is reproduced below...

# Server: ruby p2p.rb password server server-uri merge-servers
# Sample: ruby p2p.rb foobar server druby://localhost:1337 druby://foo.bar:1337
# Client: ruby p2p.rb password client server-uri download-pattern
# Sample: ruby p2p.rb foobar client druby://localhost:1337 *.rb
require'drb';F,D,C,P,M,U,*O=File,Class,Dir,*ARGV;def s(p)F.split(p[/[^|].*/])[-1
]end;def c(u);DRbObject.new((),u)end;def x(u)[P,u].hash;end;M=="client"&&c(U).f(
x(U)).each{|n|p,c=x(n),c(n);(c.f(p,O[0],0).map{|f|s f}-D["*"]).each{|f|F.open(f,
"w"){|o|o<<c.f(p,f,1)}}}||(DRb.start_service U,C.new{def f(c,a=[],t=2)c==x(U)&&(
t==0&&D[s(a)]||t==1&&F.read(s(a))||p(a))end;def y()(p(U)+p).each{|u|c(u).f(x(u),
p(U))rescue()};self;end;private;def p(x=[]);O.push(*x).uniq!;O;end}.new.y;sleep)

I think I've had more than enough of this. Pick a suitably high-level language, use single character variable names and some whacky formatting to exchange a file over a socket and call it P2P. Next someone is gonna write a java programme using SUN's JXTA that just inits a class or two, format it all on about 4 lines and say, wow it's the shortest P2P app ever... More interesting would be a P2P application written in a declarative language like Prolog or a functional language like Haskell or Hope. Haven't done much Haskell programming in a while (damn rusty and for some reason don't feel like breaking out the books) but prolog looks tempting. Expect a post. I may have to use some file IO/socket programming but it sounds like an interesting project. I'll let readers know how I get on ;-)

December 30, 2004

Changing the administrator password on an NT/2k/XP box

A friend (honest) forgot their pwd recently and asked me to hack into their machine and change their admin pwd. I found the following really tasty application which does the trick.
The Offline Password and NT registry editor by Petter Nordahl-Haggen. This is a very useful utility which I've used in the past and which has proven very effective. There are bootable floppy and CD images on the site that you can use edit your windoze box's passwords, stored in the reg's SAM file. For more hints and tips check here. Merry Christmas and a happy new year to everyone...

January 3, 2005

Sharman lawsuit rages on

Just read this over on the reg. It looks like Sharman & the music industry (ARIA or the Australian Recording Industry Association in this case) have finally agreed what information from the Feb 2004 data seizures can be used in court. I know this is a complex issue and file-sharing networks don't necessarily have to be used for illegal purposes but ask yourself the following question:

Besides illegal copies of music and software what else do you look for on P2P filesharing networks?.

Personally I think P2P technology is fantastic. The self-organising and self-healing nature of many of these networks is a percursor for the next generation of internet architecture & design. As autonomics becomes an important field of IT research in the future P2P networks such as Free Net and Bit-Torrent will be recognised as a true paradigm-shift, to use that corny and overused phrase. Also the capabilities of a network such as OceanStore are phenomenal. There's a real pioneering spirit there and it's wonderful to be a small part of it. It's also unfair for the music industry to blame technologists when they're clearly trying to protect their market in the face of cheap/free technology for recording and distribution. Perhaps, they've forgotten that it was a series of technological evolutions and revolutions that led to the creation of the industry in the first place. Thank you Edison, Dolby, Philips Electronics et al. Technological change is an inevitable and those that don't move with it become industrial dinosaurs whose SEC filings are dug up by corporate paleontologists in the future as they try to piece together "What ever happened to that company industry?" So how will the industry evolve? I'm not sure but here's some plausible statements:


  • Media distribution and playback technologies will be all-digital within the next 10 years

  • DRM cryptographers and cryptologists will keep pace with eachother, leading to a stalemate situation where ever more draconian DRM initiatives are met with ever more sophisticated mechanisms for by- passing them

  • The availability of a free and relatively unmonitored distribution channel (the internet) will ensure that illegal media distribution does not die out. Normally law-abiding citizens will simply 'opt out' of legitimate media distribution schemes.

  • Many emerging artists will directly sell media over the internet for very low prices, cutting out the industry middleman

  • Major artists who've already made enough money will embrace internet distribution as a way to gain greater artistic freedom

  • Media costs will tumble as a result. A combination of trade agreements (European Community and Worldwide) and a cheap distribution channel, will standardise media costs so music, films etc. are available for the same basic price throughout the world

  • Firesharing networks will continue to be popular and will resist attempts to shut them down. Americans will come to view secure and anonymous information distribution technologies as they currently do guns control. Laws that curtail the availability and use of those technologies will be viewed as undemocratic and an impediment to free speech.

  • The AOL/Time Warner merger will finally start to make sense as such a conglomerate could recoup distribution costs through it's ownership of both the media rights and the distribution channel

  • Apple's flat rate iTunes service will be the model for music distribution services for years to come

  • Internet and Mobile Network Service Provider billing systems will become much more sophisticated to allow for differentiated service charges and itemised content billing.

  • A beleaguered media industry will successfully lobby governments for other mechanisms for revenue generation, probably leading to direct media taxation based on media bandwidth usage

  • In the future everybody will be a published artist

Feel free to comment...

January 5, 2005

What's superer than 3G

Super 3G is the new faster than fast, whiter than white, icecold, hot as hell and totally groovy wireless transmission standard which is going to provide wireless speeds 10 times faster than 3G. The only catch is that it's not even a specification at the moment, rather an initial agreement between the major mobile operators and phone companies to develop a new services by 2009 (with technology optimistically concluded by 2007). I'll believe that when I see it but I suppose much of the ground work has been laid out in the latest releases of the UMTS standard. This service should enable all kinds of exotic scenarions like seamless roaming of continuous video feeds and the like. WOW! The reg has more information and gizmodo remarks on it as does ITWEB

The half-empty cynic in me still wonders whether this investment in hugely expensive new transmission technology is justified given that
"most wireless operators with 3G licenses have not made a profit on their high-speed wireless services after spending billions on licenses
Still all is not lost as according to the reg...

"In the nearer term, UK-based mobile operator mmO2 said in early December that it will launch a "super-fast" 3G network in 2005, promising speeds faster than current fixed broadband levels. The mobile operator, which has yet to launch its main consumer 3G service, said it will offer high-speed downlink packet access (HSDPA) technology and Internet Protocol Multimedia Services (IMS) with download speeds of 3.6Mbps, which will increase to 14.4Mbps as handsets become available."

January 7, 2005

Media Museum of the year 2014

Everybody interested in the future of digital media and the computer industry in general should have a look at the following flash movie. Available from broom.org. It's fascinating. I think that it's ultimately flawed in some of its suppositions about MAD (Mergers, Acquitisions and Divestitures)New York Times ®. I suspect that it's more likely that a merger or joint-venture between old-world and new-world media will be part of this revolution. Rather than bypassing established media companies and brands. Old media and new media will combine with a different, more cooperative organisational structure. Perhaps in 2010 computers will be able to provide the value-added interpretations that news companies currently provided. More thoughts on this later but I think that more sophisticated content licensing, canonical information addressing & DRM will play a part. Still, this really made me think and it's beautiful to watch.

Towards software quality and accountability

Great post from John Udell. No point in commenting on it, just read it!

January 11, 2005

More thoughts on the evolution of media technology and industry

Wearable and completely ubiquitous media recording and transmission devices (possibly nanotech scale) will mean that live and automated newsfeeds are available everywhere. News will be a 3D immersive experience. A bit like the bullet-time effects in The Matrix but more impressive. Throw in smart spaces that record and replay psychological context and you have a whole different way to experience news, live & throughout the world.

January 13, 2005

Radiation deflecting paint designed to deter war-drivers

Don't know if any of you picked this up from el reg. A US company called Force Field Wireless has created a paint containing "laced with copper and aluminum fibers that form an electromagnetic shield, blocking most radio waves and protecting wireless networks". It does seem like a revolutionary idea but I have the following questions?

  1. Are the radio waves being blocked or deflected? Not trying to be stupid here but the metallic elements in the paint are more than likely reflecting all electromagnetic signals back into the house? This may not be a great idea as depending on the amount of electromagnetic devices your operate in your house you'll increase your exposure to background non-ionising EMR

  2. Ignoring health concerns, which aren't conclusive anyway, will it affect your ability to get a mobile phone signal in your house?

  3. What about windows? (and I don't mean the OS)

January 17, 2005

For Sale

Irish cable TV provider.
UK cable TV operator must sell irish arm to concentrate on enhancing service offerings in its core market. More details below:

  • Several highly cautious owners

  • Increasing revenues <(up 3.5 % to 26.5 million euro)

  • Profitable (8.9 million euro in 2004)

  • Large Customer base (340,000 subscribers)

  • Lots of untapped potential for product diversification

  • Knockdown price (< 20 % of 1999 purchase prices of 680 million euro)

Contact Goldman Sachs or look here for more information.

Mixing metaphors with mixed results

Excellent article from Martin Fowler about the dangers of using metaphoric reasoning when comparing professions. To quote Martin

... it all comes down to how you use the metaphor. Comparing to another activity is useful if it helps you formulate questions, it's dangerous when you use it to justify answers.
. However, while I agree with the sentiment of the article I think there's a place for metaphoric reasoning in justifying answers aswell. For example lean manufacturing involves the reduction & indeed elimination of inventory in order to reduce unnecessary costs & improve manufacturing responsiveness. It depends on how you bound and interpret the analogy. Understanding both the articles and the aims. A certain amount of inventory will always be required "in the pipeline" to enable manufacturing to take place. In the same way that an amount of upfront documentation is required. Complete elimination of either is not the real goal, it's optimisation of the manufacturing process through waste reduction & more appropriate & flexible task scheduling.

January 24, 2005

Microsmelting

I'm supposed to be working on documents today but I must admit that I've got other things on my mind. One of these is how to turn my microwave oven into a personal foundary. I have a hankering for another japanese ceremonial blade (a nice new katana). but I haven't figured out how to smelt in my house yet. However home based metallurgy is being brought a giant step closer using the Reid Technique (RT)

"a simplified ceramic-shell procedure for the casting of non-ferrous metals, patented in 1990. RT was first developed to avoid the problem of heat loss, which makes the the pouring of small melts very difficult - these difficulties arise however the metal is heated, and while the microwave technique set out here can be used for heating small amounts of metal in open crucibles, its greatest potential lies in its use as a flameless furnace in processes such as the Reid Technique. The crucial discovery, made during extended tests with various susceptors - materials which heat up when exposed to microwaves - was that two substances, graphite and magnetite, working together were required to achieve the kind of heating we were looking for."
So there you go, clever use of microwave heat susceptors stuccoed to ceramic shells enables a mould to be created where small amounts of bronze, silver, gold and iron can be melted/cast in your very own home microwave oven. The whole process is described more elaborately here

January 25, 2005

Creating Barcodes dynamically in Java

Sometimes stock control & point-of-sale systems need to generate barcodes. Xyling java blog has a recent article on how to achieve this in your JFC and J2EE applications. This software is licensed under the Lesser GNU Public License (LGPL). JBarCodeBean supports all major barcode formats including:

  • Code 128
  • Code 128
  • Code 39
  • Extended Code 39
  • Codabar
  • Interleaved Code 25
  • MSI
  • EAN-13
  • EAN-8

February 12, 2005

Using Instant Messaging for Mobile Business

I got thinking about the implications of IM-Bots when I worked for the TSSG research group in Ireland. IM-Bots are pseudo-intelligent automated IM buddys that responds to queries using greater or lesser degrees of Natural Language Parsing (NLP) and knowledge inference. One of the most famous is the Alice-Bot which uses Artificial Intelligence Markup Language (AIML) to associate semantics (like running a program) with parsed syntax. I've written a paper about using IM-Bots as virtual shopping assistants which is available here

February 17, 2005

Combating Referrer SPAM

Kuro5hin has a neat article today about mechanisms for combating Referrer Spam. This kind of Spamming involves hitting websites while facking the referrer info in the HTTP request. Often referrer information is publically or privately available through webserver log analyser packages such as webalizer. However, even if you're not worried about pollution of your weblogs and published usage stats Referrer Spammers have an irritating habit of DDoSing your site into oblivion while they taint your logs. Charming people I'm sure.
One of their suggested methods for blocking these wonderful folks involves blocking their URLs using your .htaccess file. I use the following voodoo with my movable type weblog and it's very effective.

SetEnvIfNoCase Referer ".*(credit|texas-hold-em|holdem|viagra|sex|more-naughty-words).*" BadReferrer
order deny,allow
deny from env=BadReferrer

The process of maintaining up-to-the-minute blacklists in your .htaccess files can be automated using the catchily titled Referrer SPAM FUCKER 3000. Quality code that does exactly what it says on the tin ;-)
Hasta la vista texas-hold-em. Just trying to plant a few seeds here and help reclaim the internet from these Grade A 1u53r5

I presume iBill is going to pay interest on overdue payments?

I seriously doubt it however!
iBill or "Internet Billing" is a secure online payments provider that promises to simplify the process of payments processing for small businesses that don't want the hassle of setting up their own merchant account or deploying their own online credit-card payment system. Sounds like a good idea & it is. However, iBill charge an absolutely staggering 30% of gross sales for this service. 20% processing charge and an additional 10% for "reserves". "That's amoral" I hear you say.. NO, this is amoral. It turns out that iBill haven't been paying their customers for months. With a wait of around 4 months for customers to find a new payment processor iBill can afford to make empty promises for quite a while, god knows where the money is going. According to the NYTimes article the company is currently under investigation by the US Dept of Justice & a class action lawsuit by disgruntled clients is reportedly on the way.
Interestingly enough I asked around & several friends thought that iBill was associated with Apple in some shape or form. the lower case i is very reminiscent of Apple's product nomenclature. Apple take note!

March 15, 2005

Building in a bag

Pulled this from wired news. The difficulty of providing accomodation quickly and cheaply under arduous circumstances such as wars & natural disasters is a serious issue for governments, armies and aid agencies. According to Wired a solution could be at hand.

A pair of engineers in London have come up with a "building in a bag" -- a sack of cement-impregnated fabric. To erect the structure, all you have to do is add water to the bag and inflate it with air. Twelve hours later the Nissen-shaped shelter is dried out and ready for use.
The inventors are students completing their Masters Degrees in Industrial Design & Engineering at the Royal College of Art in London. They got the idea when they heard about inflatable structures used in the repair of broken gas pipes.
The inventors filed a patent, which covers the concept of creating structures using a cement-impregnated cloth bonded to an inflatable inner surface. Full-scale production is planned and could take off soon, as Concrete Canvas is short-listed for the New Business Challenge run by Imperial College London and the Tanaka Business School. The winner of the £25,000 ($48,000) prize will be announced next week.
I like the quote from the program head of Medicins San Frontieres in Uganda who would like to buy 10 as soon as they become available. The advantages over flimsy tents and the transportation issues of prefab buildings mean that many more buildings could be constructed this way in the future. Perhaps even houses?

March 23, 2005

Microsoft to buy Groove Networks

Not exactly a shock but indicative of both technical intent and direction at Microsoft. The full article is available at Grid Computing Planet. Most followers of P2P and collaboration technologies are familiar with Groove Networks offering. It enables the creation of a virtual office by connecting PC's together over a P2P network to create a secure workspace where document, applications and communications can be shared. The Groove software will be integrated within Microsoft Office, integrating with the RTC (Real-time Collaboration) s/w that Microsoft already bundles including Office Live Update.
In another twist, Ray Ozzie, the creator and CTO of Groove will become the CTO of Mc$oft's collaboration s/w division.

Ozzie, who will become CTO and report to Microsoft Chief Software Architect Bill Gates, is renowned for creating Lotus Notes, now a multi-billion-dollar business for IBM. He is also one of seven "Windows pioneers," an honor bestowed to engineers who have contributed to the improvement of the operating system.

Gates, who joined the conference call from Redmond, that Groove technology has "fantastic and very unique" properties Microsoft wants to put into Office.

"He's made a huge contribution in terms of giving us feedback about the platform," Gates said, citing Ozzie's work on Windows user interfaces and Visual Studio. "It's very exciting to have Ray and his team joining Microsoft. I think it's really going to help us do a better job for all of the information workers out there."

Noting that he has had the privilege of working with Ozzie for "many decades" as he was building applications on DOS or Windows, Gates said he had wanted to hire Ozzie for a long time. The CTO will have a great deal of say over corporate communication and collaboration offerings.

He will also continue his work with Groove's roughly 200 employees, which will remain at Groove's Beverly, Mass., headquarters as part of Microsoft's Information Worker Group.

Ozzie said his plan for Groove reflected how the business environment was changing, including a different type of security model based less on setting up firewalls and more on how people work with one another.

"Over the years, we've been very fortunate have led us all to be carrying around Wi-Fi-enabled laptops," Ozzie said. "The nature of work itself has changed for many of us. We very commonly do work in a geographically dispersed fashion, in the office, at home, in hotels, at Starbucks and so on. Our interactions involve being on multiple networks..."

Microsoft had already demonstrated its committment to both Groove Networks and collaboration software with a $38 million investment in Groove during 2003.

March 29, 2005

Data Protection in Ireland and Business Continuity

Both are two subjects that I'm becoming very interested in recently. In trying to develop a clear understanding of all the implications of National (Irish), European and World Market (US, predominantly) data retention legislation I've been having a look at the Irish Data Protection Act. More information is available at the authoritative DataProtection Commissioner's website. However, the following point struck me.
Section 2 of the original 1988 Act (which is still valid AFAIK) states that


A data controller should observe certain principles in relation to personal data:
  • The data or information constituting the data shall be obtained and processed fairly

  • the data shall be accurate and where necessary kept up to date.

  • Data held for back-up purposes is exempt

  • shall be kept for one or more specified or lawful purposes - specified refers generally to purposes specified in any registration document, where applicable

  • shall not be used or disclosed in any manner incompatible with such purpose(s)

  • shall be adequate, relevant and not excessive in relation to that purpose(s)

  • shall be kept for no longer than is necessary; data held for historical, statistical or research purposes is exempt.


What's worrying me is the point in bold print. The problem isn't whether this data is currently used as part of a live data set but what happens if data that does not meet the terms of the act is restored, after information system loss or damage. The nature of some database and structured data records means that offending data WILL ALMOST CERTAINLY have to be restored from an incorrect archive AS LONG AS IT'S IN THE ARCHIVE IN THE 1ST PLACE. It's a subtle point but surely, the onus should be on companies to ensure that they always have a backup or archive that contains only non-offending data that doesn't breach any part of the act. Therefore, backup policy MUST be affected by this act.

April 17, 2005

Observing new media trends

I posted not so long ago about Georgia Tech's prescient presentation on the media museum of 2014. While reading the sunday dailies & the sunday blogs today I noticed that the observer has gotten a shiny new daily blog. Here's the low down from boing-boing

The weekend paper is now supplemented by a daily blog, with podcasts and moblogs. The RSS is fulltext (crap, no it's not -- this is such an important detail, Observer -- get it right!). Trackbacks and comments are on and unmoderated. Keywords are tracked and displayed in a "folksonomic zeitgeist." Headlines from competing papers and Technorati link cosmoses are pulled in and displayed on the front page. No paywall. No adwall. No wall.
. It's wonderful to see an established & certainly distinguished paper so thoroughly embracing new news dissemination technology and in the true spirit of the web, offering everything free of charge

April 18, 2005

Colt launches 1st europe-wide VoIP service for Ireland

Just picked this up on Electric News today. An English company called Colt Telecom are offering irish businesses all local, national and international calls within a select number of countries for a flat rate, per-user, per-month fee of EUR24.50. Other countries covered in the deal include Austria, Belgium, France, Denmark, Germany, Italy, Netherlands, Portugal, Spain, Sweden, Switzerland and the UK.

However, the monthly charge does not cover calls to mobile phones. Having just read the VoIP open access directions from Comreg I'm not surprised as the call tariffs & STRPL (Switched Transit Routing Price List) for voice to mobile are likely to be at mobile-to-fixed rates for VoIP calls so as not to penalise the impoverished mobile operators, who've got to make a buck too, ya know.
It looks like Colt will be using IP-Centrex for switching and customers will lease phones at a flat rate of 20 euro/month. Nice idea as it reduces business CAPEX cost considerably while capturing a market for Colt. It appears that carrier-grade SIP-based Siemens HiPath 8000 softswitche(s) will form the switching backplane of the service and there are plans to introduce some unified messaging offerings which integrate with MS outlook. Not sure if a webservice only offering will be available to those that don't run windows.

Colt, which employs around 40 people in Ireland specialises in providing data, voice and managed services to midsize and major businesses and wholesale customers. It has more than 50,000 customers across all industry sectors and the company owns and operates a 13-country, 20,000km network that includes metropolitan area networks in 32 major European cities, with direct fibre connections into 10,000 buildings and 12 Colt data centres.

Thanks to mofoghlu for the link.

May 7, 2005

Rhapsody DRM hits the wrong notes

Yay, finally a post about technology. No science, religion or philosophy today. Hell, I'm not even going to consider the ethical or philosophical implications of having to pay for culture as opposed to it being provided free gratis to all. Still, Digital Rights Management (or DRM) has caught the imagination of an entertainment industry keen to avoid getting overtaken by the latest and greatest piracy technologies and the increasingly flexible morality of the general public. They wouldn't sell us a DVD writer if they didn't want us to copy movies, right???. I was extremely interested to pick the following article from gizmodo. It really does look like Real Network's "Rhapsody To Go" service just plain doesn't work. The technology is Real's implementation of the the Windows Media Player 10 DRM that lets you rent downloaded tracks and even listen to them on your portable music player. These so-called portable subscriptions are a really nice feature that fits with how most users would envisage DRM. You subscribe to the content and then enjoy it on the device of your choice! If the technology works that is. However PC World points out the many limitations of the service. You range of players that support it's DRM doesn't include the ubiquitous iPod. That's a bit like serving a vegetarian a steak sandwich. A bit pointless really! To make matters worse, PC World failed to successfully transfer media to any portable music player. Here's a quote from the article:

"In my tests, transferring tracks to a notebook and playing them while I was unconnected to the Net worked fine. Of course, that's no great accomplishment--other music services have been allowing something like that for years. But despite trying with two IRiver H10 MP3 players, two Rhapsody accounts, and two PCs, and getting suggestions from Real engineers, I was never able to transfer any Rhapsody track I hadn't bought outright onto a portable player. For me, at any rate, Rhapsody To Go just didn't work."
It turned out that Real's support forums include lots of complaints from customers about similar problems with the Rhapsody To Go service. Real have since updated the software but I don't have access to a more recent test. Also, in support of the service, Rhapsody's desktop client has a very nice jukebox feature and the service generates a playlist with tunes similiar in genre to those you've already subscribed to. A bit like Amazon's "people who bought X also bought Y" recommendation technology...

May 8, 2005

blogshares still doesn't take bloglines popularity into account

I'm just blog tired here :-D. Just looking at blogshares again. I'm slightly p*ssed off with the inaccuracies in it's valuation of my blog. I find it ridiculous that given the numbers of people that use the bloglines blog aggregator that the blogshares spiders can't bypass the single level of indirection implied by their javascript blogroll. It's a real pain in the ass as I'm damned if I'm going to do any server-side scripting to dynamically embed my roll in the page. Bloglines was recently acquired by AskJeeves which also owns the teoma patented thematic search technology. The idea appears to be the creation of a search engine that is capable of thematically searching and grouping a massive database of RSS blog and news feeds. Which is a pretty nice idea in my opinion. I wish them luck.

Continue reading "blogshares still doesn't take bloglines popularity into account" »

May 25, 2005

XDA-2 for Sale

I've recently bought the rather snazzy Nokia 9300 smart phone. This is the tool-de-force (sic) for the roaming sys admin combining features like bluetooth & tri-band with a usable qwerty keyboard. In my opinion it's more attractive, compact and lighter than my trusty XDA so all-in-all I'm very happy with my new purchase. However I need to find a new home for my XDA-2. Rather than leave it gather dust I'm selling my 10 month old model in it's original packaging and including a bluetooth headset for around 400 euro. Sensible lower offers will be considered. Drop me a mail if you're interested.

xda2

July 8, 2005

NTL broadband configuration

I've just gotten NTL broadband at home, signing up for the 3Mbps offering which is very nice indeed. So far I'm seeing download speeds of around 70 kbps which is a bit slow to be honest but I understand that the service isn't quite working to maximum capacity yet. I'm willing to wait. It's worth it after 3 successive wireless broadband providers failed to hook me up citing the usual reasons of

  • too busy to look at it yet as we're trying to grab all the customers eircom has disappointed with the lack of ADSL availability

  • too poor a signal

  • no line-of-sight

  • too many trees

  • wrong star sign

  • eyes are the wrong colour

  • wrong time of the month

  • yadda, yadda, yadda

Anyway, the NTL cable modem is neat and tasty and hooks nicely up to my linksys wireless router. However, a word of warning. If you want to retrofit a wireless router to your installation you may have to MAC spoof as the DHCP lease for your location is obviously based on MAC. My linksys router supports this via "cloning". NTL installation staff aren't exactly clueful on this front so you'll have a lot of messing around to do if don't pick up the problem straight away. Other than that's it's a straight "obtain IP automatically" installation. A word of warning about the Linksys WRT54G router though. The firmware upgrade to v 3.1 is essential for security reasons and its interoperability with NETGEAR 54g cards is less than sensational for anything less than basic WEP. (it doesn't work)So kids my router is mac restricted, much good it will do me

July 14, 2005

340 kbps download speed from NTL

I've consistently seen download speeds over 250 kbps over the past week but today I saw 320 - 340 maintained for over 30 seconds in the middle of a long download. After less than a week of using it I'm completely hooked. I'm using the service to monitor various servers we've installed in remote locations. Therefore I can't afford downtime. My previous eircom service sometimes went down, often due to wireless router rather than ADSL problems but the net effect is the same. The consistency of speed and quality of this service over the past week has been remarkable. That's a huge thumbs up from me (y) ;-)

August 6, 2005

Moving movable type

Despite what I'd been told, moving Movable Type was an absolute doddle :-D. I followed the following steps, just in case any of my friends have to do it and aren't sure how to go about it.

  1. tar the MT directory

  2. mysqldump the mt database using the command line or cPanel

  3. Untar the mysql database to the new director structure on the new server

  4. restore the mysql database on the new server

  5. recreate the database user account on the new server with the same name priviledges and password (or use new settings & go to next step

  6. update the mt.cfg file located in the MT cgi-bin director with revised settings for hostname, directories, database, user and password.

  7. and your off

Hope I've been of assistance.

August 8, 2005

casting a a dark adapted net

The recent launch of the latest version of the Freenet Peer-to-Peer file sharing software has attracted a great deal of media coverage. Every credible paper in Ireland and the UK covered it and most pondered the same question. Is it ethical to create software where the creator knows that it will be used in fraud and theft? OK, we're not pulling any punches here. Ian Clarke is without doubt a brilliant software designer and is an idealist at heart but as Conor Flynn of RITS Security points out in last week's Sunday TImes

"The Freenet system group say it's for sharing information and they can't help it if people abuse it. They know damn well that it will be."

Ian's site is endearingly lowkey but his comments about unprizer being his "first serious venture in capitalism" are a bit disingenuous. I presume he's been living in a kibbutz all these years then :-P. Seriously though, darknets are compelling technology enabling data distribution to be effectively hidden from network users. I can see the applications in permitting freedom of information & within countries with oppressive governments but this can't disguise the fact that most of the goals that Ian talks about for freenet involving subverting the information and copyright legislation in the country in which it's used. It promotes anarchy in an era where many are becoming increasingly concerned about their security and ever more permissive of the measures their governments take to guard that security. The ethics of darknet technology are similiar to gun manufacture. It's welcomed in equal measure by peacekeepers and violent terrorists. True freedom of speech exists where a country's people and government agree that people can express their opinions regardless of it's unpopularity, subversiveness etc. When this is practiced the source of commentary does not have to hide in a dark alley or a darknet. This is IMHO a more admirable ideal than anarchy. Darknets have a deterrent factor but they should not become an end in themselves in promoting freedom of speech.

August 10, 2005

Bluetooth tools for XDA-2

I love my XDA-2. Decided not to sell it as the offers weren't that high and I had lots of programmes for it. However, one thing that did bother me about it was the shortcomings of it's bluetooth implementation. Well I managed to sort some of these out by installing 2 very useful pieces of software.


Pocket Bluetooth tools is an incredibly useful piece of s/w that enables XDA-II users to effectively use their PDA/phones with the many bluetooth carkits on the market. It supports the Bluetooth headset 1.1 & handsfree 1.0 profiles. It also supports static serial ports (for GPS receivers) and automatic power management which turns bluetooth on or off depending on use. Thank you Tobias.

September 15, 2005

It's a conspiracy your honour

Ever been snapped by one of those pesky gatso cameras driving a little on the high side (above) of the limit. I spotted this article on the web and decided to do a little bit of research into the worldwide attitudes to speed cameras & whether such a defence would be acceptable here. The answer seems to be that in many of the countries where speed cameras are deployed to discourage speeding they are not admissible as court evidence. The reason being that the cameras are operated by semi-state or private organisations without the direct involvement of the police where private individuals and organisations are financially rewarded based on the number of infringements. In California, for example, the practice is deemed "unreliable" by the state superior court on this basis. The situation is the same in Colorado. In the US there is also the issue of correct identification of the driver. In California the cameras are required to produce a recognisable picture of the driver's face for identification purposes. As far as I know, this is the case in Ireland where vehicle owners are asked to provide the name and address of the vehicle's driver at the time the picture was taken.
As leading Internet security expert Bruce Schneier points out it's true that MD5 is broken but very likely that the motorist in the australian case was guilty. However, theoretical security is important when the legal system assumes innocence before guilt and also places a burden of proof upon the prosecution.
So I guess the question you're all wondering is whether the Irish garda use MD5 in a similiar way for non-repudiation purposes or whether the cameras are operated by a semi-state or private organisation on cash-per-infringement basis. Well AFAIK the cameras are installed and operated by Serco and Pulse uses MD5 checksums in places. I'm going to do some digging here but it does have fascinating and wide-ranging implications.

Anyone interested in reading more about the MD5 vulnerability have a look here

I'm neither advocating speeding nor castigating cameras but the following statistics are telling. In the UK cameras deployed in accident hotspots tend to reduce the number of accidents and fatalities by 30-40%. However, cameras tend to increase the ratio of fatalities to injuries wherever they're deployed. Many of these fatalities are due to pile-ups caused by offending motorists quickly slowing down before cameras. There are a number of theories explaining these statistics.

  • Some believe that cameras are distracting causing drivers to pay more attention to the speedometer rather than the road. Many studies have backed this up.

  • Many serially irresponsible drivers slow down just before the cameras and immediately speed up again once past them, increasingly the likelihood of an accident during braking & while they try to make up lost time.

November 1, 2005

Tripped over down memory lane

I was in hospital this morning so I spent the period of the day, when I wasn't sleeping, trawling some blogs and catching up on the minutae of other people's lives. I managed to find this. A fascinating documentary on the first form of internetworked geek communion, BBS. I was a big fan of these in the day and used to connect using my gee whizz Acorn Archimedes. That singled me out as a power user by the way. At a heady 4800 baud, I really smoked the joint out. Anyway, geeks who've been there and done that, like me, can check out this wonderful documentary and relive BBS in all their monochrome glory. There's even a nice little interview with Internet co-inventor and Google VP, Vinton Cerf.

November 14, 2005

Turning autoplay off & keep your hair

Couldn't find a way to turn autoplay on XP off then I realised it was probably in the Group Policies for XP. After some searching I typed gpedit.msc at a prompt and this will make the group policy editor appear. The setting is in Computer Configuration/Administrative Templates/System
Very useful. Many users will have noticed that occassionally auto-play makes you want to tear your hair out when it tries to install a large program or play a large media file bringing your computer to a standstill.

December 20, 2005

iPod use may damage hearing

I remember the warnings during the 80s about listenting to loud music on the original sony walkman. I paid the warning little heed and whether it was that or the booming base in nightclubs that damaged my hearing I don't know. Either way, I have less than fantastic audio acuity which is embarassing in several social situations. Anyway, The Reg leads with this article which points out that in-the-ear phones can amplify sound by a factor of around 8 times. (yes, I'm converting from dB here so no silly comments) The artilce acutally proposes some safe listening habits suggested by Dean Garstecki, A North Waestern University audiologist.

So what can we do? One solution Garstecki suggests is the 60 percent/60 minute rule, whereby people use their MP3 devices for no more than about an hour a day and at levels below 60 percent of maximum volume. "If music listeners are willing to turn the volume down further still and use different headphones, they can increase the amount of time that they can safely listen," Garstecki added.
. This is good practice and I'd urge any reader to take this on board. Unfortunately, I've a state of the art Pioneer in-car headunit with an iPod adapter bus so my iPod booms away in my ears even without the phones. Some people never learn :(

December 30, 2005

Installing Wordpress

Installing wordpress is generally one of the easiest things to do for anybody with a clue about internet software. All you need is access to a mysql database, an ftp client, a webserver and text editor. What could go wrong? Well, I've noticed that in the latest version (2.0) of the tar.gz download the configuration file seems to be incorrect. I've opened this in several editors on windows and linux and everything is lumped onto a single line. Therefore when you go to the http://www.yourdomain/wordpress/wp-admin/installation.php config page it will produce a rather unhelpful "failed to open file" message. Here's a proper version of the file.

// ** MySQL settings ** //
define('DB_NAME', 'your-db-name');
// The name of the database
define('DB_USER', 'your-db-user');
// Your MySQL username
define('DB_PASSWORD', 'your-db-passwd');
// ...and password
define('DB_HOST', 'localhost');
// 99% chance you won't need to change this value
// You can have multiple installations in one database if you give each a unique prefix
//$table_prefix = 'wp_'; // Only numbers, letters, and underscores please!
// Change this to localize WordPress. A corresponding MO file for the
// chosen language must be installed to wp-includes/languages.
// For example, install de.mo to wp-includes/languages and set WPLANG to 'de'
// to enable German language support.
define ('WPLANG', '');
/* That's all, stop editing! Happy blogging. */
define('ABSPATH', dirname(__FILE__).'/');
require_once(ABSPATH.'wp-settings.php');
?>

January 3, 2006

Access Grid project for collaboration management

Using a grid for collaborative project management would seem to be a wonderful idea. So what tools are available. I've spent some of today messing around with www.accessgrid.org. There are many reasons. In the designers' own words

"The Access Grid is an ensemble of resources including multimedia large-format displays, presentation and interactive environments, and interfaces to Grid middleware and to visualization environments.

These resources are used to support group-to-group interactions across the Grid. For example, the Access Grid (AG) is used for large-scale distributed meetings, collaborative work sessions, seminars, lectures, tutorials, and training. The Access Grid thus differs from desktop-to-desktop tools that focus on individual communication."


To the uninitiated the software provides a way to setup secure group-based meetings incorporating advanced multimedia exchange (sound & vision) while integrating with other grid-based frameworks such as globus and the J2EE compliant ogce. Meetings between remote nodes take place using conferencing facilities created throughout the grid which create "virtual venues". SIP compatibility is available through Virtual Room Videoconferencing System.
Wish me luck.

January 5, 2006

TruPrevent issues with Outlook

Don't know if readers have had similiar problems but chances are they don't use Panda Software's TruPrevent system to detect unknown threats. The heuristic checks are a great idea but really consumptive of memory and processing from what I can see. My hard drive filled up when I installed a lot of applications and hey, presto, the heuristic scans became slower and my email slowed to a crawl (whether sending or receiving). It wasn't at all obvious what was going on as the problem just appeared to be an issue with our email server.

January 30, 2006

test your broadband connection's voip capability

Very nice little applet from talkswitch. We've used this a few times and it's quite reliable.

February 2, 2006

UTStarCom F1000

Another great reason to use your WiFi phone behind a reliable firewall, at home, in the dark. The list of vulnerabilities on this baby include open and immutable SNMP settings, open telnet and rlogin access. Ouch!
I guess we won't be administering this one via SNMP. Here's the lowdown from securiteam

Here's a quote:

"UTstarcom F1000 VoIP Wifi Phone rlogin (TCP/513) unauthenticated access:
The phone's rlogin port TCP/513 is listening by default and requires no authentication. An attacker connecting to the phone via telnet/netcat is dropped into a shell without any login. The shell provides an attacker full access to the Vxworks OS, including debugging, direct memory dumping/injection, read/write device, user and network configuration files, enable/disable/restart services, remote reboot."

February 27, 2006

Ire-com

My new name for eircom. Last friday (24th Feb 2006) my business had no broadband all day long. It was unannounced, unwarranted and unacceptable. When we tried to complain we couldn't get through and I was eventually told by someone in another business) that they'd talked to eircom this morning and it would probably take all day to fix the problem. I was then informed that we weren't alone. Every ire-com ADSL customer in WAterford and Kilkenny was affected. Never mind selling on this company again, it's time COMREG did their job and unbundled the network from the service or we'll be singing the same sorry tale for the next 20 years.

March 22, 2006

You've got to hand it to Ire-com

As the co-owner of one of those telecomms providers saying their call charges are lower than eircom's basic rate I'm amused at their latest advertisements. I'm sure you've heard them. The ones that say that there are lots of providers who provide a basic rate cheaper than eircom's but most eircom customers aren't paying a basic rate anyway or words to that effect. It's a bit cheeky. Ask yourself the following none-too-subtle questions.

  • Is it reasonable to tell customers that your basic rates are substantially higher than the competition's but still persist with offering those rates?

  • If you have a monopoly of residential and business customers does it make the previous situation less reasonable? Would this undermine your credibility when talking about customer satisfaction?

  • Would a reasonable consumer determine that they were being convinced to stay wiht the incumbent operator through tariff savings schemes while steep (punitive?) charges were still enforced for calls made outside the terms of the low-tariff plan?

Here's the defintion of anti-competitive and monopolistic practices (which are outlawed by the EC). The reader can draw their own conclusions and I'll draw mine!

"Anti-competitive business practices (including improper exploitation of customers or exclusion of competitors) in which a dominant firm may engage in order to maintain or increase its position on the market. Competition law prohibits such behaviour, as it damages true competition between firms, exploits consumers, and makes it unnecessary for the dominant undertaking to compete with other firms on the merits. Article 82 of the EC Treaty lists some examples of abuse, namely unfair pricing, restriction of production output and imposing discriminatory or unnecessary terms in dealings with trading partners."

From reading the following very entertaining piece contrasting the US Sharman Act Section 2 versus the EC Treaty Article 82 it does appear that the behavior is fine from a US perspective but within the ECJ's jurisdiction, perhaps more questionable, especially if unnecessary barriers are put in place to prevent the consumer from fairly moving to a new telecomms service provider. Generally if you try to get an Esat-BT a/c moved to a new house without an Eircom line, Esat will ask you to ask Eircom to install a line. Eircom will refuse unless you become an Eircom line-rental customer first. Is this reasonable? Under EU law, as there are arguably numerous other mechanisms for Eircom to charge for the line installation service (Esat or the consumer themselves) it would appear to be an anti-competitive practice. It constitutes behavior which makes the process of using telecommunications services from a provider other than the incumbent more difficult. Hence, it's anti-competitive. That's not what's gotten my goat!

When we offer the FreeSpeech service to customers we have to get an original eircom bill from them in order to transfer the customer from Eircom to an outsourced MCI CPS service. A copy of the bill won't do despite the fact that Eircom can easily check the validity of the bill and also the validity of the appended signature. It appears Eircom don't trust us to look after the customer's best interests which, if you think about it, is very funny indeed.

April 24, 2006

Clever idea from Google

Just reading Planet PHP and learned some interesting info about Google Calendar, which I started using last week. Apparently you can aggregate your calendar with friends/associates using RSS. Now that's a brilliant feature. Using RSS as the event syndication mechanism is really smart. Now I can use my calendar to effectively schedule meetings and can also incorporate that scheduling into the tool of my choice using RSS. With the right applications RSS can be great people management tool.. I'm going to christen this "org casting".

April 30, 2006

Is Alexa a Google-beater?

They may be a bit cagey about their popularity relative to the almighty Google but there's no disputing that Alexa does a damn good job of analysing domain popularity. This is quantitatively different from analysis of link relevance performed by Google. Amazon's search engine is often useful as a mechanism of finding sources of knowledge, opinion or just plain stuff that are unknown to you but have been tried and trusted by others. Google is better at finding the needle in the haystack. The breadth of it's search is great at detecting that one useful link from an ocean of fractured factums.

alexa_logo
I guess the feature that excites (no pun intended) me most about Alexa is their Web Search Platform. Released in December of 2005, this enables developers to roll their own search engines, providing them with programmatic access to over 5 billion indexed pages through a nifty web service API. This is more than just a web API to retrieve basic alexa searches in a standardised form. It's enables the creation of search applications which operate directly on defined subsets of the Alexa search space, consume alexa resources and flexibly publish results. DB programmers can think of it as the coolest stored procedure mechanism in the world today.

May 3, 2006

Key-logging at Infosec

The Reg leads with this. Even if UK-based digital threat analysis group SecureTest is the only organisation that confirmed they were doing the logging, it's still extremely disturbing. Even more disturbing was that unamed security vendors apparently took infected and inappropriately protected PC's to the show leading to a spread of the slammer worm. Not very impressive at all...

July 6, 2006

Geographical trace of emails using Google Maps

Just last week I used this very nifty site to reliably trace a piece of SPAM I had. It's a very interesting application of Google Maps and beta's the kind of self-rolled apps we can expect to be built upon Google's powerful range of APIs and services. Apart from that, it looks very cool indeed :-)

July 7, 2006

Oops, there goes my second life

Is it just me or does the Linden Script Language and Second Life in general remind them of the Oop! company and programming tool in Douglas Coupland's Microserfs book? It's just a thought but having had a look at second life I'm impressed by it's technology and capability but it's still a bit "geeky". Interacting with virtual life objects using an OO scripting language is wonderful in theory but it needs some good UI building tools I suppose. Still, this digital microcosm is hugely successful at the moment with an economy alledgedly worth millions of dollars. Let's not think about the liquidity issues just yet.

Second_Life.png

July 8, 2006

Reg. hack

Excellent article from the Reg about MS's Windows Genuine Advantage programme. A few things mentioned that I wasn't aware of (shame on me). WGA collects a lot more information than you think, uses some questionable identifiers to determine the legitimacy of your system (including the harddrive serial number. Therefore if you need to replace the harddrive in your machine WGA will flag you as a pirate. In summary MS is making it more difficult to update a computer OS that they've sold you in full knowledge that it has KNOWN security issues unless you enroll in a scheme whereby they gather information about your computer that COULD be used to identify you later on. Quel surprise?

September 11, 2006

The 64 Trillion dollar question

Have Steorn actually discovered a way to harness a free, renewable and plentiful energy source which will completely change the world? If it's a hoax, it's one of the most compelling of all time. If their serious and IF (very BIG IF) the technology is feasible it would bring about a fundamental shift in technology and geo-politics. Energy generation from natural resources is such a fundamental part of the balance (or unbalance) of financial power among the World's nations that such a discovery would irrevocably change that. Just think, Enron II could be a network of imaginary companies pulling real world energy from an imaginary void, only kidding. Seriously though, I'm interested to see if this proposed innovation correlates with that other "energy from the void" proposal of a few years ago, Motionless Electromagmetic Generator or MEG. I'm not saying for a minute there's will never be an established scientific basis for this but I'm surprised that no report I've read has mentioned the two ideas in the same breath where there appears to be a clear relationship in terms of the the technology used to realise the generators and its net effect, if you pardon the pun.

Incidentally (perhaps), steorn is an anagram of "no rest".

October 2, 2006

StringTree JSON

Just been having a look at StringTree's JSON light and nimble JSON parser. Sure, it's not validating but it's very light. and ideal for basing a J2ME implementation on. Sure, there's tavon's JSON-J2ME library but that has unfortunate dependencies on J2ME polish which should best be avoided. I've got nothing against polish but a dependency is a dependency and Chris would not be happy. So I'm in the process of adapting StringTree to be a fast'n'lite non-validating JSON parser for j2me mobiles. I'll let you know how I get on.

October 3, 2006

Who writes code like this?

The infamous International Obfuscated C Code winner from 1984. I have a sizeable bet that it's Bjarne Stroustroup, the inventor of C++. However, Brian Kernighan is also a possibility. Send me your thoughts based on coding style etc.
int i;main(){for(;i["] o, world!\n",'/'/'/'));}read(j,i,p){write(j/p+p,i---j,i/i);}
An explanation of the code goes something like this.
int i;main(){for(;i["]i;++i){--i;}"];read('-'-'-',i+++ "hell\
o, world!\n",'/'/'/'));}read(j,i,p){write(j/p+p,i---j ,i/i);}
==== add some whitespace ==========
int i;
main()
{
for (; i["]i;++i){--i;}"]; read('-' - '-', i++ + "hello, world!\n", '/' / '/'));
}

read(j, i, p)
{
write(j / p + p, i-- - j, i / i);
}
===== and char subtraced from itself is 0, and char or pointer divided by itself is 1 =====
int i;
main()
{
for (; i["]i;++i){--i;}"]; read(0, i++ + "hello, world!\n", 1));
}

read(j, i, p)
{
write(j / p + p, i-- - j, 1);
}
======= j is always 0, p is always 1, lets remove them ======
int i;
main()
{
for (; i["]i;++i){--i;}"]; read(i++ + "hello, world!\n"));
}

read(i)
{
write(0 / 1 + 1, i-- - 0, 1);
}
======= 0 / 1 + 1 is 1, subtracting 0 does nothing, decrementing a local variable this is never used afterward also does nothing =======
int i;
main()
{
for (; i["]i;++i){--i;}"]; read(i++ + "hello, world!\n"));
}

read(i)
{
write(1, i, 1);
}
======== replace read(i) with write(1, i, 1) =====
int i;
main()
{
for (; i["]i;++i){--i;}"]; write(1, i++ + "hello, world!\n", 1));
}
====== i[n] can be rewritten *(i + n) or *(n + i) ======
int i;
main()
{
for (; *("]i;++i){--i;}" + i); write(1, "hello, world!\n" + i++, 1));
}
=== as i gets incrimented, we dereference the next char of the string which is always non-zero till we hit the null terminator, all the matters is that the string is the same length as "hello, world!\n" =====
int i;
main()
{
for (; *("hello, world!\n" + i); write(1, "hello, world!\n" + i++, 1));
}
===== so now we can see we incriment i, printing out the next character of hello world till we hit the null terminator ====

With thanks to slashdot and Thomas Scovell (who has it tattooed on his arm)

October 19, 2006

Snake-oil sales increase

Just read a compelling article from Grady Booch about the perils of believing the hyperbole surrounding Service Oriented Architecture. Personally I think SOA is a great idea but I'm struck by how similiar to the OMG's CORBA it is and how, in effect, the real evolution is using a arbitrarily firewall traversing port and protocol for messaging. That semi-solved the messaging problem, delegated the security problem and the rest, as they say, is history... Thinking about Steven Vinoski's comments about a service oriented approach I'm a little dissatisfied. The temptation to want blueprints and cookbooks for all problems is great but there's a large inherent value in having these. Not to mention the peace of mind that comes with applying an industrially accepted architecture to a thorny issue like service meta-data. I'm too jaded to want to roll my own :)

To this end SOA standardisation is being seriously advanced by Steve himself and the other participants in the OpenSOA Collaboration which promises greater standardisation and hopefully industrial acceptance for SOA data layer and service composition technologies. Principally SDO and SCA. The value of service composition and the possibilities for workflow automation are compelling but what as Grady so eloquently puts it, what works so well in the powerpoint sandbox doesn't yet translate to real world software systems.

January 17, 2007

I-want-itis

Every now and again I get a powerful dose of I-Want-Itis. This is when you just HAVE to have something. Previous doses of I-want-itis have lead to some interesting purchases including.

  • A Rock Extreme laptop

  • An Apple titanium PowerBook

  • A Nissan Pathfinder 4x4 (R made me buy it)

  • A Gibson Les Paul custom

  • A BMW 3.2L Z4 (R's fault again :-))

  • an O2 XDA and XDA-IIi

  • A Zenith El Primero watch

  • A Seiko Kinetic Stingray Divers

There's just nothing I can do to stop the bug. The lure of a shiny new toy is too great, sob :( Each of these was a great purchase in it's own right and I don't regret them for a second. Except the last one hasn't worked consistently for the past 4 years. I'm getting so fed up with having a really expensive and beautiful watch that just refuses to work despite ridiculous (500 bucks + ) charges every time I get it serviced. Therefore I'm in the market for a new watch. Something that combines the craftsmanship and rugged charm of my Zenith Rainbow with the durability of a G-Shock Casio. I think I may have the answer. Seiko, a company with a fine engineering heritage, have invented a hybrid mechanical-quartz movement called the Spring Drive. What's that you may ask. Well, it uses an advanced version of the traditional spring powered automatic movement with a quartz-based electronic regulator (driven much like a dynamo on your bike) to electro magnetically controlling the movement of the wheels & levers known as "the escapement". The result is a watch that performs near the accuracy of quartz with a beautifully crafted and decorated mostly mechanical 30-jewel movement. But enough of the technology. What does it look like? Outside Japan, few realise that Seiko manufacture a range of premium quality, mostly hand-built mechanical chronometers called "Grand Seiko". The price of these is comparable with low to mid range Rolex and the performance is on a par with the best Swiss watches AT ANY PRICE.. They also manufacture a professional spec (PROSPEX) divers watch called the MarineMaster. I remember seeing the original 300 MarineMaster (MM) a few years ago. It's very close to the Rolex Submariner in design and in my opinion is of comparable or better quality in every respect. If you don't believe me, find one on ebay. You won't be disappointed. So I guess I got a really bad dose of I-Want-Itis when I saw a cross between the Grand Seiko GMT with Spring Drive and the legendarily tough 300 Marine Master in polished titanium alloy. The result is shown below.
Seiko MM Spring Drive 600M

I love the classic design with the twist of features such as a sawtooth rotating bezel, the GMT hand & allen-key locks for the strap (look closely). The price is a Rolex-like 2700 euro & it's only available from Japan or Hong Kong. I'll try to resist but the smart/dumb money is on me buying one within the next 3 months, DOH!

February 14, 2007

Thought to self

Why is google called Googe today?

March 2, 2007

Good luck Steve

As someone who still has a few shares in IONA and an interest in their future I was very disappointed to learn that Chief Engineer Steve Vinoksi has left. Steve is one of the true mavericks in distributed computing who's contributed insight and direction to Web Service standardisation efforts and the OMG's CORBA standardisation efforts prior to that. I wish him well with his new startup and I hope they're wildly successful in the future.

March 14, 2007

google hacks

Just read a scary blog entry about using google calendar for malicious purposes; even more malicious than hounding unfortunate workers into unwanted meetings :0 LOL Open calendars are a bad idea, it's a bit like parking your car on a busy street and deliberately leaving the doors unlocked. You wouldn't, would you?

April 20, 2007

agility

Been reading Steve Yegge's famous Agile rant again. I agree with pretty much everything in it as I've had a few painful experiences with bad agile. Many of the agile methodologies are highly loose guidelines that come with the disclaimer "use your common sense here". Well here's the thing, when agile pushes a manager into doing something that isn't common sense then why try to be agile? Isn't it just a name ?... Just an evolution of thought process which suggests that a team's performance can be improved if they accept their development will occur in iterations rather than in one monolithic flush :P of the "waterfall". The problem here is that I know (very) few engineers who ever did waterfall as badly as portrayed by the agil-evangelists. I know very few real "cowboy programmers". They just weren't that dumb. So from the kernel of a good idea comes dogma about how to stop evil developers doing the evil things that developers do when they're left alone without a watchdog methodology. The following are required to control those pesky developers.


  • immature tracking tools

  • imposed rules about team and group programming.

  • odd notions about starting development without necessary background research

  • time driven iterations which don't allow for normal human biorhythms

  • dismissive attitudes to the 80% of the time required to get the tricky 20% done

  • dismissive attitudes to detailed analysis regardless of the problem

  • religious fervour & absolute conviction

All of these things are bad agile but it's possible to follow the books and fall into the bad agile trap. Good agile requires affinity with the problem domain and knowledge gaps are often underestimated by managers and hidden by wary engineers. Equally, many engineers cannot work in a 9-5 clock-in & clock-out way.

Now I know that Kent Beck et al. don't intend managers to fall into these traps. It's just that the marketing industry surrounding agile leads them to believe they're getting something for nothing. It's the same kind of thinking that leads to misnomers like Simple Object Access Protocol.

All I know is that in the "accurate tracking" of "agile iterations" I find myself thinking that intuitive understanding of complexity management, delegation, abstraction, team motivation & a whole bunch of things that apply across many industries are what leads a project to success. These skills generally aren't covered in agile courses or books. Indeed it's a wonder that nobody has really improved on Fred Brooks. These qualities exist in the manager and the team members. A truly agile process is whatever works for them & with them.

I also don't think it's just about "hiring smart people" either. This oft trotted-out phrase relates to the practice of hiring the apparently best and brightest grads and appears to the be the mantra of HR in many tech companies including Google & Microsoft. The problem is that it depends on the task at hand. One can have an a priori belief in the mantra and ignore empirical and anecdotal evidence to the contrary. Sustainable success is about "hiring the right people" which are not necessarily those with the highest IQ but those that can work best in a team for the realisation of a common goal.

At any given time someone has to lead, someone has to follow and both have to feel comfortable that the relationship isn't exploitative. The guy leading has to recognise the transience of leadership and the guy following needs to at least have professional empathy for the leader and their shared goal.

May 3, 2007

The case against Steorn

Deliberately misleading title for this post. The truth is that I'm a believer. This must be qualified as I'm not sure they know what they've actually done or the exact/proximate principles upon which it works. It's interesting though that the arguments against Steorn should be looked at dispassionately. Here's the arguments against from Wikipedia.

  1. Instead of opening up their technology for public inspection, Steorn has pitched their claim directly to the media. This is considered by Dr Robert L. Park, a professor of physics at the University of Maryland at College Park, to be an important indicator that a scientific claim lies well outside the bounds of rational scientific discourse.
  2. Steorn's claim violates the first law of thermodynamics. Many ordinary people and established scientists including Leonardo da Vinci have attempted to do this for centuries and failed.
  3. In particular, Steorn claims to violate the law using "a way to construct magnetic fields so that when you travel round the magnetic fields, starting and stopping at the same position, you have gained energy". Magnetism is a conservative force, so it is well established that the energy of motion which one gains when two magnets attract or repel is exactly equal to the energy needed to restore the starting position, no matter how you arrange the magnets.
  4. In view of the fundamental nature of the laws of thermodynamics within physics,
    overwhelming evidence would be required to support Steorn's claim that these laws have been violated. No such evidence has been provided.

1 - Dr. Park's reasoning is sensible but not conclusive in and of itself.
2 - Ignore the DaVinci comments. Most scientists I know realise that his contribution to science is far far below his contributions to art. So let's deal with the first law of thermodynamics. ("The increase in the internal energy of a thermodynamic system is equal to the amount of heat energy added to the system minus the work done by the system on the surroundings.") In an age where there exist many scientific phenomena which are not fully understood can we really consider the first law of thermodynamics to be inviolable? If we do then how do we define "surroundings"? We don't have a GUT, we don't have an independent reference frame so it's all observational. In light of this it's very difficult to say that so-called "energy from the void" theories and apparatus are unworkable as we can only talk about observed energy transfer. Try getting a string theorist to define "surroundings"!... Don't think we've reached our zenith of knowledge yet just like we hadn't in 1905 when classical mechanics was revealed to be inadequate and relativity was born.

3 - It's possible their mechanism to achieve the end result (apparent perpetual motion) is not well explained in their documentation for deliberate or accidental reasons. This is not cold-fusion. According to the company they're repeating the experiment every day. I just don't think these guys are cranks. However, it's important to note that they CAN'T PATENT THIS SYSTEM IN ENTIRETY until they understand roughly how it works. Patents generally can't be granted if they violate physical laws. So I'm guessing they're getting their scientific evaluators to help make their case.

4- Agreed. So let's wait and see.

May 10, 2007

Where's the "Hasta la Vista" ?

R has got a new machine running Vista Pro. The machine is a big improvement on her venerable old laptop and she's delighted that for once she's the one with the fancy new toy as I seem to get one every other week. I'm a geek (see earlier post) so I can't help it.

Now you'll have heard a lot about Vista if you're in any way techie but here's my first impressions.
It looks a lot slicker. The transparent windows do make everything look a lot cooler. For once my PC can favourably compare with a Mac in terms of 80% of the UI. However, I can't help but wonder if this is because 80% of the UI looks so damn Mac-like? It's a thought but I'm not alone here.

It's not all fun & games. The first problem I notice is that having run it on two machines now I've found that it really really needs 2GB of RAM to provide speedy performance. Otherwise you spend too much time looking around at the pretty performance bar (which actually isn't, more on this later). The second is that the UI is genuinely confusing for XP and Win2k users. It's not just R, I got to observe a whole bunch of users trying to come to grips with the new layout. I'd argue it's better but it's certainly different. PC users have essentially gotten a lot of "same" from microsoft in terms of start menu, file menu's, explorer etc. They were all thrown by "different". Now back to the performance bar which is actually a glorified strobing hourglass. A feature I hated on the Mac as I really want a performance bar to tell me how long more I'm going to have to wait for whatever OS trickery is going on to finish.

The third problem is poor UI design in places. Many have written about the shutdown menu including Joel Spolsky & one of it's original authors Moishe Lettvin. It's woeful. Absolutely staggering that a company with Microsoft's resources could produce something so bad and incredible it took 24 people to do it. I don't hold with Joel's opinion that it's due to the ability of new Microsofties. I think it's more to do with a management structure of dense inscrutability. I witnessed R & chums spend at least 15 minutes trying to figure out how to turn the thing off. That was with prompting. It's not the only weakness with UI consistency being a major failing across the board. I reckon this is down to the difficulties in porting OfficeOS to any new version of Windows. Office has become so big, bloated and unwieldy to maintain that updating it's UI to match the new Aero UI engine must have been a nightmare. So much so that it's only half done.

On the plus points, it's more stable, more appealing and easier to manage than previous versions of Windows. If Microsoft's objective was to justify the upgrade then they've definitely succeeded. However, if their objective was to better OS X then they haven't. It's still the more consistent and unobtrusive UI.

July 2, 2007

The Vault

While reading this article on the reg, I had the strange sense that we'd all been here before. In my opinion the real issue is storing documents in unencrypted binary or textual form. Especially, with the popularity of XML-based document formats this is a bit of a nightmare.

If you analyse a system like FreeNet it works by anonymising and encrypting the information contained within the network. Therefore, if I encrypt information on my network such that reliable estimates suggest it will take hundreds of years to crack the encryption (e.g. 2KB asymmetric keys), even allowing for Moore's law then surely the holding party can't really claim to be in "possession" of the information. The are in possession of bits and bytes which have the "potential" to become the information. They have an intermediate form and are therefore less in possession of it than a telephone wire is in possession of a document you send via facsimile.

So one solution is the secure "vault" concept which Gaisan did some work on the distant past. The vault is a remote data store where you and only you can read your information. There are no back-doors or concerns that competitors, authorities or anyone else can read your information. There's no "forgot my password" admin function. Access to the vault is via a dedicated "black-box" which is tamper-proof, EM shielded. Your keys are stored on smart cards and retrieval/decryption of vault information is based on presenting the correct smart card.. Different keys are used at different times and the "box" contains an algorithm to enable information to be retrieved from the "vault". Vault space was "leased" for an appropriate period of time, which could be no more than a few seconds in an "information sharing" scenario. We had a few other ideas which I'd rather not discuss in this freewheeling blog but the overall goal as to enforce storage of anonymous bits with no idea of where they originated from and what they may be.
I'm more convinced than ever that clear-text storage of corporate information on external servers is a big legal problem and should be avoided at all costs.

September 19, 2007

Free conference calling for facebook

Recently noticed that Iotum have released a free conference calling application for the facebook social network. More information can be found here
It's currently only available to facebook users in the US and Canada but the next release will permit International conference calling to members of your social network. Throw in something like Skype Prime and you have the basis for an online consultancy. Network, refer, advise and receive payment all through the same social networking site. Potentially, the future of consulting :)

September 24, 2007

Vista mail client & other woes

I'm currently using Vista on one of my machines. It's not going as well as I'd hoped. Sure, I've bitched on this blog before about the stupid shutdown menu but liked most other features of the OS. However, there are two things that really bug me.


  • The erratic wireless networking

  • The so-bad-its-not-true email client


We've both a vista laptop and a vista pc in Manifesto. We've noticed a range of wireless networking issues. When the vista laptop goes into powersaving mode it sometimes disconnects from the wireless network. It then fails to reconnect. We also had a wireless AP where the DHCP server wasn't compatible with Vista. Try as we might, the machine kept returning from ipconfig /renew with a local address. Very frustrating. It's to do with the BROADCAST flag in the DHCP discovery request. Vista assumes your AP supports it. Well many don't and rather than degrading to a request WITHOUT this flag set in the event it can't get a response it just assigns a local IP. Here's what the Microsoft KB has to say.

While we're on the subject it's also got intermittent connectivity issues. Sometimes you get periodic connection issues. Seriously. It appears to be working, then you have to renew an address or restart and it suddenly stops working. This is down to more Microsoftian brilliance. Vista programmers decided to use an APIPA IP after waiting for only 6 seconds for a DHCP response. It's in the Microsoft KB. This confuses the hell out of some routers.

Many more issues are catalogued here

I'm not sure if there's a fix out for the email stuck in the outbox problem but it's a pain in the butt to sort out. The solution is not for non-technical people and it's amazing how easily this problem occurs. Just by using the software as intended, in fact! Then you're into deleting hidden files and restoring folders. R found this terrifying and I don't blame her. It's difficult to see a broken email client (and it is broken) as progress.
The Windows Mail client is also obsolete with the introduction of live hotmail.

So now that we've moved to Vista I get much more phonecalls from the staff who can't figure out why their spanking new machines aren't working. Needless to say I'm absolutely hacked off that the latest and greatest from Microsoft has basic issues with networking and email. I know the programmers at Microsoft can and WILL do better!

November 6, 2007

Categorically speaking

Ontologies are great. Everyone should have one.
Unfortunately for many semantic web researchers they do.

November 16, 2007

tethereal and diameter

Here's a useful tethereal filter that's helped me out while debugging the Sh diameter interface of Fokus' OpenIMSCore.

# tethereal -i lo -f "port 3868" -V -R "diameter"

I appreciate it's a bit random but tethereal is one of my favourite tools and in Verbose mode it nicely format's all diameter AVP information.

January 28, 2008

to err is human

I thought this reg article on error messages was brilliant. Of course it makes sense that an error message would be required for a screen buffer related exception hence the "blem wit" extract from "There is a problem with the Memory Control Block for the shell". Did windows TSR programmers of that era consider logging to files? You betcha but debugging TSR's was often a nightmare.

My favourite error message for jaw-dropping unhelpfulness is the old win32 error

Error: "The parameter is correct"

February 1, 2008

Stop picking on Microsoft

So everyone is talking about the Yahoo bid. The reg ran an interesting article about the likelihood that the proposed hostile takeover would spend months if not years in anti-trust battles with the EU. The pull the following quote from an unamed "leading UK competition lawyer".

"The obvious initial fear could be that Microsoft would bundle search into Windows. That's something regulators will have to look at. It's possible that Microsoft will make a commitment not to do this before the deal goes ahead in order to head off regulators."

Now, here's the thing. Whatever your thoughts about Microsoft, it's really galling when the EU prevents genuine progress in the name of consumer interest. Seriously, why is search outside the OS? Well, because it's accessible via the web. Why is that? Well, that's where the content is. The OS runs the browser which really acts as a container for visual and "light" execution of web code. As browsers and webdev standards have become more sophisticated this situation hasn't been all that bad. Indeed the proposed next revision of HTML (html5)standardises the inclusion of more traditional fat-client UI capabilities such as 2d graphics and sound/media control into the nice and relatively tidy language for describing web pages. This is generally held to be a good thing. Let's ignore Microsoft's new browser, ACID testing and the whole issue of interop switches. It's reasonable to conclude that the boundaries between web and desktop are blurring. Web execution environments such as Adobe Air also herald a new era of browserless rich web clients.

So while the rest of the industry is progressing in the direction of web apps running seamlessly on the desktop it seems it's a crime for microsoft to include search in the desktop. We've already got GoogleDesktop.. It's already been done guys.. Wake up and smell the burnt coffee.
The real issue here is that Microsoft search competitors like Google (hardly underdogs) make money from advertising revenue that they fear Microsoft would cut off at the source through tighter integration of non-google search with the OS.. I like Google, they've done an amazing job but I don't think that they really need governments and regulators to protect their interests over Microsoft. If MIcrosoft are going to beat Google by incorporating search into windows, they'll have to improve the quality of their search dramatically.

With that in mind it's time to reconsider whether it's really in the consumer's interest to prevent Microsoft from reasonable and justifiable user experience improvements whenever they may hurt their competitors.

February 6, 2008

the phone as an AP

I saw this earlier today and thought it was really cool. I'm off to Mobile World Congress next week to demonstrate some of our work on the IMS-ARCS project. I guess if the tradeshow's internal network should crash I can always turn my N95 into an Access Point. I'm kinda hoping this doesn't happen but it would certainly be enviably geeky :)

March 21, 2008

El Reg kicks Freetard ass

Some of the articles in the reg are good, some are very good and others fall into the category of historic. Andrew Orlowski's thorough bashing of freetardedness is definitely in the historic category. The article is notionally about his experiences at a London School of Economics hosted debate on "Music, fans and online copyright" which according to the author degenerated into a farce. It's certainly believable that such an event would put forward such a one-sided view with little consideration to the rights of artists to profit from their work. It's funny how artistic effort is devalued by so many people when they have to value it. It's something I've experienced first hand but a desire to have free to amazingly cheap access in perpetuity to various art works (especially music tracks) is not particularly reasonable. There's a non-sequitur often purported by the comedy of the commons advocates that suggests that because it's good and enriching to the community to share knowledge (and various other works covered by the term intellectual property) that it's value should always be accessible. Painters are lucky in the sense that owning an original painting by Pollock, Rothko, Van Gogh etc. is not considered an entitlement by the masses. However, owning an "original" from a recording artist (exactly the same inherent "stuff" as the original anyway) is considered an entitlement, something so self-evident that any peskily intruding law should be circumvented to do so. Maybe I'm just biased but I don't think that the great popular (or otherwise) recording artists of their day should be denied royalties because technology makes it easy to rip-off their work.

May 3, 2008

favourite UNIX commands, uniq

One of my favourites is the uniq command. The command enables you to report or omit repeated lines in a file.Here's some switch details from the man page.


-c, --count
prefix lines by the number of occurrences

-d, --repeated
only print duplicate lines

-u, --unique
only print unique lines

So if you wanted to find and sort common lines in two files you could do something like.

# cat file1 file2 ! uniq -d | sort
Quite a few friends have been asked to do something similar in interviews. I always find that a bit funny as it takes a minute to look this stuff up online so it's probably not crucial to know every Unix command off the top of your head. Although there's probably some nerdy bragging rights but with a 96% nerd test score I think I'll pass.

May 12, 2008

100 million on servers

I've been talking to Paul Watson about the reg's article on the Facebook CTO taking an extended holiday. Obviously I wish Adam D'Angelo well and he's done a really cool thing but... 100 million dollars on servers?? WFT???
Have they heard of utility computing? Storage and computational outsourcing deals? These are really useful when you want to variabilise a business cost which is usage dependent. Especially, if you're actually making money from your customers. Not for the first time I can't see where FB are going with this but if all these servers are required for their FB Connect service I hope they have a business model to justify this beyond "get bought".

May 14, 2008

cron, run a script every few hours

I'd never used this option before but I like the way you can get a cron script to run every alternate hour at a particular time e.g. 2:15, 4:15, 6:15...

15 */2 * * * * /home/me/docoolstuff.sh

June 17, 2008

Bye Bye Moto

Is what many Motorola Labs employees will be saying in a few days time thanks to the culling of 150 engineers of the approx 600 total in the R&D division. There will also be 180 reassignments to other divisions. There are pros and cons to this but I don't think it's reasonable to blame one of the most creative R&D departments in the telecoms industry. The reg picks up on the story here. However, the reg misses a trick. The innovation from Moto R&D is often way ahead of the released products but the actual products launched have often been somewhat disapointing. Niggly bugs etc. It wasn't just the late Geoffrey Frost who brought about the RAZR models that arguably saved the company (stay of execution?.The engineering worked with the packaging to produce a quite satisfying phone. The sad thing is that Motorola could have produced the iPhone based on their R&D but they haven't. If Carl Icahn wants to put anything in place at Motorola it should be a longer term view which could yield a sustainable company rather than a vain hope of finding the next RAZR. There's more money and value to be created in the long run from this. Don't give someone a band-aid when they've just cut off their arm.

Of course with the closure/sale/reorg/whatever of the mobile phone division in 2009 it's hard to think long term. It's easy to lay off staff to cut costs. It's easier to close or sell off divisions to cut losses. However, building a successful company that knows and taps its niches requires vision, leadership and a strategy that can be articulated. Steve Jobs gave that to Apple. Motorola should take a good look at the Apple board and consider how the fruit company's management team have consistently delivered over the past few years. Not just great financial performance but innovative and beautiful products. Consistency of software, hardware, design, packaging; functionality and elegance. Which in many ways the RAZR had.

June 19, 2008

annoying piece of software intelligence

I was messing around with CounterPath's Eyebeam client to try and get it to register against an XCAP Servlet I'm hacking up using the org.openxdm libraries.

The servlet was hosted on port 7001 (BEA's Weblogic).
I'd tetherealed the output and noticed that while my command line tests with CURL were working a treat, eyebeam was sending nothing at the friggin XCAPServlet. I found a few posts on the mobicents lists about this issue but no response. Well, for some reason the great folks at counterpath decided that the Mac OSX implementation of Eyebeam should use the web proxy be default. The proxy was duly 404'ing my localhost test. DOH!

The software works but I didn't half feel like a complete muppet :)
Sometimes I wish that programmers would think hard before they introduced any kind of intelligence into a software application.

July 27, 2008

Blind leading the...

The idea that Microsoft organised a so-called "blind taste test" of Vista under the pretence it was for an experimental new OS called Mojave is laughable. HotHardware carries the story here. The idea that a "10 minute live demo" of Vista compared against other OSes indicates that Vista is somehow underrated and misperceived is a bit, well, silly. Vista isn't terrible but it is flawed in its memory demands, security features, performance of its UI, application compatibility, and a few other aspects. There are no perfect OSes and I doubt a Vista upgrade is a terminal condition :-) However, the Mojave experiment is a marketing gimmick rather than a serious attempt to resolve Vista issues. We've seen quite a few of these gimmicks from Microsoft in recent months. These include the Live Search cashback deal and the use of Apple's iPod range as prizes in another LiveSearch promotion in Australia. It's attention grabbing but I'd like to see innovation, engineering and design in the spotlight. It's noticeable that Ballmer is happy to rubbish competitors products (e.g. the MacBook Air) in a way that Bill Gates rarely did. Gates talked up his own products whereas Ballmer is happy to take potshots at others. It's a personality difference but it's not like they're selling beans here. OSes and Search Engines are complex products where the user is buying compatability, usability, performance, functionality, reliability, sophistication etc. These goals rest on great engineering & design, accepting that great marketing helps in spreading the message.

September 5, 2008

Chrome is delicious - well not bad

When Google launched their Chrome browser all those days ago I was wondering when plugins were going to start appearing. Jonathan will testify that I'm plugin obsessed with plugins for delicious, source code inspection, continuous build management and pretty much anything that might be useful. I really wanted Chrome to have delicious support like firefox but then I remembered it supports webkit.

You can go to the delicious bookmarklets page and add the delicious link to the chrome bookmarks bar. It's not as nice as the firefox search interface but, hey, it's a start.

I quite like chrome. It's minimalist and even with the process/tab overhead it performs quite well.

September 6, 2008

Fame

I'm struggling under the weight of my new found fame courtesy of the reg. Yes the witty person (sarcastic git) who responded to the reg's poll to find America's CTO was me.

My email is reproduced below.

"As you don't provide Al Gore as a candidate to reinvent the internet, Siegfried and Roy are the only sensible option. Another alternative is a virtual CTO representing a hive mind of random editors. If only the IETF made RFCs available as anonymous wikis! They SHOULD do this.

Or a reality TV show where each of the candidates has to respond to various IT challenges like formatting a table correctly in Word or improving BGP. It's a serious position so the selection process should be rigorous"

As an email subscriber to numerous IETF mailing lists I think my suggestion may not improve the efficiency of the organisation but it might give implementors who DELIBERATELY misinterpret the specifications for commercial advantage an excuse. They could simply claim "MUST" used to be "MAYBE". Which leads me to mememoir.org which seeks to remove unattributable modifications which pollute the wikisphere. Neat idea. There's an uneasy tension between preserving anonymity to protect well meaning truth promoters from pressure groups (for legal reasons I can't think of any off hand) and protecting commercial puppets who use a public encyclopaedia as a platform for spreading rumours & FUD. (again for legal reasons, examples escape me)

Anyway, I'm off to sign autographs.

September 24, 2008

region-free hack for Yamaha s540

I've a big fan of Yamaha DVD and sound projector equipment. Generally I find Yamaha gear performs as well as much more expensive systems. Most hifi-mags agree. A while back I purchased the Yamaha s540 DVD player as it had some nice features and was supposedly easily hackable to be region free. Well it is but the instructions on many hack sites simply don't cut it, as I found out last night. You need to follow these steps.

  1. Switch on the player
  2. Open the disk tray by pressing stop on the yamaha remote control
  3. Press on-screen which should show the current region setting of the player
  4. Press 99990 on the remote control. Repeat this until your TV shows the player has shown to region 0. (I had to repeat this 5 times before it worked. It took quite a while to figure out I had to repeat the code multiple times :))
  5. Hit enter/ok on the remote. This will close the tray
  6. Open the tray again and insert the DVD you wish to play
I've posted this as it was bloody painful finding this out and it took a few hours of digging to find out entering the code generally requires multiple attempts.

September 29, 2008

Klipsch image x-10s

Today my new pair of headphones finally arrived. Klipsch Image X-10's. I ordered the Klipsch when my etymotic research er6i's failed (for the second time). I also have a pair of Shure e2c's so I've some experience with premium in-ear phones and what to listen for. I remember getting the etymotics first and marvelling at the clarity and of the sound. The sound isolation was very effective with the correct choice of bud to ensure a snug fit. I was a bit disappointed with the intensity of bass and midrange sounds but I could generally get a great sound by playing with the equaliser settings. The er6i's are great headphones for the money. However, they had 2 problems which I found unacceptable in premium headphones. The part of the headphones that sits in your ear is actually quite bulky and heavy. Perhaps it was just me but they would become uncomfortable after a few hours. The second issue is the chord's connection to the transducer in the headphone units. This came loose for me under normal usage. I've had quite a few headphones and they all still work except the etymotics where this problem occurred twice. Still, I appreciate I could have been unlucky and I wouldn't discourage anybody from buying Etymotic products.

So on to the Klipsch phones. Well after a few hours of listening to a variety of tracks from my extensive and eclectic collection I've only good things to say about them. Unlike the Etymotics the default silicone bud fitting was ideal for me so I appreciate this is a stroke of luck more than great design. However, the subtlety and balance of the midrange sounds is superior. The bass feels very natural, especially coming from so small a driver. It is deep and full. The treble is excellent with a fast-ish response that lends itself to listening to acoustic rock, classical and especially jazz.

After 4 hours of listening to them today I can't think of a single ergonomic improvement I'd make. They're svelte and incredibly comfortable. The real test of any of these headphones is do they make you want to listen to rediscover albums from your collection, knowing the phones will bring out new sounds that were previously lost. Well, the answer to this one is obvious.
It's a huge thumbs up for Klipsch. I hope they hold up to everyday use and I'll post an update in another few months.

February 1, 2009

IRMA v Eircom

I can't help but think that the settlement reached in the IRMA v Eircom case is going to be bad for Irish citizens. It's not clear to me why Eircom capitulated but I presume their legal advisors believed a win was unlikely. . Silicon Republic has a piece here regarding the recent "landmark settlment"

The settlement isn't actually a "precedent" as such but it does make it unlikely that other ISP's wouldn't atttempt a defence suggesting they didn't have any responsibility for their customers' actions using their access networks. Pity, it's a bit like holding the roads authority liable for losses arising from bad driving. Maybe that would be a good idea :)

The problem that I have with this settlement is that it's private in both its complete terms and the outline of its implementation. It's unclear how Eircom will implement the suggested 3 strikes policy. I simply don't trust the music companies or any company they subcontract to reliably identify those participating in P2P filesharing activities. Recollections of unscrupulous activities on behalf of the RIAA abound.
Evidence of false accusations arising from a similar activity in the US have already been documented. See el reg for more info. .

So under the recent settlement, as it's been detailed so far, an Eircom ISP customer can be disconnected based on accusations, nothing more. The state is not involved in investigating and verifying these accusations. No coherent case is necessary beyond a computer log provided by DetecNet or whoever is subcontracted to provide this service. Quite frankly, that sucks.

Readers of this blog will notice that I normally come down hard on all forms of "freetardation" or the belief that people should be able to rip off other people's products because it's technically possible to do so. I'm not sorry for the publishers who find themselves as technological dinosaurs struggling to adapt. Their businesses will change. Some will prosper and some will die. Technology will always dramatically change some businesses. It's the artists I feel most sorry for as they should be rewarded for their creative works.

This settlement doesn't really further their rights however. The EU Parliament has already voted against such 3 strikes rules which have been introduced in France. Also described here. The EU parliament reasonably decided that only a judicial process should be able to disconnect someone from the internet. This is reasonable for democratic reasons. Think about the democratic abuse possible when citizens can be disconnected based on unsubstantiated accusations. If it happened in China we'd be agressively pointed fingers.

However, the European Commission, are doing their level best to overturn the amendment which would remove all obligation from ISP's for content filtering and summary disconnection. This, in a nutshell, is why I'm going to vote NO for a second time to Lisbon. The European Parliament undoubtedly has a conscience but the Commission panders to big business, the larger EU countries and isn't too concerned with the idea of separation of powers.

The media publishing companies might be over the moon but we now have a settlement where a disproporationate penalty can be imposed on any individual or business which is accused of engaging in this illegal activity without the oversight of the judiciary. Just because the publishers are sustaining loss doesn't mean they should be able to act unilaterally or suspend the judicial process.

I sincerely hope one of the Irish ISP's decides to fight this case rather than acquiesce.

February 15, 2009

using twitter to tweak the dev process

I've been thinking about an interesting (nuts) social experiment to understand the software development process in your organisation. Software team managers are often surrpised as to how the actual work gets done (or doesn't) in their development team. With 10 plus people on your team it can be extremely difficult to understand the dynamics involved. Who is actually coding? Who has got the great ideas? Who is preempting future problems and who is firefighting current ones. How does a bottleneck get created and what could solve the problem.

As twitter posting is so scriptable I thought it would be cool to create a random project spec which would constitute a two week iteration (including some test time) and hand it over to a dev team. An agile "customer" would be provided to own and clarify the specification on request.

To capture data you could setup some twitter gateways from jabber/xmpp, http proxy, source control and project management tool (trac, mingle, etc.). To provide some privacy you could have some anonymised logins like

The purpose of having a two week project of reasonable complexity is that it would make it difficult for a team member to behave in a completely unnatural way. I.e. they'll need some thinking time. They'll need some respite & chat. But not so much that they'll delay the development schedule (hopefully).

At the end of the iteration the team would review the twittering to try and understand how the software engineering process worked. What worked well? What could be improved?

When I started working as a software developer at the end of the 90s agile was just taking off and the development process felt highly structured. It wasn't of course and many projects suffered from the false security of weighty yet incorrect up-front documentation. I've noticed that as agile has become more prevalent we're trying to move from analysis/design/implementation blobs into every smaller chunks of development time which can be reasonably documented while not unreasonably impeding the development process. Where once documented functional specifications were passed around, now it's many smaller and looser tasks which are collected on web based tools like mingle. Email is still important but more informal instant messaging has become an important part of smoothing the dev process. Collleagues share little nuggets of information or query eachother to clarify issues or solve problems. A big question I have is how informal has it become? Are major design decisions now being made mostly using informal IM and retro-documented? What are the pros/cons of this? Part of understanding this is looking at all design and dev interactions under a microscope.

March 8, 2009

twitter search

I must admit that twitter is actually pretty cool but it's real promise isn't as a microblogging website. twitip (the twitter tip site) has a good article about using twitter as a search engine when you're looking for a response that understands the nuance of your query. Now,admittedly the example described works a bit pat and I've had countless conversations where a person's initial response wasn't so hot or missed the context of my question. However, there's a good point here. When it's in someone's interest to answer your query then they'll probably do a better job, faster, than google. Perhaps google should introduce twitter searching into their search engine. Google search could be improved with a bit of ajaxian push.

About technology

This page contains an archive of all entries posted to Ordo Ab Chao in the technology category. They are listed from oldest to newest.

sport is the previous category.

This Blog is the next category.

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type 3.33