Understanding the “GPL is a Contract” court case

There’s been a lot of confusion about the recent Artifex v. Hancom case, in which the court found that the GPL was an enforceable contract. I’m going to try to explain the whole thing in clear terms for the legal layman.

Artifex is the current owner of the Ghostscript software. Ghostscript is an interpreter of the Postscript language, it renders Postscript and PDF to print and images, and it translates Postscript and PDF to a plethora of other file formats. Ghostscript was created by L Peter Deutsch (“L” is his first name, not an initial) known online as “Ghost”. Peter created the software in 1984 to be dual-licensed, in other words to have both an Open Source license (originally the Open-source-like Aladdin Free Public License, later the GPL) and a commercial license. Thus, Peter made Ghostscript available without charge for people who were using it in Free systems and were willing to share their modifications to it with him and the world, and he made it available for a fee to companies that were putting Ghostscript in their printers or commercial software and weren’t interested in sharing their own code as Open Source.

Peter was the pioneer of dual-licensing, although MySQL usually gets credit for that. He closed the first commercial contract for Ghostscript years before MySQL existed. This was, however, using the Aladdin license, which, although inspired by the GPL, is just short of qualifying as Open Source or Free Software license because it prohibits sale or a fee for distribution. Peter also released each version of Ghostscript with the GPL after a one-year delay, since the code was evolving rapidly and his intent with the Aladdin license was only to prevent proprietary software products from having a “free ride” on code with immediate commercial value.

Peter retired from software development in 2002 to become a composer and musician and sold Ghostscript to Artifex.  Artifex later stopped using the Aladdin license, and switched to releasing each version of Ghostscript under the GPL without delay, having concluded that the “free rider” problem was no longer commercially significant and that straightforward use of the GPL alone would simplify Artifex’s story to the world and improve relationships with the Open Source / Free Software community.

Artifex recently brought suit against Hancom, which Artifex alleges was using Ghostscript in one of its products, without either purchasing a commercial license or complying with the GPL. This case is still in progress. What’s made news recently is that the court found that the GPL was an enforceable contract, and is allowing the case to proceed as a complaint of breach of contract, not just copyright infringement (as most similar cases have).

The actual text of the Magistrate’s finding is:
Defendant contends that Plaintiff’s reliance on the unsigned GNU GPL fails to plausibly demonstrate mutual assent, that is, the existence of a contract. Not so. The GNU GPL, which is attached to the complaint, provides that the Ghostscript user agrees to its terms if the user does not obtain a commercial license. Plaintiff alleges that Defendant used Ghostscript, did not obtain a commercial license, and represented publicly that its use of Ghostscript was licensed under the GNL GPU. These allegations sufficiently plead the existence of a contract. See, e.g., MedioStream, Inc. v. Microsoft Corp., 749 F. Supp. 2d 507, 519 (E.D. Tex. 2010) (concluding that the software owner had adequately pled a claim for breach of a shrink-wrap license).
The entire court document is here.

This finding confused a lot of people. Was the GPL not enforceable before this case? The FSF has claimed the GPL is a license, not a contract, so is the court contradicting the FSF?
The GPL was found to be an enforceable set of copyright terms (a license) in a previous case, Jacobsen v. Katzer. I had the privilege of being pro-bono (no fee, for the public good) expert witness on that case. What has changed now is that for the purposes of the court, the GPL is both a license, which can be enforced through a claim of copyright infringement, and a contract, which can be enforced through a claim of breach of contract. You can allege both in your court claim in a single case, and fall back on one if you can’t prove the other. Thus, the potential to enforce the GPL in court is somewhat stronger than before this finding, and you have a case to cite rather than spending time in court arguing whether the GPL is a contract or not. If you are in Federal Court in the Northern District of California, the court must consider this finding, other courts can consider it and in general will.

That the GPL is a contract hardly came as any surprise to people familiar with the law. Lawyers and judges view any collection of terms as a contract, and tear-open licenses are the norm these days. But the FSF had its own reasons to say it’s a license, reasons that might be more important to the philosophy of Free Software than the court.
Contracts require consent between two parties who join in the contract, if they are to be enforced. The GPL (and many other licenses that come with products) doesn’t have a signature page, so there is no explicit consent. If there is consent at all, it’s the implied consent that has become standard for “tear-open” licenses. Your acceptance of the license is indicated by some action, in this case integrating the code into your product.

The default under copyright law is all rights reserved, which means “you can’t do anything with this” with some minor exceptions that are called “fair use”Thus, if you integrate the software into your product, distribute it, or perform some other action that is restricted by copyright, you must have accepted the license because your alternative would be all rights reserved. Thus, the FSF asserts that the GPL is a license because they feel consent isn’t really necessary, they don’t want to argue about consent in court, and they believe that they can do all of the enforcement they need using a complaint of copyright infringement. Also, tear-open licenses were a much more foggy issue in law when the GPL came about. And then there’s the philosophical matter:

The Free Software Foundation is all about Your Software Freedom. So, they wouldn’t want to take away your freedom in any way. Contracts are a means by which people trade some rights which they could otherwise exercise for some rights they don’t have – but which FSF feels they should have by default. FSF wants you to have the right to use, modify, and redistribute all software without restriction, and this means you should get the source code for all software. In the proprietary software world, you contract for the right to run one copy of the software while giving up your rights to examine, modify, or redistribute it, and often even the right to talk about it freely – for example the right to publish a critical review or a performance benchmark of the software. FSF doesn’t like the idea of people giving up their own rights. So, they very carefully constructed the GPL so that it does not ask you to give up any rights you already have, and only grants rights which you would not otherwise have. So, it’s “freedom positive”, it only gives freedom without taking any away. Thus, FSF feels that the GPL doesn’t need to be a contract. It only needs to be a license because it does not need the contract’s feature of having you make promises to give up some rights.

