brad's life [entries|archive|friends|userinfo]
Brad Fitzpatrick

[ website | bradfitz.com ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

C++ [Apr. 29th, 2008|11:37 pm]
[Tags|, ]

I've been writing a bunch of C++ lately, both inside and outside of work. Really, once you learn what the gcc error messages actually mean, then it's smooth sailing. My mean time between bugging [info]evan continues to drop ... a little.

I regularly bounce now between C++, Java, JavaScript, Python, Perl, and Sawzall. I wish I could say something more profound than that they all suck in their own special ways. (I suppose the cheery angle is that they're all beautiful snowflakes too, but...)

Actually JavaScript is almost the least annoying, from a language perspective. JavaScript with the whole DOM and browser crap is a whole different story ... but embedded JavaScript is great.

I wrote something in plain C the other day and besides being kinda nostalgically quaint, it kinda blew. I eagerly await rewriting it in C++.

Back to C++ fun....
Link14 comments|Leave a comment

Scaling [Apr. 25th, 2008|10:42 pm]
[Tags|, ]

I'm going to scale my foot up your ass. Hah.
Link1 comment|Leave a comment

GMail Spam [Apr. 22nd, 2008|08:47 am]
[Tags|, ]

GMail's anti-spam seems completely ineffective. This is what I woke up to this morning, after 8 hours of sleep:



7 messages I care about (only 1, really, but 6 I'll glance at), and 18 spams.

I was doing better when I was running my own mail server. :( If I look at the headers of these emails, a good number come from home DHCP users. My rule on my mail server, with a few false positives, was that sending email from IPs that reversed as home ISPs just wasn't allowed. Spam went to almost zero.

Also lols on how many of these messages have headers like:

X-IronPort-Anti-Spam-Filtered: true

Good job. I hope that header was faked and not actually IronPort's bragging.

What to do? I really hate mail.
Link49 comments|Leave a comment

Firefox 3, a little rant [Mar. 17th, 2008|09:34 am]
[Tags|, , , ]

Dear Firefox,

We've been together now, what, 9 years? Remember back in the M18-ish days in 2000 when you used to shit your image cache? Aww, so cute. Yes, those were fun times.

You were new then, so I could forgive your kinda sucking.

But 8 years later I'd expect you to get your act together. In particular, a slow network operation should not beach-ball the whole goddamn application. Please go back to school and learn some basic networking, perhaps some threading, maybe some state machines. For Chist's sake.

When I visited the Mozilla campus a few months ago and did my little lunchtime presentation on why I'm breaking up with Firefox, this was my number one complaint, but I was happy with your guys' answer:
Oh, there are two APIs in OS X to do async networking, and we were using the wrong one in Firefox 1 and 2... the old, wrong one blocks the whole app. In Firefox 3 we're using the correct one!
So I temporarily displaced my frustration with Firefox and redirected it at Apple, for whom I'll always have extra capacity for frustration.

I waited patiently.

Then the Firefox 3 betas started to come out. "Holy shit!" I thought, "This stuff's getting pretty impressive. A browser on Linux that doesn't piss me off! Oh cute, they even fixed most the memory leaks!"

So yeah, I'm liking Firefox 3 (currently beta 4).

But you still fucking beach-ball all the time on OS X when the network is slow. That is to say, just about whenever I use my laptop, which is always over WiFi or EVDO.

Please fix.

Lovingly yours,
Brad

P.S. I'd open a bug, but my last bug has been open for 4 years or so now, so I'm not going to waste my time with that anymore. (I even funded a developer to fix the bug I'd opened a ticket for.... twice.)

Update, 2008-02-24: Turns out the problem is PAC files.
Link56 comments|Leave a comment

Fedora Core, Perlbal, ... [Mar. 8th, 2008|08:37 pm]
[Tags|, ]

A new Fedora Core release is coming out soonish, which includes Perl 5.10. The last remaining package in Fedora Core which didn't work with Perl 5.10 was Perlbal. Whoops. Turned out I did some fancy things with reblessing fields objects. That doesn't quite work in 5.10 (arguably their fault).

Fortunately the Perl community had a patch for me and I just had to make a new release tonight, and ended up going through my inbox (and making a gazillion new gmail filters) and applying a ton of patches.

Yay getting caught back up on open source projects.

Time to get my drink on.

I'm going to attempt going to a party I tried to go last night, only to find out I had the wrong day and the party's actually tonight. Yay me.
Link6 comments|Leave a comment

Threads as a service!? [Mar. 6th, 2008|10:26 am]
[Tags|, , , ]

In Apple's SDK announcement slides, they list the following stack:

Core OS, Core Services, Media, Cocoa Touch

Fine. Kinda silly and arbitrary past the kernel/user boundary, but what I found most hilarious is that "Threading" is listed in Core Services (along with "Address Book" and "SQLite"), instead of in Core OS (which has things like "Sockets" and "Power Management".

Is that why threading sucks so much on Macs and iTunes can't do more than 1 thing at a time well? Because it's all in userspace? :-)
Link9 comments|Leave a comment

Event Mess [Mar. 4th, 2008|10:30 am]
[Tags|, ]

I use Google Calendar a lot. Both for personal stuff originally, and then now also for work.

I wish all my frickin' invites automatically went to Google Calendar in the default unacknowledged question mark state. Email doesn't work... if I'm too busy when the invite email arrives and I forget to add it to my calendar, I miss the event. But I do poll my calendar regularly.

Summary of where I get invites from:
  • Google Calendar -- works, obviously
  • Evite -- dear God, I wish they had an API so I could cron a job to sync my evite to my calendar. Has anybody wrote a screen-scraping module?
  • Upcoming.org -- well, they can export to Google Calendar, so that's good, and I don't really get invitations from this, so no real beefs here.
  • Crush3r -- great site. wish its invites would show on my calendar somehow. (attach .ics file to emails? will gcal pick up on that?)
  • Facebook -- it can export to Gcal, but I have to log in to Facebook. I want the email to add an event.
  • Pownce
Plus, I want gcal to be my central RSVP point, and then have some server-to-server protocol for sending RSVPs.

One can dream.
Link17 comments|Leave a comment

PSA: the limit of a MacMini's ripping power [Mar. 3rd, 2008|07:34 pm]
[Tags|, ]

Apparently 90 is the approximate number of CDs one can rip before the MacMini's internal drive dies.

Sad.
Link10 comments|Leave a comment

mp3 quality [Mar. 1st, 2008|11:14 am]
[Tags|, ]

Now that I have an iPod in my car, I've quickly discovered that half my mp3s sound like shit. Previously in my car I'd been listening to either the radio or non-burnt CDs. CDs obviously sound awesome, and FM radio's not even that bad (as opposed to XM radio bullshit, which I cancelled long ago)

So now I'm re-ripping all my CDs at 320 kbps CBR, as I found that the Amazon mp3s I've purchased (at 256 kbps) sound fine.

This makes me love my car even more, as I can't tell these mp3s sound so bad on my headphones or computer speakers. Although generally headphones generally means I'm on the shuttle or an airplane. I should get new computer speakers.

Not sure what I'm going to do about all my low-bitrate mp3s that I don't have the CDs for. Used CD stores today, probably.
Link30 comments|Leave a comment

"threads r hard. let's go shopping!" [Mar. 1st, 2008|03:45 am]
[Tags|, ]

iTunes struggles ripping a CD, syncing an iPod, and importing a few dozen songs into the library all at the same time.

CPU? Nope, not pegged.
Network? Gigabit, not saturated.
Disk activity on the server? Barely any.

Conclusion: threads r hard.

yay spinny beachballs!

Computers suck.
Link9 comments|Leave a comment

Digg: worst permalinks ever [Feb. 29th, 2008|01:00 am]
[Tags|, ]

The winner of the worst permalinks ever goes to.... Digg!
Another Digg user, David Recordon, has sent you a shout. You can read it at the following URL:

http://digg.com/users/bradfitzpatrick#send-shout

Cheers,

The Digg Team
Seriously?
Link12 comments|Leave a comment

iPod integration [Feb. 28th, 2008|03:57 pm]
[Tags|, , , ]

I had my Audi A6's system software upgraded to the latest year's model, which includes AMI (the Audi Music Interface), which integrates with the car's MMI system. (which had to be also ugpraded as a result, which came with new navigation software too...)

Pictures:

http://picasaweb.google.com/bradley.j.fitzpatrick/IPodAudi

Absolutely in love.

With this wonderful weather I can't decide now whether I like driving the car with music or the motorcycle.
Link11 comments|Leave a comment

iPhone SDK [Feb. 22nd, 2008|10:47 pm]
[Tags|, , ]

Seeing this story that the iPhone SDK might be late made me remember a conversation I had with an Apple employee who I ran into at a bar in San Francisco recently.

I told him [info]dan_erat's theory that the Apple SDK won't let you write an AIM/XMPP/Yahoo/whatever IM client, as then it'd cut into SMS revenue.

I said,
"So that means either no network access, or no backgrounding running apps."
He smiled and said,
"Well, you get network access."
Sad.
Link12 comments|Leave a comment

A proposal: email to URL mapping [Feb. 3rd, 2008|01:43 pm]
[Tags|]

Background
People have different identifiers, of different security, that they give out depending on how much they trust you. Examples might include:
  • Homepage URL (very public)
  • Email address (little bit more secret)
  • Mobile phone number (perhaps pretty secretive)
As has been shown with OpenID, XFN, etc... URLs are people too. You can do a lot of things with a URL: give out information, point to other identifiers, do Yadis service discovery on it (to find, say, an OpenID server, calendar server, friend/contact server, etc...)

It's also possible to do a <a href="mailto:me@example.com" rel="me"> to an email address, making a one-way claim that you own an email address. But how do you make a rel="me" back from the email address to a URL, completing the cycle?

Another problem people have been bringing up regularly is how to use an email address as an OpenID identifier. For this to work, you need to do service discovery on it to find out the O.

If you could map from email address to URL (going from a private identifier to a more public identifier), both problems are solved... the mapping from email to URL is the rel="me" link, and the pointed-to-URL can then be used for any URL-like purpose:
  • Being an OpenID identifier
  • hosting an hCard
  • Pointing to another Yadis service type (OAuth-protected friends/contact server)
etc.

So....

How to map from an email to a URL?
I propose:

Given, say, bradfitz@my-email-service.com, you do Yadis capabilty discovery on my-email-service.com, looking in the resultant XRDS service document for a capability of type, say, "http://schemas.net/2008/email-to-url/", and the resultant endpoint which speaks that capability protocol. Here's an example document (retrieved via Yadis, which means sending HTTP Accept: header of right mime type and getting it immediately, or looking at link from <head>):

<?xml version="1.0" encoding="UTF-8"?>
<!-- Sample YADIS XRDS file -->
<xrds:XRDS
    xmlns:xrds="xri://$xrds"
    xmlns="xri://$xrd*($v*2.0)">
  <XRD>

    <Service priority="0">
      <Type>http://schemas.net/2008/email-to-url/</Type>
      <URI>http://apis.my-email-service.com/email2url_mapper.cgi</URI>
    </Service>

  </XRD>
</xrds:XRDS>

The 2008/email-to-url capability endpoint (email2url_mapper.cgi, in this example), then speaks this "protocol":
GET /email2url_mapper.cgi?email=bradfitz@my-email-service.com HTTP/1.1
Host: apis.my-email-service.com

HTTP/1.1 302 Found
Location: http://bradfitz.com/
That's about it.

FAQ:

Why the Yadis indirection?
That's what Yadis is for. Discovery capabilities of an endpoint. This is exactly how OpenID works. There are libraries for it. Yadis discovery is cached. In practice, this step won't cost.

Privacy! Stealing my email addresses!
No, you start with the email address. You already have it. It's up to the user to determine if they want a public URL (presumably more public than their email address) attached to their email address.

Why not use $X?
What's X? I'm not aware of anything else. (Except for something I saw recently which was tied to OpenID and was pattern-based)

Why not pattern-based?
I want to tell, say, hotmail.com that my URL is http://bradfitz.com/, not MSN Spaces, or whatever hotmail.com might choose for a static username-to-URL mapping. It needs to be a dynamic lookup, not a published pattern.

Why not tie this to OpenID?
Layering violation.

Caching?
The 302 could include an expires header.

But only the dorks would support this.
Maybe, but that's how it always starts. Maybe we could get some big email providers to do this too. Imagine a tab in your favorite Big3/Big4's email options which says:
Your public URL: [___________________________]
(This is the web URL that will be given out to anybody with your email address.)


The end
Discuss?
Link38 comments|Leave a comment

Social Graph Foo Camp 2008: Review [Feb. 3rd, 2008|01:31 pm]
[Tags|]

Social Graph Foo Camp was great. Props to David Recordon, Scott Kveton, O'Reilly, and everybody that made it possible.

Highlights:
  • Got to discuss the Social Graph API in public finally. I got a bunch of good feedback/questions/requests.
  • google-sgnodemapper rules for hi5.com, dopplr.com with Paul Lindner and Matt Biddulph, respectively. Matt's going to work on Ruby bindings for sgnodemapper.
  • Great hCard/XFN discussion/education from Tantek Çelik.
  • Great FOAF/RDF discussion/education from Dan Brickley.
  • Hacking with Joseph Smarr and Tantek.
  • I came up with a tiny proposal for doing email -> URL mapping that people seemed to (surprisingly) all agree on, which solves a bunch of different problems.
  • Saw Shelf (so cool!).
Link1 comment|Leave a comment

I can haz production launch? [Feb. 1st, 2008|11:05 am]
[Tags|, ]

Social Graph API...

Blog post...
http://google-code-updates.blogspot.com/2008/02/urls-are-people-too.html

Docs...
http://code.google.com/apis/socialgraph/

Open source URL-munging library....
http://code.google.com/p/google-sgnodemapper/
Link30 comments|Leave a comment

Steadycam for my laptop [Jan. 29th, 2008|07:53 am]
[Tags|, ]

My laptop has a camera, pointing at my face, and an accelerometer.

The shuttle is bumpy (well, in the city).

Between it doing some sort of head-to-screen relativity with the camera and feeling bumps with the accelerometer, I want it to rapidly pan the screen around, compensating for the bumps, making the text I'm always reading stable.

Too much to ask?
Link9 comments|Leave a comment

It's looking to be a fun year... [Jan. 17th, 2008|08:03 pm]
[Tags|, , , ]

Yahoo does OpenID...
http://openid.yahoo.com/

Blogger does OpenID... (including RP)
http://bloggerindraft.blogspot.com/2007/11/new-feature-openid-commenting.html
http://bloggerindraft.blogspot.com/2008/01/new-feature-blogger-as-openid-provider.html

AOL/AIM speaking XMPP!?!
http://florianjensen.com/2008/01/17/aol-adopting-xmpp-aka-jabber/

What's next, dogs and cats living together?

Craziness.
Link12 comments|Leave a comment

libxml security problem [Jan. 11th, 2008|09:48 am]
[Tags|, ]

I found a security problem in libxml. And by "found" I mean "ran into and debugged a bit".

From http://mail.gnome.org/archives/xml/2008-January/msg00036.html :
    * From: Daniel Veillard 
    * Subject: [xml] Security flaw affecting all previous libxml2 releases
    * Date: Fri, 11 Jan 2008 07:05:01 -0500

  Unfortunately, a security flaw was found (originally by Brad Fitzpatrick
from Google) and affecting all previous releases of libxml2 when parsing
XML. Two specially crafted broken UTF-8 sequences when occuring at the
wrong place lead the parser to go into an infinite loop. Very annoying,
as this lead to a relatively easy Denial of Service attack, the good part
being that this is very unlikely to happen just by error, and to protect
the community we won't release the way to reproduce this.

  But all users are strongly invited to upgrade their libxml2 versions to
2.6.31 [1], or apply the patch [2] (or a derivative for 2.5 or 2.4 branches)
to their version. Most OS vendors shipping libxml2 should have updates
by now or very soon, if needed check your update stream, it is referenced
as CVE-2007-6284 .

    Sorry for the inconvenience,

Daniel

[1] ftp://xmlsoft.org/libxml/libxml2-2.6.31.tar.gz
[2] http://veillard.com/libxml2.patch
So, yeah... go update your libxml if you process untrusted XML and don't want your CPUs spinning.

(Amusingly, this might be the only publicly visible thing so far that I've worked on at Google...)
Link10 comments|Leave a comment

Yahoo and OpenID? [Jan. 7th, 2008|01:55 pm]
[Tags|, , ]

Looks like Yahoo's up to something with OpenID:
http://www.readwriteweb.com/archives/flickr_to_authenticate_openid.php

... I can't wait to see what! :-)
Link3 comments|Leave a comment

navigation
[ viewing | most recent entries ]
[ go | earlier ]