Home ::
::  Blog
::  Photos
::  About
::  Contact

«« :: 2012 Jan :: »»


 
 

[No comments] 2011 oct 14 (fri) 17:27  :: 

Dennis MacAlistair Ritchie (username: dmr): 1941-2011

Creator of C (the programming language), key developer of Unix. As fellow innovator Rob Pike puts it,

"Pretty much everything on the web uses those two things: C and UNIX. The browsers are written in C. The UNIX kernel — that pretty much the entire Internet runs on -- is written in C [G: This includes the foundations of Apple's OS X]. Web servers are written in C, and if they're not, they're written in Java or C++, which are C derivatives, or Python or Ruby, which are implemented in C. And all of the network hardware running these programs I can almost guarantee were written in C. It's really hard to overstate how much of the modern information economy is built on the work Dennis did."

Hats off to you, Sir Dennis, and many thanks.

#include 

int main(void) {
    printf("goodbye, world\n");
    return 0;
}
 
 

[No comments] 2011 sep 15 (thu) 12:52  :: 

I'm currently working on layouts for an exhibition site at the museum I work at, and which shall remain nameless. I'm a web developer, not a graphic designer. This means that somebody else comes up with the designs and I have to make them work as web pages.

The design I've been given to work with uses a lot of slanted lines. If you've ever done web development you will know that slated lines are difficult to work with, given that pretty much anything non-graphical (i.e. HTML text. CSS areas, etc) can only be oriented rigidly horizontal and vertical.

I would very much like to tweak the design to make it fit better, but apparently this exhibition has a 40-page style manual and any tweaks will have to be approved by at least three different organizations.

Now for the delicious irony. The exhibition is part of a series, which shall also remain nameless, which celebrates the birth of the art scene in LA. The creative impulse! Artists running wild, painting and sculpting and photographing and breaking all social norms and taboos! The freedom of the human spirit! Yeah, whatever.

 

[No comments] 2011 jun 26 (sun) 13:22  :: 

YMO at Hollywood Bowl 2011

That's right: Yellow Magic Orchestra is playing the Hollywood Bowl. Tonight. I can't begin to communicate to you how big of a deal this is. I've been a huge fan of YMO since a particular day in 1985 when Toshi Sakurai popped a copy of BGM into his cassette deck and we listened to Cue. Changed the course of my life. Hard to believe I'm actually going to see them today. :)

UPDATE 2011-jun-27 02:43: Tonight Yellow Magic Orchestra played an incredible set at the Hollywood Bowl, their first show here since 1979. As a mid-period YMO fan I was hoping they would place Cue, the first song of theirs I ever heard, but aside from that the concert was everything I'd hoped it would be and even more. They were already great musicians back in the 1980s, but they're even better now.

YMO rehearsal - day 3 on Twitpic

I bought the concert souvenier book on my way out of the venue; it has lots of photos from their first U.S. tour back in 1979. Their stage setup tonight was almost exactly the same, with Sakamoto, Takahashi, and Hosono in front (left to right) and three musicians behind. In 1979 these three were (left to right) Kazumi Watanabe on guitar, Hideki Matsutake on the mighty Moog modular and associated gear, and Akiko Yano on synths. This time around it's Christian Fennesz on laptop-processed guitar, Tomohiko Gondo on laptops, fluegelhorn, and euphonium, and Cornelius on guitar.

After some nice reunion sets by Buffalo Daughter and Cibo Matto, and a DJ set by Towa Tei that includes the original Tighten Up, YMO takes the stage, opening with Firecracker. I enjoyed Buffalo Daughter's motorik groove and Cibo Matto was funky and cute and just plain odd, but YMO is clearly in a different class. They take ownership of the stage, exuding class and musicianship and a rock-solid rhythm. Four twentysomething guys are seated behind us and talk through much of the song; two of them seemed pretty knowledgeable and explain things to their friends; but whenever they see things they don't understand they make fun of them and try to show how sophisticated they are. This was seriously annoying during the taiko and kabuki performances but I decide I'm not going to let them ruin this for me; I think hey, at least they seem interested now.

After a pause (no words to the audience), YMO starts Behind The Mask. This is the track that KCRW has been flogging this past week, to the exclusion of lots of other tracks that I think are much better. I guess this makes sense, since it has English lyrics and was covered by Michael Jackson and Eric Clapton, but it's never been my favorite track and I think there others that hold up better. Maybe it's just that I'm a BGM and Technodelic fan and YMO just likes to play stuff from their first two albums. Whatever, YMO lays down a serious groove.