If the FSF philosophy seems unusual to you, sit down and consider how much software violates your privacy these days, how it can actually control you, and how you are at the mercy of criminals who understand the software better than you and send “viruses” to mess up your computer. My computer running the GNU and Linux software isn’t entirely virus-proof, but it’s immune to “Wannacry” and a lot of the garbage that most of you tolerate. I am in control of all of my software. Are you?

Does the FSF lose anything because the court said the GPL is a contract? I don’t see how. The court didn’t say it’s not a license.

Another interesting point in the case is that the court found Artifex’s claim of damages to be admissible because of their use of dual-licensing. An economic structure for remuneration of the developer by users who did not wish to comply with the GPL terms, and thus acquired a commercial license, was clearly present. In Jacobsen v. Katzer, the lower court found that Jacobsen had not adequately pleaded damages resulting from the breach by stating “by reason of the breach, Plaintiff has been harmed”, although my testimony to the Appeals court laid out Jacobsen’s damages in greater detail. This is further reason for developers to offer dual-licensing (which I generally recommend).

The case is not over, and one attorney I work with remains adamant that the GPL is still not a contract, while others are just as adamant that it is. It’s possible that the district court might not find for Artifex’s contract claim, or that we could see an appeals court rule again on whether the GPL is a contract or not.

My North Korea Photo

This was taken in the blue conference room between North and South Korea which we see in the news so much. I am standing on the North Korean side, and the guards outside the window are North Korean. This is the only place you can safely (and legally) walk into North Korea and walk back out again. My thanks to the (South) Korean Copyright Commission, who provided me with such a nice trip there and paid for my hotel for 10 days, not just for the duration of their conference.

Bruce Perens in the Joint Security Area meeting room, on the North Korean side.

My 30th Anniversary in Open Source!

This marks 30 years of my continuous contributions to Open Source software. About 30 years ago, at Pixar, I contributed Electric Fence to the world. That’s so long ago that I made my contribution to a USENET group. Just a few days ago, I contributed i18n-edit. 

Attention Rails Programmers: The Hassle of Managing Internationalized Text is Over! New i18n-edit Ruby Gem, new Open Source from Bruce Perens

If you are a Ruby on Rails developer, and you internationalize your web applications, my i18n-edit Ruby Gem will make your life much easier! Gone is the need to have two screens open and text-edit the internationalized text in a locale file. Gone is the need to know translation keys and to match up the internationalized text in your views to the text you are editing, and the text you are testing in your web browser.

How easy could it get? Try this: Install i18n-edit according to the directions on Github. Start your Rails application locally, using this command:

I18N_EDIT=1 rails s

Now, go to any page in your live, running Rails application, and click on  any internationalized text. An editor cursor will appear, and you can edit the text directly from the browser. To edit HTML attributes like tooltips, rather than text, right-click on the HTML node to see a menu with all of that node’s internationalized attributes. Click on their text to edit them right in the menu. Right click on links and buttons that would respond to left-click, or if you want to see what the translation key is.

I can’t imagine how this could get much simpler. I used to hate dealing with locale files. Now, I hardly ever have to touch them directly.

The locale file is written when you change the focus in your browser or when you go to another page. So, there’s no need for an enter button. The locale file is written using the link-create-write-fsync-rename algorithm that knowledgeable systems programmers use to create files that are always valid, even across a system crash.

What’s not to like? If you have written comments in your locale files, they’ll disappear. The standard for YAML files actually says that you shouldn’t parse comments, so none of the available YAML software handles them.

How to View Launches at Vandenberg Air Force Base

Copyright (C) 2016 Legal Engineering. All Rights Reserved.

Polar orbiting satellites are launched from Vandenberg Air Force Base, in Lompoc (pronounced “Lompoke”), California, near Santa Barbara, San Luis Obispo, Pismo Beach, and Solvang. You can view them from public streets or an official viewing spot on the base.

Often, the Rocket Doesn’t Launch

Seeing a rocket launch is awesome, especially if you can get relatively close. Going to rocket launches, or attempting to view them can be tremendously frustrating and expensive. Often, the launch is scrubbed after you’ve traveled a long way and sacrificed one or more work days. Scrubbed launches can be scheduled for a week later, making it impractical for you to stay in the area until the launch. Attempts scheduled for the next day sometimes are rescheduled after you’ve made hotel arrangements for the evening, wasting your time and money. The weather doesn’t cooperate.

My record so far is about one successful viewing for every three attempts. If you are willing to invest that much inconvenience and time, here’s how you can view the next launch at Vandenberg.

How You Conduct Yourself Is Important

Vandenberg is a high-security area. Nuclear missile bases, spy satellites, missile defense radars and other classified things are there, there’s also a Federal prison next door. Vandenberg is the one polar-orbit space launch site for the whole country, and thus must stay operational for the security and defense of our country.

So, the concerns for the base are that you and the people around you are in danger from mundane risks as well as unusual ones, the security of the base could be violated, and the operational status of the base could be compromised. For example, wildfires at Vandenberg in 2016 brought down the country’s polar launch capability for two months.

