Planet Alkali

August 26, 2010

Afterglow

Sweet Potatoes

2 1/2 lbs of sweet potatoes, peeled, cooked and cut into irregular shaped pieces. 1/2 cup brown sugar 2 tbsp butter or margarine 1 1/2 tbsp cornstarch 1/2 tsp salt 1/8 tsp pepper 1 cup orange juice Cut potatoes int bite size pieces and place in 2 quart (8 litre) casserole dish. Mix remaining ingredients [...]

by Derek at August 26, 2010 04:45 AM

August 22, 2010

Jon Dowland

scm

Can anyone recommend some videos to me which explain the ins-and-outs of the chef and puppet configuration management tools? I have some familiarity with configuration management, having worked on cfengine (version 2) for a few years. However I haven't managed to evaluate the newer tools effectively. The barrier to entry (setting up at least a master and a slave VM...) has been too high (or I haven't given it enough time!)

If there are any good screencasts/videos that cover not just how they work but their individual advantages, that would be excellent: I have some upcoming time in which I can absorb material like that (but not the kind of time in which I could get hands-on).

August 22, 2010 11:06 AM

Debconf 10 videos

I'm planning on transcoding some of the Debconf 10 event videos in order to watch them on my phone (and other devices). Most likely to an MPEG container, H264 codec or similar. Subject to a license check, I could stick the results up somewhere for others if there is any interest. Let me know via comment or email.

August 22, 2010 10:17 AM

August 20, 2010

Joe Dowland

Internet Explorer

This is why Internet Explorer sucks and Microsoft is guilty of false advertising.


The above is a link to the w3c's website explaining a particular CSS2 element - "max-height"


This is Microsoft's page comparing the major browsers. Notice how their own product, of course, has more ticks against it than the other browsers.
I could go through each one of those explaining why the missing ticks should not be missing, or why the tick should actually be a cross, but instead I will just focus on the claim that it supports CSS2.1 - admittedly it does not say it supports all of CSS2.1, but the w3c site says that IE supports the property. As do other sites I have visited.

These sites are wrong. IE does not support max-height.
I did a little experiment to prove this. The following pictures are cropped screenshots comparing Google Chrome, Firefox and Internet Explorer 8. They compare how they render a div with the following style settings:

width: 50px;
max-height: 50px;
overflow: auto;
border: 2px solid blue;

Now, what results would you expect from this?
A box with a 2 pixel thick blue border. It will be 50 pixels wide. It's height will be dynamic up to a maximum of 50 pixels. When the content of the box extends beyond those 50x50 limits, scrollbars will appear.
Now, lets look at the results:



Google Chrome



Firefox



Internet Explorer




That's right, Internet Explorer fails to do what it should, completely ignoring the max-height property.
So, Microsoft, you claim that your browser supports more CSS2.1 than other browsers, but that other browsers support more HTML5 and CSS3 (the things that make CSS2.1 redundant)
All I can say is [citation needed] - perhaps you should focus on supporting the features your developers will need rather than, at most, obscure features no one who's competent in web design cares about.

by Joe (joe.dowland@gmail.com) at August 20, 2010 11:40 AM

CSS Pseudo clases

Just a quick heads up for anyone who reads this and has suffered a problem with this, but CSS pseudo classes need to be expressed in a particular way to guarantee that they work:

Normally in css, you will define things with a particular id using #(id) and a class is .(classname)

The pseudo class allows you to define particular behaviour, for example, if you want something to change appearence when you hover over it you would use :hover

So, to combine them, if you want everything with a particular class to look a particular way when you hover on it, you might want to try .(classname):hover

However, this does not always work (in Firefox), as I found out five minutes ago.

I was dealing with divs, and the solution was to say div.(classname):hover

So, when using pseudo classes, in order to make sure things work, try to be as precise as possible - (tagname).(classname):(pseudoclass)


[edit]
However, I subsequently discovered that the hover pseudo class is only valid for links ("a" tags) in IE.
In order ot make them behave like divs, make the use display:block, and if you really want to, remove the href.

by Joe (joe.dowland@gmail.com) at August 20, 2010 11:40 AM

Google

Google has migrated my site, which now means that though the links on the side aren't broken, you download the files rather than viewing them.

I have three choices:
1) Give up
2) Adapt so that those pages can still be hosted on google
3) Be hosted somewhere else

I believe I've already expressed how terrible their WYSIWIG editor was. It's now even worse. It's unbearable.

I'm therefore going for option 3 asap.

by Joe (joe.dowland@gmail.com) at August 20, 2010 11:40 AM

Interesting

Well, I'm still working on some tech demo things - they of course won't be linked to until they are done.

That's not what this post is about, though.
For some reason, today, I wanted to see if whatsinthebox had updated at all, and it has. I then went searching to find out what other people had discovered, and found this site.

It's all quite interesting. Initially I though "What's in the box" was a Valve produced HL2:E3 promotional viral. It could have been a fan-tribute, but I wasn't entirely convinced.
After looking today, I was further convinced that it in fact must be for Episode 3. After all, so much work has blatantly been put into it, and surely no-one would spend so much time and effort doing something like this if money wasn't involved, right?

It made references to Black Mesa, and on some pages even has the Aperture Science logo as well as the Black Mesa logo, so it must be linked... But right next to them, is the Hanso Foundation logo. From Lost.

I'm not sure what to think. Is this a cross-property ARG, or a really sophisticated one that is completely unrelated to the properties it repeatedly cites?

Also, this is just plain awesome, if a little creepy. It doesn't seem to be a joke - it's there on CNN.com

by Joe (joe.dowland@gmail.com) at August 20, 2010 11:40 AM

Images

So, a bit earlier today I decided to alter some pages (hosted elsewhere) so that they aren't just all using this same template - sure it's nice, but it doesn't really demonstrate what I can do design-wise.

So I looked at the Google pages WYSIWIYG ("what you see is what you get") editor in order to get some inspiration. I found a very nice one called "Branches" - it was a nice green colour for the background, with all of the contents in a blue colour, and the header had a picture of a tree-branch with some blossom on it.