#YMO on stage NOW. (As the next table lights up another joint.) on Twitpic

Next is Riot In Lagos, from Sakamoto's B-2 Unit album. I thought it might be something like the double-prepared piano version from Playing The Piano, but no. The mood changes. YMO is tapping into some sort of Bill Laswell dub mind. This version is thick and heavy and deeply funky, serious almost to the point of anger, which I guess fits because after all it's called Riot In Lagos. Takahashi is cracking and Hosono is getting this unbelievably massive bass sound out of his Hofner and the three musos in the back fill up the sonic space with rolling and crashing waves of harsh digital noise. The first two songs were much lighter but YMO is now firmly establishing to the crowd that they are not to be trifled with. The hipsters in the row behind us seem unsettled and even a little intimidated but are clearly impressed. YMO doesn't return to this mood for the rest of the concert, but the song remains lurking in our subconscious.

The City of Light brings things back from the brink. It's just a beautiful song. Somewhere along the way I realize that the lighting people are painting water colors on the leading edge of the Bowl's bandshell. Roots and branches of light grow up from the ground and arch over the stage like the watercolor video for the song that I watched this afternoon. "Look at people, people floating. / Within the memory and what is real." Indeed. This. It's absolute bliss and we are all friends now.

#YMO playing #HollywoodBowl. First Concert in L.A. in 30 years. on Twitpic

I don't recognize the next piece, and neither did "skmt56", who helpfully tweeted a setlist. robertplunkett24 from the YMO list writes later that this was Tokyo Town Pages, one of their more recent tracks, which I somehow missed. Hosono starts this one off with massive slabs of bass and the piece is dubby and trancelike. The light show is freakin' amazing. Multicolored 3D bars of color climb up the edge of the band shell and the light leaks a bit onto the stage. The bars rotate and start moving off to the upper left. After a time they slowly rotate until they are moving slightly towards us from the upper right. Then the stage lights fade and the bars of light cover the stage and the inside of the shell and the perspective rotated until the bars are floating out of the stage towards us, then more vertigo and they're moving away from us. We are swimming in the midst of a three dimensional school of square multicolored bars coming from some source and going to parts unknown. At this point during the song somebody lights up some weed and everything gets even more relaxed and trippy.

Then YMO snaps out of it with some Seoul Music. Yay, some songs from Technodelic!! Seoul Music is mysterious and grooving. Sakamoto speaks into his megaphone about Korea but we don't get to hear him because the sound man must not be watching. This song is about a trip Sakamoto took to South Korea and could be read as a muted and subtle critique of Japan's occupation of that country before and during WWII, an unpopular message to be sending in Japan in the 1980s. I would be interested to hear Koreans' feelings about this song and YMO's performance of it here, so close to Koreatown.

Taiso is funky and comparatively light. Sound man turns on Ryuichi's mic for this one and the megaphone sounds cool. People here don't know the whole Japanese school calisthenics subtext of this song and probably don't get the humor, and I wish there were some dancers to come act out the motions, since it's a real hoot if you know what's going on -- "and before you know it you'll be TWITCHING!!!"

After that is Tibetan Dance. This is another tune from a Sakamoto solo album but Takahashi and Hosono played on the original recording so it's an honorary YMO tune too.

After that it was back to 1979, with Thousand Knives, Cosmic Surfin', Tong Poo, and a subdued version of Rydeen. Sound man is asleep for most of the guitar solo on Thousand Knives! No soup for you, sound man! But we get to hear a little wailing right at the end (you can hear it a lot better in this video). Frankly I wish YMO would play more stuff from their other albums but the first two albums are the ones people here in the States seem to know the best. They're probably also easier to perform and maybe the YMO guys just like them better.

Whatever the case the songs still sound amazing, funkier and fatter and fuller. I'm thinking that maybe this was what YMO has always wanted to sound like but was never quite able to achieve with the technology back in the late 70s and early 80s. On After Service they just didn't sound as thick. Synthesizers and sequencers were tougher to wrangle back then I guess, and maybe we just didn't have subwoofers like we do now, because man, Hosono's bass is deep! Seriously, I've been to a bunch of Bowl concerts by now, and the bass sound was better than I've ever heard it before.

