Wednesday, May 13, 2009

Modern Day Racism

I twittered a pointer to a story about "Buy Black", and noted that it is just racism under a different label. Twitter is not a very good outlet for really discussing something, though.

I think the key question here is, "should business ownership diversity match the diversity of the population?"

If you answer "yes", then we need to fix these inequities, too:
  • overrepresentation of Mexican ownership of Mexican restaurants
  • too many Chinese-owned Chinese restaurants
  • way too many asian-owned dry cleaners
  • what's with all the Jewish diamond merchants? Get whitey in there!
I could keep going, but I hope you see my point. Why must business ownership match? Aren't you being racist by only buying from a black-owned business?

Now, granted. I can see supporting black ownership if there is something truly keeping them "down". But I would counter that Obama blows apart the notion of blacks being held back by "The Man". Hell... a black guy is The Man.

If you want to fix an inequity, then your time could be used to fight against the glass ceiling endured by women.

(and before anybody comments: yes, I use "black" just like I'm "white"; most Americans were born in the US and have nothing to do with Africa)

Thursday, April 23, 2009

The Licensing Conspiracy Idiots

When I worked at Google, one of the things that I got to do was choose the licenses that were allowed on Google Code. A quick consultation with Chris DiBona to ensure that I wasn't totally in left field, and that was it. We launched Google Code with seven licenses, and added an eighth (GPLv3) when that license was released.

I'd been observing the use of licenses on the site, and saw that the uptake on Mozilla was dead last. I mean really last. Less than a few percent. After many months of saying "we should axe that license", I actually dug in and killed it off.

And then the conspiracy nutjobs came out of the woodwork. Saying Google had some Master Plan and how it didn't like certain licenses. That it was trying to kill off licenses to further its own ends. Of course, I'd seen this utter nonsense before, so was ready for it.

The simple fact is that my goal was to reduce the number of licenses that people use for their Open Source projects. When you combine multiple software packages, the combinatorics around licensing just becomes insane. "Can we combine these? What are the overall requirements? What notices are necessary? Which pieces do we need to provide source for?" All of these questions become very difficult for the end user, and for packagers/redistributors.

Our job, as authors, is to help these people. Open Source and Free Software should be easy. We should not be wasting so much time on licensing (our own, or the people who consume our software).

In an ideal world, I believe people should choose the Apache License, v2, or the (GNU) General Public License, v3. Pick one based on your philosophy.

Middle-of-the-road licenses like MPL, EPL, and CDDL are wishy-washy. They can't decide to be permissive, or to maintain Freedom. Choose a philosophy.

And the experience on Google Code showed that people simply do not tend towards these wishy-washy licenses. Instead, they are chosen for your depending on whether you play in the Mozilla, Eclipse, or Sun playgrounds. Those licenses are not universal. So I took a step to help in that direction. Worst case, a few percent of projects would be hosted somewhere else with more choice around licensing (such as SourceForge).

The idiots barking about the Affero license totally missed the point. No conspiracy. They just had no numbers, and were fragmenting the licensing market. Go host your projects elsewhere. You never had and never will have an "entitlement" to host on the service of your choice. That is up to the service provider, and Google Code chose the path of limiting license choice.

Anyway. If you want your software to be adopted and used, then pick ALv2 or GPLv3. That keeps things very easy for your users.

Now go write some code.



(after I left, somebody added MPL back, along with EPL and CDDL; ah well... their choice now!)

Wednesday, April 22, 2009

Europeans Smoke Too Much

I've become very used to heading into a bar in Europe and wading thru smoke. I keep a machete on hand for just that purpose -- it is that thick.

And here is my obligatory stereotype comment: European is full of smokers. Fine with me. It's the culture. I'm not about to tell anybody to stop. But I am happy to return to the United States where the anti-smoking peeps have dug in and keep the air smoke-free in restaurants and bars and whatnot. Here in EU? I just deal. No complaints.

Today? Oh, dear. I've realized that the people here have elevated smoking to a whole new level. Not quite to Millenium levels, but wow.

I was out walking through the nearby forest / park. Some serious stuff here, with big trails for walking, biking, and even horses. Today, I finally saw some peeps on horses. They're at walking speed on the trail, going the opposite way. And guess what?

They're smoking. On the back of the horse. In the beautiful outdoor forest.

Sigh.

I hope these people will wake up one day and realize the world is a much more beautiful, clean, and clear place, when the haze of their smoke is not filling their lungs and face. I don't mind (lots of fresh air out there), but I feel bad for them ... not realizing what they are missing.

Saturday, February 28, 2009

Commit Access: It's a Social Problem

Many proponents of distributed version control systems (DVCSs) say the biggest advantage is that anybody can create a branch and begin working on a project. Whereas, for a centralized system (such as Subversion), the would-be contributor needs to have commit access before they can contribute.

Let's walk through this.

Obviously, this contributor can grab a tarball, make their change, and send a patch file to the project's mailing list. No commit access is required to do that. Why a DVCS, then? Well... the DVCS simplifies the retrieval and application of the patch (by the project's developers, or third-party users of the project). The contributor also gets use a version control system while developing the patch, which I'll just axiomatically state as a Good Thing.