It was so nice that I wanted to do something similar myself, but I didn't want to use the exact same image (what with it being copyrighted and all) so I was presented with two options:
1) Draw my own
2) Use a public domain alternative

Unfortunately I am not very good at drawing using the GIMP - it looked sharp and pointy. "Stylised" didn't seem like a good enough excuse for the quality.

So, I searched around - I found a fair few good results... but none of the good ones were free. Oh well.

I generally don't like Google's WYSIWIG editor, I felt it didn't give me as many options as I wanted, so I needed to alter the html itself... but it only let me alter the html of particular blocks, particular DIVs. Sometimes you need to be able to edit all of the html, or sections that aren't contained within the DIV (for example, the body tag.)

by Joe (joe.dowland@gmail.com) at August 20, 2010 11:40 AM

August 17, 2010

Jon Dowland

music players: from old to new

the iRiver player

About six years ago, I spent a chunk of my very first salary on a portable music player, the iRiver H140, a relatively bulky and large hard-disk based player, with a capacity of 40G. Uniquely for music players before or since, the iRiver features both digital and analogue line ins and outs. It also has (more common) recording facilities and an FM tuner, the latter of which I used a great deal (and rules out just about all the iPods).

This remarkable player has lasted nearly six years of moderate daily use. For the majority of that time, I've ran the rockbox open source firmware on the player, which has provided me with really wide codec support and excellent recording facilities.

In the last month I finally had to replace the iRiver. I bought a Sansa Fuze player, featuring 8G of flash storage and a microsd expansion slot. The Fuze is also capable of running rockbox. This year, 32G microsd cards have arrived. Adding one of those brings the capacity of the new player right back up to 40G.

For those who are curious: yes, a Sandisk 32G microsd does work in the Fuze, at least with rockbox, for playback. At the moment, rockbox cannot write to storage on the Fuze, so you need to either use the original firmware or an external reader/writer to manipulate the contents of the microsd. However, I am not sure how well the original firmware can handle the 32G. Whenever I boot it, I see a "refreshing your media" message which lasts longer than my patience. I will write an update once I've established further the degree of support.

the fuze player

I kept a canonical copy of my music library on a desktop computer and used rsync to keep the iRiver up-to-date. I can use almost exactly the same procedure for the new player (with some small changes to cope with the split-storage)

I now have a 40G player running rockbox exactly as I had before, albeit at a fraction of the size and weight (and cost: approximately half as expensive), and with a nicer display including colours, album art, etc.

They both can even play doom (although the controls are even more awkward than iPhone Doom).

August 17, 2010 12:42 PM

August 15, 2010

Mike Watson

Three Stories

You are alone. Or at least it seems that way at first glance. In front of you are grassy hills spattered with trees, and behind them lie some larger mountains and some odd looking stone structures. You turn around and see sand and a vast body of water. Is it an ocean or just a large lake? Difficult to say. You can see some islands off i...

by Mike at August 15, 2010 03:16 AM

August 11, 2010

Jon Dowland

psychic

I'm in the process of setting up a mail server, which will eventually accept mail for a given domain. I am also changing name servers for said domain (to make use of zoneedit.com).

So far, I have the new server accepting mail for the domain, and the new name server serving records for the domain, including an MX pointing at the new server. However, I haven't updated the domain record, so the authorative nameservers haven't changed.

Despite this, somehow, spammers are already attempting to submit mail for the domain in question to the new MX server. Not only that, but it's targetted at particular users with non-obvious local parts.

The new MX advertises itself as "a-sub-domain.example.org", for values of "example.org", so it's possible in theory to derive "example.org" from the banner. But unlikely.

Are they psychic? Or is a spammer somehow getting notified of new MX records hosted at zoneedit (no matter whether glue records point at them)?

August 11, 2010 07:26 PM

August 08, 2010

Bloodshedder

The Mike Hardy Saga, Part XI: Five Year Interlude