In a situation like this, where there are real concerns and both the police and military will be present, the actions of one person can ruin things, permanently, for everyone else. We don’t want the police and the Air Force to close the streets we use as unofficial viewing spots, or stop opening their official viewing spots, and they’ll do just that if they feel that dangerous situations happened or even if they exceed their budgetfor managing people there.

At the last launch, there were just two police present to manage the roadblock at Ocean Avenue, and several hundred people parked their cars across the street from that point and viewed the launch on foot near their cars. We want those police to feel we’re no problem at all, just a bunch of nice science-oriented people behaving safely and having a great time. Similarly, soldiers dressed in camofluage (and big smiles) and civilian PR staff of the base showed up at the viewing point at Hawk’s Nest, where they generally host about 300 people with off-road parking and a porta potty. We want those folks to continue to operate that site for us.

So, please be on your best behavior:

  • Don’t try to sneak onto the base or any closed-off area. OK, that sounds like common sense, but these guys actually did it, and it’s claimed that they damaged a historical site. Don’t be like them.
  • Don’t bring alcohol and drugs. About marijuana: Federal police and military police are there and they aren’t required to follow the California marijuana laws. Yes, I know so many people smoke it on the street in California. But not on or adjacent to a military base. Possession and use are still a felony on their books, and they can send you to jail for a long time.
  • Bringing your pets is not advised. The base is home to lots of wildlife that pets like to chase. If your pet runs on to the base, there’s no going after it. And pets do lots of damage to crops in farm fields.
  • When you encounter police, military, or base personnel, say hello, listen to what they have to say, and cooperate. In general, they will be super-nice in return (this is a public-relations event for the base), but if demands are unreasonable or something rubs you wrong, please cooperate with them and keep your feelings bottled up until you’re off of the site.
  • Be nice to the folks around you and avoid arguments or fights. If you have to deal with the inevitable jerk, back off and give up your spot rather than standing your ground. Your rights aren’t worth spoiling things for everyone. Don’t give the cops a reason to work.
  • Park off of the street, leaving all lanes clear for traffic. Fire trucks and various odd base vehicles will be coming through in both directions, besides the regular civilian traffic, and all lanes must be kept accessable in case there’s an emergency or the people on the base need to evacuate. The base is a high-risk zone for fires, and a problem with the rocket will result in the release of very toxic chemicals. Non-essential personnel will be ordered to evacuate the base if there’s a problem, and will be going right past where you are.
  • Don’t stand in the street, and look carefully before you walk across it.
  • Be responsible for your kids. Besides keeping them out of the street, etc., never allow them to enter farm fields. Crop damage costs farmers so much.
  • Be nice to other people’s kids. We want them to be interested in space and rockets! Invite the parent present and the kids to look through your binoculars, etc. Parents are generally happier if you approach them, rather than the kids, first, but once the ice is broken the kids will be full of questions.

Information Sources

To keep up with the launch schedule, which can change at any time, subscribe to Brian Webb’s excellent Launch Alert Newsletter. Brian’s a volunteer, be nice to him. SpaceFlightNow’s Launch Schedule will have advance information of launches, not just at Vandenberg but all over the world.

Note that launches are rescheduled very often and can slip half a year or more from their original schedule. You might reserve a room for a launch weeks or months in advance, but remember to watch if it’s been rescheduled and cancel your room before there’s a penalty.

When a launch is listed as “NET” with a date, that means “No Earlier Than” and you should not count on the date given. We joke that it means “Never the Estimated Time”.

To get real-time launch information on your phone, subscribe to @SpaceFlightNow on twitter. Generally this streams so much information that you will only want to turn it on the day before a launch. Cellular internet will be very bad near Vandenberg during a launch, if it works at all. Before you arrive at the launch viewing site, set up your phone to receive the SpaceFlightNow tweets via SMS using this information from Twitter.

If you have a scanner or Amateur Radio, you can receive the launch countdown net on 386.3 MHz – I don’t know if it’s AM or FM modulated (aeronautical use is generally AM). The transmitter is generally turned on shortly before the launch, so expect it to be silent when you arrive.

Launch Viewing Sites

You can see some of the various pads and potential viewing sites on this Google Map annoted by Dan Dascalescu. As I write this, Dan hasn’t marked the SpaceX launch pad at SLC-4 which will be used for this flight, so you can see it here. SpaceX also has a landing pad at SLC-4, here, but it can only be used when the payload and orbit leave enough fuel to return to the landing site.

Viewing From Ocean Avenue

The closest spot you can get to SLC-4, the pad used by SpaceX, is on Ocean Avenue just Southeast of 13th Street and Arguello Boulevard, here. Ocean Avenue will have a police or military roadblock at this point, so you won’t be able to go to Surf Beach or get any closer to the pads until after the launch.

Although it’s the closest you can get to the pad, Ocean Avenue is often a really bad place to view a launch. During much of the year, especially in Summer, the coastal fog will cover this location, making it impossible to view the launch. I’ve stood on Ocean Avenue for a SpaceX launch which I heard quite clearly, but I couldn’t see a thing! I was, however, able to see a ULA launch in November 2016 clearly from the same spot. From this point on Ocean Avenue, the top of the SLC-3 building used by ULA may be visible above the crest of a hill, and if a ULA rocket is on the pad you can see the nose cone from just the right spot, but not the rest of the rocket until it’s launched. But the SpaceX rocket at SLC-4 won’t be visible at all until after it has launched.

If you wish to view from Ocean Avenue, arrive early. The best parking spots will be snapped up quickly, and you might find that it’s too foggy and decide to go to another viewing point. Program your GPS for “5014 West Ocean Avenue Lompoc, CA”.

