Shut 'er down, Edna!

Posted by Chris Wed, 15 Nov 2006 16:02:10 GMT

I'm-a-thinkin' of discontinuing this blog in favor of posting my links to Blue Dot, as I've already been doing for a couple of weeks. So if you read this, please go to http://bluedot.us/users/masto (you can get an RSS feed there, too).

Also please consider signing up and sending me a friend request so you can dot interesting links and we can get the whole social aspect going.

Posted in  | no comments

Editors Wanted

Posted by Chris Mon, 24 Apr 2006 14:58:01 GMT

If:

  • I know you personally
  • You'd be willing to contribute interesting links to this blog

and

  • You are not infected with bird flu

shoot me an e-mail.

Posted in  | no comments | no trackbacks

Ooh, pretty

Posted by Chris Wed, 22 Feb 2006 03:41:46 GMT

Brighthouse Theme

Love this theme. I wish it'd been there before I went through the pain of converting my other blog's theme. Maybe I'll use it here, since this one is the default that comes with Typo.

Posted in  | no comments

Why Software Is Not There Yet

Posted by Chris Sat, 10 Dec 2005 09:06:24 GMT

So when I tried to post the previous entry, I got a 500 error. I don't really know ruby, but there was at least a nice backtrace in the typo log. The operative bit:

RuntimeError (wrong dateTime.iso8601 format):
    /lib/xmlrpc_fix.rb:9:in `dateTime'
    /usr/local/lib/ruby/1.8/xmlrpc/parser.rb:538:in `tag_end'

It was also nice enough to log the incoming XML-RPC data. The operative bit of that:

{"name"=>"dateCreated",
 "value"=>{"dateTime.iso8601"=>"20051210T08:28:40+0000"}}

Now, thanks to open source and all that jazz, I could pretty easily find this code, repeated here since it's short:

def self.dateTime(str)
  if str =~ /^(-?\d\d\d\d)(\d\d)(\d\d)T(\d\d):(\d\d):(\d\d)Z?$/ then
    a = [$1, $2, $3, $4, $5, $6].collect{|i| i.to_i}
    XMLRPC::DateTime.new(*a)
  else
    raise "wrong dateTime.iso8601 format"
  end
end

For what it's worth, this is overriding a method from ruby's own xmlrpc library, the version of which on my system being very similar but not accepting the final "Z" (for Zulu AKA GMT AKA UTC). That's not good enough, since MarsEdit has chosen to send the time zone, even though it's Zulu, as +0000.

But also on the web, I found this, and if you click on the "Source" bit of the dateTime method, you see a much longer and fancier function that attempts to actually handle ISO8601, including the format MarsEdit sends. There we see:

when /^(-?\d\d\d\d)-?(\d\d)-?(\d\d)T(\d\d):(\d\d):(\d\d)(?:Z|([+-])(\d\d):?(\d\d))?$/
  a = [$1, $2, $3, $4, $5, $6].collect{|i| i.to_i}
  if $7
    ofs = $8.to_i*3600 + $9.to_i*60
    ofs = -ofs if $7=='+'
    utc = Time.utc(a.reverse) + ofs
    a = [ utc.year, utc.month, utc.day, utc.hour, utc.min, utc.sec ]
  end
  XMLRPC::DateTime.new(*a)

Thinking that was what I needed, I updated the overridden method in Typo to use it. But alas:

TypeError (cannot convert Array into Integer):
    /lib/xmlrpc_fix.rb:11:in `utc'
    /lib/xmlrpc_fix.rb:11:in `dateTime'

What's the deal? A little research, and it turns out that in ruby you write *a to get the list of elements in a, rather than the Array itself. Don't ask me why it's written without the * in what appears to be official ruby library code -- my guess is that it's for a newer version of ruby where you can pass an Array to Time.utc. In any case, I tried:

utc = Time.utc(*a.reverse) + ofs

Behold, a new error!

ArgumentError (argument out of range):
    /lib/xmlrpc_fix.rb:11:in `utc'
    /lib/xmlrpc_fix.rb:11:in `dateTime'

Looking more closely, that a.reverse falls under suspicion. Time.utc seems to want (year, month, day, hour, min, sec), and that is in fact how it's coming out of the regex. So why reverse it? I haven't the foggiest clue! I took out the reverse:

utc = Time.utc(*a) + ofs

and voila! The post went through. I'm still totally stumped on how that could possibly ever work as written. Maybe some reader will help me out here. Of course, I only have the one reader (hi, Josh!), so maybe not.

Posted in ,  | Tags , ,  | no comments

Xmas Links

Posted by Chris Wed, 30 Nov 2005 19:58:00 GMT

I have added my xmas list feed to the sidebar. Watch for exciting and/or wacky products that you can buy me.

Posted in ,  | no comments

The Look, The Feel.. Of Typo

Posted by Chris Tue, 29 Nov 2005 21:21:00 GMT

I have changed ye old blog engine to Typo. All the content is still here, but the old URLs are broken. Sorry about that. You can find the new RSS feed under "Syndicate" in the sidebar.

I haven't bothered to port my lame rip-off of someone else's theme, because there are probably much nicer themes out there. So I just picked one for now.

[Update: The "nature" theme was relatively pretty, but it had some pretty nasty CSS that broke simple things like unordered lists. So it's back to the default, since it at least works.]

Also, now there are comments and trackbacks. When the spam starts appearing, I'll have to see if there's something to stop it.

We now return to your regularly scheduled stale links.

Posted in  | no comments

Welcome Datacomp

Posted by Chris Fri, 30 Sep 2005 04:00:00 GMT

This is a link blog. That means I'll be posting links to things that I've most likely gotten from other blogs linking to things. So if you read a lot of the same places I do, you'll probably have seen them. Otherwise, if you follow along here, it will cut down on the number of times I have to say "did you see?" and you say "no" and I say "well, it's been going around the Internet."

Also, let me know if you would like to be an "editor". I.e. you find yourself sending me things and it would be easier to put them here.

Posted in  | no comments