Older blog entries for louie (starting at number 636)

First thoughts on Bilski

Some very preliminary thoughts on Bilski, written in the course of one train-ride to work. This does not represent the viewpoint of my employer and should not be taken as legal advice; merely observations on one ruling.

  • In the lower court (Federal Circuit) ruling on this case, the Federal Circuit was very aggressive in trying to limit business method patents by applying an old rule very, very broadly. The Supreme Court here reached the same conclusion about the specific patent at issue (holding it not patentable) but chastised the Federal Circuit for their aggressiveness in going from step 1 (invalidate this particular patent) to step 2 (invalidate all business method patents). At the highest level, this is not good for opponents of software patents- this is the most change-averse patent opinion the Supreme Court has issued in recent years, and it will leave the Federal Circuit very reluctant to broadly attack entire classes of patents in the near future. But the court did not completely bar such attempts, and it also strengthened some older anti-software-patent rulings, so it is not a complete loss for opponents of business method and software patents.
  • This was a very splintered decision- while every judge agreed in the outcome, no part of the opinion got more than five votes, and many parts got only four. This probably explains why it took so long, and why Stevens was not (as widely anticipated) the author of the majority opinion- one or more judges probably were swinging between the two opinions until very late in the process. The addition of the probably pro-business Judge Kagan to replace the (effectively) pro-technology Judge Stevens could make future cases along these lines more conservative. And the court itself basically admits in their first section that this is hard; saying of the Federal Circuit’s ruling in the case that “Students of patent law would be well advised to study these scholarly opinions.”
  • The court punts on the most difficult questions, quite explicitly: “This [Information] Age puts the possibility of innovation in the hands of more people and raises new difficulties for the patent law. With ever more people trying to innovate and thus seeking patent protections for their inventions, the patent law faces a great challenge in striking the balance between protecting inventors and not granting monopolies over procedures that others would discover by independent, creative application of general principles. Nothing in this opinion should be read to take a position on where that balance ought to be struck.” [emphasis mine.] Unfortunately, this buys into the rhetoric that all inventors are patenters, but otherwise makes it explicit that the court is staying out of the deeper policy question to the greatest extent it can.
  • Core of the decision is to set up a very conflicting set of tests: business methods can in some circumstances be ‘processes’, which are patentable, but they may also be abstract ideas, which are not patentable. (The lower court had said that business methods are never processes and therefore a court did not need to ask ‘is this an idea?’ before ruling that it was unpatentable.) So future seekers of business method patents (and presumably software patents as well) will have to thread the needle, showing that they are a process (probably not difficult after this ruling) but also that they are not an abstract idea (may be hard, not clear yet.)
  • Needless to say, this kind of gap is the kind of thing that sophisticated lawyers love to drive trucks through, and which will continue to create lots of uncertainty for small innovators for whom even the threat of a patent suit is enough to stop innovation.
  • When deciding that the patent is an idea, and hence unpatentable, the court has kind things to say about Benson and Flook, two older case which spoke against patenting algorithms but which were then sort of ignored. This may signal to lower courts that they should take these cases more seriously when looking at software and business method patents, which would be a good thing for anyone who is seriously interested in the quality of software patents and not the worst possible outcome for those who believe that all software patents should be banned- these could become potent weapons against some of the most outrageous patents on algorithms.
  • At the same time, the court also speaks well of Diehr, another older case. This case has generally been interpreted to stand for the idea that a combination of software with hardware (originally, use of software to control a rubber curing machine) is patentable, but the court here seems to read it more broadly, arguing that Diehr should be interpreted to mean that algorithms combined with any new processes (whether mechanical or otherwise) might still be patentable.
  • The court specifically tells the Federal Circuit that the method of restriction it had been using is barred or weakened (not great for those who dislike software patents) but also specifically says that the Court can and should explore new methods of limitation as long as they are consistent with the text of the patent act; seemingly implicitly stating that the pre-Bilski situation (where business method patents ran rampant) was untenable. This suggests to me that we’ll see a period of several years of experimentation in the Federal Circuit, where the Federal Circuit attempts to find new ways to limit business method patents on something other than a case-by-case ‘I know it is an idea when I see it’ rule of thumb.
  • The court specifically says that they did not want to create uncertainty for software patents, citing the pro-software-patent amicus briefs, but then goes ahead to create such uncertainty by allowing the Federal Circuit to find new, narrower tests. However, these two sections of the majority holding got only four votes; Scalia did not join this part of the otherwise majority opinion- presumably because it seems to give the Federal Circuit very wide interpretive powers.
  • The Stevens opinion, at a glance (remember, brief train ride) would have been much more amenable to the anti-software-patent crowd, but I imagine that it is exactly this quality that made it the minority opinion.