Never thought I would see @ymo Yellow Magic Orchestra live.  ... on Twitpic

I'm also struck by how live everything is. A couple tracks had sequenced bass parts while Hosono played xylophone, and I thought I heard fragments of the original Andy Partridge guitar parts during Riot In Lagos, but these may have been played by one of the guitarists. But otherwise it seems that nearly every sound is played or at least (in the case of the laptop-processed guitar effects) initiated by a human. Fennesz and his laptop-wielding horn player neighbor are handling the synth-noise parts that Hideki Matsutake produced with that mighty Moog modular back in the day.

I am deeply impressed by the restraint of all the musicians. There is very little showboating, it's all about the music, letting the songs speak clearly through their instruments. Sakamoto mostly concentrates on solid keyboard parts, often leaving the melodies to be played by Gondo on his synthesized, harmonized, and effected horns. Hosono is particularly restrained: that guy can lay down the funky bass but he keeps it real simple the whole way through, plucking that incredibly deep tone out of his Hofner. As a bassist myself, I wonder if this was due to the sheer magnitude of the Bowl's subwoofers -- I bet there's something in the physics of speakers that are moving so much air where they sound muddy and awful with anything but extremely simple bass lines. Whatever the case hats off to Haruomi for keeping things firmly rooted.

All around the music is superb. These guys are in their 50s and 60s and they're at the top of their game, making some awesomely emotional, sophisticated, and booty-shakin' music. And then Yoko Ono walks on stage.

She says some neat things about what an honor it is to play with YMO(!!), and how we need to be generous, that when we help others we're helping everybody including ourselves. Then she screams and sobs for several minutes while YMO lays down a thick and meaty 12- or 16-bar blues (sorry, didn't cound measures). Later, the Net informs me that this was an actual composition, called "It's Been Very Hard", which she released after John Lennon's murder. I don't want to make light of her feelings, but I did not enjoy this piece, but Yoko doesn't seem to care what I think. Fennesz and Cornelius even wail along with her a couple times in a sort of fractured Japanese/Teutonic no-wave techno blues call-and-response. During this business, I hear one of the hipsters behind me telling his buddies how he met Yoko in Central Park in New York one day; he told he liked her music but she didn't believe him until he named some track titles. Around this point in his story, a couple bars into a section, Yoko puts down her microphone and just walks off the stage. It doesn't look like she told YMO she was going to do this. It's hard to tell from when I'm sitting but it seems like the band kind of looks at each other, shrugs, and plays til the end of the changes. Okay. Well that happened. That's Yoko Ono I guess.

������ #ymo on Twitpic

Pregnant pause. YMO starts Hello Goodbye and then Buffalo Daughter is walking on stage with Yoko Ono, followed by the kabuki dancers and taiko drummers. The Bowl is lit up in rainbows, people are waving their arms and taiko sticks back and forth, and cherry blossoms of light fall down they edge of the band shell and then it's over. There's no encore. The crowd wants more. I want more darnit, I've been waiting since 1985 to hear these guys! But they turn on the lights and we all start to shuffle out. "Look at people, people drifting. / Look at people, people moving. / Look at people, people floating. / Within the memory and what is real. / Into the avenue of moonlight."

I listen to the crowd as we walk. I hear a number of people telling each other how they heard about YMO. There are no t-shirts. I buy a tour book and CD. I want YMO to make money on this show so they think about coming back soon.

What an amazing night! Thank you to Sakamoto, Takahashi, and Hosono for all that great music that has carried such meaning for me over the years. Thank you to Una for putting up with me these past weeks while I got all worked up over this concert, and to M and C who emailed me the Bowl schedule and who took a chance to come see a band they'd never heard of before.

YMO, please come back to Los Angeles!

UPDATE 2011-jun-27 10:26: Added the Twitpic images and links, filled out descriptions. UPDATE 2011-jun-28 05:35: Added notes about Tokyo Town Pages and Yoko Ono's It's Been Very Hard. chuzmcfz from the YMO list says the SF setlist included Gradated Grey, Lotus Love, Ongaku, and Cue, all of which I like more that their earlier material.

 

1 comments 2011 may 31 (tue) 20:41  :: 