The photo below shows the distance and angle from SLC-4 from the Ocean Avenue location. It’s 3.88 miles away, almost directly to your left as you face down the road toward the ocean. If you can see the top of the SLC-3 building, the Falcon will be visible just to the right of that once it launches.

Distance and angle from Ocean Avenue near 13th Street to SLC-4.

Viewing From Hawk’s Nest

The base will probably open its official viewing location at Hawk’s Nest for the launch, and this will be announced on Launch Alert and other sources. The site is often equipped with a porta potty, and military and civilian base personnel are there to guide you. Hawk’s Nest is usually out of the fog when Ocean Avenue is socked in. The upper 2/3 of ULA rockets on SLC-3 are visible from this location. I’ve not yet been there for a SpaceX launch and don’t know what, if any, of SLC-4 is visible before the launch.

Hawk’s Nest is a former RV park for base personnel, now overgrown except for the parking lot and roads used for launch viewing. You can reach it on Highway One by programming your GPS for “Azalea Lane, Vandenberg Air Force Base, CA”, and here is a map photo.

Hawk’s nest is much farther away from the pad than Ocean Avenue, about 9.1 miles.  The last time I was there (for a ULA launch that scrubbed) nobody but me brought a telescope or a tripod-mounted binoculars, and I spent a lot of time showing kids (and adults) the rocket through my equipment. This site is far enough from the pad that you should really bring at least a pair of binoculars.

Distance and angle from Hawk’s Nest to SLC-4

A Caution Regarding Viewing From Farm Roads

Some people view the launch from dirt roads in Lompoc and other areas adjacent to farmer’s fields. Stay out of the farmer’s fields, and keep your kids and pets out of them! Those crops are a farmer’s whole livelyhood, and you can do significant financial damage to some farmer just by allowing your kids or pets to run around in the fields. Crop damage will get launch viewers a bad reputation in Lompoc, and will result in the police being called to disperse us or the roads being blocked for the launch.

Viewing from LA

If you are in LA for the launch and the weather is clear, try going to a beach with a northern view.

I’ve tried to view a launch from a street in LA. The result was that I missed all but one second of it due to obstructions, and afterward I could see that the contrail was across half of the sky! The rocket flies over water while it’s ascending, to prevent hazards to people on land. So the beach will be best.

Viewing Night Launches From A Distance

Some night launches can be seen from Lake Tahoe or even farther. The ULA launches which make use of solid rocket boosters are brightest. Brian’s viewing page has some information on that.

Viewing From On The Base

Nobody’s invited me to enter the base (despite the fact that I’d give them a great speech at their site in return☺), so I can’t speak from experience. But I’ve seen through my binoculars people who are admitted to the base climb up a hill near Ocean Avenue that gives them an unobstructed view. I’ve also heard that the causeway between North and South base is a good viewing spot.

Other Viewing Sites

There’s a spot on Santa Lucia Canyon Road which has a partial pad view of SLC-4 and a full view of SLC-3. It’s said that the view is partially obscured by hedges and that the spot is liable to crowd up early. It is also possible to view the launch from Harris Grade, a nearby ridge-top road. Some people have viewed from the tracking base on Firefighter Road, but this is not recommended because the radio frequency exposure in the area is above health limits. There are strobe lights to warn you not to linger in the area.

More Distant Sites

You can view from mountaintops all around the area, and all of the way to LA. Brian Webb has some information here. I’ve not yet viewed a launch from these sites.

Viewing From Offshore

The areas offshore of the base from Point Sal to Point Arguello, extending to three miles from shore, are designated as 9 separate Danger Zones. The marine charts marking the Danger Zones are Chart 18721 and Chart 18700.

Zone 4, the area between the mouth of the Santa Ynez River and Point Arguello, extending to three miles from shore, is offshore of the South Base where pads 3 and 4 are. Your vessel may not stop or loiter there at any time, not just during a launch. So, viewing from the ocean will have to be at least 3 miles offshore.

The Federal safety rules concerning the Danger Zones are here. In addition, the area is within the Channel Islands National Wildlife Refuge and the Vandenberg State Marine Reserve.

Before a launch, notices of prohibited zones should be listed in the weekly Local Notice to Mariners for Coast Guard District 11, but I couldn’t find any notice regarding the WorldView IV launch. They should also be broadcast on 2182 kHz, 2638 kHz, VHF channel 6 (156.30 MHz), VHF channel 12 (156.60 MHz), and VHF channel 16 (156.80 MHz). There should be notices on bulletin boards outside of Port Control Offices (Harbormasters) at Morro Bay, Port San Luis, Santa Barbara, Ventura, Channel Islands, and Port Hueneme Harbors, and “any established harbor of refuge between Santa Barbara and Morro Bay.” And there are supposed to be notices on loudspeakers from patrolling ships.

If you are admitted to the Point Pedernales and Point Arguello oil platforms, “Irene” should have a great view if there isn’t fog, and “Hildago”, “Harvest”, and “Hermosa” might as well.

Viewing From an Aircraft

Here’s a wonderful video of a SpaceX launch shot with a GoPro from a Cessna 182. I’m under those white clouds, not seeing anything, as the rocket comes out of the clouds and into view of the aircraft. Of course the base is within restricted airspace, so the plane couldn’t get too close. The base is on the Los Angeles chart. Activity on the base may be in the Notices to Airmen (NOTAM) and the chart says it’s announced by CTC Hawthorne radio on 122.2 and 122.3 MHz AM.

Viewing the First Stage Landing