I’m afraid that at the end of this brief train ride, my only firm conclusion can be that the real winners here are patent lawyers- this decision creates no new certainties, only uncertainties, which will encourage patenters to spend more money patenting things, and the rest of us to waste time and energy worrying about the problem- time and energy that should have been spent on innovating. But this is a long, multi-layered ruling, and will require a lot of time for the full implications to be truly understood, so take this one-train-ride blog post with a large grain of salt :) Hopefully more writing tonight/tomorrow.

Syndicated 2010-06-28 16:07:24 from Luis Villa » Blog Posts

working it

It is extremely satisfying when you can see your work turn directly into a working product. I just played with last night’s test version of firefox, and as per roc’s blog post, it indeed contains the video support whose licensing I (and others here) were working on last week. In an ideal world, lawyers should play a very small role in product development, and in this case we were probably involved more than anyone wanted us to be. But that wasn’t to be, so I am proud I helped get it done, and done right, and that all firefox users will benefit from it in the future.

Syndicated 2010-06-09 17:00:52 from Luis Villa's Internet Home » Blog Posts

some data points on facebook

My boss has written a blog post that tries to bring together some recent data points from across the privacy spectrum; it is worth a read. I’ve been noting a few (much smaller, more trivial) things myself over the past few days that suggest to me that privacy concerns in general, but facebook-related privacy concerns in particular, may be reaching a bit of a critical mass.

No Facebook by avlxyz used under CC-BY-SA.

Some anecdata:

These are just anecdotes, and not real data, but to me this feels vaguely different from the ‘rebellion’ in 2006. At that time I said ‘people adjust and things blow over sometimes.‘ This one feels different to me, but that is just a vague feeling; it may stem as much from my own facebook fatigue as from any concrete reality. It will be interesting to watch, at any rate.

Syndicated 2010-05-14 19:16:53 from Luis Villa's Internet Home » Blog Posts

Sponsoring a GNOME hacker (oops!)

Become a Friend of GNOME

While I was moving, and taking the bar exam, and getting married, and all the other stuff I did last year, it turns out I screwed up. People had sponsored me through GNOME’s adopt a hacker program, and I… well, I botched it- the postcards people had signed up for fell through the cracks.

No longer! My apologies go out to:

  • Owen
  • Eetu
  • Sergio
  • Eduardo
  • Chris
  • Jon
  • Robert
  • Donald
  • Markus

Your postcards are finally, I promise, in the mail; though admittedly my handwriting is illegible at the best of times so you’ll have to take my word for it that the postcards are thoughtful and meaningful :)

For everyone else: now is a great time to force me (or other hackers) to write you! You get the warm, glossy postcard, as well as the warm, glossy feeling of having helped get GNOME folks together to work on your software.

Syndicated 2010-05-12 06:06:31 from Luis Villa's Internet Home » Blog Posts

responding to joindiaspora

The joindiaspora guys, in a generally good response to my questions, conclude by asking:

[W]hat would be un-pragmatic about giving four excited dudes who spent their last semester of school thinking about a problem you are “worried-about-but-can’t-deal-with-now,” twenty bucks so they can take an honest crack at solving it? :)

Lots of people asked some variant on ‘it is just $20′ or whatever. First, I tend to be one of these people who don’t give token amounts to charity- I prefer to give larger amounts to a small number of projects that have very high impact (or very high odds of success if they aren’t having an impact yet.)