I've just finished my last piece of a Kit-Cat Pie, a culinary delicacy from the 1600s, which I heard about while reading the third book in Neal Stephenson's Baroque Cycle trilogy.

Kit-Cat Pie with some ale

The Baroque Cycle is set in the 1600s, at the dawn of modern science, finance, and politics. The story follows Daniel Waterhouse, the son of an English Dissenter, as he becomes a Natural Philosopher and fellow of the Royal Society and navigates the politics of the day, particularly the mathematical and philosophical conflict between Isaac Newton and Gottfried Liebniz. One of the themes of the book is how many things that we consider quite separate now were at that time still mixed. For example, what we consider science was just emerging from, and still intermingled with, the more ancient alchemy. People were still figuring these things out. (An implicit message of the book is that there are things we're working out today that will one day be considered distinct. It's looking like my jack-of-all-trades web technologist job is one such thing).

Some of my favorite parts of the book are scenes in the Kit-Cat Clubb, a gathering place for the progressive Whig politicians and their familiars like Daniel. Goings-on at the Kit-Cat revolve around drinking, spontaneous recitations of verse, and meat pies. One passage in particular is a paeon to these pies, in much the same vein as the insanely detailed description of Randy Waterhouse's breakfast of Cap'n Crunch in Cryptonomicon.

The other day I googled around for information on the Clubb and came across Ophelia Fields' book The Kit-Cat Club: Friends who imagined a nation. It turns out that not only was the Clubb a real entity that played an important part in British history, but the pies were more integral to the Clubb than I thought, her web site includes a downloadable PDF with recipes for these pies from circa 1700. It was clear that I'd have to make one myself. After much toil I completed recipe #4, a pie containing mutton, onions, apples, raisins, and various spices, wrapped in an insanely butterific pie crust and topped with a gravy made from more butter, mutton, bacon, onions, carrots, and a lemon.

Like Stephenson, Fields points out that things back in the 1700s were a little blurry -- English cuisine hadn't adopted the French-style distinction between savory and sweet, and I can confirm that. The pie had a strange tangy flavor that definitely took some getting used to. I don't know if I just got used to or it or whether the flavor changes when it keeps in the fridge, but it really started to grow on me as we've eaten it over the last couple days. Una and I both came to really enjoy the complex flavor it had. If it wasn't for the super-unhealthy crust and the long preparation we would totally make this all the time. As it is we'll probably put it on the special-occasions list.

1 comments
 

[No comments] 2011 may 21 (sat) 2:38  :: 

Whatever you think about Richard Stallman, you have to admit he is prescient. I came across Vivek Haldar's post about how Stallman's 1997 article "The Right to Read, about a dystopian future, predicted current rules around ebooks on the Kindle and iPad, basically that sharing equals stealing. Here's an excerpt:

...if he lent her his computer, she might read his books. Aside from the fact that you could go to prison for many years for letting someone else read your books, the very idea shocked him at first. Like everyone, he had been taught since elementary school that sharing books was nasty and wrong—something that only pirates would do.

The next thing in my queue was a news post from The Command Line, which contains the following items:

If you're not mad you're not paying attention. In case you haven't gotten the cyberpunk-dystopian-future-that's-actually-the-present vibe yet, The Command Line also includes this item:

William Gibson's most famous quote is probably, "the future is already here, it's just not evenly distributed yet". Looks like our future already arrived in China...

 

[No comments] 2011 may 20 (fri) 13:37  :: 

Dennis and Ken, hacking.

 

The computer center is empty,
Silent except for the whine of the cooling fans.
I walk the rows of CPUs,
My skin prickling with magnetic flux.
I open a door, cold and hard,
And watch the lights dancing on the panels.
A machine without soul, men call it,
But its soul is the sweat of my comrades.
Within it lie the years of our lives.
Disappointment, friendship, sadness, joy,
The algorithmic exultations,
The long nights filled with thankless toil.
I hear the echoes of sighs and laughter,
And in the darkened offices
The terminals shine like stars.

 

(c) Geoffrey James

 

5 comments 2011 may 5 (thu) 9:06  :: 

I'm in the process of upgrading a site from Django 1.0 to 1.3 and ran into an unexpected problem. There are a number of pages that use django.contrib.gis to display Google Maps, and these all inexplicably stopped working. These maps don't use any of Django's serious GIS features, they're just maps with a bunch of points on them.