Okay. So if they don't have commit access, then a DVCS is very handy. What would the scenario be if they did have commit access? The contributor could develop their change on "trunk" or on a branch. We've already stated this is a would-be contributor -- not one of the regular developers who already has commit access. It really doesn't make sense for this person to modify trunk directly, so let's just say the work is being done on a branch.

So why would this potential contributor not have commit access? Really? All their work is happening on a branch. It isn't like they're going to mess up the project from over there. They're going to generate some commit emails, sure, but maybe the other developers could then provide pointers, assistance, and feedback earlier than if the contributor had arrived with a patch, as a fait d'accompli. This is source control, people. Anything changed can always be reversed. No permanent harm is possible.

So why do potential contributors not receive commit access to a branch, as soon as they ask for it? For social reasons. It certainly isn't technical. Projects have an us versus them attitude, and they don't get to commit to our repository.

For reference, I'll note that the Apache Software Foundation provides branches to Google Summer of Code students. These students arrive with no credentials, they get a branch, and then work on their code over the summer. When they are done, the work can be merged back to trunk, if it is acceptable. It has worked out very well for all involved.

In the Subversion project, we set up branches for developers to try out their ideas. We say these developers have "limited commit access" rather than "full commit". I'll also note that there are no technical limitations on their commit access. Those developers could commit to trunk if they tried. But social restrictions prevent them from doing so. We've never had a problem with rogue developers, since it is so easy to undo any mistakes or intentional harm, and to remove their access.

In this respect, DVCSs are simply a workaround to social barriers put into place by projects. They do not address the core problem: projects should be inclusive rather than exclusive.

Thursday, February 26, 2009

Answer One, Ask One

whurley is trying out a fun series of question/answer posts on his site. He asks somebody a question, they answer, and get to ask him a question. He asked me whether distributed version control systems (DVCS) are bringing about large changes in the Open Source ecosystem. I asked him about Netbooks.

Check out the questions and answers.

Wednesday, February 18, 2009

Giving Back

Every now and then, I run into a meme in the Open Source world about "giving back". That if a person or company uses some Open Source software (OSS), then they are now obligated to give back (in the form of code, patches, money or whatever).

Why is this?

I write OSS because I enjoy coding. I have no need to keep it to myself, so I share it with others. But I don't attach strings to that sharing. That is why I've released it as Open Source. If I wanted strings, or expectations of "giving back", then I should have applied a restrictive license.

Question to other OSS authors: do you expect your users to give back? Why?

Why do we allow this "give back" meme to continue? If we are truly sharing our code, then it should not be with these kinds of expectations.

Westvleteren 12

I've blogged about this beer before. Even used a picture outside of the brewery for a profile picture. Fabulous stuff, as many reviewers would say, and a couple sites call it the best beer on the planet. I'm certainly a fan.

It is just so hard to get. They don't sell the stuff into the retail chain. You can't simply go to your neighborhood bar and grab a case. This is fine -- the monks are only making as much profit as they need, rather than being sell-outs. But it makes it hard as a consumer.

So... Answer is that the abbey will sell you cases. But you have to call ahead of time. And call. And call. AND CALL. The problem? The line is busy. There are so many people trying to get their beer reserved, that you need to be hovering over your Redial key.

This morning, I finally got through. Talked to the monk and reserved three cases of the Westvleteren 12, to be picked up next Tuesday. It'll be a nice long drive through the Belgian countryside, but it is worth it.

You know... Belgium does have its high points!

Friday, January 30, 2009

Taxes, Again?

First, there was Geithner with his late taxes. Big story on Capitol Hill. "Oh no! He doesn't pay his taxes properly! He can't be Mr Finance!"