If we ever get a return of the first stage to its landing site, the launch viewing sites at Ocean Avenue or Hawk’s Nest will be good to see it. Unfortunately, the rocket will go behind a hill from Ocean Avenue for the last seconds of descent. The rocket is going really fast on its way down and will in general not be visible until it lights off one of the descent burns. One or two descent burns could be visible, and only last a few seconds. Binoculars are called for, sharp eyes to acquire the rocket on its way down before aiming binoculars, and tons of luck.

The barge landing will happen close to directly south of Vandenberg and past San Diego (and the Mexican border) in international waters. From LA, this will be far past San Nicholas, San Clemente, or Catalina islands. Reddit /r/spacex user darga89 has this map of landing locations. You can get the approximate landing location from marine NAVAIDS issued before the flight to block certain areas from ship traffic, but they may close off a 100-mile-long patch of water..

There are folks who simulate the flight dynamics of the launch, and thus can forecast the landing site, I think you can find them at FlightClub. One such person is in the Reddit /r/spacex group as /u/TheVehicleDestroyer . Here is one of his videos.

SpaceX calls the barge an “Autonomous Spaceport Drone Ship” (“ASDS”) and has named it Just Read the Instructions (“JRTI”) in a nod to the “Culture” novels of science fiction author Iain Banks.

Viewing the Return to Port After The Landing

After the launch, you can try to view the return of the First Stage to port in San Pedro, in the Los Angeles area, 2 or 3 hours drive from Lompoc. It will probably take the barge a whole day to get back to port, if not two days.  You can use one of the marine vessel tracking sites to track two of the vessels accompanying the barge, NRC Quest and a hired tugboat,  Pacific Warrior for the Iridium flight in January 2016, via their “AIS” radio transponders. For example, here is real-time tracking of NRC Quest on VesselFinder.

var width=”700″;
var height=”500″;
var click_to_activate=false;
var default_maptype=2;
var imo=9271195;

SpaceX uses the East Channel in San Pedro, across the street from the San Pedro marina, here. Don’t go to the Queen Mary, it’s on the opposite side of the harbor. The photo below shows the barge (Autonomous Spaceport Drone Ship) Just Read the Instructions (“JRTI”) and the ship NRC Quest, both at anchor.

The SpaceX barge (autonomous spaceport drone ship) Just Read the Instructions and the ship NRC Quest, at anchor in the East Channel, San Pedro California.

As you can see, the SpaceX area in the channel is fenced off with a public street and sidewalk on the other side, and the San Pedro Marina with its public parking is right there. Program your GPS for “210 Whalers Walk, San Pedro, CA” and then find somewhere else to park if the marina lot is already full.

It’s possible to peek over the fence, there’s a guard there who is assigned to keep you from taking photos. You can walk to the end of the dock and watch for JRTI to return. The first stage atop the barge is really something to see!

After the barge docks, there will be several days of processing the rocket at the dock, and it should be visible over the fence during this time. An anchoring fixture is attached to the top of the rocket by men on a very tall cherry-picker, and the rocket is lifted from the barge by a crane and set on the dock, still standing up. The crane hook or guy wires remain attached to the top of the rocket to keep it safe from wind while the rocket is “safed” for transport by removing liquids and gases, detonators or explosives, batteries, etc. and pressurizing the fuel tanks (probably with nitrogen) to give them structural integrity during transport.  Finally, the rocket is set down on a special trailer. The trailer takes it to SpaceX in Hawthorne for servicing, and hopefully eventual reuse.

Viewing Military Launches

Launches of military payloads, such as the “NROL” missions of spy satellite launches for the National Reconnaissance Office, will not have the exact time of the launch announced. Less than a day before the expected launch, the base will announce a 6 hour window. If you are lucky, they launch in the first minute of the window, but there’s no telling. Don’t expect any of the usual public support activities to be operating for a military launch.

Viewing Equipment

A low-magnification telescope or a binoculars is the best equipment for viewing a launch. High magnification will actually look worse. Even from Ocean Avenue, the limiting factor on viewing will be heat shimmer in the atmosphere.

I got good results using Orion Resolux 15×70 binoculars, mounted on the Orion Paragon-Plus Binocular Mount and Tripod, from the Orion Telescope store in Cupertino, California. This gets rid of binocular shake, makes it easy and comfortable to use the binoculars for an extended period. It makes it really easy to pass the binoculars to people of different heights, as the parallelogram will move to their height while keeping the binoculars pointed in the same direction. This is about a $600 kit, including taxes, at this writing.

If you aren’t up to buying that, any old binoculars will be better than nothing.

What To Bring

Besides your viewing equipment, bring sunblock, bug spray, water, a snack, a lawn chair, and a book to read. It’s better to set up early and have some book time. If you’re on Ocean Avenue, bushes on the other side of the street are going to be the best option should you need to relieve yourself. Some hand cleaner might be nice to have.

Where to Stay Near Lompoc

Since my family are generally at work and school during launches (and I own my company), I will come alone and won’t be looking for a fancy place to stay. The Motel 6 in Lompoc is usually about $50 when booked in advance, and you can generally find a 10%-off coupon online. I generally arrive in the evening the day before the launch. The cleaners really try hard and this inn has had a recent remodel, but Motel 6 is infamous for previous occupants leaving some hints of their presence. There’s also a derelict car in the parking lot that has been there for at least a year. There’s an extra charge for Internet service, and it doesn’t always work great even after you’ve paid for it.

