peteg's blog

Persepolis

/noise/movies | Link

Rear Window

/noise/movies | Link

Clubland

/noise/movies | Link

Tim Winton: Breath.

/noise/books | Link

I liked it, and can think of little more to say.

Tropic Thunder

/noise/movies | Link

At The Ritz with Jen.

Run Fatboy Run

/noise/movies | Link

Graham Reilly: Saigon Tea

/noise/books | Link

Meh. Apparently the author spent three years in Hồ Chí Minh City and the best he could come up with is this. In a tale spread across three cities, Glasgow is the only one that is described in more detail than a tourist could manage after a day's visit, and if you really wanted to know about Scotland you'd be reading Irvine Welsh anyway. Reilly's evocation of Saigon hardly exceeds what one learns from the Lonely Planet, soured by the usual questions ("Why do the people smile so much after all that's happened?") that are never properly addressed by pop writers. Let's not even mention Melbourne, the book hardly does. One ends up with no greater insight about the places, the peoples, mixed marriages, cross-cultural humour or any other thing one finds canvassed here.

I found it especially irritating that his Saigon was little more than Westerner-friendly District 1, with District 3 being characterised as a rich people's ghetto, and District 4 as comprised entirely of criminal trash. He doesn't even mention Chọ Lớn! Lame, lame, lame... there is no depth here, and the humour is mostly clunky and derivative to boot. Sliding in some pigeon tiếng Việt does nothing for this book.

Apparently he is an editor at the The Age.

BTW, the best way to see Vietnam is from a motorbike. Walking everywhere gets old fast with all the street hawkers. If you don't want to drive, either find a mate who does or pay a local. Bring a helmet.

The Bank Job

/noise/movies | Link

Iron Man

/noise/movies | Link

The Simpsons Movie

/noise/movies | Link

National Treasure 2: Book of Secrets

/noise/movies | Link

Worse than the original?

Nam Le: The Boat

/noise/books | Link

I picked this up on the strength of a gushing Smage review, and really, what's not to like: a young bloke, born in Vietnam and raised in Melbourne, cranking out self-confident self-aware prose in Iowa.

There are so many reviews and things — many helpfully catalogued by the man himself — that I have little to add. I would more strongly recommend this interview from earlier in the year if the interviewer weren't so overbearing.

My favourite effort was the first story, Love and Honour and Pity and Pride and Compassion and Sacrifice, which is available here. Perhaps the stylistically weakest is his Winton-alike Halflead Bay, and even that is redeemed by some strong themes.

Another one from the GLog paper.

/hacking | Link

The h-tree example, another infinite image.

Argh, your browser does not support SVG! Try FireFox or Opera.

You can download the standalone file here. Unfortunately I can't seem to get the gzip compression to work, so that file is a little bit huge for what it is. Here's the code:

l :: Picture
l = Canvas 1 1 [Line (0.5, 0.5) (0.5, 1)]
;
h :: Picture
h = Overlay l (Beside 1 1 (Flip s) s)
;
s :: Picture
s = Rotate h
;
htree :: Picture
htree = h
;
main = htree

Another old friend.

/hacking | Link

Here is a friend of the fish cycle: the "fish limit".

Argh, your browser does not support SVG!

Again, if you look at the free standing SVG file, you should be able to exercise the scaling feature of your SVG implementation.

Although the SVG rendering consists of only a finite set of lines, the original FLAN source code describes an infinite set; the interpreter decides to stop generating that set once the lines get too small.

polyline :: [(Num, Num)] -> [Shape]
polyline pts =
  match pts with
      []   -> []
    | p:ps ->
        let mkP :: (Num, Num) -> [(Num, Num)] -> [Shape]
            mkP prev qqs =
              match qqs with
                  []   -> [] -- Don't close the polygon.
                | q:qs -> (Line prev q) : (mkP q qs)
              end ;
         in mkP p ps
  end
;

leftFish :: Picture
leftFish =
    Canvas 1 1
      ((Line (1/8, 3/5) (1, 4/5))
       : (polyline [ (1, 1), (1/8, 3/5), (1, 1/8), (3/4, 0), (1, 0)]))
