This page is a collection of news feeds from friends of mine and myself. Its not, as the name might imply, a planet of Horms, or for the most part even stuff written by me. For that, please go here.
Nearby Planets:
Planet SLUG,
Planet Linux Australia,
Planet FP-Syd
Subscriptions:
Adrian Chadd
Alan Robertson
Alexander Reeder
Anand Kumria
Andrew Cowie
Andy Fitzsimon
Benno
Chizuko Horman
Chris DiBona
Chris Yeoh
Craige McWhirter
Dave Miller
Dave Ruys
David Luyer
Erik de Castro Lopo
Horms
Hugh Blemmings
James Morris
Jan Schmidt
Jaq
Jeff Waugh
Jeremy Kerr
John Ferlito
Joseph Arruda
Kfish
Mark Greenaway
Martin Pool
Mary Gardiner
Matt Palmer
Nick Jenkins
Ozone
Pete Ryland
Peter Hardy
Peter Nixon
Pia Waugh
Raster
Raz
Real World Haskell
Robert Collins
Roberto Nibali
Roger Barnes
Russell Coker
Rusty
Sam Johnston
Silvia Pfeiffer
Ted T'so
Tong Master
Tractorgen - Commits
Tridge
Wichert Akkerman
fusion94
![]()
Physignathus lesueurii
Hard copies available from redbubble.com
![]()
I have previously written about an error that valgrind reported in the STL when some string operations were performed by the DKIM library [1]. This turned out to be a bug, Jonathan Wakely filed GCC bug report #40518 [2] about it, Jonathan is one of many very skillful people ...
Hard copies available from redbubble.com
Dodgy dealings happen all the time but it's not often you get to see it boiling over into the public arena as we have today. I saw in my newsfeed this morning that GrokLaw had picked up on (Darl, Norris, Bryan Cave Named as Defendants in IP Litigation - The Pelican Brief) a Courthouse News article (Ex-Partner Accused of AIP Trade Secret Theft) about a recently filed complaint by Pelican Equity, LLC against Talos Partners, Darl McBride (of SCO Group fame), Robert V. Brazell (of Overstock.com fame), Stephen L. Norris, Rama Ramachandran and lawfirm Bryan Cave LLP. It claims a conspiracy to "steal AIP's proprietary stock loan product" (EQUITAP™, [which] helps investors achieve their financial goals by structuring non-recourse loans using the securities in their portfolio as collateral) and "virtually API's entire business from API and its founder, Mark Robbins" (Pelican claim to own the relevant rights). It then goes on to explain the whole sorry story of a techie (Robbins) investing four years and apparently all of his money into development of a product, being approached by seasoned businessmen (Brazell & McBride) as potential partners, the subsequent formation of a new business (Talos) and theft of everything from AIP's products to website to employees (Ramachandran) with the help of AIP's own lawyers (Bryan Cave LLP) who ultimately blew the whistle with an "astonishing" conflict of interest waiver. The truly mindblowing part of the whole story though is the Skyline Cowboy site they claim is run by McBride and Brazell: "Finally, in a heinous effort to obliterate AIP's business and deflect their misdeeds [they] have over approximately the last 60 days littered the Internet with scurrilous postings on www.skylinecowboy.com, a website they used primarily for that purpose, and on Yahoo, Twitter and other message boards." If that's true it's like coming back to stab the guy in the carpark after you've robbed him of everything he owns. Not only have they posted a video of the guy's wife being served what they claim is a $109,627 check fraud judgment following a $1,000 bounty as well as a $20,000 reward for arrest and $1,000,000 reward for "full restitution" (save that both appear to be impossible - and likely a result of the claimed highway robbery), but now they've offered $30,000 for the true identity of GrokLaw's Pamela Jones (PJ) who they claim is a "Secret IBM Shill Blogger". Let's not be too quick to forget the relationship to SCO Group and their apparently Microsoft funded attacks on IBM, Novell and Linux in general. Anyway you can see the juicy details for yourself in the filings and if you're a GrokLaw member, the article and associated discussion (the article has since been updated "Now that I've read it, I've made the article Members Only for now." and unfortunately "creation of new accounts has been temporarily disabled"). I have but one question: Who the %!#$ do these cowboys think they are? It's amazing to think that our society routinely jails people for petty theft while leaving [what appear to be] career conmen free to enrich themselves at others' expense. Anyway at least Bernie Madoff got his comeuppance... you've heard my opinion - what's yours?
So I didn’t actually get to vote in the Triple J top 100 of all time. I feel really stupid to have missed it! I was just asked (live on radio) whether I had voted and I stupidly said yes intending to get straight off the phone and onto the voting, but it was closed! So below are my top 10 songs of all time, some for technical reasons, all for emotional. Thought it might be of interest to some
Meme time!
In no particular order:
About finding that person that just completes you, that complements and helps you want to be a better person. A beautiful song and a beautiful voice.
The man has an incredible voice.
There are so many more songs I love, and I’m sure given more time I’d rejig this another dozen times. So I’ll leave it there
Apart from one last honorary mention:
Steve Kemp writes about his concerns for what happens to his data after death [1]. Basically everything will go away when bills stop being paid. If you have hosting on a monthly basis (IE a Xen DomU) then when the bank account used for the bill payment is ...
“hey mate, my phone is gonna*click*..beepbeepbeepbeep….”
- Nick the Bastard. I’ve never had anyone’s phone cut out with such perfect comical timing before.
There's been two more-interesting-than-usual posts over at the Gartner blogs today:
Just a Thought; Will VMware become the next Novell?And here's my response:
"VMware owns the market, well above 90%, and continues to come out with more and more innovative products. VMware has a loyal following of customers who see no reason to change direction – after all, the product works, the vision is sound, and the future is clear. But lurking in the background is this little thing called hyper-V; not as robust, or as tested as VMware, with almost no install base, and certainly not ready for prime time in most peoples minds. However, it will be an integral part of Windows 7, Windows Server 2008 and Windows Server 7 in 2010."
And the second:
Thanks for an insightful post - I definitely think you’re onto something here, and it’s not the first time I’ve said it either.
The thing is that the hypervisor is already commoditised. Worse, it’s free and there are various open source alternatives like Sun’s VirtualBox (which just released another major version yesterday). Then you’ve got Xen, KVM, etc. competing directly as well as physical hardware management tools coming down from above and containers/VPS’s eroding share from below. VMs may be all the rage today but the OS is overhead so there’s cloud platforms to think about too…
VMware’s main advantage is having a serious solution today which it can roll out to the large base of enterprise clients they have developed over the last decade. You can bet they’re busy making hay while the sun’s shining as it won’t be long before people realise they’re not the only show in town.
As you say it’s their market to keep, but I’m sure our enterprise clients will be happy to have a thriving competitive marketplace.
The Cloud Will Save The WorldAnd my response:
"So, how does this all add up to the Cloud saving the world? My (admittedly clumsy) interpretation of Tainter is that as the world grows more complex, the only chance we have to head off the disintegration of modern society under the weight of complexity comes through technological leaps in the form of disruptive innovation. The hype around the Cloud provides some justification for the idea that it is disruptive. Yefim Natis and I (mostly Yefim) developed a research note in June that describes what we see as the Killer App - Application Platform-as-a-Service (APaaS) - on the horizon that will result in accelerated disruption."
I, for one, welcome our new cloud computing overlords... now if only I had a spare $25k to sign up for the 9-week Graduate Student Program at the Singularity University which is "Preparing Humanity For Accelerating Technological Change".
Cloud computing is set to change the world at least as much as the Internet on which it is based did a few decades ago. Things we never would have imagined possible already are, and we’re just getting started.
That said, proponents of the precautionary principle will be fast to ask whether “disruptive innovation” is in fact “destructive innovation” and whether “accelerated disruption” is in fact “accelerated destruction”.
With accelerating change comes a raft of new risks - I for one would rather live in blissful ignorance than be interrupted by the discovery that the Large Hadron Collider was in fact capable of creating creating a black hole.
In order to scratch an itch relating to the Open Cloud Computing Interface (OCCI) I submitted my first Internet-Draft to the IETF this week: Web Categories (draft-johnston-http-category-header).
The idea's fairly simple and largely inspired by the work of others (most notably the original HTTP and Atom authors, and a guy down under who's working on another draft). It defines an intuitive mechanism for web servers to express flexible category information for any resource (including opaque/binary/non-HyperText formats) in the HTTP headers, allowing users to categorise web resources into vocabularies or "schemes" and assign human-friendly "labels" in addition to the computer-friendly "terms".
This approach to taxonomies was lifted directly from (and is thus 100% compatible with) Atom and is another step closer to being able to render individual resources natively over HTTP rather than encoded and wrapped in XML (which gets unwieldly when you're dealing with multi-gigabyte virtual machines, as we are with OCCI).
It's anybody's guess where the document will go from here - it's currently marked "Experimental" but with any luck it will pique the interest of the standards and/or semantic web community and go on to live a long and happy life.
Internet Engineering Task Force S. Johnston
Internet-Draft Australian Online Solutions
Intended status: Experimental July 1, 2009
Expires: January 2, 2010
Web Categories
draft-johnston-http-category-header-00
Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on January 2, 2010.
Copyright Notice
Copyright (c) 2009 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents in effect on the date of
publication of this document (http://trustee.ietf.org/license-info).
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document.
Abstract
This document specifies the Category header-field for HyperText
Transfer Protocol (HTTP), which enables the sending of taxonomy
information in HTTP headers.
Johnston Expires January 2, 2010 [Page 1]
Internet-Draft Abbreviated Title July 2009
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Requirements Language . . . . . . . . . . . . . . . . . . . 3
2. Categories . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. The Category Header Field . . . . . . . . . . . . . . . . . . . 4
3.1. Examples . . . . . . . . . . . . . . . . . . . . . . . . . 4
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5
4.1. Category Header Registration . . . . . . . . . . . . . . . 5
5. Security Considerations . . . . . . . . . . . . . . . . . . . . 5
6. Internationalisation Considerations . . . . . . . . . . . . . . 5
7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6
7.1. Normative References . . . . . . . . . . . . . . . . . . . 6
7.2. Informative References . . . . . . . . . . . . . . . . . . 6
Appendix A. Notes on use with HTML . . . . . . . . . . . . . . . . 7
Appendix B. Notes on use with Atom . . . . . . . . . . . . . . . . 7
Appendix C. Acknowledgements . . . . . . . . . . . . . . . . . . . 8
Appendix D. Document History . . . . . . . . . . . . . . . . . . . 8
Appendix E. Outstanding Issues . . . . . . . . . . . . . . . . . . 8
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 9
Johnston Expires January 2, 2010 [Page 2]
Internet-Draft Abbreviated Title July 2009
1. Introduction
A means of indicating categories for resources on the web has been
defined by Atom [RFC4287]. This document defines a framework for
exposing category information in the same format via HTTP headers.
The atom:category element conveys information about a category
associated with an entry or feed. A given atom:feed or atom:entry
element MAY have zero or more categories which MUST have a "term"
attribute (a string that identifies the category to which the entry
or feed belongs) and MAY also have a scheme attribute (an IRI that
identifies a categorization scheme) and/or a label attribute (a
human-readable label for display in end-user applications).
Similarly a web resource may be associated with zero or more
categories as indicated in the Category header-field(s). These
categories may be divided into separate vocabularies or "schemes"
and/or accompanied with human-friendly labels.
[[ Feedback is welcome on the ietf-http-wg@w3.org mailing list,
although this is NOT a work item of the HTTPBIS WG. ]]
1.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in BCP 14, [RFC2119], as
scoped to those conformance targets.
This document uses the Augmented Backus-Naur Form (ABNF) notation of
[RFC2616], and explicitly includes the following rules from it:
quoted-string, token. Additionally, the following rules are included
from [RFC3986]: URI.
2. Categories
In this specification, a category is a grouping of resources by
'term', from a vocabulary ('scheme') identified by an IRI [RFC3987].
It is comprised of:
o A "term" which is a string that identifies the category to which
the resource belongs.
o A "scheme" which is an IRI that identifies a categorization scheme
(optional).
Johnston Expires January 2, 2010 [Page 3]
Internet-Draft Abbreviated Title July 2009
o An "label" which is a human-readable label for display in end-user
applications (optional).
A category can be viewed as a statement of the form "resource is from
the {term} category of {scheme}, to be displayed as {label}", for
example "'Loewchen' is from the 'dog' category of 'animals', to be
displayed as 'Canine'".
3. The Category Header Field
The Category entity-header provides a means for serialising one or
more categories in HTTP headers. It is semantically equivalent to
the atom:category element in Atom [RFC4287].
Category = "Category" ":" #category-value
category-value = term *( ";" category-param )
category-param = ( ( "scheme" "=" <"> scheme <"> )
| ( "label" "=" quoted-string )
| ( "label*" "=" enc2231-string )
| ( category-extension ) )
category-extension = token [ "=" ( token | quoted-string ) ]
enc2231-string =
term = token
scheme = URI
Each category-value conveys exactly one category but there may be
multiple category-values for each header-field and/or multiple
header-fields per [RFC2616].
Note that schemes are REQUIRED to be absolute URLs in Category
headers, and MUST be quoted if they contain a semicolon (";") or
comma (",") as these characters are used to separate category-params
and category-values respectively.
The "label" parameter is used to label the category such that it can
be used as a human-readable identifier (e.g. a menu entry).
Alternately, the "label*" parameter MAY be used encode this label in
a different character set, and/or contain language information as per
[RFC2231]. When using the enc2231-string syntax, producers MUST NOT
use a charset value other than 'ISO-8859-1' or 'UTF-8'.
3.1. Examples
NOTE: Non-ASCII characters used in prose for examples are encoded
using the format "Backslash-U with Delimiters", defined in Section
5.1 of [RFC5137].
Johnston Expires January 2, 2010 [Page 4]
Internet-Draft Abbreviated Title July 2009
For example:
Category: dog
indicates that the resource is in the "dog" category.
Category: dog; label="Canine"; scheme="http://purl.org/net/animals"
indicates that the resource is in the "dog" category, from the
"http://purl.org/net/animals" scheme, and should be displayed as
"Canine".
The example below shows an instance of the Category header encoding
multiple categories, and also the use of [RFC2231] encoding to
represent both non-ASCII characters and language information.
Category: dog; label="Canine"; scheme="http://purl.org/net/animals",
lowchen; label*=UTF-8'de'L%c3%b6wchen";
scheme="http://purl.org/net/animals/dogs"
Here, the second category has a label encoded in UTF-8, uses the
German language ("de"), and contains the Unicode code point \u'00F6'
("LATIN SMALL LETTER O WITH DIAERESIS").
4. IANA Considerations
4.1. Category Header Registration
This specification adds an entry for "Category" in HTTP to the
Message Header Registry [RFC3864] referring to this document:
Header Field Name: Category
Protocol: http
Status: standard
Author/change controller:
IETF (iesg@ietf.org)
Internet Engineering Task Force
Specification document(s):
[ this document ]
5. Security Considerations
The content of the Category header-field is not secure, private or
integrity-guaranteed, and due caution should be exercised when using
it.
6. Internationalisation Considerations
Category header-fields may be localised depending on the Accept-
Johnston Expires January 2, 2010 [Page 5]
Internet-Draft Abbreviated Title July 2009
Language header-field, as defined in section 14.4 of [RFC2616].
Scheme IRIs in atom:category elements may need to be converted to
URIs in order to express them in serialisations that do not support
IRIs, as defined in section 3.1 of [RFC3987]. This includes the
Category header-field.
7. References
7.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2231] Freed, N. and K. Moore, "MIME Parameter Value and Encoded
Word Extensions: Character Sets, Languages, and
Continuations", RFC 2231, November 1997.
[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.
[RFC3864] Klyne, G., Nottingham, M., and J. Mogul, "Registration
Procedures for Message Header Fields", BCP 90, RFC 3864,
September 2004.
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifier (URI): Generic Syntax", STD 66,
RFC 3986, January 2005.
[RFC3987] Duerst, M. and M. Suignard, "Internationalized Resource
Identifiers (IRIs)", RFC 3987, January 2005.
[RFC4287] Nottingham, M. and R. Sayre, "The Atom Syndication
Format", RFC 4287, December 2005.
[RFC5137] Klensin, J., "ASCII Escaping of Unicode Characters",
RFC 5137, February 2008.
7.2. Informative References
[OCCI] Open Grid Forum (OGF), Edmonds, A., Metsch, T., Johnston,
S., and A. Richardson, "Open Cloud Computing Interface
(OCCI)", .
[RFC2068] Fielding, R., Gettys, J., Mogul, J., Nielsen, H., and T.
Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1",
Johnston Expires January 2, 2010 [Page 6]
Internet-Draft Abbreviated Title July 2009
RFC 2068, January 1997.
[W3C.REC-html401-19991224]
Raggett, D., Hors, A., and I. Jacobs, "HTML 4.01
Specification",
.
[W3C.WD-html5-20090423]
Hyatt, D. and I. Hickson, "HTML 5", April 2009,
.
[draft-nottingham-http-link-header]
Nottingham, M., "Web Linking",
draft-nottingham-http-link-header-05 (work in progress),
April 2009.
[rel-tag-microformat]
Celik, T., Marks, K., and D. Powazek, "rel="tag"
Microformat", .
Appendix A. Notes on use with HTML
In the absence of a dedicated category element in HTML 4
[W3C.REC-html401-19991224] and HTML 5 [W3C.WD-html5-20090423],
category information (including user supllied folksonomy
classifications) MAY be exposed using HTML A and/or LINK elements by
concatenating the scheme and term:
category-link = scheme term
scheme = URI
term = token
These category-links MAY form a resolveable "tag space" in which case
they SHOULD use the "tag" relation-type per [rel-tag-microformat].
Alternatively META elements MAY be used:
o where the "name" attribute is "keywords" and the "content"
attribute is a comma-separated list of term(s)
o where the "http-equiv" attribute is "Category" and the "content"
attribute is a comma-separated list of category-value(s)
Appendix B. Notes on use with Atom
Where the cardinality is known to be one (for example, when
retrieving an individual resource) it MAY be preferable to render the
Johnston Expires January 2, 2010 [Page 7]
Internet-Draft Abbreviated Title July 2009
resource natively over HTTP without Atom structures. In this case
the contents of the atom:content element SHOULD be returned as the
HTTP entity-body and metadata including the type attribute and atom:
category element(s) via HTTP header-field(s).
This approach SHOULD NOT be used where the cardinality is guaranteed
to be one (for example, search results which MAY return one result).
Appendix C. Acknowledgements
The author would like to thank Mark Nottingham for his work on Web
Linking [draft-nottingham-http-link-header] (on which this document
was based) and to the authors of [RFC2068] for specification of the
Link: header-field on which this is based.
The author would like to thank members of the OGF's Open Cloud
Computing Interface [OCCI] working group for their contributions and
others who commented upon, encouraged and gave feedback to this
draft.
Appendix D. Document History
[[ to be removed by the RFC editor should document proceed to
publication as an RFC. ]]
-00
* Initial draft based on draft-nottingham-http-link-header-05
Appendix E. Outstanding Issues
[[ to be removed by the RFC editor should document proceed to
publication as an RFC. ]]
The following issues are oustanding and should be addressed:
1. Is extensibility of Category headers necessary as is the case for
Link: headers? If so, what are the use cases?
2. Is supporting multi-lingual representations of the same
category(s) necessary? If so, what are the risks of doing so?
3. Is a mechanism for maintaining Category header-fields required?
If so, should it use the headers themselves or some other
mechanism?
Johnston Expires January 2, 2010 [Page 8]
Internet-Draft Abbreviated Title July 2009
4. Does this proposal conflict with others in the same space? If
so, is it an improvement on what exists?
Author's Address
Sam Johnston
Australian Online Solutions
GPO Box 296
Sydney, NSW 2001
Email: samj@samj.net
URI: http://samj.net/
Johnston Expires January 2, 2010 [Page 9]![]()
PostgreSQL 8.4 has been released with its usual collection of shiny new features including Window Function support which means that you can now do OLAP with an Open Source database (How nifty is that!) All the other bits and bobs are listed on PostgreSQL 8.4 Feature List
Hard copies available from redbubble.com
It's no secret that "CloudBurst" is one of my least favourite cloud computing buzzwords. Its intended meaning is something like when you run out of room in your own datacenters you can "CloudBurst" into a public service like EC2. Not only is that somewhat the pipedream today (you want an enterprise app to do what?), but it is a significant deviation from the real world meaning of the term which according to Wikipedia is:
A cloudburst is an extreme form of rainfall, sometimes mixed with hail and thunder, which normally lasts no longer than a few minutes but is capable of creating minor flood conditions.Fortunately it seems I may not have to put up with it for much longer because the guys at Ythos (a "Technology and Business Development Consultancy") have gone and registered it with the USPTO (Trademark #77736577).
Almost a year ago I wrote about Google Chrome: Cloud Operating Environment and [re]wrote the Google Chrome Wikipedia article, discussing the ways in which Google was changing the game through new and innovative features. They had improved isolation between sites (which is great for security), improved usability (speed dial, tear off tabs, etc.) and perhaps most importantly for SaaS/Web 2.0 applications, vastly improved the JavaScript engine.
Similar features were quickly adopted by competitors including Opera (which Chrome quickly overtook at ~2%) and Firefox (which still has an order of magnitude more users at ~20-25%). Safari is really making waves too at around 1/3-1/2 of the share of Firefox (~8%) and with the recent release of Safari 4 it's a compelling alternative - especially given it passes the Acid 3 test with flying colours while Firefox 3.5 bombs out at 93/100.
HTML 5 features such as local storage and the video and audio elements are starting to make their way into the new breed of browsers too, though it's still often necessary to install Google Gears to get advanced offline functionality (e.g. most of the Google Apps suite) up and running. Google have drawn fire by missing the Firefox 3.5 launch and users finding Gears disabled are flocking to the gears-users Google Group to vent their frustrations, some going so far as claiming that "Google is trying to do what it can to push users to Chrome" and asking "Are we watching a proccess of Google becoming customer-deaf Microsoft?". Let's just hope it's ready in time for my travel later this week...
The point is that after the brutal browser wars which stagnated the web for some time (right up until Microsoft opened the floodgates by introducing Ajax), we're now starting to see some true competition again. Granted Internet Explorer is still a 1,000 pound gorilla at ~65% of market share, but even with a silk shirt in the form of IE 8 and a handful of lame ads it's still a pig and the target of the vast majority of security exploits on the web. This makes it an an easy sell for any competitor who manages to get a foot in the door (which is unfortunately still the hardest part of the sale).
The decision not to ship IE with Windows 7 in Europe will be interesting as it should draw mainstream attention to the alternatives which will flow on to other markets (as we've seen with adoption of "alternative" technology like Linux in the past - not to mention the whole Netbook craze started by OLPC in the third world). However, with the browser being where most of the action is today the operating system has become little more than a life support system for it - an overly thick interface layer between the browser and the hardware. Surely I'm not the only one who finds it curious that while the software component of a new computer is fast approaching 50% of the cost (up from around 10% a decade ago), the heart of the system (the browser) is both absent from Windows 7 and yet freely available (both in terms of beer and freedom)? Something's gotta give...
Anyway it's time to stop looking at the features and performance of the underlying operating system, rather the security and scalability of the browser. When was the last time you turned to the operating system anyway, except to fix something that went wrong or do some menial housekeeping (like moving or deleting files)?
Over the last couple of weeks I've managed to get three new packages into the Debian NEW queue :
Thanks to Simon Horman for sponsoring/uploading the first two of and Matt Palmer for sponsoring/uploading haskell-json.
On Thursday June 18th we held the 16th meeting of FP-Syd, the Sydney Functional Programming group. The meeting was held at Google's Sydney offices and we had about 25 people attending to hear our two presentations.
This month we tried something a little different, 5 minute lightning talks. We had four lightning presenters :
Interestingly, none of the presenters managed to stay within their allotted 5 minutes but the time limits were not enforced.
Our main speaker of the evening was Eric Willigers who gave us an excellent introduction to the Clojure language, a LISP like language for the Java Virtual Machine. Eric started with the main data structures; lists, vectors, maps and sets, moved on to functions and macros before explaining Clojure's concurrency primitives.
All in all this was another most inspiring and enjoyable meeting. Thanks to all our speakers as well as Shane Stephens and Google for providing the venue.
At the recent Open Video Conference, I was asked to chair a working group on HTML5 and the <video> tag. Since the conference had attracted a large number of open media software developers as well as HTML5 <video> tag developers, it was a great group of people that were on the panel with me: Philip Jagenstedt from Opera, Jan Gerber from Xiph, Viktor Gal from Annodex, Michael Dale from Metavid, and Eric Carlson from Apple. This meant we had three browser vendors and their <video> tag developers present as well as two javascript library developers representing some of the largest content sites that are already using Ogg Theora/Vorbis with the <video> tag, plus myself looking into accessiblity for <video>.
The biggest topic around the <video> tag is of course the question of baseline codec: which codec can and should become the required codec for anyone implementing <video> tag support. Fortunately, this discussion was held during the panel just ahead of ours. Thus, our panel was able to focus on the achievements of the HTML5 video tag and implementations of it, as well as the challenges still ahead.
Unfortunately, the panel was cut short at the conference to only 30 min, so we ended up doing mostly demos of HTML5 video working in different browsers and doing cool things such as working with SVG.
The challenges that we identified and that are still ahead to solve are:
Here are the slides we made for the working group.
Download PDF: Open Video Conference: HML5 and video Panel
This is pretty interesting. The US Air Force have a methodology to deal with online responses like comments. I like it how trolls and “ragers” require HQ be notified
I think it helps people not used to communicating online think about different sorts of negative feedback, and how it is important to engage with some, and possibly not with others. Also the “response considerations” were quite good too to encourage transparency and accountability in online communications.
Click on the image for the larger more readable version.
I told a friend who frequently visits our honours office that I liked the idea of fountain pens, so he loaned me one of his. I've had it for about a week and am now thoroughly converted. Maths students write all day, so some of us are particular about what we write with. And I'm pretty particular in general anyway.
I'm slowly developing expensive tastes.
I've uploaded the slides from essentially all of the talks I've given to Slideshare. This is likely more useful than my previous strategy of dumping them in a directory and leaving the rest up to search engine bots.
Click here for the full list of slides. They are all published under the Creative Commons attribution share-alike license.
One interesting slide title, which I'd forgotten about, is Kernel Security for 2.8, from the 2004 Kernel Summit. This was from when we were still expecting a 2.7 development kernel leading to a 2.8 stable kernel -- I think Linus announced the change in development model at that summit.
Included in this set of slides are several introductory and deeper technical overviews of SELinux; I hope they are useful for people who are looking for information for themselves, or if making their own slides. As the license suggests, please feel free to copy and extend them (but note that the older ones are going to be more out of date).
![]()
I'd forgotten how mentally exhausting research was. And how exhilarating.
![]()

Waterfall Valley to Lake Windermere, Overland Track, Tasmania
Hard copies available from redbubble.com
Going to see films has been, for me, usually a solitary exercise.
Either no one was interested in seeing what I wanted to, my tastes are somewhat elceltic. Or they wanted to see that right at the beginning or right at the end.
Fortunately there are film festivals where other people with eclectic tastes gather. And even more fortuitously there is one in Edinburgh.
Whilst I would have loved to see some films during working hours -- that was not to be. Instead I saw My Last 5 Girlfriends. It stars Brendan Patricks and, judging by the swooning going on in the audience, he is likely to be the Hugh Grant of his time. The story is a cross between Eternal Sunshine of the Spotless Mind and Being John Malkovich in style.
Most of the girlfriend scenes are what you expect them to be: alternatively predictable, funny and often cringe-worthy. That is not because the script is bad, actually it is the opposite. It is due to the fact that everyone has gone through this exact set of problems and issues with girlfriends. If you get the chance, well worth seeing. ★★★★☆0.3
Oscar Redding wrote and stares in Van Dieman's Land. The movie is graphic, haunting and beautifully shot. In particular I liked the fact that there was little "flinching".
If the guys had to cross the river, the camera was setup and the guys crossed. Buttocks and all.
If the guys had to hit someone, and they were still not dead. You hit them again. And again.
If you want 'popcorn' entertainment, this isn't for you. Why isn't this a 5? Basically — even though I was unaware of the original historical story — I felt that the ending of the film was telegraphed too early. ★★★★☆0.3
I mean, SLUGs...
Paul Wayper gave a couple of talks on SELinux at this weeks' SLUG meeting, and includes links to a couple of very useful slide decks:
We’ve been tracking our electricity usage for a few weeks now and have a web page of graphs which make it easier to work out when we’re using a lot of electricity.

Last 24 hours power usage
I have a perl script running on one machine which reads the CurrentCost data from a serial port and publishes the temperature and instantaneous power consumption into an MQTT microbroker. On the webserver machine another perl script is subscribed to the temperature and power consumption topics and uses rrdtool to record the data and create not so pretty graphs.
I also wanted to be able to keep an eye on the current power usage so I put together a little gnome applet that connects to an MQTT server and subscribes to a single topic. You can run multiple applets connecting to different brokers or subscribing to different topics. Conceptually data moves from the current cost around the system like this:

One of the big advantages of using the broker is it neatly abstracts the data producers like the CurrentCost or a temperature sensor connected via an arduino from the consumers that process, record and render the data. Its easy to slip in additional sensors or replace existing ones with something which is quite different without having to make any changes on the processing and user interface side. When our new house gets built and we have a C-Bus system controlling the electrical system, state information from it will be added to the broker so it can be monitored easily.
I’ve never written a gnome applet before nor even done much gtk programming before so its still a bit rough around the edges. But it currently looks like this on a panel:
Temperature and Power Usage

Preferences dialog

Tooltip with status information
![]()
Six weeks ago, on a fatal Saturday, both my washing machine and cute little Mario died in one day. The washing machine was quickly repaired, but there was no hope for Mario, as the burnt smell of electronics indicated. It wasn’t going to start up again.
Mario had been the first server to run the code developed at Vquence. It was our development and testing server for more than 8 months until we moved to a server at The Planet – later to Voxel and now ultimately to Amazon.
After it was relieved off Vquence duty, Mario became what it was originally bought to become: a media server. Running Linux and MythTV, it was the beloved center of our living room for the last 2 years. But it seems the heavy duty VCR work as well as running Linux exhausted him.
Well, it is now replaced by an ordinary HP machine – I will miss the cute little shuttle.
If anyone wants the remains, let me know.
Hard copies available from redbubble.com
I've just filed Debian bug report #534534 about Valgrind/Helgrind reporting "Possible data race during write" [1]. I included a patch that seems to fix that problem (by checking whether a variable is not zero before setting it to zero). But on further testing with Valgrind 3.4.1 (backported from ...
This is an open letter to the CAcert.org board and membership (including my fellow 20-30 official "Association Members" (copied) as well as the 150,000 or so account holders we effectively represent) concerning recent events that could affect the ongoing viability of the organisation. Bearing in mind that this is an organisation built on trust, I implore you to follow my example in exercising extreme caution when we are called to necessarily intervene in resolving the deadlock. Despite claims to the contrary there is no urgency and the last thing we need now is an Iran style election (whether or not legitimate, perception is everything).
The Problem
It appears (from my perspective as an outsider, albeit with the benefit of various insider accounts) that the board has split into two factions. On one hand we have the "old school" who have been on the board for a while (some would say too long) and the other "reformist(s)" who seek change, yesterday. They are now on a crash course that will invariably result in the loss of committed contributors, or worse, loss of trust from the community. In any case a confrontation poses a serious risk to the organisation's future, and with it the community's access to an alernative to commercial certification authorities.
In requesting and receiving the official member list as well as proposing a number of new members (who are presumably sympathetic to their position and will vote for any motion they submit) it was already clear that plans were afoot for a "coup d'état". Now that an SGM has been proposed to "get this over with" complete with a clear agenda there is absolutely no doubt about it:
Increasing the number of members, will increase the stability of your organization. It is more difficult to try a Coup d'Etat or a revolution when you have to convince 200 voting members than 20. On the other hand, major changes will be slower for the same reason.Any structure with a broad base is far more stable than the top heavy structure we have today (the subversion of which requires a mere THREE new members to be proposed at SGM!).
The W3C has published a third last call for the draft specification of DFXP, the Distribution Format Exchange Profile for the Timed Text Authoring Format – or short: for their new standard format for captions. Comments are due by the 30th June, so rush if you want to give any feedback. Here is what came to my mind as I was reading the 183 pages long document.
Please note: This review looks at DFXP from a Web view, i.e. how compatible is it with existing Web technologies, since my main use case will be on the Web, even if advocates will say that that’s not it’s main purpose, strangely enough, for a standard coming out of the W3C.
The state of affairs with caption formats
When it comes to caption and subtitles, there is no lack of formats. It seems, because it is an easy challenge to define a data format for something as simple as a piece of text and some timing information, every new project that wanted to deal with captions – or more generally timed text – created their own format. I am no exception to the rule.
Thus, the current state of affairs wrt timed text is that there are many different textual file formats to store such data, there are also many different video container formats each with their own data format (or even formats) for embedding timed text into them, and there is a lot of software that will deal with many input, output and encapsulation formats.
The problem with this situation is that the formats are all different in their complexity. The simple “piece of text and timing information” problem can be turned into as complex a problem as you desire. By adding layout information, styling information, animation functionality, metadata about the video and about the content, and possibly hyperlinks, we have ended up in a large mess of incompatible formats.
The aim of W3C Timed Text
The W3C Timed Text working group was chartered in January 2003 to attack this issue. It was supposed to become the super-format of all possible functionalities for timed text formats and therefore a perfect interchange format between applications (see requirements document). Its focus was for use on the Web and with SMIL and to make use of existing W3C technologies where possible
However, the history of captioning is TV and the scope of Timed Text is beyond mere use on the Web, so while W3C Timed Text took a lot of inspiration from other Web standards, it has become a stand-alone standard that does not rely on, e.g. the availability of a CSS engine, and it has no in-built hyperlinking functionality (see what requirements it fulfills).
Dissecting DFXP
So. let’s look into some of what DFXP provides.
Here is an example file taken straight from the draft – check the presentation here:
<tt xml:lang="" xmlns="http://www.w3.org/2006/10/ttaf1">
<head>
<metadata xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
<ttm:title>Timed Text DFXP Example</ttm:title>
<ttm:copyright>The Authors (c) 2006</ttm:copyright>
</metadata>
<styling xmlns:tts="http://www.w3.org/2006/10/ttaf1#styling">
<!-- s1 specifies default color, font, and text alignment -->
<style xml:id="s1"
tts:color="white"
tts:fontFamily="proportionalSansSerif"
tts:fontSize="22px"
tts:textAlign="center" />
<!-- alternative using yellow text but otherwise the same as style s1 -->
<style xml:id="s2" style="s1" tts:color="yellow"/>
<!-- a style based on s1 but justified to the right -->
<style xml:id="s1Right" style="s1" tts:textAlign="end" />
<!-- a style based on s2 but justified to the left -->
<style xml:id="s2Left" style="s2" tts:textAlign="start" />
</styling>
<layout xmlns:tts="http://www.w3.org/2006/10/ttaf1#styling">
<region xml:id="subtitleArea"
style="s1"
tts:extent="560px 62px"
tts:padding="5px 3px"
tts:backgroundColor="black"
tts:displayAlign="after" />
</layout>
</head>
<body region="subtitleArea">
<div>
<p xml:id="subtitle1" begin="0.76s" end="3.45s">
It seems a paradox, does it not,
</p>
<p xml:id="subtitle2" begin="5.0s" end="10.0s">
that the image formed on<br/>
the Retina should be inverted?
</p>
<p xml:id="subtitle3" begin="10.0s" end="16.0s" style="s2">
It is puzzling, why is it<br/>
we do not see things upside-down?
</p>
<p xml:id="subtitle4" begin="17.2s" end="23.0s">
You have never heard the Theory,<br/>
then, that the Brain also is inverted?
</p>
<p xml:id="subtitle5" begin="23.0s" end="27.0s" style="s2">
No indeed! What a beautiful fact!
</p>
<p xml:id="subtitle6a" begin="28.0s" end="34.6s" style="s2Left">
But how is it proved?
</p>
<p xml:id="subtitle6b" begin="28.0s" end="34.6s" style="s1Right">
Thus: what we call
</p>
<p xml:id="subtitle7" begin="34.6s" end="45.0s" style="s1Right">
the vertex of the Brain<br/>
is really its base
</p>
<p xml:id="subtitle8" begin="45.0s" end="52.0s" style="s1Right">
and what we call its base<br/>
is really its vertex,
</p>
<p xml:id="subtitle9a" begin="53.5s" end="58.7s">
it is simply a question of nomenclature.
</p>
<p xml:id="subtitle9b" begin="53.5s" end="58.7s" style="s2">
How truly delightful!
</p>
</div>
</body>
</tt>
I’m going to look at each of the different functionalities separately and discuss their strengths and weaknesses.
Content
Let’s begin with the body of the DFXP document and what elements are defined for this area.
Firstly, <body> comes with optional begin, end, and dur attributes. As is the case for all time specifications in DFXP, there are both “end” and “dur” attributes. Why this over-specification? There is not even an explanation which of the two has higher priority when in conflict. This is plainly asking for trouble – why not simplify the spec?
The “region” and “style” attributes refer to a previously defined region and styles that are applied to the body. “id” and “lang” attributes allow to associate a name and a language with the body.
The “timeContainer” attribute enables the author to specify whether the elements in the body are all to be regarded as temporally parallel or in sequence, the default being parallel. This means that all text elements specified inside the body can render over the top of each other – a situation that is solved by giving them specific start and end times.
The containing elements of body are a sequence of <div> tags. The div element functions as a logical container and a temporal structuring element for a sequence of textual content units. div elements like body elements are allowed a “start”, “end” and “dur” attribute and generally everything that the body element also has, except that their children can be more div or p. Again, the children of the div element are all regarded as being temporally parallel.
The p element is basically the inner-most element that contains the actual text, including new-lines (br) and spans to associate further styling, metadata, or animations. The children of the p or span element are also all regarded as being temporally parallel, unless otherwise specified.
The structuring of text into div, p, and span elements seems to make sense and provide sufficient (if not even excessive) flexibility for any required timed text needs.
Layout
Once the text is specified and structured, the next question is where it should be positioned.
The extent attribute of the <tt> root element specifies the width and height of the root container, if not specified by the external authoring context.
Inside the root container, regions are defined through explicit <region> elements. The origin of placement for a region is the top left corner. Regions can define their “origin” offset, their “width” and “height”, the alignment of text within them through the “textAlign” and “displayAlign” styles, and whether text that “overflows” a region should be visible or hidden.
The way in which DFXP defines regions and placement of text within regions is very different to the way in which HTML and CSS work. By default, elements in HTML flow one after another in the same order as they appear in the source. CSS attributes applied to the elements can control their positioning through giving coordinates, or relative placements in relation to other elements. In DFXP elements are placed inside regions that are styled, making it incompatible with HTML.
Styling
The styling attributes available for DFXP are limited, but sufficient for timed text purposes. The way in which style associations to elements are resolved is quite diverse. Styles can be associated with regions, with individual elements, individually and as a group, through layouts and through parent elements. Compared to CSS, it feels complicated and potentially full of contradictions.
Animation
Further to styling, DFXP defines animations, which are discrete changes to some style parameter value that applies over some time interval. This is relevant for example to implement karaoke style colouring of text over time.
Metadata
The <metadata> element serves as a generic container for grouping metadata information. It can be associated virtually with any element – which seems somewhat over-flexible, but provides for interesting meta data information such as meta data for styles or for a <br>.
In addition, metadata is actually limited to a set number of elements: title, desc, copyright, agent, name, and actor. These are strange fields – in particular if you compare them to the flexibility of HTML meta data, which consists of free-form name-value pairs, bringing us domain-specific schemes such as the Dublin Core. This is not easily possible here, but instead one has to define extensions to allow for such flexible meta data.
Other features
DFXP provides other features such as information that describes the related video file, e.g. frameRate, subFrameRate, frameRateMultiplier, pixelAspectRatio, smpteMode, timeBase, and tickRate. Such information will help at the point in time when DFXP is supposed to be multiplexed into a binary media file together with audio and video tracks. These attributes can provide information required for the multiplexing process. I am not sure that justifies their existence though.
Other, minor features are available too. Check out the full specification to get a complete picture.
Examples
Part of the publication of this draft is also a test suite. Several of the defined features are still not represented in the test suite, which to me raises the question if they are really required. It might do wonders to the draft size to remove them.
Summary
DFXP is a standard for timed text that is firmly grounded in past captioning specifications, but written in XML, and borrowing ideas from Web technologies. It is unfortunately not re-using existing Web infrastructure to implement its more complex features: no use of CSS for styling and layout, no use of hyperlinks. Also, the use of namespaces seems excessive and won’t make it easy to author this format, in particular since the defined namespaces do not map into the defined profiles.
DFXP is, however, simple to transcode to something that a Web Browser can deal with through its existing engines, because it has borrowed from other Web standards. It is thus easier to work with on the Web than most other formats. It should be relatively easy to map to HTML, CSS and javascript, as already started in the test suite with the HTML5 video element.
DFXP is witten in such a way that it is possible to put together a new profile with extensions that are more appropriate for specific needs, e.g. that fit better into existing Web infrastructure. Currently, DFXP has three defined profiles: one focused on transformation, one focused on presentation, and one that contains everything.
I think it’s time for a html5 profile of DFXP that at minimum extends DFXP with hyperlinks, making it a real timed text Web format.
![]()
![]()
Hard copies available from redbubble.com
Thinking about all the things right and wrong in this whole concept of the "United States of America"[1], one thing that I keep coming back to is this notion of "bearing arms.." ".. as part of a well regulated militia."
Is there actually any example(s) of well-regulated militias in the United States of America which aren't championed by crazies? Does it attract crazies like management attracts sociopaths? Ie, is the very nature of being involved in a militia today, considering the lack of real, tangible short-term threats to the day to day lives of citizens (contrast to say, people in "militias" throwing everything they can against the influx of illegal immigrants from Mexico) only keeping people who are slightly .. uhm, crazy?
In the same way that say, open source projects attract and keep certain classes of people[2] ?
Etc, etc.
Discuss.
[1] - Just for the record, the more I read about what was attempted, the more I find myself identifying with a lot of the ideals that seem to be related to the political writings of that era. Anyway..
[2] - Eg, Adrian Chadd and all of the damned doomed open source projects I seem to be attracted to. Like Squid.
Here's an update on the major changes to the kernel security subsystem for the 2.6.30 kernel.
init->httpd->perl may not be permitted for init->httpd->bash. Sample policy may be found here.compat_net option for the likely few people who were using them. The old code has now been removed entirely, and users should transition to Secmark: Paul Moore has written a detailed guide for this.![]()
Well ... not anymore
Hard copies available from redbubble.com
![]()
Experimenting with a light box
Hard copies available from redbubble.com
After a delightful trip to Italy I'm back in NYC.
I'm working through the Italy photos now, but first here are snaps from my return home to Tokyo.
Ithai and Rebeca in Tokyo
A trip to Izu
Everyday Tokyo
-- Wed, 24 Jun 2009 16:10 -0400
I have just attended a Microsoft Open Source Information Evening. It was in some ways one of the stranger things that I have experienced in my computer career. Firstly there was the location, it was in a function room in the CBD, it was convenient for public transport and had ...
[edit: a home has been found]
Free to good home, one Intel 510T 22 port switch. (There are a couple of dead ports but its otherwise fine - no glitches or anything).
I've just replaced my home ethernet switch - I was using 5 ports, and most of my wired machines have gigabit now. Yay.
So, if you need a 22 port network switch, let me know. If I don't hear from anyone, it'll go into next months local recycling pickup.
This will be a 'come pick it up' arrangement, unless you're going to be at the same place I am for some other event - in Sydney, if thats not obvious.

For the past few hours I've been going a build of the GCC packages on a dual-core Opteron system with 2.5G of RAM and a pair of reasonably fast SATA disks in a RAID-1 array. The machine is reasonably powerful so presumably such a build would take a significantly ...
I'm starting to work seriously on my thesis finally. I couldn't really start before because I was overloading, and I really needed some functional analysis before I could get started.
My thesis is mostly about studying solutions to the heat equation that can be formulated as expectations of functions of brownian motion. The heat equation with a particular initial condition can be viewed as a linear differential operator, and so is a prime candidate for some functional analysis.
Differential operators are unbounded. All of the theory we covered in functional analysis was to do with bounded operators, and so I have to pick up all the theory of unbounded linear operators on my own. It turns out to be pretty complicated! The unbounded operators we're interested in are closed, which is almost as good as being continuous, and they are defined on a dense subset of the Hilbert space we're interested in.
I was worried things would get "interesting" if you tried to compose two operators defined on different dense subsets, but then I remembered Baire's Theorem, which states that arbitrary intersections of dense sets are again dense, so you've lost nothing. You should still get a ring of operators, which is pretty neat :)
[ Edit: There were some fairly major errors in this post. Fixed now. ]
Just a reminder for SELinux developers and anyone interested in the internals of SELinux that the SELinux Developer Summit CfP closes on July 1st, which is about a week away.


![]()
Hard copies available from redbubble.com
![]()
Hard copies available from redbubble.com
Few of us will dispute that:
The Internet is a global network of networksSo it logically follows that:
The Intercloud is a global cloud of clouds
Although vendors talk as though there is only one Internet cloud each vendor will be running its own set of data centres that customers can use to access Internet-based information and resources which may complicate matters
This shameless plug is brought to you by Caffeine, nature's metabolic enhancer.
A friend of mine has been working on a search engine to run through various IT job lists and link candidates to jobs. It cutely lets you cut/paste in a text resume for it to search on.
The site is here - http://www.oztechninja.com/ - and yes, in Google-esque tradition it is in beta. He would absolutely appreciate any and all feedback from people. Especially feedback relating to how relevant the search results are.
I am trying to track down a thread-safety problem in one of my programs. Valgrind when run as "valgrind --tool=helgrind ./thread-test" claims that there is a problem with the following program (the Valgrind errors are at the end of the post). The SGI documents state [1]: "The SGI ...
![]()
Balmoral beach in the background
Hard copies available from redbubble.com
In the year 2000, while working at CSIRO as a research scientist, I had the idea that video (and audio) should be hyperlinked content on the Web just like any Web page. Conrad Parker and I developed the vision of a “Continuous Media Web” and called the technology that was necessary to develop “Annodex” for “annotated and indexed media”.
Not many people now know that this was really the beginning of Ogg on the Web. Until then, Ogg Vorbis and the emerging Ogg Theora were only targeted at desktop applications in competition to MP3 and MPEG-2.
Within a few years, we developed the specifications for a markup language for video called CMML that would provide the annotations, anchor points, and hyperlinks for video to make it possible to search and index video, hyperlink into video section, and hyperlink out of video sections.
We further developed the specification of temporal URIs to actually address to temporal offsets or segments in video.
And finally, we developed extensions to the Xiph Ogg framework to allow it to carry CMML, and more generally multi-track codecs. The resulting files were originally called “Annodex files”, but through increasing collaboration with Xiph, the specifications were simplified and included natively into Ogg and are now known as “Ogg Skeleton”.
Apart from specifications, we also developed lots of software to make the vision actually come true. Conrad, in particular, developed many libraries that helped develop software on top of the raw Xiph codecs, which include liboggz and libfishsound. Libraries were developed to deal with CMML and with embedding CMML into Ogg. Apache modules were developed to deal with segmenting sections from Ogg files and deliver them as a reply to a temporal URI request. And finally we actually developed a Firefox extension that would allow us to display the Ogg Theora/Vorbis videos inside a Web Browser.
Over time, a lot more sofware was developed, amongst them: php, perl and python bindings for Annodex, DirectShow filters to have Ogg Theora/Vorbis support on Windows, an ActiveX control for Windows, an authoring tool for CMML on Windows, Ogg format validation software, mobile phone support for Ogg Theora/Vorbis, and a video wiki for CMML and Ogg Theora called cmmlwiki. Several students and Annodex team members at CSIRO helped develop these, including Andre Pang (who now works for Pixar), Zen Kavanagh (who now works for Microsoft), and Colin Ward (who now works for Symbian). Most of the software was released as open source software by CSIRO and is available now either in the Annodex repository or the Xiph repositories.
Annodex technology became increasingly part of Xiph technology as team members also became increasingly part of the Xiph community, such as by now it’s rather difficult to separate out the Annodex people from the Xiph people.
Over time, other projects picked up on the Annodex technology. The first were in fact ethnographic researchers, who wanted their audio-visual ethnographic recordings usable in deeply. Also, other multimedia scientists experimented with Annodex. The first actual content site to publish a large collection of Ogg Theora video with annotations was OpenRoadTrip by Scott Shawcroft and Brandon Hines in 2006. Soon after, Michael Dale and Aphid from Metavid started really using the Annodex set of technologies and contributing to harden the technology. Michael was also a big advocate for helping Wikimedia and Archive.org move to using Ogg Theora.
By 2006, the team at CSIRO decided that it was necessary to develop a simple, cross-platform Ogg decoding and playback library that would allow easy development of applications that need deep control of Ogg audio and video content. Shane Stephens was the key developer of that. By the time that Chris Double from Firefox picked up liboggplay to include Ogg support into Firefox natively, CSIRO had stopped working on Annodex, Shane had left the project to work for Google on Wave, and we eventually found Viktor Gal as the new maintainer for liboggplay. We also found Cristian Adam as the new maintainer for the DirectShow filters (oggcodecs).
Now that the basic Ogg Theora/Vorbis support for the HTML5 <video> element is starting to be available in all major browsers (well, as soon as an ActiveX control is implemented for IE), we can finally move on to develop the bigger vision. This is why I am an invited expert on the W3C media fragments working group and why I am working with Mozilla on sorting out accessibility for <video>. Accessibility is an inherent part of making video searchable. So, if we can find a way to extend the annotations with hyperlinks, we will also be able to build Webs of videos and completely new experiences on the Web. Think about mashing up simply by creating a list of URLs. Think about tweeting video segments. Think about threaded video email discussions (Shane should totally include that into Google Wave!). And think about all the awesome applications that come to your mind that I haven’t even thought about yet!
I spent this week at the Open Video Conference in New York and was amazed about the 800 and more people that understand the value of open video and the need for open video technologies to allow free innovation and sharing. I can feel that the ball has got rolling – the vision developed almost 10 years ago is starting to take shape. Sometimes, in very very rare moments, you can feel that history has just been made. The Open Video Conference was exactly one such point in time. Things have changed. Forever. For the better. I am stunned.
Today's random question: what effects do the current biological and sociological environments have on the pre-natal and post-natal development of children; and in the context of this, what effects would some of these environments (eg growing levels of obesity) have on a population over time?
Hm, how would one design a study, or a meta-study, to try and disprove this?
The seed of this was wondering what kinds of local environment adaptations get passed to the pre/post-natal infant as there's been some studies showing that there -is- some of this going on - eg http://ajpregu.physiology.org/cgi/content/abstract/285/1/R271 .
I was 153lb this morning.
We went to La Fondue tonight.
I'm 160lb right now.
So worth it.
:-)
Separating Fact From Fiction: An Examination of Deceptive Self-Presentation in Online Dating Profiles is a really interesting paper by Catalina L. Toma and Jeffrey Hancock of Cornell University and Nicole Ellison Michigan State University [1]. People who don't use the Internet much regard online dating as an area that ...
What is it with pc vendors that they make selecting machines by fairly useless things like model number (e.g. shuttle), or a hacky fugly hierarchy (e.g. auspcmarket) easy, but by attributes (e.g. '2 ethernet ports, no fans, small chassis') terribly hard.
They should take a leaf out of the way people ask each other for recommendations. auspcmarket /kindof/ does that with the systems hierarchy - but only for a few categories.
What I want I guess, is a menu of tags/attributes I can search for on a vendors site (and/or review sites like CNet's and, google shopping and so on). Doing a google shopping search for my interesting attributes above is a pretty epic fail.
![]()

Looking Glass Bay, Gladesville
Hard copies available from redbubble.com
When discussing career advice one idea that occasionally comes up is that someone should be "well rounded" and should demonstrate this by listing skills that are entirely unrelated to the job in question. Something along the lines of "I'm applying for your C programmer position, and I like spending ...
![]()
Hard copies available from redbubble.com
KickStarter.com is an interesting new service that allows creative people to solicit funding to start new enterprises [1]. Note that it is not for investing in projects, sponsors give the money and the result is that the work gets done. Unfortunately it only allows people with US bank ...
![]()
Hard copies available from redbubble.com
Diane Benscoter gave an interesting TED interview and a slightly less interesting TED lecture about her experiences with the Moonies [1]. She describes how she was a victim of the cult for five years, and then after being deprogrammed she spent five years working as a deprogrammer [2]. In her ...
As ever, his language is a little colourful and his moral outrage set a little too high[1], but Monbiot offers an interesting analysis of the extraordinary stability of British economy and society during centuries of wrenching change worldwide and declining productivity within Britain.
It has seemed to me for a while that Britain is deeply dependent [...]
![]()

Waterfall Valley to Lake Windermere, Overland Track, Tasmania
Hard copies available from redbubble.com
I don't intend to write much about my just announced pregnancy over on the thoughts/geeky side of my weblog, but there are a couple of geek implications, assuming all goes well:
I'll not be especially available for additional volunteer tasks in 2009, since I will be trying to finish my PhD work with a small human trapped in my abdomen.
For Andrew's other 2009 and 2010 availability check with him, I can't see that I'll be volunteering to travel before at least April 2010 and that might depend on someone donating a nanny to accompany me.
I am cut about lca2010, especially considering the effort I'm sinking into it. I really hoped that wouldn't happen, but it's turned out to have the worst possible timing. If a generous donor offers to fly, say, 20 of the speakers to Sydney afterwards and re-stage the conference for the sole benefit of me, I will not say no.
Edited version of a private email I sent about linux.conf.au 2010 preparation, but not conference-specific. The email discussion led to me enumerating the kind of talks that I think you can give about technical subjects at a linux-conf.au-style (non-academic developer-oriented) conference.
In this kind of talk, the speaker walks the audience through, say, the architecture of a project. The talk contents are dictated by the architecture. Five minutes on the input module, five minutes on preprocessing, five minutes on transforming into a new set of matrix bases, five minutes on postprocessing, five minutes on sanity checking, five minutes on rendering.
This is the most obvious structure for a technical talk. It's also the driest structure. It is useful mostly for audience members who want to work on or with the project code, which is for most talks a small fraction of the audience. It best suits very major projects with years of cruft in their architecture and a wide potential userbase.
In this kind of talk, the speaker usually talks about a project he or she
personally undertook and structures it as a battle against the odds. So of
course Y is the most obvious solution, although not trivial. So I tried Y for a
couple of months. And then it turns out that the X protocol absolutely makes Y
impossible for these reasons [dramatic pause] and at this point any normal
human being would have given up, but I retired to a monastery for six months
and returned refreshed and a lotus blossom I saw on my return inspired me to
try Q...
This is probably the most effective structure for a technical talk and it's
surprisingly widely applicable (you can frame a lot of things in terms of
here's the current problem, here's what you think the obvious solution is,
here's what happened when I tried it
). The biggest limitation is that it's
very hard to do it about work you didn't do yourself so it's not available to
all speakers. And you can misjudge it: so of course I tried Y
says the
speaker uh, Y is obviously dumb, why didn't you go straight to Q?
asks
the audience (at some conferences, they might well ask it out loud,
repeatedly). It doesn't work for speakers who don't have expertise (at least
narrowly on this one topic) over that the audience has.
In this talk, the speaker proposes a task which sounds too formidable to complete in the talk slot. (Pretty much any task, for some talk slots.) They then proceed to show how it can be done despite the odds using their tool. Edward Hervey edited a video PiTiVi at linux.conf.au 2008. At OSDC 2008 Thomas Lee added a 'unless' keyword to the Python language.
This structure can be fun but it has a lot of pitfalls. Edward was
continually battling to type while dealing with a handheld microphone.
Speakers should recruit an assistant for these talks. The Python keyword talk
was kind of fun, but it was also hard to follow: and now I am going over to
this totally other tree and adding several lines to this other file at line
1099 and 1346 and is obviously required
: he did not succeed in making me
think I could easily edit the Python language. In all cases, it needs a decent
amount of rehearsal: even more so than other talks.
These talks are generally (at linux.conf.au anyway) talks about the social/community/artful aspects of coding. For example, Jonathan Corbet's talk about how kernel hacking actually works in terms of the trees and maintainers etc at 2009. (One of Linus Torvalds's bigger 2009 contributions was being in the audience for that talk and adding occasional commentary on his various prejudices.) Andrew Bennetts has had some good luck with a series of talks that began at OSDC 2008, in which he essentially lists every tool he can think of to help you make your Python programs faster. I didn't see it but I would guess Paul Fenwick's talk about awesome things you've never heard of in Perl was the linux.conf.au equivalent in 2009.
These are useful talks, the main pitfall is that they require considerable expertise over the bulk of the audience. Otherwise someone is just listing a bunch of stuff you do every day back to you. They also need to be about tasks or tools that a lot of people actually use or want to use. No one wants the hidden tricks to using libnousersexceptme.
To relax towards the end of the exam period, I've been playing guitar a bit. More focusing on trying to develop a better sense of rhythm and learn some more about music theory. I've been working through the Berklee method books a little. And I've been trying to work out songs by ear all the way through, which is something I didn't used to have the discipline to do. Playing songs or sight reading to a metronome can be a pretty humbling experience where one moment everything's going fine and you're locked in with the beat, and two or three bars later everything's gone off the rails :)
I've always had some sort of strange hangup about fiddling around with my gear, particularly amp settings. For whatever reason, I've begun to get over that and start playing pretty aggressively with the EQ, and it's been wonderful, nearly like listening to a different instrument. And of course, this is a step on the way to learning to get tones as good as the ones you hear on records.
![]()
Hard copies available from redbubble.com
In the process of preparing my talk for KCA, I re-read the classic paper: The UNIX Time-Sharing System by Ritchie & Thompson. This paper was revised several times between 1973 and 1978, and the authors' observations are well worth remembering:
Second: there have always been fairly severe size constraints on the system and its software. Given the partially antagonistic desires for reasonable efficiency and expressive power, the size constraint has encouraged not only economy, but also a certain elegance of design. This may be a thinly disguised version of the ``salvation through suffering'' philosophy, but in our case it worked.
Third: nearly from the start, the system was able to, and did, maintain itself. This fact is more important than it might seem. If designers of a system are forced to use that system, they quickly become aware of its functional and superficial deficiencies and are strongly motivated to correct them before it is too late. Because all source programs were always available and easily modified on-line, we were willing to revise and rewrite the system and its software when new ideas were invented, discovered, or suggested by others.
It's clear that the success of Linux (and FOSS more generally), is underpinned by these principles. These principles are not merely about technology; they're a way of thinking about technology and the people who create and use it.That was awful. Oh well, only one more exam to go and then I'm done for this semester.
I'm not taking on additional tasks for linux.conf.au 2010 (above co-chairing the presentation selection committee with Michael Davies) and so won't run with this, but an idea for someone with more time on their hands: a FOSSCoach miniconf or co-located event. I'm not sure whether you can call it FOSSCoach precisely (or would want to, I dislike the FOSS acronym), but the idea is an event teaching people how to work on Free Software projects. It could possibly be extended into, say, editing Wikipedia. If anyone wants to do this, go for it.
The linux.conf.au 2010 call for miniconfs is out now and is open until July 17. linux.conf.au 2010 will be held from 18–23 January 2010 in Wellington, New Zealand.
![]()
I've got two new packages in the Debian NEW queue :
These two libraries are obviously useful in their own right, but I was particularly interested in packaging these because they are build dependencies for hoogle which I'm currently working on packaging.
Thanks to Simon Horman for sponsoring these uploads and the previous ones.
2 down, 2 to go. My hardest exam was today, functional analysis. My most irritating exam will be tomorrow morning. I really can't wait to get that one out of the way.
![]()

Mangroves at Glades Bay Park, Gladesville
Yesterday, I put on my slightly too small gum-boots and made the most of the overcast weather by taking some photos at Glades Bay, a short walk from home along the Wulaba Aboriginal Heritage Track. This 360 degree panorama is made up of 72 images, 3 bracketed shots for each of the 24 overlapping viewpoints, stitched and blended with hugin and enfuse, then postprocessed (adaptive contrast enhancement and sharpening) using Gimp. Canon 40D, Sigma 10-20mm @ 10mm, f/22, 0.4sec +-2stops, ISO 200, Custom WB, MLU, tripod, nodal ninja, wired remote
Hard copies available from redbubble.com
On Jun 13th 2009 Chris DiBona of Google claimed on the WhatWG mailing list:
“If [youtube] were to switch to theora and maintain even a semblance of the current youtube quality it would take up most available bandwidth across the Internet.”
Everyone who has ever encoded a Ogg Theora/Vorbis file and in parallel encoded one with another codec will have to immediately protest. It is sad that even the best people fall for FUD spread by the un-enlightened or the ones who have their own agenda.
Fortunately, Gregory Maxwell from Wikipedia came to the rescue and did an actual “YouTube / Ogg/Theora comparison”. It’s a good read and a comparison on one video. He has put his instructions there, so anyone can repeat it for themselves. You will have to start with a pretty good quality video though to see such differences.
One problem that I have had on a number of occasions when developing Unix software is libraries that use non-reentrant code which are called from threaded programs. For example if a function such as strtok() is used which is implemented with a static variable to allow subsequent calls to ...
![]()
It's been sitting in my browser for so long that I've forgotten where I got it from, but I've just finished reading The Rise and Fall of Wordperfect Corporation, written by W. E. "Pete" Peterson, one of the very early employees of the company, and one of the top people there for many years.
It's a really interesting book, giving some insights into what it was like in the early days of "the microcomputer revolution", and with some solid observations of how to (and how not to) run a software company, and manage a very rapidly growing organisation. I'd recommend it to computer historians, software development managers, and business owners.
Hard copies available from redbubble.com
Tokyo rocked.
It was so awesome to be back, even if briefly.
Now it is off to Venice to see the biennale and participate in a week long residency/workshop. I'll be back in New York after that.
Also, here's a 12 hour time lapse of a party Alex and I held on our roof. It's about 40MB so be patient (playback may be smoother if you save locally and view).
-- Sat, 13 Jun 2009 20:21 +0900
Wow, this sure is counter-intuitive. Watching Po the other day, I was pondering more efficient ways for a dog to drink water. I mean, why doesn’t he just hold his breath, stick his snout in the bowl and suck? OK, it might take a leap of faith for a dog to do that due to inconvenient nostril placement.
Meanwhile, I’ve always assumed that dogs and cats scooped up the water in their tongue like a bucket. Turns out that was right, albeit backwards… in the slow-mo video below, you can see that dogs actually use the back of their tongue as a scoop, not the front (which is the way I would do it)!
Click here to view the embedded video.
Update: After some encouragement in the comments, Dusty sent along a video of Sarah (a six month old Gordon Setter) drinking through her snout like a straw! It may not be slow motion, but you can still clearly see her unusual approach to the problem towards the end of the video. Check it out:
Click here to view the embedded video.
… and apparently available on Zazzle.
In the "blogging it so I don't forget about it" category, and also to try and give Google some hints, here's one from the vault I recently came across again...
Older e1000 chips (specifically the 82573(V/L/E)) have firmware which enables the (buggy) power management functionality in the chips. Although this shouldn't occur with hardware shipped in the last several years (the updated firmware was released ages ago), I just came across it recently in a supposedly-new server, so who knows what's going on there...
The problem manifests itself as flaky or unstable network performance, combined with the kernel / log messages:
Detected Tx Unit Hang NETDEV WATCHDOG: ethX: transmit timed out
The fix is as described in the "82573(V/L/E) TX Unit Hang Messages" section of the Intel Linux driver documentation for the e1000 driver. The reason I'm blogging about it is that the top Google results point to either the now-dead e1000.sf.net wiki (which used to have all the necessary info, but now doesn't), or else forum posts which point to the now-dead e1000.sf.net wiki. Either way, it's not trivial to find a working location for the fix, so... linky love time!


![]()
Hard copies available from redbubble.com
I’ve always thought that the most compelling reason to go with HTML5 Ogg video over Flash are the cool things it enables you to do with video within the webpage.
I’ve previously collected the following videos and demos:
First there was a demo of a potential javascript interface to playing Ogg video inside the Web browser, which was developed by CSIRO. The library in use later became the library that Mozilla used in Firefox 3.5:
Then there were Michael Dale’s demos of Metavidwiki with its direct search, access and reuse of video segments, even a little web-based video editor:
Then there was Chris Double’s video SVG demo with cool moving, resizing and reshaping of video:
and Chris kept them coming:
Then Chris Blizzard also made a cool demo for showing synchronised video and graph updates as well as a motion detector:
And now we have Firefox Director Mike Belitzer show off the latest and coolest to TechCrunch, the dynamic content injection bit of which you can try out yourself here:
It just keeps getting better!
UPDATE: Here are some more I’ve come across:
Thanks to our neighbors, we have a new fence! :)
It is tall, solid, level and straight. Such a big change from the old one on that side of the property.
(For those who know my house: this is the fence on the south side of the house, against the empty 2-story Victorian, and by 'neighbors' I mean the people who own all property from my place to St John St, as well as the tower at 152 N 3rd St. They also plan to re-ashpalt all the ashpalt areas of their lots within the next week, which should make them look somewhat nicer.)
![]()
I am writing this post at a small cafe while my car is being serviced. I tried a local Red Rooster food store, a KFC, and a McDonalds but none of them had a power socket I could use. This seems quite perverse as McDonalds advertises free wifi ...
Hard copies available from redbubble.com
The applied maths honours students got given a take 48 hour home exam yesterday at 10 am for geometric mechanics. It's 7:30pm and they're still going. Presumably it's due at 10am tomorrow. I hope some of them get some sleep.
Back to studying for functional analysis.
Mark Glossop has written about the best designs for offices to increase productivity and attract qualified staff [1]. He makes a lot of really good points and cites the Joel on Software blog post about "Bionic Offices" [2], it's sequel "Updated Offices" [3], and Joel's "Field Guide to Developers" ...
Jonathan Drori gave an interesting TED talk about the Millenium Seed Bank [1]. The potential for discovering new uses of plants for food, medicine, and construction is obvious, so it also seems obvious to me that we should preserve as many varieties of plant as possible to allow for ...
![]()
Hard copies available from redbubble.com
This is a humble (possibly overdue) call for the community to start thinking about adopting sensible cloud computing nomenclature - it's going to happen eventually anyway so we may as well get started now.
While toiling away putting lines on the road for cloud computing at 3am on a weekday (which is to say, writing cloud standards) I saw something which nearly made me lose my beer via my nose: a straight-faced proposal for the community to adopt "Data Storage as a Service (DaaS)" as the "formal term" for what we currently call "Cloud Storage" (courtesy SNIA's "Cloud Storage" technical working group no less). Perhaps they missed the memo (or nobody bothered to write it), but I doubt I'm the first to observe the "as a Service (aaS)" moniker has done its job and is now well past its use by date.
Sure, yesterday we used to buy software, platforms and infrastructure as products, but you never saw anyone advertising "Software as a Product", "Platform as a Product" or "Infrastructure as a Product" now, did you? It sounds silly because it is. We used to buy electricity as a product too you know (in the form of a generator) but now it's just plain old electricity. I can hardly imagine Thomas Edison standing on Pearl Street, NY trumpeting "Electricity as a Service", but it's hard not to conjure up the same image when hearing vendors sprouting off about it.
Fortunately there's a simple solution - just drop the superfluous "as a" which is sandwiched in the middle and optionally add a dash of cloud to taste (all lowercase where possible per CMOS, and resist the urge to abbreviate):
Morning all,Now please, go forth and do your bit to make the world a better place.
First, congratulations for promptly getting some deliverables out the door.
Please though, for the love of $GOD, find a more sensible name for it than "Data Storage as a Service (DaaS)".
I'm sure I'm not the only one here who's had enough of all the unnecessary *aaS and to that end propose the following transitions as the technology matures (we'll know we've been successful when the "cloud" moniker fades away):
For storage then it would go something like:
- Software as a Service -> cloud software services -> cloud software -> software
- Platform as a Service -> cloud platform services -> cloud platform -> platform
- Infrastructure as a Service -> cloud infrastructure services -> cloud infrastructure -> infrastructure
I have solid basis for this too, from my Sanity as a service: marketing gone mad post last year:
- Data Storage as a Service -> cloud storage services -> cloud storage -> storage
DaaS is a hive of activity too - AServer will tell you it stands for Datacenter as a Service™ but Q-Layer already tried that. Too bad for Desktone who are on the road to registering Desktops as a Service™
The A-Server guys are having another crack at the trademark after abandoning the first one, and have been told that Desktone already beat them to it. In any case, for many it means "Data as a Service" in reference to the actual data itself (think Amazon Public Data Sets).
Hope this helps avoid some trouble down the road,
Sam

Target calls it a wrap on plastic bags
The retail giant Target has confirmed it will ban plastic bags in its 283 Australian stores next month. It will be the first large retailer to break ranks and ban bags on environmental grounds.
Instead of issuing plastic bags to shoppers at checkouts, from June 1 Target will require shoppers to either bring their own bags or buy reusable bags for $1 each or compostable corn starch bags for 10 cents each.
Target says the ban will stop 100 million plastic bags from going into landfill and polluting the environment each year - or just under 3 per cent of the 4 billion bags that pass through Australian checkouts each year.
via hippieflavor: robotsalsa: mhking: thephlipside: peetypassion
I’m not the biggest hippie-thumper out there, but I own 3-resuable grocery bags myself, and enjoy seeing the reduction in waste going out in my trash cans.
Great….except for the part where 90% of those cornstarch bags will go into general waste anyway (i.e. landfill) because there’s no processing infrastructure for biodegradable plastics, and very few people will compost the bags themselves. At the moment it’s just a switch from sending oil-based plastics to landfill to sending plant-based plastics to landfill where they can’t be broken down anyway due to the extreme toxicity of that environment.
Still, it’s a good start and I’m all for retailers not treating people like children (or pandering to their need to be treated like children) because we don’t have the presence of mind to take bags with us to the shops. Also, as the volume of commodity bio-plastics in the market increases, maybe the government will be forced to do something about setting up composting disposal infrastructure and education schemes.
![]()
Yesterday, somebody mentioned that the HTML5 video tag with Ogg Theora/Vorbis can be played back in Safari if you have XiphQT installed (btw: the 0.1.9 release of XiphQT is upcoming). So, today I thought I should give it a quick test. It indeed works straight through the QuickTime framework, so the player looks like a QuickTime player. So, by now, Firefox 3.5, Chrome, Safari with XiphQT, and experimental builds of Opera support Ogg Theora/Vorbis inside the HTML5 video tag. Now we just need somebody to write some ActiveX controls for the Xiph DirectShow Filters and it might even work in IE.
While doing my testing, I needed to go to some sites that actually use Ogg Theora/Vorbis in HTML5 video tags. Here is a list that I came up with in no particular order:
I’m sure there’s a lot more out there – feel free to post links in the comments.
Hard copies available from redbubble.com
sVirt (MAC security for Linux Virtualization), which I've previously discussed here, and formally presented at LCA in January, was released today as an integral part of virtualization in Fedora 11.

With the closing of Debian bug #531811 I am now officially a Debian Maintainer.
Although I've been using Debian and related distributions for nearly a decade, for most of that time I've been pretty happy just being an upstream developer and a downstream user.
That changed when I started learning and using Haskell some 6 months ago. After using Ocaml on Debian for about four years I had grown spoilt by the work of the Ocaml Debian Maintainers who do a stellar job in keeping the everything Ocaml related in Debian up to date. Any time I needed a new Ocaml library, it was nearly always just an apt-get install away.
Unfortunately Haskell on Debian is in a poor state in comparison to Ocaml. My main aim in becoming a Debian Maintainer is to improve Haskell on Debian. First of all, I will be packaging Haskell libraries. So far I have make Debian packages of the following three Hackage packages :
I have also joined the Debian Haskell Mailing List and hope to help out on packaging and improving the compiler version transition process.
![]()
Hard copies available from redbubble.com