Inn of Lompoc must have been nice once, but it’s a low-budget place now. IMO only stay there as a last resort. Read the reviews on the other budget places in Lompoc before you book, some of them get pretty bad notices. The nicer places are generally over $100.

If you want to be fancier, there are tons of places to stay in Solvang, Santa Barbara, San Luis Obispo, etc. Lots of things to do, too. Just be cognizant of how far you are from Lompoc and the launch, and make allowances for commute traffic. There is generally a commute on Highway 1 to/from Santa Barbara.

Eating Near Lompoc

The local cuisine is Santa-Maria-Style Barbecue which is based on beef tri-tip, and you should have it once when you’re here. The Hitching Postin the tiny, isolated town of Casmalia is said to be where crews went to eat after launches, and has some space memorabilia on display. The Old San Luis BBQ Company had good food in a modest setting. I stopped in at the Far Western Tavern, and while Santa-Maria-Style Barbecue wasn’t on the bar/lunch menu, they made it for me anyway. There are lots of good restaurants, whatever you’re eating.

Driving to Lompoc

Lompoc is a 4-5 hour drive from the San Francisco Bay area, and 2.5 hours from LA without traffic. If you are used to going from SF to LA on I-5, 101 and 1 are going to seem much slower.

Lompoc Surf Amtrak Train Station

The Surf Amtrak Station is on the beach, about 15 miles from the town of Lompoc. There will be no taxis there, and I’ve never seen a bus.

The train will not run for some hours before a launch, and Surf Beach will be evacuated. Amtrak will run a bus bridge around Surf Station. Trains are allowed through soon after the launch.

It might be possible to view the launch by bringing your bicycle on the train and riding to the Ocean Avenue spot (which is a lot closer than central Lompoc), but you’d need to arrive several hours before the launch to avoid the train closure. Amtrak might be able to tell you the closing time.

The train, during the day, offers the best view of launch pads and other areas on the base that you can’t see any other way, although they will go by quickly.

Lompoc Surf Beach

Surf beach is often cold windy and foggy, but it’s a nice place to have a walk before your long drive home from Lompoc. Access it by taking Ocean Avenue to the Surf Amtrak station.

The beach will be evacuated during a launch.

There is a protected nesting area for endangered Snowy Plovers at Surf, Wall, and Minuteman beaches. Rangers will be there to ticket violators who walk into the nesting area, from March 1 through September 30 . Nesting birds are so endangered that as few as 10 violations per month will result in total closure of the adjacent beach. This web page counts the tickets and shows how close the limit is to a number that would require beach closure, and may show scheduled beach closures for launches.

Vandenberg Base Tour

There is a monthly tour to the Space Missile and Heritage Center on the base, on the third Thursday of the month. A maximum of 30 people will be admitted, and you have to send your ID information no less than 10 days in advance in order to be checked out for admission to the base. Information is here.

Web Sites for Launch Viewers

SpaceFlightNow is a credible news site, and their Launch Schedulepage is essential for launch viewing. It’s accurate and kept up to date. Their twitter feed @SpaceFlightNow is essential as a real-time source of launch information.

A good source of SpaceX information, but a site you must be careful with, is the Reddit /r/spacex group. Read the site if you wish, but I recommend that you refrain from posting to it. It often has great information, is frequented by people who actually understand the math and physics and some who are rocketry professionals, and you can learn a lot about rockets and SpaceX in general.  Sounds great so far, but this is ruined for participants because the community is immature and takes Elon fannishness to excess, and the moderators can show their lack of professional training in journalism.

There is also a SpaceX group on Facebook, which I don’t have personal experience with.

Amateur Radio for Launch Fans

There used to be a ham repeater linked network for viewing launches, Brian has a 10-year-old page on it. Someone told me that the base had asked the hams to desist, but I have no confirmation and it sounds somewhat unlikely. In general the government and FCC encourage hams to put NASA launches on the air, there are even special FCC rules to permit it.

Frequently Asked Questions

What is the white substance I see in satellite photos of the Lompoc area? I thought it was too warm to snow there?

The white substance is diatomaceous earth. It’s the  fossilized remains of diatoms, a type of hard-shelled algae. The land where it is found was once sea bottom. It is mined in Lompoc, and made into toothpaste, scouring powder, water filters, and many other things.

Write To Me

Errors and suggestions? Pre-launch party? Write to bruce at perens dot com.

Bruce Perens K6BP

MariaDB Fixes it’s Business Source License With My Help, Releases MaxScale 2.1 Database Routing Proxy

MariaDB asked me to look over their “Business Source License”. The BSL is a non-Open-Source license which transitions into an Open Source license after a delay. It’s designed to help companies to get paid for developing Open Source by allowing them to make it commercial-license-only for a limited time in which they collect revenue for its licensing, and then the work goes Open.

The BSL license allows copying, modification, and redistribution while the software is in its commercial-license-only state, but it has a limitation on use in production (meaning in any capacity that is meant to make money). In the case of MariaDB, it’s applied to their new release of MaxScale 2.1, a database front-end proxy which redistributes queries to a farm of MariaDB servers. The usage limitation imposed by MariaDB is a maximum of three servers in a commercial context. Any more, and you’ll need to buy their commercial license.

In general, I approve of schemes which allow people to make money from creating Open Source, even when the cost is that the software doesn’t become available to the community under a full Open Source license for some time. Making Open Source shouldn’t mean you wear a hair shirt and live on handouts, while your users, often the biggest companies on Wall Street, rake in the dough. So, I approached the BSL license with sympathy for the purpose. But I had a problem with the implementation.