(note: read parts I, II, III, IV, V, VI, VII, VIII, IX, and X if you haven't already) I never actually thought I would be posting an additional part to this series. After Part X was published, I briefly collected information posted in the comment sections of all the Software Saga ...

August 08, 2010 06:00 PM

August 04, 2010

Joe Dowland

Hell is the Epoché

An interesting thought hit me a little while ago. When studying different Philosophers, even ones which are contained within the same label, it is interesting how different they seem to be. Seem being a key word.

Take for example Edmund Husserl and Jean-Paul Sartre. Both are Existentialists but both say quite different things.

Husserl came first and tried to tackle the concept of how we understand ourselves. When we describe things in the world we tend to describe them as distinct from us, entirely separate. We describe objects as objects and ourselves as subjects. But we can also perceive ourselves as objects. So which are we? Subjects, objects, or some blend of both? And what about other things, what are they, really?
In order for us to find out he proposed a mental exercise, a sort of meditation. Don't deny that the world exists, that you exist, that everything else accepts as you perceive, but don't accept it either. Be agnostic. Detach your mind, somehow, reflect and you will perceive or experience (he was very bad at explaining his concepts) the "Transcendental Ego", the method by which we perceive and understand the world.

Now, as for Sartre, he wrote a lot of plays. One of which was called "No Exit", wherein a group of people found themselves in hell, in a room and with no eyelids. The crux of it was the saying "Hell is other people" - we judge ourselves by how others react to us, how others perceive us. This was a more ethics focussed take on matters, but it seems to me that these ideas are not too dissimilar. In fact, I would perhaps go so far as to say that the transcendental ego is encompassed within how other people react to us.
To further develop this idea, perhaps we can expand the concept of us understanding ourselves by how other things react to us so that it also includes physical reactions. We perceive ourselves as objects because we can push the glass off the table.

It is at this point that I realise somewhat that Heidegger acts as the required bridge between these concepts - Heidegger said that the way we normally describe the world is as "Zuhanden" ("To hand") but the way we tend to perceive the world is as the "Vorhanden" ("For hand")
Though we describe the world as subjects and objects, we perceive it as tools. Rather than seeing the glass as an object completely separate from ourselves, we see it as a container we can pick up and interact with.

I've now lost most if not all capability of describing this any further, but what I've described is hopefully enough to get my random point across.

by Joe (joe.dowland@gmail.com) at August 04, 2010 09:16 PM

July 29, 2010

Simon Howard

Interview with me

fragorama.se is a new website about Classic Doom, and they have just published an interview with me!

July 29, 2010 09:01 PM

July 28, 2010

Jon Dowland

transition

I've just finished reading — and thoroughly enjoying — Transition by Iain Banks. Despite a terrible writeup in the Guardian, I found the book to concentrate just as strongly on character as world-building, but I wouldn't be surprised if a sequel was on the cards.

The novel is, in part, an exploration of the many worlds theory of quantum mechanics. Or at least that's it's setting. In the UK, it has been published without the traditional 'M' infix denoting Science Fiction, although it is undeniably so: It's not even pretending to be anything else.

The book reminded me of Quarantine, and to a lesser extend Permutation City, both by Greg Egan; and another book I've read recently which I can't reveal without spoiling this one.

July 28, 2010 06:08 PM

July 26, 2010

Bloodshedder

Spot the error

Looks like Summit Brands' label designer needs to brush up on grammar skills.

July 26, 2010 08:50 PM

Holiday music reminder

Remember, it just isn't Christmas without some Christmas Rap. Four years and running. The 8 Bits of Christmas (backup link) by The 8bitpeoples also gets my hearty recommendation.

July 26, 2010 08:50 PM

Hey, what’s this?

Sometimes I forget that I even have a blog. Here's some more useless stuff that I've taken pictures of or recorded. Looks like a normal can of peaches, right? Click on the thumbnail to peer inside the can. Apartment fire across from the store.

July 26, 2010 08:50 PM

The new AngelSoft baby

While down the baby wipes and toilet paper aisle at work one night, a passing conversation with a co-worker revealed his feelings about the appearance of the most recent baby to grace the packages of AngelSoft bathroom tissue. You could also be more old-fashioned and call it "toilet paper", or ...

July 26, 2010 08:50 PM

Spot the error part 2

One of these cans of Chef Boyardee's Mini Bites has a spelling error. Which is it? The answer: both of them. Ah, a trick question, you say? Sort of. Apostrophes after initialisms and acronyms (ABCs and 123s) are incorrect, unless you follow the New York Times' guidebook of punctuation. Who listens ...

July 26, 2010 08:50 PM

Light Midwest Earthquake

About 10 minutes ago (approximately 5:35 EDT), I felt a light earthquake, which was preceded by an even weaker foreshock. I could feel the entire house move slightly, and heard some rumbling and creaking. One of my brothers called soon after, stating he felt the same thing. Based on this, ...

July 26, 2010 08:50 PM

Three years and a few days

And with this post I bump off the front page the old post about belatedly celebrating the second anniversary of this blog. Shows you how often I put up anything that passes for content.

July 26, 2010 08:50 PM

Yet another video

Since all I seem to be doing is posting my YouTube submissions lately, here's another one: The 2007 Minneapolis Aquatennial fireworks display. Or at least the last five minutes of it.

July 26, 2010 08:50 PM

Happy belated Independence Day

The rather late fireworks that some people are burning up outside reminded me to write a post. I recorded this video on July 3.

July 26, 2010 08:50 PM

July 25, 2010

Jon Dowland

office decoration

Whilst re-organising offices, I found a collection of ancient X programming books. They seem like perfect book shelf ornaments for a (former?) UNIX hacker.

A series of X programming books.

Full size 768K.

July 25, 2010 05:21 PM

July 19, 2010

Mike Watson

Inception

Inception is a movie that makes you think, but perhaps not as much as it could. I don't make any claims so be some sort of film intellectual, I'm perfectly happy to watch Die Hard for the tenth time, but when a movie like Inception comes along it lends itself to thinking about it in a way you would not judge a film like Die Hard. Not that I think...

by Mike at July 19, 2010 02:56 AM

July 14, 2010

Colin Phipps

EVE Online using zsync

I was pointed today at the EVE Online Dev Blog, where they are apparently using zsync as a backup system for repairing incomplete downloads or corrupted files. It sounds like that are not using zsync itself but have probably taken the idea and/or parts of the code and built it into their own repair tool.

It seems like an odd application to me. Incomplete downloads are a rather easy case and do not require the rsync algorithm (there are plenty of HTTP and of course FTP clients that will resume partial downloads). And corrupt files - well I'm surprised if having corrupted parts of files are so common that they have to optimise for it. But I don't know anything more about their problem than is in their blog post. zsync does have the advantage that it combines downloading with verification of what you have, and it does it with minimal work for the central servers (as I guess EVE have the common problem of a high ratio of users to servers).

July 14, 2010 09:04 PM

July 08, 2010

Afterglow

Seam Framework JSF Component Validation: At Least One Checkbox

For some reason Seam Framework doesn’t include form validation to ensure at least one checkbox is selected out of a group of checkboxes. Like a radio button, but more than one may be selected. One custom code sample was bullshit because validation takes place in JSF lifecycle before the model is updated, so you must [...]

by Derek at July 08, 2010 03:44 AM

July 03, 2010

Afterglow

Hibernate’s Inexplicable Failure

DEBUG [SequenceGenerator] Sequence identifier generated: 1025 DEBUG [AbstractBatcher] about to close PreparedStatement (open PreparedStatements: 1, globally: 1) DEBUG [ConnectionManager] aggressively releasing JDBC connection DEBUG [ConnectionManager] releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)] DEBUG [AbstractSaveEventListener] generated identifier: 1025, using strategy: org.hibernate.id.SequenceGenerator DEBUG [AbstractSaveEventListener] generated identifier: 1025, using strategy: org.hibernate.id.ForeignGenerator [...]

by Derek at July 03, 2010 03:37 PM

Joe Dowland

Metro Newspaper Complicit in Commercial Copyright Infringement

