GIGO: words unreadable aloud
Mishrogo Weedapeval
 

 

GIGO: words unreadable aloud

  Wednesday 30 November 2005
GADTs in Scala

This month saw some exciting hints from the Scala mailing list, and LtU, about GADTs in Haskell, in Scala, and perhaps eventually even in C#.

Martin Odersky wrote that there would be support for GADT's in the new version of Scala. (The current compiler is written in a variant of Java; it is being rewritten in Scala itself.)

SPJ et al have rewritten the Wobbly Types paper, providing a simpler implementation and semantics for GADT's. GADT's revisited http://lambda-the-ultimate.org/node/view/1132

And LtU http://lambda-the-ultimate.org/node/view/1134

And the C# connection ...

Andrew Kennedy and Russo have a "GADTs and Object-Oriented Programming" paper; there's an abstract near the end of Kennedy's generics page, and a complete PDF version here.
11:56:47 PM   comment/     


  Thursday 24 November 2005
Chiduckey

So, Deb tells me that her boss is making turducken today. Why anyone would name a food with a name that starts with that particular four-letter combination is beyond me. Seems like they could just as easily have done it from the inside out, yielding chiduckey instead. Oh, well, I guess it's too late. Google says 187,000 for the T word, 19 for my version.
11:27:33 PM   comment/     


  Thursday 10 November 2005
Interest inversion

Here's a weird result: to some extent, the more interesting and prolific a weblog writer is, the less of their stuff I'll read. It's not consistently true, but happens more often than I'd like.

I get busy. A few non-bloglines days pass. I come back, and wham! Too many hundreds of unread things.

Examples:

  • O'Reilly Radar -- stuff I remain interested in, but just too much of it.
  • Dave Pollard -- Dave's postings are so well-written, thoughtful, and feel so much more real-life important than most of what's out there, that I feel like I really ought to read each one. But they are also so thought-provoking that I need to set aside time to think through implications and applications ... and I just don't end up finding the time. So those stack up, but I can't bring myself to just hit the catch-up thing.
  • Jon Udell -- thought provoking like Dave's, except with a tech bent that has me itching to try out many of the ideas he writes about. But, again, no time for that.

By contrast, folks who write shorter entries, and write one or fewer of them a day, tend to be quick and easy to catch up on in the interstitial time. Most of the Python-, Ruby- and Haskell-related weblogs that I read fall into this category.

Despite my continuing strong interest in programming languages, LtU is getting too prolific. In a similar kind of irony to my main point here, their improved server interface and performance may actually hurt the community.