The BSL is a parameterized license. The licensor chooses the license which is transitioned to, the date of the transition, and the limitation. The problem with this is that it was so parameterized that if you told someone the license was “BSL 1.0”, they would not have any idea what license they really had. It might transition to any of 100 Open Source licenses, or to a non-Open-Source license. The transition might happen in a month, or next century. The limitation might be that you could only have three commercial servers, or that you indentured your firstborn son (OK, that’s going overboard, but you get the picture).

We’d previously had a smaller problem with one-name, many licenses: The Creative Commons licenses do a lot of good, but when you say “Creative Commons”, nobody knows what license you mean. Some Creative Commons licenses are Open Source, some aren’t. Some allow commercial copying and sale, some don’t. Some allow modification, some don’t.

All you really know when someone says Creative Commons is that you have the right to read it. So, I feel that Creative Commons is confusing compared to Open Source. While Open Source has even more different licenses than Creative Commons, they all provide a standard set of privileges that allow you to copy, modify, redistribute, and use the software, including selling media containing a copy and commercially using the software.

So, I didn’t like that “BSL” didn’t really say what the license did, and I didn’t feel that was the best thing for the users or the community. I asked MariaDB to fix it. Together we have arrived at constraints on the parameters and minimum privileges that will take the new BSL much closer to being one license while still allowing licensors some latitude to choose parameters.

The new BSL will transition to Open Source in no longer than four years from the initial distribution of a version of a work under the license. It will always transition to a license that is GPL-compatible (where the choice is GPL 2.0 or any later version) and the licensor can add any number of additional licenses for the licensee to choose. It will always allow copying, modification, redistribution, non-commercial use, and commercial use in a non-production context. The licensor will be able (and encouraged) to specify additional usage rights: for example in the case of MaxScale, MariaDB specifies the allowance of up to three production servers under the BSL without an additional license. The license text will be inviolate and the only additional terms allowed are grants of rights.

So, there can be some differences, but in this new version of the “BSL”, you will have a pretty good idea of what you’re getting when someone says a work is under the “Business Source License”. And thus, I feel it’s worthy of my endorsement. The new BSL will be a good way for developers to get paid while eventually making their works Open Source.

At my recommendation, MariaDB retained attorney Heather Meeker, of O’Melveny and Meyers, to review the license. Heather and I have worked together on many Open Source cases. She is author of Open (Source) For Business: A Practical Guide to Open Source Licensing, and has been a pro-bono counsel to the Mozilla, GNOME, and Python foundations.

Here are more resources on the BSL:

Open Cars – Accepted by Berkeley Technology Law Journal

Professor Lothar Determann of Berkeley Law (better known as Boalt Hall) and I have collaborated on a paper on Open Cars. “Open” this time means Open Standards, Open Interfaces, and an Open Aftermarket.  If you buy a BMW, will the autonomous driving computer always be from BMW, or can they be aftermarket devices that connect through Open Standards, creating a competitive market? And there’s lots of other discussion of the implications of autonomous vehicles and how things will change as automobiles become more computerized.

This is exciting for me, as it’s my first formally published law paper, and of course I’m not a lawyer. As an Open Source evangelist, computer programmer, and intellectual property specialist, I’ve spoken at several law conferences, and have even keynoted a few, but  haven’t submitted a paper before.

It was accepted by the Berkeley Technology Law Journal, which I hear is about the best tech law journal around, with a unanimous vote to accept by the editorial board, for publication in the Summer 2017 edition. A pre-publication version is available for download below. Your comments can help to improve the paper before it’s edited, write to bruce at perens dot com.

Today was exciting because Lothar and I presented a talk on the paper at Boalt Hall, where I’ve spoken a few times but never to this large an audience or with a catered lunch.

The discussion includes Open Source as one of a range of possibilities for Open Car software, but Open Source doesn’t dominate this paper.

Download: Open Cars Determann & Perens 32 BTLJ 2 [Forthcoming 2017]

I Viewed the WorldView 4 Launch at Vandenberg

WorldView 4 Launch at Vandenberg
WorldView 4 Launch at Vandenberg. Click for the 4000×6000 version.

I went to Vandenberg to see the WorldView 4 Launch on a ULA Atlas 4. This photo is from Ocean Avenue in Lompoc, about 2.8 miles from Pad 3. Taken with a Sony a6000 camera with Sony E 55-210mm F4.5-6.3 OSS lens, at 210mm. The 35mm equivalent focal length is 315mm.

I have now gone to 6 launch viewing attempts near the rocket, and two distant attempts to view a Vandenberg launch, from a street in LA and from the Lawrence Hall of Science in Berkeley. Of those, I saw the Falcon 9 DISCOVR launch at Cape Canaveral after being there for one scrub, I heard and did not see the Falcon 9 JASON-3 launch at Vandenberg from Ocean Avenue in the summer – too much fog. I caught a one second glimpse of a rocket in flight from LA. And now WorldView 4. I’ve been to the first attempt to launch this rocket months ago before the Vandenberg fires, a scrub of a launch at Cape Canaveral, and a scrub of another ULA launch at Vandenberg. So, this is the second launch viewing attempt to actually work out, and viewing launches can be really disappointing.

When I viewed the DISCOVR launch in Florida, it was clear enough to see the stage separation with the naked eye. At Vandenberg, there were high clouds. I was able to see a lot of the ascent using Orion Resolux 15×70 binoculars on a pantograph mount, but not the stage separation.