Now we have Daschle and an amended return for taxes due to "value received" in terms of a car and driver. "Oh no! A second failure for Obama!"

You know what? Fuck all that. The root of the problem here is not people trying to stiff the government. It is not people trying to get out of taxes. The real problem? Taxes are too god-damned complicated.

These freakin' lawmakers want to point fingers at these candidates and hang them out to dry for tax problems. It has nothing to do with the actual payments... they're just being political bitches. Find a wound they can rub salt in. Grind it down.

You. Me. Those candidates. Any damned human in the United States is going to make mistakes on their taxes. And you know why? It is those same bitchy congressman poking at each other. They passed the laws. They made Tax Law this complicated.

Taxes are an Industry. You wanna know how much H&R Block makes? All those independent tax accountants and attorneys? Intuit with their TurboTax. And helluva lot more than I can mention here. It is a bajillion dollar industry. And that industry has lobbyists. They want to keep the taxes complicated. Those congressman are not going to make this crap any simpler.

Result? People make mistakes. Even those candidates. They're human.

(and no, I have no opinion on them; I'm just pissed off at the hypocracy of Congress pointing fingers at the candidates about their taxes, when it is Congress that made it impossible for any rational human to properly follow the tax code)

(real answer: flat tax. seriously.)

Wednesday, January 28, 2009

The History of Python

Guido has been kind enough to allow me to post on a blog about The History of Python. I've just published my first post, talking about Microsoft shipping Python code back in 1996.

Tuesday, January 13, 2009

From the Wreckage Known as Perl...

Many years ago, I was setting up cvsweb to display CVS repositories on my web server. There was something funky going on (don't recall what), and so I went to go and fix the script. No problem, right? It's Open Source, after all!

Yeah. Right.

Hey, I'm no slouch as a programmer, and can actually get around a bit in Perl. But that cvsweb script is an absolute disaster!! (I suspect the FreeBSD peeps have fixed it tremendously; it was core to their version control for many years; but I'm talking back in 1999).

I'll repeat that again: DISASTER

Global variables. Functions with strange side effects. Sloppy organization. Poorly named functions and variables. Few comments.

One of the things that I've learned about Perl over the years is that it takes an advanced Perl programmer to produce maintainable code. Novice or intermediate programmers produce crap. The language is just so fluid and forgiving, that it is easy to create write-only code. I recommend Python to people because you only need to reach an intermediate level to produce reasonable code.

Back to cvsweb. After staring at the depths of hell for a while, I realized there was really one solution to the problem: rewrite it all in Python. I spent a weekend doing just that. About 2500 lines of Perl became 2500 lines of Python, and I published it as "ViewCVS".

That tool has since grown support for Subversion, been renamed to ViewVC, and is being further developed and maintained by some friends.

Thursday, January 01, 2009

The Power of Facebook Relationship Status

Everybody seems to notice and watch your Relationship Status on Facebook. Your updates may come and go, pictures may be posted, or other weird things may fall into the feed on your wall, and it goes right past your friends. But everybody notices changes in your Relationship Status.

One year ago, I changed my status from unstated to "Single", and got an outpouring of concern that I was "now" single. Of course, I had been for a long time, but just didn't throw it "out there" on Facebook. I do have to confess that doing so may have changed my outlook on life. "I'm now telling people explicitly that I'm single" -- that does indicate a change in mindset, really.

This New Year's Day, I got to change my status to "Engaged". What a difference a year makes! If you had asked me where I thought I would be in a year... this certainly would not have been on the list! But it is, and I am incredibly happy about it (obviously, duh). It has been just eight hours since I made that change, and there are already lots of comments from my friends! (mostly of the "congrats" form)

People wake up from a long night of New Year's Eve partying, and check Facebook. It's a crazy world we live in, but I think it is also a great way to "get the word out" and let your friends know that your life has changed.

Thank you everybody for the warm wishes so far, and thanks in advance for the wishes not yet said.

Wednesday, December 31, 2008

Tuesday, December 16, 2008

Star Wars: The Clone Wars (TV Series)

I've been watching a bit of the new Star Wars animated series. It's quite fun! Lots of light saber battles, jedi tricks, bad guys, and some great effects and animation.

I came in partway thru the series, so I may need to dig up some old episodes.

Now... while this looks interesting, if you are looking for excellent television, then go watch Dexter. Best show ever. But it just finished its third season, so it is time to find new things :-)