After banging my head against my desk for awhile I figured out the problem and remembered how frustrating it was to get it set up in the first place--there don't seem to be any good tutorials on how to just display a simple map. Hopefully this will fill that void.

So here's a basic Django view in which we place a series of markers with links:

from django.conf import settings
from django.shortcuts import render_to_response
from django.contrib.gis.maps.google.gmap import GoogleMap
from django.contrib.gis.maps.google.overlays import GMarker, GEvent

def google_map(request):
    points = [
        {'lat':'35.42',     'lng': '139.42', 'href':'http://en.wikipedia.org/wiki/Tokyo'},
        {'lat':'51.30',     'lng':   '0.73', 'href':'http://en.wikipedia.org/wiki/London'},
        {'lat':'40.43',     'lng': '-74.0',  'href':'http://en.wikipedia.org/wiki/New_York_City'},
        {'lat':'34.03',     'lng':'-118.15', 'href':'http://en.wikipedia.org/wiki/Los_Angeles'},
        {'lat':'36.774402', 'lng':'-119.755405', 'href':'http://en.wikipedia.org/wiki/Fresno'},]
    markers = []
    for point in points:
        marker = GMarker('POINT(%s %s)' % (point['lng'], point['lat']))
        event = GEvent('click', 'function() { location.href = "%s"}' % point['href'])
        marker.add_event(event)
        markers.append(marker)
    google = GoogleMap(center=(0,0), zoom=1, markers=markers,
                       key=settings.GOOGLE_MAPS_API_PASSWORD)
    return render_to_response('google_map.html',
                              {'google': google,})

Notes:

  • Each point has latitude, longitude, and a URL. For each of these points we create a GMarker, which is the red push-pin-looking thing placed on your map.
  • To each GMarker we add a GEvent, which is just a wrapper around some Javascript. In this case we're launching a URL when the user clicks on the marker.
  • Each GMarker is added to a list.
  • Next we create a GoogleMap object, which has a center point, a zoom level, our list of GMarkers, and your Google Maps API key, which you can get from http://code.google.com/apis/maps/signup.html. No, you can't use mine. :P When you create this object it contacts Google to verify your key, and makes a bunch of functions available to your template.
  • As an aside, note that my API key is named GOOGLE_MAPS_API_PASSWORD. Django settings are displayed in debug screens, except for setting names containing "password", which are obscured. It's not good practice to use DEBUG = True in your production environment so you shouldn't see this anyway, but why take chances?

Here's your google_maps.html template.:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
{{ google.xhtml }}
<head>
  {{ google.style }}
  {{ google.scripts }}
</head>
<body onload="{{ google.js_module }}.map_load()" onunload="GUnload()">
  <div id="{{ google.dom_id }}" style="width:600px; height:400px;"></div>
</body>
</html>

Notes:

  • {{ google.xhtml }} is apparently a bit of HTML that helps these maps work with IE. It needs to go at the top of your page.

  • {{ google.dom_id }} is the CSS id of the <div> that will contain your map. You can control the size of your map using the style= attribute or some CSS.

  • {{ google.scripts }} is the Javascript that will actually write the map onto your page. It consists of a link to a Javascript lib hosted by Google, and a script that writes your map and points and whatever else.

  • {{ google.style }} is the CSS that will make it pretty.

  • {{ google.js_module }} is the name of a Javascript variable, into which is inserted the function actually writes the map and your points into the <div> specified by {{ google.dom_id }}. You have to trigger this script on your page; I do it in the <body> tag. Make sure you use {{ google.js_module }} to call the script! Django changed the name of this script between 1.0 and 1.1; I had hard-coded the name, which was why my maps didn't display. The script looks like this:

    <script type="text/javascript">
      //<![CDATA[
    
      var geodjango = {};
    
      geodjango.map_load = function(){
        if (GBrowserIsCompatible()) {
          geodjango.map = new GMap2(document.getElementById("map"));
          geodjango.map.setCenter(new GLatLng(0, 0), 1);
          geodjango.map.setUIToDefault();
          ...
        }else {
          alert("Sorry, the Google Maps API is not compatible with this browser.");
        }
      }
    
      //]]>
    </script>
    

And there you have it. You should see a nice Google Map with some points plotted on it. Thanks for visiting, and enjoy your map-making!

5 comments
 

«« :: 2012 Jan :: »»