About the 1-second glimpse of a ULA rocket in flight from a street in LA, I saw it just as the stage separation happened. I missed a lot of that due to having houses in the way and looking in the wrong place. I could see the contrail over half of the sky afterward, so I missed a lot. It looks like you can get a good view of Vandenberg launches from the beach in LA when the weather is right and you know where to look. On a street with lots of obstruction, it’s a lot harder to catch.


Installing the Native Debian “armhf” Architecture on Raspberry Pi 3 Instead of Raspbian

I’m building a product for Algoram with a Raspberry Pi 3 as the embedded processor. In doing so, I wanted to have a path to a clean and current distribution with as little non-free content as possible. Raspbian, the Debian version run on Raspberry Pi up until now, was created because the Pi had an odd floating point format that wasn’t supported by Debian “armhf”. That is not the case with Pi 3, it works fine with “armhf”. And Raspbian has some other issues: not all packages were built, and it’s somewhat out-of-date compared to Debian 8.4 . So, I decided to put native Debian on the platform instead of Raspbian.

What follows contains a lot of copying of files that should be replaced with .deb packages in a special supplementary archive which is installed along with Native Debian. Run this from the March 18 Raspbian image:

# Manually create an ext4 partition for the Debian system, and mount it on /mnt
apt-get install debootstrap
mount /dev/mmcblk0p3 /mnt
debootstrap --arch=armhf jessie /mnt
cp -ar /lib/modules /mnt/lib
cp -ar /lib/firmware /mnt/lib
cp /etc/fstab /mnt/etc/fstab
# Manually edit /mnt/etc/fstab to mount the proper root partition.
chroot /mnt
mount -t proc proc /proc
apt-get update
apt-get install openssh-server wireless-tools build-essential bluez aptitude bluetooth bluez-hcidump exfat-fuse exfat-utils locales ntpdate fake-hwclock udisks2 wpasupplicant hostapd network-manager dnsmasq rfkill linux-wlan-ng libncurses5-dev bc git
# Manually add a user and set their password, replace $USER below.
adduser $USER
passwd root

If you want to use the serial console, for example if you plan to replace the kernel and need to see its output while booting, you should also edit /boot/config.txt to add this as the last line:


That will move /dev/ttyAMA0 to the serial0 alias and I/O pins 14 and 15 instead of /dev/ttyS0. On Pi 3, /dev/ttyS0 is a “mini-uart” which does not have its own clock generator. It goes off of its normal baud rate due to the dynamic clock frequency of the CPU. A side-effect of this is that Bluetooth is disabled, because /dev/ttyAMA0 was dedicated to the Bluetooth HCI (Host-Controller Interface) on Pi 3. A Bluetooth USB dongle is probably the best solution.

What doesn’t work:

Graphics, the display, the HDMI port.

What we need to do next:

Create a supplementary Debian repository for this work.

Bring over packages for firmware (put it in non-free) kernel, free libraries, pi-specific-bluetooth, and utilities.

Get the upstream 4.6 kernel running.

Get the Open Source OpenGL driver running.

Move over the uboot that someone recently got working.

Don’t attempt to get Debian to accept it at this time, make the whole thing work first and then once it’s stable ask some nice DD to move it over.  I don’t have time to be a DD again.

Ambitious stuff I won’t be able to do right away unless others want to help:

Take the documentation that Broadcom released on the GPU and a little reverse-engineering, and write a replacement for bootcode.bin that minimally boots uboot on the ARM without doing anything about graphics. Release as Free Software.

Figure out how to load the Broadcom graphics kernel in the same way that Linux loads the rest of its firmware from /lib/firmware .

Profit! (No really, I have a hardware product to sell.)

Licensing Code Fragments in Your Blog – It Really Does Matter

I help some big companies stay on top of Open Source compliance. Last week, a customer found a code fragment that had originated in a blog, in the documentation-writing product of a very big software company that is concerned with documents and graphics. The file was meant to be re-distributed with documents my customer produced. The entirety of the blog was licensed underCreative Commons Attribution Share-Alike. The big software company’s code wasn’t under any sort of share-alike license, and thus they were probably infringing on the blog author, and my customer was at risk of being a contributory infringer when it re-distributed this file.

We contacted the help desk of the big software company, and they might get back to us someday. Before getting louder with them, I contacted the blogger.

Bloggers have placed their work under Attribution Share-Alike and other restrictive licenses to prevent their work from being cloned improperly by unscrupulous people on the net, mostly search-engine-optimization scams. The Attribution Share-Alike license requires proper attribution of the author, and sharing of modifications under the same terms as the original. But like many of us, this blogger put code fragments in his writing, and intended for his readers to use them. CC Attribution Share-Alike isn’t the right license for that purpose. It’s not compatible with proprietary code, nor is it compatible with other share-alike licenses like the GPL.

The blogger admitted that it was tempting to get the big software company to take a look at its own compliance issues, but then graciously agreed to change his blog’s licensing. Now, it’s CC Attribution Share-Alike for the text, and the MIT license for the code fragments. And his readers can use the code fragments he publishes without worry, as the MIT license is compatible with pretty much everything.

Public domain or the BSD license would have worked as well. Remember that the default in copyright law is All Rights Reserved. If you don’t put a public domain declaration or some sort of license on your code, other folks don’t really have the legal right to use it at all.

Hopefully, other bloggers will see this and make sure their code fragments are licensed appropriately. Also, programmers should be careful to make sure that they have the right to use code, even if they’re just pulling a dozen lines off of someone’s blog. It’s not at all clear that the fair use doctrine always applies to such use, make sure you have a license and attribute your copy properly.