The Metro Newspaper, which is freely distributed on the transport networks of Britain, has promoted commercial copy-right infringement twice in the past 7 months.
Scan 1: Tuesday 22nd December 2009
Scan 2: Tuesday 29th June 2010

I am referring in particular to the anime sites they mention in the above two clippings - sites which stream anime shows an films online. Both sites use advertising and or VIP programs in order to generate revenue.

In both clippings they promote the sites using Bleach and Full Metal Alchemist: Brotherhood.

The former, last time I checked, is not streamed or licensed to be streamed by the rights holders.
The latter is distributed in the UK by Manga Entertainment, which streams 5 episodes at a time from it's own website, and does not license any other sites to stream episodes.

So, in the latter case, a national newspaper is promoting a site which partakes in commercial copy-right infringement while there is a free official alternative available for use.

I have already sent them an email expressing my thoughts on the matter, but I thought I should make this as public as possible.

by Joe (joe.dowland@gmail.com) at July 03, 2010 01:49 PM

June 28, 2010

Afterglow

JBoss Seam, Hibernate, DB2, and Lucene Indexing

Yeah, it’s all happening. Migrating a CMS to Java’s Seam framework using an existing DB2 schema/dataset, the Lucene search indexes on a few tables caused DB2 error SQL1584N. The bizarre part was it was only happening locally on my machine, but not for two others at work, who each have the same amount of RAM. [...]

by Derek at June 28, 2010 06:05 PM

June 08, 2010

Joe Dowland

Disdain for world... growing

This morning on the news it was revealed that hospitals that take in the same patient twice in a month, where the second time they come in is a direct concequence of being discharged too early, the hopsital will be "fined"

Now, why does this annoy me? Think about what a fine is - it is a cost. You park in the wrong place, you get charged money etc