A few are just lost causes, no way would I find the time to keep up with them. I have a bloglines category "Too Much" that has these three feeds in it:

  • Erik Thauvin -- too many postings, and each one contains way too many interesting links
  • BoingBoing -- just for fun
  • James Robertson -- (nice redesign, by the way. I hadn't seen the site itself in months).

11:56:07 PM   comment/     

  Wednesday 9 November 2005
Cheap Ruby memoize using Hash default block

As MenTaLguY mentioned, you can give a block to Hash.new in Ruby. This leads to pretty simple memoization. E.g.,

# Demonstrate a "memoizing" behavior of certain Hash usage
def fib_n ( n )
    if n <= 1
        n
    else
        fib_n( n-1 ) + fib_n( n-2 )
    end
end
$fib_mh = Hash.new do |h,n|
        if n <= 1
            h[n] = n
        else
            h[n] = fib_m( n-1 ) + fib_m( n-2 )
        end
    end
def fib_m ( n )
    $fib_mh[ n ]
end
def compar (lim)
    # puts lim
    strt = Time.now
    puts fib_n(lim)
    mid = Time.now
    puts fib_m(lim)
    last= Time.now
    puts "Lim(#{lim}), no memoing, takes #{mid-strt} seconds."
    puts "Lim(#{lim}), memoing, takes #{last-mid} seconds."
end
compar( ARGV[0].to_i )

Unless you have a lot of time, don't try running this with an argument bigger than the mid-30s.

The RAA has a memoize mixin, but it doesn't use quite the same trick. It's still pretty short, though. The guts:

module Memoize
   MEMOIZE_VERSION = "1.1.0"
   def memoize(name)
      meth = method(name)
      cache = {}
      (class << self; self; end).class_eval do
         define_method(name) do |*args|
            cache.has_key?(args) ? cache[args] : cache[args] ||= meth.call(*args)
         end
      end
      cache
   end
end

11:56:34 PM   comment/     

  Saturday 5 November 2005
Tangents on Blackdog, innovations, idea markets

Chris Double's weblog is mostly about a few interesting programming languages, including Factor and Erlang, and frequently about implementations of those on smaller devices. He recently moved it to http://www.bluishcoder.co.nz/ . A recent entry included a mention of project blackdog, a cool linux-on-a-USB handheld computer. That led to a review of Blackdog by Mickaël Rémond (whose non-ASCII characters confuse vi on Mac OS X at the moment) on his "3pBlog" ("Performance, Process, Parallelism") (and other Projects). A previous entry there pointed to Boris Mann's suggestion that XMPP (Jabber's protocol) would be a good base upon which to build a peer-to-peer social network.


On a different tangent, Dave Pollard's page of links for the week had a few gems:

  • Insider Pages, a peer-to-peer sort of consumer reeports / BBB / yellow pages site;
  • links to a couple of folks who write about innovation -- Umair Haque and Paul Schumann. Nice phrases in those URLs -- "Bubble Generation" and "Innovation Commons".

That last notion, "Innovation Commons", reminded me that I had seen something this week about prediction markets. I wrote a weblog entry or two about those and futurists in general, about a year and a half ago. It's nice to see that there is now a reasonable Wikipedia article about them.
12:10:34 PM   comment/     


  Thursday 3 November 2005
My google and weblog presence summary

So, at my recent reunion, I told Cloe that she could just Google me. She asked "what would I be looking for?"

So I figured I'd summarize a few of the things one can get to by Googling for me.

Today, the top result is the most popular single entry I ever posted to my weblog -- my suspicion about one possible reason for the 0xCAFEBABE magic hex string that starts every Java .class file.

http://radio.weblogs.com/0100945/2002/04/19.html

(I'll shorten my weblog links like this:

http://tmp.i.am/2002/04/19.html

but that redirector pops up some ads. If you don't have a decent popup blocker, just substitute

http://radio.weblogs.com/0100945/

for the "http://tmp.i.am/" part of the URLs below.)

If you're new to weblogs in general general and/or Radio Userland weblogs in general particular, and/or my weblog in particular particular, click on the "About Me and GIGO" link. That gets you to

http://tmp.i.am/about/about.html

which tells a little about my weblog and me.

Two of the other local links on any of my weblog pages are "GIGO TOC" and "stories"

http://tmp.i.am/stories/BlogTOC.html#today

The TOC is the Table Of Contents, which I maintain manually because Radio Userland lacks a table-of-contents feature. I am pretty careful to make up relatively decent titles for my weblog posts, so one can read through there to get an idea of what I write about.

The "stories" link,

http://tmp.i.am/stories/

leads to some of the longer pieces I've written, and a couple of silly other imported things. As with most weblog things, they're listed in reverse chronological order.

They include

  • Psychopathia Dyschronialis -- a humorous faux-treatise on the illness of losing track of time.
  • Long Trails in North America -- a list of most of this continent's long-distance trails that I know of. A Google search for long trails north used to bring up this page as the top result. It's now slipped to second.
  • Job Search Ideas for the recently Laid Off -- when I was out of work for 7 months in the ickiest part of 2001/2002, I kept track of the job search strategies that I tried. Once I was again employed, I wrote up this page. So ever since mid-2002, it has been the top Google result for Job Search Ideas. Perhaps I should try selling Google-ads on it, but it really doesn't seem to get all that many hits, despite its should-be-advantageous location.
  • City nicknames -- here's where the hits are. Easily ninety percent of the page views of anything on my Radio site are views of this page. Today, it's the top Google hit for city nicknames, but it usually trades places with the Trivia Asylum page that you'll see up there. I suppose I ought to just redirect it to wikipedia, though a few of my humorous contributions there probably wouldn't survive.
  • 'Long Walks' Books -- books about long walks their authors have taken.
  • Tahoe trip report, July 2001 -- a true trip report, all in limericks. 'Nuff said.

Finally, here are a few of my other web presences, about which I may choose to write more details later:

  • http://zia.pycs.net/ -- in New Zealand
  • http://scruzia.blogspot.com/ -- had to make an account here in order to comment on another blogger blog.
  • http://dal.i.am -- redirects to my pages at my last dialup ISP, got.net.
  • http://homepage.mac.com/landauer/ -- On Apple's "mac.com". Slow servers long and ugly URLs. It was the guys from NeXT, and their WebObjects software, that ended up in charge of this part of Apple, and they never "got" the importance of user interface, nor did they ever realize that the URL is part of the user interface, no matter how much you wish it weren't.

    I really ought to clean up the front page here.

    Anyway, there is a pix/ subdirectory there, and a bunch of further subdirectories with photos in them. An index of sorts named "unlinked.html" lives in that pix/ directory, but I have a policy of not ever making any true links to that whole URL. I don't really know why anymore.

  • http://scruzia.spymac.com/ -- notable only for the puppy pix.

On LtU, Flickr, del.icio.us, and a few other places, my user id is scruzia.
11:47:41 PM   comment/     


  Wednesday 2 November 2005
Gap, Pass, Notch, or Saddle?

Combining two of my major geekeries (maps and word-meanings), here's a map of gap-like (pass-like) geographical features, color-coded to what name is used for the place. http://seattle.gii.net/~pfly/gnis.gap-pass-notch-saddle.jpg

Near here (Santa Cruz Mountains), there are Saratoga Gap (Highway 9 at 35), Waterman Gap (Highway 9 at 236 (the one north of Boulder Creek, which was recently made vastly worse by Cal-Trans)), and Patchen Pass (aka "The Summit", the highest point of Highway 17). Interesting to see that the vast majority of "Gap"s are in the Appalachians.

[ via http://gpstracklog.typepad.com/gps_tracklog/2005/11/gap_pass_notch_.html and http://tinyurl.com/dpx74 ]
10:06:21 PM   comment/     


  Tuesday 1 November 2005
Creeky Egrets

I work about a half block from the creek. I take off for a break once every couple of days, walk over to where the road crosses, and look to see what's there. Most days, I'll see a big white egret or two; one of them sometimes hangs around next to a duck. Today there were three egrets, two of them normal sized, and one half-sized. An adolescent, I guess. A couple of weeks ago, I saw a black cat there for a couple of days.
11:33:40 PM   comment/     



Click here to visit the Radio UserLand website. Click to see the XML version of this web page. © Copyright 2007 Doug Landauer .
Last update: 07/2/7; 21:39:45 .
Click here to send an email to the editor of this weblog.