But the money is secondary. The important thing is that there are already a fairly good number of projects in this space, with a fairly small amount of users, developers, testers, and attention to spread between them. And to be blunt, I don’t want someone coming in with more web design and marketing sense than actual hacking chops and using up all the oxygen in the room. I think DiSo did this to some extent, frankly. So yes, giving a little bit of money to someone can be quite counterproductive and unpragmatic- and I wanted to reassure myself that I wouldn’t be contributing to that problem again.

Given that it looks like they’re going to be doing this crazy thing ($13K raised of their $10K target) that concern is now irrelevant.

(untitled) by Môsieur J. [version 3.0b], used under CC-BY.

So some thoughts on the rest of the responses, again in hopes that they are supportive and constructive:

We plan to “build less.”

Hooray! Most of these questions don’t have right answers, but this one did. And the followup priorities seem reasonable- those probably are the right minimum bits necessary. That said, where people have already built things, consider building less than less by working with other projects. Status.net comes screamingly to mind for the message passing component, but I’m sure there are others. Don’t just build shared specs- where possible, build shared code.

We see all of this communication happening between two Diaspora servers, rather than strictly between peers.

This seems like the very pragmatic solution to me; all the talk of real peer-to-peer is terrific but that is a very hard slog- both technically (getting it working) and socially (getting users to install it.)

With regards to DiSo, the response had one set of great things, and one part that was very ambiguous to me:

It seems to us that all of the previous attempts at solving the problem are trying to create the perfect solution in the first version.

I think this is right, and I’m heartened to hear the talk about building answers that satisfy rather than perfect. These are all signs
of excellent taste (not just this sentence, but many of the things both in this specific answer and in the entire blog post.)


[DiSo] tried to add on to Wordpress, a project which was not designed from the ground up to be a distributed

I’d love to hear more elaboration about ‘designed from the ground up to be a distributed network.’ Wordpress has
proven to be a very flexible platform for a lot of things, and it both publishes and consumes structured data very well to that distributed network we call the internet (particularly that subset of the distributed network that consists of Atom/RSS publishers and consumers- I subscribe successfully to many friend’s wordpress blogs in something that looks very much to me like a distributed network.) In addition, things have improved since DiSo started, since there is now PuSH, possibly webfinger, etc. So which features are you looking for in a ‘designed from the ground up’ distributed network that wordpress doesn’t have? I’m not saying that wordpress is the solution, but I’m curious to hear more about what it specifically lacks.

With regards to Mugshot… I wish the Red Hat folks had posted a good post-mortem on that; to the best of my recollection I never saw one. My own sense is that: (1) it was very difficult for others to set up, so it never got an outside development community, and no one looked to it as a distributed solution to the problem. (2) The community it attracted was heavily tech-y, so the community that built on it looked to outsiders (frankly) like it was a bunch of nerds, which made it hard to expand into a more broad-based audience. (e.g., it was a great source of community for linux distributions, not so much for sports. Identica has the same problem relative to twitter; compare a search for lebron on twitter to a search for lebron on identica some time. Ditto Bieber or Gaga. This is very related to Pick The Right Customers.) Both are problems worth being aware of.

Solid answers on specs and services, including a couple projects I hadn’t been aware of- usually a good sign (even if one of them appears to be completely insane :)

We will be constantly sharing our ideas, and 100% of our code at the end of the summer.

I’m still not clear on why no code until the end of the summer. Care to elaborate? I’m not an absolutist on this- mostly for reasons related to bikeshedding and design- but it does seem like an odd default choice.

We think in the future (after the summer), we will work on an easy installation…

Only clearly wrong answer of the whole thing. Easy installation should be baked-in from day one- adding it afterwards is hard. As a bonus, it helps you write automated tests (since automated deployment is easy) and easy installation helps you choose the right customers by helping you attract users who are interesting in talking to other people rather than playing with software.

What are your three favorite books on software development? three favorite essays? what about on design?

Is this one of the questions where if I don’t say “Kernighan and Ritchie,” “Getting Real”, “Mythical Man-Month,” “Don’t Make Me Think!” or something like that, you will disapprove? :)