;

rightFish :: Picture
rightFish = Flip leftFish
;

fish :: Picture
fish = Beside 1 1 leftFish rightFish
;
sideFish :: Picture
sideFish = Rotate fish
;

foodChain :: Picture
foodChain =
  let p :: Picture
      p = Beside 1 1 foodChain sideFish ;
  in Above 1 1 p p
;

main = foodChain

Dương Thu Hương: Paradise of the Blind

/noise/books | Link

I have mixed feelings about this book; the endless food pornography dulled the edge of some sharp social commentary, particularly centred around the land reforms and the lifestyles of the post-war political cadres. Some of the loyalties are stretched super-thin, and the uncle character is barely more than a caricature. I enjoyed it when the plot was moving, and I do appreciate that many nuances were lost in translation.

The Herald Tribune has a good interview with the author. It was written at an interesting time in the country's history and apparently things are still not settled.

An old friend.

/hacking | Link

In a previous life I implemented GLog, a declarative graphics engine based on some very old ideas. In this one I've been implementing Peter Henderson's even older Functional Geometry as part of an assignment for JAS. If your browser can render SVG and HCoop's webserver is behaving itself, you should see the dear old "fish cycle" from the paper Logic programming graphics and infinite terms by P. R. Eggert and K. P. Chow.

Argh, your browser does not support SVG!

If you look at the free standing SVG file, you should be able to exercise the scaling feature of the SVG implementation in your browser. The FLAN source code is this:

polyline :: [(Num, Num)] -> [Shape]
polyline pts =
  match pts with
      []   -> []
    | p:ps ->
        let mkP :: (Num, Num) -> [(Num, Num)] -> [Shape]
            mkP prev qqs =
              match qqs with
                  []   -> [] -- Don't close the polygon.
                | q:qs -> (Line prev q) : (mkP q qs)
              end ;
         in mkP p ps
  end
;

leftFish :: Picture
leftFish =
    Canvas 1 1
      ((Line (1/8, 3/5) (1, 4/5))
       : (polyline [ (1, 1), (1/8, 3/5), (1, 1/8)
                   , (3/4, 0), (1, 0)]))
;

rightFish :: Picture
rightFish = Flip leftFish
;

fish :: Picture
fish = Beside 1 1 leftFish rightFish
;

sideFish :: Picture
sideFish = Rotate fish
;

matrix :: [[Picture]] -> Picture
matrix = col
;

col :: [[Picture]] -> Picture
col pps =
  let mkP :: [[Picture]] -> (Picture, Num)
      mkP pps = match pps with
                    []   -> (Empty, 0)
                  | p:ps -> match mkP ps with (pic, n) ->
                              (Above 1 n (row p) pic, n + 1)
                            end
                end ;
  in match mkP pps with (p, n) -> p end
;

row :: [Picture] -> Picture
row pps =
  let mkP :: [Picture] -> (Picture, Num)
      mkP pps = match pps with
                    []   -> (Empty, 0)
                  | p:ps -> match mkP ps with (pic, n) ->
                              (Beside 1 n p pic, n + 1)
                            end
                end ;
  in match mkP pps with (p, n) -> p end
;

main =
  let u :: Picture
      u = fish ;
      l :: Picture
      l = sideFish ;
      d :: Picture
      d = Rotate l ;
      r :: Picture
      r = Rotate d ;
  in matrix [[d, l,     l],
             [d, Empty, u],
             [r, r,     u]]

There is an implementation available in LISP.

A Passage to India

/noise/movies | Link

David Lean, though I didn't know it at the time.

If...

/noise/movies | Link

Wanted

/noise/movies | Link

At The Ritz with Jen. What a turkey. I'd prefer less blood, better editing and more action. Arnie is sorely missed in this genre.

The Trials of Henry Kissinger

/noise/movies | Link

Well made and quite depressing. You can watch it at Google Video and there's a somewhat pointless official website.