Sunday, December 07, 2008

Java doesn't work? Switch to Python

My friend Anthony just pointed me at this post from Larry Page 12 years ago. Apparently, he never found a solution. The first Google web crawler was written in Python instead.

Seriously funny stuff.

Thursday, December 04, 2008

Unique Rectangle (Type 4)

A couple months ago, I downloaded a sudoku application onto my iPhone. I wanted something to do during the "in between times" -- while sitting on a train, waiting to meet up with somebody, or riding a parking lot shuttle. I started with the free version, but eventually upgraded to the paid version to avoid daily limits on the number of puzzles.

The app is called "Enjoy Sudoku", and it is really good. It has a hint mode that will give you a hint, you can ask for more info, and then one more time. It will basically walk you through what is going on, and explains the solving technique.

One of those solving techniques is the "Unique Rectangle (type 4)" and is quite handy. I've learned about BUGs, X Wings, and Locked Pairs. Lots of crazy stuff. This little application for the iPhone has taught me quite a bit about solving sudoku puzzles, and I'm continuing to get better at recognizing when a technique can be applied.

If you're looking for sudoku for your iPhone, then Enjoy Sudoku is a great choice.

Thursday, October 09, 2008

Layers of an Onion

Earlier, I had mentioned that one of my first coding projects was to work on Subversion. I took on the herculean task of rewriting a library that has existed since Day One (the "working copy" library for those who may know what I'm talking about). Over the past eight years, it has slowly grown and expanded and been tweaked and prodded and poked. At this point, it is a morass of barbed tangles that nobody wants to get near. A rewrite has been requested for several years now, but nobody had time or cajones to jump in. Well... I decided that enough was enough, and Subversion really needed this work done if it was going to continue to improve and evolve.

As I've dived into it, it has been like peeling layers of an onion. I go to fix something, but to do that, I need to fix something else, which leads me on down to a third thing. Making headway is slow, but I have made some progress. At a minimum, I'm getting a lot of the code cleaned up in support of the larger task.

Subversion 1.6 is scheduled to come out in December. Only a portion of my overall work will be in there, with the bulk to appear in 1.7, next summer. It's a big and long project, but this work will help (literally) millions of Subversion users around the planet.

Tuesday, September 16, 2008

Where am I?

I'm two weeks into a long trip to the east coast of the US and to Europe. I've been here in Washington DC, and will depart for Bardstown, Kentucky on Thursday.

"Bardstown?!" ... Yeah, I'd never heard of it either, but it hosts an annual Bourbon Festival. Being a huge bourbon fan, I'm off to meet a few friends for the weekend and the festival.

After that, off to Munich for Oktoberfest for a week. Then down to Brussels for about two weeks, with little day trips here and there.

Back to Munich for a few days for a conference (SubConf; I'm giving a keynote), then to Spain for a week at another conference. Finally home after that!

Over seven weeks altogether. Whew! I'll periodically post pictures to Facebook and/or Flickr, will update my Twitter/FB status, and will continue to post here occasionally.

Sunday, August 24, 2008

Burning Man

I'm currently driving to Burning Man while writing this post. This is my first year... Very excited!!

I've heard rumours of Internet connectivity, but even if there is, I'm going to be mostly offline for a week.

Woot!

Thursday, August 21, 2008

Visiting Bourbon County

Many of you may already know of my love for bourbon. Woodford Reserve, in particular. For about a year, I've been talking with friends about a trip to Bourbon County, Kentucky to visit "the homeland". Well, we've started to organize the trip for mid-September. I've set up a Facebook event for the Bourbon County trip. Unfortunately, I know that I've forgotten to invite some bourbon lovers onto the event, so if you're game, then please add yourself to the event! And please forward to other bourbon aficionados that I've forgotten.

I'm really looking forward to the event! I hope you can join us in the fun!

Wednesday, August 20, 2008

WeGame

On my recent status updates (to Twitter and Facebook), I mentioned hanging out at the WeGame offices. A friend of mine asked about that, kind of wondering whether I'm working here or contracting or something. Nah... nothing so dramatic.

My friend Jared started WeGame last year, and has a big cozy office here in SoMa with a dozen or so people. I pack up my laptop and come over to get out of the loft. Hang out with real people, a fridge of drinks, access to a printer and fax, network connectivity, and whatnot. It is kind of like the coworking concept that my friends over at Citizen Space have been encouraging and talking about for a long while.