Yeah, sort of. But ‘Getting Real’ was the right answer. ;) (I sort of wish I had the time to write a mashup of Getting Real and Producing OSS, maybe with a dash of The Poignant Guide.) I also highly recommend Rework and Designing From Both Sides of the Screen. Blog-wise, you might find this list interesting, though not necessarily pertinent to this discussion.


We bought him some arepas. They were delicious.

I’m sort of bitter that you live near that particular deliciousness. Also that you called me an old dude. But mostly because I miss those arepas. And the yo-yos. Enjoy one or two for me during your hacking breaks. :)

Syndicated 2010-05-08 20:09:31 from Luis Villa's Internet Home » Blog Posts

Cambridge lazyweb request

Hello Cambridge-based lazyweb! I am looking at network Acceptable Use Policies (AUP) for guest wifi networks, and I have been told that MIT’s AUP for their guest wifi network is particularly terrific- short, simple, etc. Can someone in Cambridge who happens to stumble by MIT check into the network and copy/paste the text and email me? I’d owe you a beer next time I’m in the Commonwealth. Thanks!

Syndicated 2010-05-05 19:19:07 from Luis Villa's Internet Home » Blog Posts

Questions for the Diaspora

So lots of friends were tweeting this morning about Diaspora, a project to raise funds to get a summer’s worth of hacking done on a distributed, Libre social network. A distributed, Libre social network would be a terrific thing to have; I’d love to support it. And I love the eager energy I’m seeing around Diaspora.

Questioned Proposal, by Eleaf, used under CC-BY

But I’m also keenly aware that distributed social networks are hard. They’re hard:

  • as a design question: how do you make a social network whose UI doesn’t suck?
  • as a technical question: the code involved is complex, particularly if you want to interoperate robustly with other platforms, and doubly so if you want to do that with proprietary platforms.
  • as a social question: getting users to migrate is not easy.

So here are some questions for Diaspora, or really for anyone working in this space. Most don’t necessarily have right answers, but if you can show that you’ve given them some thought you’ll go a long way towards convincing people that you’re serious about attacking the problem. If you haven’t given them thought yet, I could think of worse places to start. :)

  • What do you think are the most important features a social network should have? How would you prioritize them? Do you plan to Build Less or go big? If building less, what is the minimal set of features you can get away with?
  • DiSo is now two-plus years old. Any ideas why it didn’t get off the ground? Bonus points: same question for Mugshot.
  • What standards, if any, do you plan to work with/build on? (just to throw out a couple, all of which have strengths and flaws to consider: webfinger, oauth, xauth, the buzz APIs.)
  • What other services, if any, do you want to interoperate with? why? how will you prioritize?
  • Any other Libre code bases in the same space you’d like to work with? GNU Social? StatusNet? What ones are you aware of, and why will you/won’t you build on/work with those?
  • Would a smarter client (like Mozilla Contacts) be useful to you? If so, how?
  • What is the strategy to get to a critical mass of users (or avoid having to get a critical mass?)
  • What are your three favorite books on software development? three favorite essays? what about on design?

I don’t mean to ask these questions to piss on anyone’s parade; I deeply want to believe. Heck, what I want to do is fly to New York, sit down in a room, and help you brainstorm and plan. But unfortunately I’m a pragmatist with a day job. I can’t directly help out. So instead I offer these questions. Answer these1 and you’ll begin convincing people that you are also pragmatists: that you’ve thought hard about the questions at hand and you are worth investing in. And I’ll be first in line to do that.

(I should note that unlike some I don’t need code; I think code that is created without much thinking is all too common and frequently damaging. But if you don’t have code, I suggest doing planning- and talking about it- before doing a PR week. :)

  1. or questions like these- you’ll note I skipped some hard ones like ‘business model?’

Syndicated 2010-04-27 05:54:26 from Luis Villa's Internet Home » Blog Posts

three features I’d love in leechblock