Now, in this case, the word fine is wholey inappropriate. Here is how it was explained to me:
When someone enters a hospital for treatment, the NHS pays the hospital a lump sum. The same pateint gets discharged early, comes back in because they haven't fully recovered, and the hospital gets another lump sum.
What is being suggested is that in such cases the hospital would not get the second lump sum. Essentially, because the patient hadn't finished being treated adequately, then their return to the hospital is still part of the first treatment.
This is not a fine, just an extension of the rules as they stand to prevent abuse. For it to be a fine, they would have to have the second sum (which they don't) or be entitled to the second sum. Which they are not.

Now, I want to extrapolate this to the idea of piracy. Large companies claim that when their product is pirated, that it is a loss. Now, ignoring that the assumption that 1 pirated copy is a lost sale* it is like claiming they had money which has now been taken away, or that they are entitled to the money. The latter is, at least on the face of it, fair enough, but the first is utter rubbish.
The Hurt Locker cost $15 million to make, and has grossed $150 million. Ten times their investment. 1000%.
Yet they are chalking up every download as a loss. I cannot see how a company that has managed to make a profit can claim a loss. It doesn't make sense.

*As a direct counter example, I downloaded 20th Century Boys part 1. I watched it. I have now bought the DVD twice. That is only one example, I have several.

by Joe (joe.dowland@gmail.com) at June 08, 2010 12:59 PM

June 02, 2010

Jon Dowland

bup

Packages of bup, a git-based de-duplicating backup tool, are now available in unstable.

June 02, 2010 03:28 PM

May 17, 2010

Joe Dowland

Companies just don't get it

Last week I got an email from moneysavingexpert, within which one of the offers it mentioned was a £10 voucher for a film and tv streaming site: blinkbox.com

So I used it to give it a go, buying Iron Man (£2.99)
I could stream it only, but you can also download it - 1.3 gigs. On the downloaded version, when you try to watch it, you need to verify your details over the internet.

Now that might seem fair enough on the face of it, but there is something very wrong with this.

Think about exactly why you want to download a film. Convenience, right? The ability to watch it whenever you wanted, without the need for hardware. Instead it is data on your hard drive.

Except, this way, if you want to stream it, you need a net connection. If you have downloaded it and want to watch it, you neet a net connection.
That doesn't seem that convenient to me.
In fact, it would be more convenient (in the long term) to buy the DVD and rip it to your hard drive, or to pirate it.

Ok, so it's not quite as convenient as actually having the DVD is, but does the price reflect that?
Hell no.

As a better example, they have Avatar for £8.99
The DVD is available for £8 in Asda.
Or even, they have the entire original series of V for £1.79 an episode, or £17.99 for the series. In HMV it is £15

Not only that, but the prices on blinkbox are for the video only. No other languages, no subtitles, no directors commentary. No extras whatsoever.

So, you are paying more for an inferior product that is far less convenient to use.

Is it any wonder why some digital distribution methods fail and piracy is rife?!

Still, at least they have some decent free stuff, but only to stream. What if I want to download Night of the Living Dead (which is public domain)? Guess I have to fileshare.

by Joe (joe.dowland@gmail.com) at May 17, 2010 12:09 PM

May 05, 2010

Mike Watson

Chrome: Faster Than A Potato

I just kind of enjoy the Chrome ads in general: ...

by Mike at May 05, 2010 11:17 PM

Joe Dowland

May 03, 2010

Afterglow

My expectations of this reunion were pretty low but wow, Cornell still has the vocal chops and this performance highlights how Kim Thayil has been sorely missed for more than a decade.

by Derek at May 03, 2010 02:23 AM

May 02, 2010

Simon Howard

Southampton Test Hustings

I just attended the Hustings for Southampton Test. These are my thoughts on some of the candidates.

Alan Whitehead (incumber Labour MP): Seemed rather nervous at the start but gained confidence later in the debate. To his credit he made some good points; I was impressed that he was bold enough to state that the law of the land should trump religious beliefs. However I also got the impression that he was less up to speed with other candidates on local issues and perhaps hadn't been paying proper attention to his constituency. Surprisingly enough he opposes Trident in favour of a cruise missile system like the LibDems advocate.

Jeremy Moulton (Conservatives): Made some good points and seemed a confident speaker. Some of the answers he gave seemed to have been slighty evasive/misleading when audience members responded to his answers. Attacked Alan Whitehead for using the communications allowance and supposedly putting the Labour party name on it (?)

Dave Callaghan (Liberal Democrats): Seemed the most honest of the lot. He highlighted some of the local issues that he's been campaigning for, like the closure of the Millbrook library, which he attacked Jeremy on (Jeremy is responsible for finances on the local council?).

Pearline Hingston (UKIP): A UKIP candidate who is an immigrant (how's that for a brain-breaker?). She came across as completely clueless and in general contributed very little of note. The one time she really attempted to express an opinion on something (cyclists riding on the pavement) she got smacked down by a member of the audience in response for not having a clue what she was talking about.

Chris Bluemel (Green): Surprisingly clueful and well-spoken. He spoke out in favour of nuclear disarmament and did it well, even though I don't agree with his views.

During the debates I sat next to an older gentleman who spent the time scribbling down notes on the back of an envelope. When he asked a question to the panel, he made some strange comments about Halliburton and BP. He seemed to think that there were plans to site nuclear submarines in Southampton docks, and was worried they might blow up and destroy the city. Very odd.

There was an obvious large Christian presence in the audience, and I suspect that siting the debate in a church probably didn't help. The candidates were asked at one point why they had all refused to sign a petition (I forget the name of it) declaring their support for Christian beliefs, although it was then revealed that none of the candidates had even heard of it. Several questions were asked about Christian rights that were obviously homophobic (eg. anti-gay marriage), though the people posing the questions tried to veil this by speaking in vague terms that made it less obvious what they were talking about.

May 02, 2010 06:32 PM

May 01, 2010

Afterglow

Disable <rich:inplaceInput> in Seam

You can’t. But you can use <h:outputText> for read-only visitors and <rich:inplaceInput> for write-enabled logged-in users. Customize the inplaceInputTest.xhtml s:hasRole() parameter to give the proper boolean value on whether the logged-in user is an administrator or not of the field you want to control access of. /resources/WEB-INF/web.xml 1 2 3 4 5 6 7 8 [...]

by Derek at May 01, 2010 05:24 AM

April 29, 2010

Simon Howard

Twitter

I now have a Twitter account. You will find regular postings there about completely irrelevant things. I'm tagging Chocolate Doom-related postings with the #chocdoom tag.

April 29, 2010 11:53 AM

April 20, 2010

Jon Dowland

new job

I'm changing jobs!

From June 1st, I will be team leader of the Computing Support team for the School of Computing Science at Newcastle University.

I will be leaving my current job as a Computing Officer within the central IT department's UNIX infrastructure team (ISS). My professional career began within ISS nearly 6 years ago. I have made many friends and will miss working with them as closely as I have.

I am really looking forward to getting stuck into my new role. Working within a school means I will be a lot closer to the University's business of teaching and learning. As a Computing Science graduate I've always had an interest in computing research and my new role will have me up close and personal with world-class researchers.

April 20, 2010 03:24 PM

Afterglow

The Screwdriver and the Damage Done

When visiting the family last Christmas, I decided to avoid my iPod earbuds on the trip due to their deteriorated state (srsly, do they last more than three months without having their volume cut in half or the wire fraying?) Instead I took my Seinnhesier HD-595 for the plane/car ride for an obviously superior listening [...]

by Derek at April 20, 2010 04:45 AM

April 17, 2010

Afterglow

We’re Gonna Need a Montage

Isn’t this sequence from Up just the ultimate proof of Pixar’s brilliance?

by Derek at April 17, 2010 04:33 AM

April 07, 2010

Jon Dowland

tesco

Tesco Car Insurance (and most likely their other financial products) operate a commercial email system which is populated by anyone who submits their address to them as part of searching for a car insurance quote.

That's not particularly unusual. Each mail that Tesco sends includes unsubscribe instructions - standard industry practise. However Tesco's instructions do not work. I have followed them at least three times since January this year to no avail. Despite this I have continued to receive unsolicitied commercial email (spam) from Tesco.

Tesco do not answer mail to their postmaster or abuse addresses, and do not accept mail for those local parts at many of their domains (they use more than one domain for their business: tescofinance.com, tesco.com, tescocompare.com, contact.tescocompare.com, tescoinsurance.com).

I would advise that nobody ever submit their details to a Tesco-affiliated company for these reasons. I have given up and blacklisted them on the mail servers which I control.

Based on the unrelated experiences of a friend of mine, I would have strong reservations regarding the quality of the services they offer, too - in particular their home insurance products.

April 07, 2010 03:16 PM

Afterglow

Saw these dudes twice last year; once at a NxNE afterparty and again when they were surprise headliner for a small show in Kensington Market (OK, I knew ahead of time). These performances were some of the most angular and frantic I’ve ever witnessed. A must see with a sweaty crowd.

by Derek at April 07, 2010 06:00 AM

April 04, 2010

Colin Phipps

kye 0.9.4

A new release of Kye! No major changes in this release ‒ this is mostly an update to fix issues running Kye with newer versions of GTK and librsvg. In particular, my standard tileset no longer rendered correctly with the latest librsvg. There are also minor interface improvements.

You can get the latest version and installation help from the download page (or direct links: tgz, rpm ).

While I'm here, I was playing some levels to test the release and so I will throw out some level recommendations. Crowds is good fun. And my own level HOLD UP (from Problem.kye) remains the best of my own levels. And, um, yes I can't link to the other level set I liked because the site is down. I'll put up a few more recommendations with the next release, anyway.

I'll do a stable 1.0 release soon, once Robert's Kye page is back up (it's temporarily down while at the moment), and assuming there are no issues reported with this release.

April 04, 2010 11:27 AM

April 03, 2010

Colin Phipps

Ubuntu using zsync for distribution

Someone drew my attention to Ubuntu using zsync to distribute ISOs (thanks Jon). Cool — that's one of the use cases that I was testing with many years ago.

April 03, 2010 11:00 AM

The Royal Crescent

The Royal Crescent, where I am often to be found on a sunny Sunday morning.

[[!img Error: Image::Magick is not installed]]

more

April 03, 2010 10:26 AM

March 29, 2010

Jon Dowland

There must be a better way of doing this

14:31:33$ rake
(in /home/jon/wd/web/sup)
rake aborted!
no such file to load -- rubygems
/home/jon/wd/web/sup/Rakefile:33:in `require'
(See full trace by running task with --trace)

So I identify which package is necessary and install it. Then:

14:31:52$ rake
(in /home/jon/wd/web/sup)
rake aborted!
no such file to load -- gettext
/home/jon/wd/web/sup/Rakefile:35
(See full trace by running task with --trace)

So I identify which package is necessary and install it. Then:

14:32:11$ rake
(in /home/jon/wd/web/sup)
rake aborted!
no such file to load -- lockfile
/home/jon/wd/web/sup/Rakefile:35
(See full trace by running task with --trace)

So I identify which package is necessary and install it. Then:

14:32:31$ rake
(in /home/jon/wd/web/sup)
rake aborted!
no such file to load -- mime/types
/home/jon/wd/web/sup/Rakefile:35
(See full trace by running task with --trace)

So I identify which package is necessary and install it. Then:

14:32:39$ rake
(in /home/jon/wd/web/sup)
rake aborted!
no such file to load -- ncurses
/home/jon/wd/web/sup/Rakefile:35
(See full trace by running task with --trace)

So I identify which package is necessary and install it. Then:

14:33:08$ rake
(in /home/jon/wd/web/sup)
rake aborted!
no such file to load -- net/ssh
/home/jon/wd/web/sup/Rakefile:35
(See full trace by running task with --trace)

So I identify which package is necessary and install it. Then:

14:33:19$ rake
(in /home/jon/wd/web/sup)
rake aborted!
no such file to load -- ferret
/home/jon/wd/web/sup/Rakefile:35
(See full trace by running task with --trace)

So I identify which package is necessary and install it. Then:

4:33:31$ rake
(in /home/jon/wd/web/sup)
rake aborted!
Don't know how to build task 'default'

(See full trace by running task with --trace)

Well, at least that's the dependencies sorted! This is how I would have preferred things to have worked:

14:31:33$ rake
(in /home/jon/wd/web/sup)
rake aborted!
missing dependencies:
    rubygems
    gettext
    lockfile
    mime/types
    ncurses
    net/ssh
    ferret

Once I've resolved which rake target I want (rake tarball gave me an installation tree I could use), I'm finally in a position to run the thing:

14:38:12$ sup-config
/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no
such file to load -- highline/import (LoadError)
    from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
        from /home/jon/wd/web/sup/pkg/sup-999/bin/sup-config:4

Ah.

March 29, 2010 12:14 PM

March 27, 2010

Afterglow

Install Linux, Problem (Not) Solved

An activity I don’t miss from my university days: setting up a Linux dev box. At work, we decided to get away from Red Hat Enterprise Linux (which would seriously take over two minutes to boot) and test out Ubuntu on a development box. However, the 9.10 installer was decidedly uncooperative. Firstly, it booted to [...]

by Derek at March 27, 2010 07:46 AM

March 24, 2010

Afterglow

Internet Memes Across the Seas

A friend mailed me this saucy-packaged packet of gum and postcard from Switzerland because, “it reminded me of you.” Take that as you will.

by Derek at March 24, 2010 02:15 AM

March 10, 2010

Mike Watson

CSS3: I Should Not Be

After hearing about it and knowing what it does and even seeing a few examples my curiosity finally got the better of me and I decided to mess around with some CSS3 stuff. For those of you who may be less web developer-y, it's just CSS but with some added wackiness that actually goes beyond just simple styling and into crazy territory. Of course ...

by Mike at March 10, 2010 02:40 PM

March 09, 2010

Joe Dowland

Dragonball Evolution: A Review


Finally, it's done!

Sometimes the release of a film breaks your heart.
Other times it tears your heart out, grinds it with the heel of it's boot, spits on it and then sets it on fire.
Dragonball Evolution, for me, was the latter.
"Fun" games to play while watching the video:
  1. See how many simple words I mispronounce!
  2. See how many times I say "That" and "However"!
  3. See how many times I run out of breath midway through a sentence but refuse to stop talking!
  4. Pinpoint the exact moment my heart broke in two!
  5. Pinpoint the exact moment I lost my sanity (hint: It's after 4)
Other versions available here

by Joe (joe.dowland@gmail.com) at March 09, 2010 09:51 PM

February 05, 2010

Simon Howard

Chocolate Doom on OS X, and GNUstep

Chocolate Doom runs on Mac OS X and has done for several years; however, until now, getting it running has been overly complicated and required compiling the source code from scratch. Obviously this isn't really appropriate for a Mac; it certainly doesn't fit in with the Apple way of doing things. I recently set about trying to improve the situation.

I first investigated how things are installed on OS X. Generally speaking there are two ways that things are installed; the installer (.pkg files), and Application Bundles, typically contained inside a .dmg archive. The installer simply installs a bunch of files to your machine, while Application Bundles are a lot more fluid; to install, you simply drag an icon into the Applications folder.

Application Bundles seem obviously preferable, but there's the problem of how one should be structured. Chocolate Doom needs a Doom IWAD file that contains the data used by the game, so it's not sufficient to simply package the normal binary as a bundle. Then there's the setup tool as well - should that be in a separate bundle? Finally, people often like to load PWAD files containing extra levels and mods. How do you do that with a bundle?

In the end, I decided to write a minimalist launcher program. Everything is in a single bundle file which, when launched opens a launcher window. The launcher allows the locations of the IWAD files to be configured and extra command line parameters entered. There's also a button to open the setup tool.



The launcher also sets up file associations when installed, so that it is possible to double-click a WAD file in the Finder, and an appropriate command line is constructed to load it. The interface is not as fully-featured as other "launcher" programs are, but it's simple and I think fits with the philosophy of the project.

Developing with GNUstep


The interesting part is how I developed the launcher. I only have occasional use of a Mac, so I developed it on GNUstep. This is an earlier version of the launcher interface while it was under development:

GNUstep provides an implementation of the same Objective C API that OS X's Cocoa provides, albeit with a rather crufty-looking NeXTStep appearance. It also has Gorm, which works in a very similar way to OS X's Interface Builder application. Using GNUstep, I was able to mock up a working program relatively easy. Constructing interfaces is very straightforward: the controls are simply dragged-and-dropped onto a window. I was able to get the underlying code into a working state before porting to OS X.

Porting to OS X


Porting to OS X had some hassles. Firstly, Gorm/GNUstep uses its own native format for interface files, which are different to the .nibs used on OS X. Recent versions of Gorm can save .nibs, but I found that the program crashed when I tried to do this. I eventually just reconstructed the whole interface from scratch in Interface Builder. GNUstep can use .nibs, so I just threw the older Gorm interface away.

The other main annoyance was that the format for property lists is different on OS X. It seems that GNUstep uses the older NeXT format, which Apple have since replaced with a newer XML-based format. Finally, icon files on OS X are in a proprietary .icns format, while GNUstep simply uses PNGs.

Both OS X and GNUstep try to force you to use their build tools (Xcode, ProjectCenter) which seem to generate a whole load of junk. I wrote a Makefile instead. There are some conditional parts to handle the two systems - OS X and GNUstep application bundles have different internal structures, for example. On OS X, the Makefile will do the complete process of compiler code, constructing the application bundle and generating a .dmg archive.

One thing I did find interesting is how OS X handles libraries. The full paths to any .dylib libraries (which are like Linux .so files or Windows DLLs) are stored inside a program when it is compiled. In my case, my application bundle needs to include the SDL libraries that Chocolate Doom depends upon. There's a convenient program called install_name_tool that can be used to change these paths after the program has been compiled. A special macro called @executable_path can be used to mean "the path where this binary is". I wrote a script to copy a program along with any libraries it depends on, changing its library search paths appropriately.

As one last finishing touch, there's a "Command Line..." menu item that calls into Terminal.app to open a command line window, if you're of the type who prefers the command line. The window sets up the PATH to point to the directory within the package that contains the chocolate-doom binary, and also sets up DOOMWADPATH to point to all the IWAD files you've configured within the GUI.

Thoughts on GNUstep


GNUstep was certainly incredibly useful in this activity; the ability to develop the program on my usual (Linux) laptop was very convenient. From a technical perspective, GNUstep seems to be a very impressive project. There is great usefulness in having a Linux implementation of the OPENSTEP (ie. Cocoa) API, which is what GNUstep is. However, the NeXT-style interface clashes horribly with almost any desktop environment that you might want to run under Linux (Gnome/KDE/etc), which is a huge turn-off.

The main problems are (1) the mini-window icons (which represent the running application) and (2) the menus, which appear in a separate window to the other application windows. I expect these are things that I could get used to if I was running a full GNUstep desktop where everything was like this; however, I'm not and it wouldn't really be practical for me to do so. It is possible to theme GNUstep to look nicer than its default "ugly grey square" appearance, but these problem remain.

GNUstep is a frustrating project in this respect. I can't help wonder if the full potential of the project is limited by the short-sightedness of its developers. It seems like they're too hung up on their goal of recreating NeXTstep, when I doubt there are many people who would even want to use such a system nowadays. This entry from the developer FAQ gives a good example of what I'm talking about:
How about implementing parts of the Application Kit with GTK?
Yes and No - The GNUstep architecture provides a single, platform-independent, API for handling all aspects of GUI interaction (implemented in the gstep-gui library), with a backend architecture that permits you to have different display models (display postscript, X-windows, win32, berlin ...) while letting you use the same code for printing as for displaying. Use of GTK in the frontend gui library would remove some of those advantages without adding any.

"Without adding any [advantages]" - except, of course, the ability to give GNUstep applications an appearance that is consistent with 99% of Linux desktops! If it was possible to use GNUstep to make applications that looked like Gtk+ apps, I bet it would be a lot more attractive to developers. The practical advantages of such a decision are dismissed completely in the face of architectural/technical advantages that probably have little practical use.

February 05, 2010 03:35 PM

February 02, 2010

Mike Watson

Video Games: The Revenge

I have some other stuff half written but not completed which includes my 'best of 2009' list (February isn't too late to put that out, right?) and one or two other random articles. Before I potentially get around to finishing those I would like to note that since my video games update I have actually completed Trine, Machinarium and Hitman: Blood ...

by Mike at February 02, 2010 01:50 PM

January 24, 2010

Colin Phipps

zsync's custom zlib

There seems to be a lot of confusion about zsync's custom embedded version of zlib. I had not documented the exact reason for the patches very well; so I have now committed an explanation of the changes to my own repo. As I may not make another release for a little while yet, I am posting the explanation here also.

I have started a discussion with the zlib maintainer about what sort of API changes could be made such that I could use the standard zlib, but so far no-one other than me understands the requirements and I'm not actually bothered about it (it's the Fedora people who are worked up about it). So, absent anyone else stepping in to do the work, it may take me a while to get to it.

Local changes to zlib used by zsync

There are two different modes of operation that zsync supports that these patches are designed to support:

Changes to the deflate code: Compressing a file in a way that is optimised for zsync's block-based rsync algorithm ‒ starting a new zlib block for each 1024 byte (for example) block in the source file. cf http://zsync.moria.org.uk/paper/ch03s04.html . This is used by makegz.c in the zsync source.

Changes to the inflate code: Working with files compressed with the standard gzip(1). To enable people to get started with zsync, I want it to work with existing compressed content. To achieve optimal results with standard gzip files, I made zsync capable of starting decompression in the middle of a block. In these cases it has to download the block header, then skips forward to the part of the block that gives it the data that it wants. cf http://zsync.moria.org.uk/paper/ch03s02.html

Contrary to some internet discussion, the changes are not related to rsync's changes nor to rsync compatibility (zsync isn't compatible with rsync - whatever that would mean ‒ nor do these changes relate in any way to the rsyncable gzip patch).

Changes to the deflate code

Essentially, I hijacked Z_PARTIAL_FLUSH to mean something new ‒ I want to start a new zlib block, but unlike Z_PARTIAL_FLUSH I don't need to emit a whole byte between blocks, so I took that out. Correctly this ought to be implemented by adding a Z_NEWBLOCKONLY_FLUSH or something like that instead of repurposing an existing state.

(If this were the only issue preventing the use of a standard zlib, distros could change it to use Z_PARTIAL_FLUSH with only a slight loss of compression efficiency.)

Changes to the inflate code

zsync uses the rsync algorithm to construct a desired file from an (e.g.) older local version of the file and then downloading any new/needed blocks from a server; the aim being to minimise the amount of data downloaded to construct the target file. It supports downloading those blocks from a gzipped version of the file on the server. If I want e.g. bytes 4096-8192 of the file from inside the gzipped file, I could download the whole zlib block (using a map of the compressed file that I construct beforehand and is downloaded first) containing the range 4096-8192 (zsync 0.1.0 used this method); but it can do better (fewer bytes downloaded) than that, by downloading just the block header and then downloading the bytes within that compressed block that correspond to bytes 4096-8192 of the contained data.

To do that, I need: a) to be able to start inflating at the start of "any length/literal/eob code in any dynamic or fixed block, or at any stored byte in a stored block.". That is what additional function inflate_advance() and the export of updatewindow() allow me to do.

b) make a map of the gzip file that lets me know what points I should start downloading at in order to inflate particular byte ranges of the contained content. To do this, I can decompress each byte range into a buffer of that size and then quiz zlib for the position in the stream; but I need to know that the position in the stream does correspond to the start of a code or the middle of a stored block (not, e.g., that we have just read a backref and the backref expands to span the boundary; in that case, I would need to know that position where the backref started and the lib doesn't give me a way to find that out).

This is given by inflateSafePoint(), by the modification to cause the inflator to return to the caller at each code in a dynamic block (the LENDO change), and the implicit guarantee provided by using my own copy of the library that I know how the library behaves around internal states and stream position (I need a guarantee that the library won't read ahead more than it needs to, and I need to access certain member variables directly to get the bit position in the stream).

I also removed inflate_fast as I did not want to spend the time working out if it was compatible with these changes.

January 24, 2010 08:41 PM

January 14, 2010

mewse

all locked up

be my friend to view the retarded crap i may or may not post to livejournal

January 14, 2010 09:30 PM

January 07, 2010

Colin Phipps

Bath Snow 2010/01

Bath is looking quite picturesque at the moment under an inch of snow.

Photos taken yesterday:

The Circus: [[!img Error: Image::Magick is not installed]]

more

January 07, 2010 08:48 AM

December 30, 2009

Jon Rimmer

The problem with Google

Generally speaking, I like Google and I like Google products. I like the web, and I’m glad there’s a company such as Google who are so invested in it as a platform, and determined to push it forward. And yet, sometimes I’m baffled by Google’s seemingly half-hearted commitment to developing some of their flagship products, especially when it seems to be hurting the arrival of the web-centric world they want and need.

Google Docs is, I think, a particularly standout example. It was launched in late 2006 and initially consisted of a web-based word processor and spreadsheet that had been acquired from a couple of startups. This, it appeared, was Google’s big play to break Microsoft’s Windows/Office symbiotic stranglehold, and prove that the web was a viable platform that could compete with the desktop. The future looked very interesting indeed. And then… what happened? Presentations were added mid-2007, again taken from a startup, and a form builder was added somewhere along the way. New features and enhancements occasionally trickled out, but major improvements and game-changing innovations just never occurred. It’s telling that in the wikipedia article on Google Docs the two most recent items in the history section are:

On September 17, 2007, Google released their presentation program product for Google Docs.

On July 6th, 2009, Google announced on their official blog that Google Docs along with other Google Apps would be taken out of beta.

That’s it. In the two years after adding presentations, the only change anybody thought worthy of putting into Wikipedia was that Google had dropped the beta label. And this was something they did on most of their products as a way to encourage their adoption by businesses, not a reflection of any great change to the underlying products themselves.

Meanwhile, Microsoft were hardly standing still. The 2007 release of Office tore up the rulebook to deliver a new look and feel and a radically different ribbon-based user interface. The entire product was overhauled to provide a far slicker and attractive experience, and to bring previously hidden functionality to the fore. 2010 will see another new version of Office, and while its changes will not be as monumental as 2007′s were, having used the beta I can say that the enhancements still put to shame the miniscule improvements there has been to Google Docs in the same period.

Now, Google Docs may never be able to compete on a feature for feature basis with a desktop product like Microsoft Word, at least not while still having to maintain compatibility with older browsers like IE6 and 7, but it seems to me like they’re not even really trying, and that’s what’s really disturbing. Google should be the setting the pace for complex, bleeding-edge web development. Their engineers should be making the most of the web deployment model to push out major enhancements to users at a rate Microsoft can only dream of. They should be paying graphic designers to reinvent the interface of Google Docs, combining the lessons of the Microsoft’s ribbon interface, with the natural flows of the web, and their own innovations, to produce a revolutionary user experience. You should be checking Google products every day to see what marvels they have delivered, and pinching yourself and going ‘that’s a web application!?’ every time. Instead, every time you load up Google Docs you get the same lame imitation of a 1990s desktop word processor, and nothing ever changes.

At this point, you may be screaming ‘Google Wave!’ And sure, Wave is an exciting product, and a great showcase for what web apps can be, but it’s one product, amongst the hundreds that Google develop. Wave is exceptional, when it shouldn’t be exceptional at all. Google has almost 20,000 employees, many of whom (we’re told) are some of the smartest programmers on the planet, is this really the best the can do? It seems to point to either an under-resourcing of important product teams or, more worryingly, a real lack of vision and ambition that has infected the whole company. Whatever it is, I hope they fix it, and Google starts to push its products along much harder and much more quickly.

by Jon at December 30, 2009 03:31 AM