I love leechblock. It really helps keep my life sane. I was working some with it this morning to tweak my settings, and it seemed like a good time to write about three features I’d kill for, even to the point of putting up money for them if there were a way to sponsor features (or sponsor third-party hacking- bounties, if you will):

  1. ‘block all sites except this one for ____ minutes’- a button that blocks the browser from going to any other domain for ____ minutes. Sort of like Freedom but with an out for one specific website (and obviously only for your browser.) Goal would be to allow you to focus on one site for 45-50 minutes, so it should probably close or block access to other tabs as well.
  2. ‘no, I really need this’- give an option (probably a popup of some sort?) that allows you to break through leechblock in the off case you really need something. For example, I like to block nytimes.com all the time, but (when I was editing a journal) I often needed to access a times article to confirm a claim in an article. This would obviously require some sort of time-consuming task in order to prevent you from ‘just’ clicking through all the time- probably something like a series of captchas, or just typing in a specific series of random characters that can’t be copied/pasted.
  3. ‘this page has an RSS feed: subscribe to it and add it to leechblock? [yes/no/don't ask again for this domain]‘- one of the strategies that has helped save me over the past few years is aggressively subscribing to feeds, blocking the actual domains, and then only visiting them when I’m in feedreading mode. Making that semi-automatic, and easy to do, would be terrific.

It may well be time to port leechblock to jetpack and rethink the UI as well, but those are bigger projects that I can’t randomly beg (or bribe) people to do.

Syndicated 2010-04-23 01:41:04 from Luis Villa's Internet Home » Blog Posts

a quick vent about the structure of online agreements

I completely understand why many startups have terms of service with terrible content- providing terms of service whose content is fair to the user is incredibly risky and/or expensive (though it isn’t unheard of).

But there is just no excuse for terms of service with terrible organization, especially when you’re trying to sell services to real companies who might (gasp) actually have someone read the damn things. Having a well written document doesn’t cost you anything. If it should be two separate documents, make it two separate documents, and not one (which is what set me off on this rant). If it should be five documents… wait, it should never be five documents.

So please, think of the lawyers. Write your terms of service in a comprehensible, sane structure today.

This has been a public service announcement; we now return you to your regularly scheduled kvetching.

Syndicated 2010-04-14 00:44:20 from Luis Villa's Internet Home » Blog Posts

building software to let me read more and less at the same time?

There are lots of sources of links these days- delicious, twitter, and blogs. Many of these are interesting, but not so interesting that I want to read them all the time. Currently I have to decide either to read or not read these people.

I’d like to add a third option: to have a ‘middle’ pool of sources who I don’t read directly, but who are monitored and serve as pointers to other, interesting things. I think having such a third option would let me read less (because I’d stop skimming these intermediate sources), but still also give me fairly good confidence that I’m not missing important things that I should read.

The outline of the software in my head goes something like this:

Step 1: User provides a list of RSS feeds (a mix of blogs, twitter/identica, and delicious feeds).

Step 2: A harvester collects the contents of said RSS feeds.1

Step 3: Parse the content of those feeds for URLs and dump them in a db.2

Step 4: Unshorten the URLs if necessary. 3

Step 5: When a particular url has been mentioned X times in the past Y days4, fetch the URL5, find the content within it6, and jam it in an RSS feed for consumption along with the rest of my top-level RSS feeds.

Bonus step: mash up snippets from the posts/twitters/delicious feeds to provide context for the URL’s content, similar to what Google Reader does when friends comment on a feed item.

I feel like someone must have done this already. If not, the pieces are available (see the footnotes for details on many of the pieces); I sure wish I had the time/skill to put them together myself. :/ This project is one of the things I wish we had more reliable bounty infrastructure for- I’d actually put money up for it if I thought there were a reliable way to get some matching funds and find good developers for it.

Ideas, either about the rough feature sketch, existing software that fits this need, or about methods to make it happen, are all welcome.

  1. Planet is an example of infrastructure that does this.
  2. Planet’s meme plugin can do this.
  3. There are scripts and web services available for this; the basics aren’t that complicated.
  4. again, meme plugin has this concept already implemented
  5. not in memeplugin- it only provides links
  6. not trivial, but source is available that does this via readability

Syndicated 2010-04-05 04:44:01 from Luis Villa's Internet Home » Blog Posts

627 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!