Puter, the Web-based OS, and My New LEDES Program

This post is mostly about Puter, a great new open source project that is building a web-based operating system.

I decided to try it out. Now, I used to be a software engineer long ago, but occasionally I like to try my hand at coding in the 21st century. Puter apps are written in HTML/Javascipt, which is the basic coding for all web pages. They are not hard languages to learn, and there are plenty of online tutorials, development environments, and resources to write programs in these languages. Puter also provides a nice little playground to try out your programs as you write and debug them. I also made use of Claude from Anthropic, which is a pretty amazing AI to write code, and has a free tier.

Using all this, and some help from nice friends at Puter, I cobbled together a very simple program for my law practice.

The LEDES Problem

If you are a lawyer, you may already know this, but many companies require–or at least prefer–legal invoices to be delivered in a format called LEDES. LEDES is an outdated, clunky, deeply horrible standard. If you have used any of the biggest legal invoicing platforms, like Legal Tracker, CounselGo, Coupa, or Brightflag, you have probably used this standard, whether you know it or not.

LEDES is a pain because it is nearly impossible to create an invoice in this format by hand. It uses plain text with an odd delimiter (try to find | on your keyboard), requires complete invoice information on every line item, and has various unnecessary fields and other clunky features. So if you have to produce a LEDES invoice by hand, you are in for an unpleasant hour or two. Why would you need to do that? Well, some clients refuse to accept anything else, or use billing platforms that don’t allow you to do manual input.

You can get a service to prepare a LEDES invoice for you, and it costs about $100 per invoice. Yes, that’s right. If you are a solo lawyer sending out invoices for a few thousand dollars, that’s a bite into your pocket money. I never want to pay such a fee again, and I never want anyone else to, either. So I decided to make my program available under an open source license. That means you can run it locally if you prefer, but the easiest way is to run it on Puter here.

Puter is Liberating

Deploying on Puter was easy and quick. It’s free for developers. And my little program does not even scratch the surface of what you can do. For example, you can use file storage, databases, GPT-4, DALL-E, and other features that would otherwise be very annoying to access with Javascript.

My little LEDES program is just the first version. It is functional but clunky. It surely has bugs. I plan to improve it in the near future. For example, I intend to improve the input screen, and help with useful defaults. But in the meantime, enjoy, and don’t let the billing platforms get you down!

(Note: I am an advisor to Puter, so please consider that I am not unbiased in my praise for the platform.)

Bungie Wins Against Cheat Providers for Destiny 2

Recently, Bungie, the developer of the Halo and Destiny video game series, won a judgment of just over $60,000 against AimJunkies, a cheat and mod site. The lawsuit arose because AimJunkies was selling cheats for Destiny 2, a free-to-play online first-person shooter with over 10 million players. In the complaint, Bungie explained the problem with the cheat codes:

Destiny 2 rewards players for their gameplay skills with items, seals, and titles, and these rewards are visible to other players.  Cheaters earn the same rewards without the requisite gameplay skill.  When cheating occurs, or when there is a perception that players are cheating, then non-cheating players become frustrated that cheaters obtain the same rewards and stop playing.”

From the Complaint filed 06/15/21

The complaint was filed based on copyright and trademark infringement, breach of contract, as well as DMCA (Circumvention of Technological Measures to control copyright). 

The copyright claim may sound like a bit of a stretch. A cheat code, standing alone, probably isn’t a copy of anything protectable. I would have expected the defendant to raise this issue, but it’s hard to tell what happened from the public documents. There was a motion for preliminary injunction in June of 2022. It explains that the defendant was actually creating copies of the game–or at least part of it:

to create cheat software that includes these features, Defendants necessarily copied the Destiny 2 software code that corresponds to key attributes in the Destiny 2 video game, such as the data structures for player and combatant positioning 

Well, perhaps. Data structures are at the bleeding edge of copyright law. But if you find the copyright claim unconvincing, the complaint had plenty of other ammunition as well.

The defendants had downloaded Destiny 2, and therefore agreed to the terms of its end user license, which expressly prohibits the user to:

hack or modify Destiny 2, or create, develop, modify, distribute, or use any unauthorized software programs to gain advantage in any online or multiplayer game modes.

Cheating might seem harmless on face, but keep in mind that Destiny 2 is a multiplayer online game that is free to play, but charges for in-game purchases. In contrast, cheat codes in single player games don’t usually concern the game publishers as much.  If you buy a mod that helps you grow cash crops faster in Stardew Valley, no one really suffers, other than perhaps your friends who envy your lush and beautiful farm. In fact, Stardew Valley, a hugely popular game, supports a wide library of cheats, which only seem to make the game more popular. 

But cheats in multi-player online games like Destiny 2 can give you an advantage against other players, and that messes with the developer’s business model. In other words, the developer wants to be the only one able to sell advantages, and to control how much advantage they provide. But to be fair, for Destiny 2, there seems to be disagreement among players as to whether the legitimate in-game purchases provide you with any real advantage. Most of them are cosmetic only.

The damages awarded in this case represent the revenue AimJunkies earned from selling cheats for Destiny 2. In the world of copyright lawsuits, $60,000 is a very small award, and doubtless Bungie spent quite a bit more than that in legal fees to prosecute the lawsuit. 

But the purpose of the suit was clearly to prove a point, and establish a basis for suing other cheat providers. And it turns out that Bungie is not afraid of spending legal fees. There is an excellent article in Axios about Bungie’s various legal campaigns. 

The gaming world can be a dangerous place indeed. In addition to other lawsuits about cheating, Bungie has brought suits against player trolls who have made threats to the company’s employees. An article in the New York Post said that one player “allegedly threatened to burn down Bungie headquarters in Seattle. On July 4, 2022, in response to a tweet asking if anyone was willing to commit arson in Seattle in exchange for payment, [the player] replied that he was, and that the poster would receive a discount if the target was Bungie.”

And in a somewhat less disturbing, but also concerning, case, Bungie sued a fan who impersonated Bungie for the purpose of sending a spate of DMCA takedown notices–the kind that content creators send when someone is copying their content on a site like YouTube or TikTok. The notices were directed at fan-created content, but Bungie allows fan content. The fraudulent takedown notices were part of a soap opera of conflict between a disgruntled fan and the company. More info here.

Meanwhile, it’s getting more popular, and easier, to sue the cheat providers. There will probably be more lawsuits to come–from Bungie and others–as they try to shut down this kind of business.

Watch my video here.

Data Scraping Opinion Implications for AI and Open Source Copyright Issues

On May 9, 2024, an opinion was issued in the case of X v. Bright Data by the US District Court for the Northern District of California, on the topic of copyright preemption. On first blush, this opinion is important for what is says about the limited ability of social media sites to prevent data scraping via their terms of service. But it also provides some interesting commentary on the more general issue of copyright preemption.

In this case, X sued Bright Data based on violation of the X terms of service, which prohibit “Misuse of the Services,” and specifically, “scraping the Services in any form, for any purpose.” Such terms have long been common in online terms of service, and have become even more common after the last year’s rush of machine learning model developers scraping public sites for training data.

The decision was issued by Judge Alsup, who famously ruled for Google on the issue of protectability (or lack thereof) of APIs under copyright law. Based on that opinion alone, if nothing else, Alsup is known for his sophistication about technology issues; he famously learned some Java to opine on that case.

Preemption: State Versus Federal Law

Preemption is a key concept in copyright law. Preemption dictates the interaction between US state law and federal law. Copyright is federal law only; the US Copyright Act of 1976 made this crystal clear under Section 301(a). But it says that legal claims “are not preempted if they fall outside the scope of 301(a)’s express preemption and are not otherwise in conflict with the Act.” Ryan v. Editions Ltd. W., Inc., 786 F.3d 754, 760 (9th Cir. 2015).

The policy reason behind this strong statement of copyright preemption was mainly to prevent individual states from making laws creating their own more restrictive, conflicting versions of copyright law. Copyright law is a balancing act: it allows authors exclusive control of certain activities, like copying and distribution of their works, but that power is balanced against the rights of others to use works of authorship in some ways.

Particularly for works like databases and software, copyright protection has many limitations. In the Oracle v. Google case, all of these doctrines came into play: idea/expression dichotomy, merger, short words and phrases, de minimis–and pivotally, fair use. All these limit the power of the author to control certain uses of their works. More restrictive state law–in the form of contract, unfair competition, and similar theories–threaten to rewrite the balance that federal copyright law represents.

Alsup notes in the decision that there are two clauses to Section 301(a)–scope and conflict. State law claims can survive preemption if they deal with something outside the scope of copyright law, such as overloading servers or use of name and likeness. But the statute also refers to conflict. “Although conflict preemption has played second fiddle to express preemption in the caselaw as of late, it is the more appropriate consideration when … enforcement of state law undermines federal copyright law.” Therefore, even if the state law claim is not within the scope of copyright law, conflict preemption can exist when enforcing the contract would be “an obstacle to the accomplishment and execution of the full purposes and objectives of Congress.” Crosby v. National Foreign Trade Council, 530 U.S. 363 (2000), at 373.

Alsup also emphasizes that conflict preemption is particularly important when the contract to be enforced is a standard form contract, as opposed to a contract negotiated between two parties. This kind of one-to-many relationship looks closer to what copyright law was intended to govern, whereas one-to-one contracts allow parties to negotiate a different balance of rights if they desire to do so.

The opinion goes on to list three ways that enforcing a contract prohibiting scraping data would undermine the policy of copyright.

  • Copyright empowers copyright owners to exclude others from reproducing, adapting, distributing, and displaying their copyrighted works. But X did not own the copyright to the user-generated content (UGC) on its site; its terms of service, unsurprisingly, only grant X a non-exclusive license. “X Corp.’s state-law claims based on scraping and selling of data would empower X Corp., as a non-exclusive licensee, to exclude others from reproducing, adapting, distributing, and displaying X users’ copyrighted content”—even though X users licensed their copyrighted content to X to make it freely available. Enforcing the contract would take the power to enforce the copyright away from its true owners.
  • Similarly, enforcing the contract would interfere with the copyright doctrine of fair use, which grants everyone the right to use copyrightable works in ways that encourage creativity and other policy benefits.
  • Last, enforcing the terms would upset the balance of copyright law, which is a “scheme of carefully balanced property rights that give authors and their publishers sufficient inducements to produce and disseminate original creative works and, at the same time, allow others to draw on these works in their own creative and educational activities.” Goldstein on Copyright § 1.14 (3d ed. 2023).

Accordingly, the court ruled that X’s claims under its terms of service were preempted by copyright law, to the extent based on scraping of data.

Sauce for the ML is Sauce for the OSS

This case could have significant implications for the tech world. First, it could create opportunities for those training AI models to scrape content from websites, regardless of contrary prohibitions in the sites’ terms of service. Of course, site operators with treasure troves of data will still have an advantage over scrapers. Even if site owners cannot entirely prevent others from scraping UCG, they can sell preferential access to their APIs. Moreover, the reasoning of the decision might not hold for sites whose content is not primarily UCG.

But second, it could have implications for open source enforcement. For decades, enforcement of open source licenses has been prosecuted under copyright law. The pending SFC v. Vizio case is an attempt to avoid this avenue and bring an action under contract law. In that case, Software Freedom Conservancy brought an action for violation of GPL based on a pure contract theory, seeking specific performance of the contract (i.e. an order to release source code) and not seeking any damages or other copyright remedies. Specific performance is a primarily contract remedy–a rare one at that–and is nearly unheard of under copyright law. The defendant moved to remove the action to federal court based on copyright subject matter and preemption, but lost that battle. The claim was was bounced back to state court, where it currently awaits trial.

The Vizio case, like the X case, is in the 9th Circuit. Like terms of service, open source licenses are one-to-many arrangements, and as in the X case, the plaintiff is not the author. Alsup’s shift of focus to conflict preemption could provide a basis for appeal, or otherwise influence the outcome of that case.

Apple Releases an Almost Open Source AI Model

This week, Apple released an SLM (small language model) called OpenELM, which was touted as open source. It did so under a license that got very close to meeting the Open Source Definition–with the caveat that no such official definition exists yet for AI models.

The license says,

Apple grants you a personal, non-exclusive license, under Apple’s copyrights in this original Apple software (the “Apple Software”), to use, reproduce, modify and redistribute the Apple Software, with or without modifications, in source and/or binary forms…

Except as expressly stated in this notice, no other rights or licenses, express or implied, are granted by Apple herein, including but not limited to any patent rights that may be infringed by your derivative works or by other works in which the Apple Software may be incorporated.

So close, and yet, no cigar. The reservation of patent rights in “derivative works” and the grant under “copyrights” apparently seeks to reserve Apple’s ability to sue for patent infringement for use of the model–or perhaps only for changes to the model. But in any case, it doesn’t grant the full rights necessary to be open source.

This is an unfortunate near-miss. It’s not clear that there actually could be any patent rights embodied in or necessary to use the model itself, given the current state of the law in the US, which does not allow patenting of inventions created automatically without human authorship (which probably includes any machine learning model). Also, it seems unlikely that Apple actually intends to sue anyone for patent infringement for using this model, or for modifying it (at least to the extent any inventions were already embodied in the model). So this is probably a case of cautious drafting for an issue that does not really exist.

But at least it’s not RAIL.

French Court Issues Damages Award for Violation of GPL

On February 14, 2024, the Court of Appeal of Paris issued an order stating that Orange, a major French telecom provider, had infringed the copyight of Entr’Ouvert’s Lasso software and violated the GPL, ordering Orange to pay €500,000 in compensatory damages and €150,000 for moral damages.

This case has been ongoing for many years.

Entr’ouvert is the publisher of Lasso, a reference library for the Security Assertion Markup Language (SAML) protocol, an open standard for identity providers to authenticate users and pass authentication tokens to online services. This is the open protocol that enables single sign-on (SSO). The Lasso product is dual licensed by Entr’Ouvert under GPL or commercial licenses.

In 2005, Orange won a contract with the French Agency for the Development of Electronic Administration to develop parts of the service-public.fr portal, which allows users to interact online with the government for administrative procedures. Orange used the Lasso software in the solution, but did not pass on the rights to its modifications free of charge under GPL, or make the source code to its modifications available.

Entr’Ouvert sued Orange in 2010, and the case wended its way through the courts, turning on, among other things, issues of proof of Entr’Ouvert ‘s copyright interest in the software, and whether the case properly sounded in breach of contract or copyright infringement.

On March 19, 2021, the Appeals Court first rejected Entr’Ouvert’s claims for copyright infringement, saying that the case was a breach of contract claim. The Court of Cassation, which is the supreme court of France, reviewed the case and issued an order on October 5, 2022 overturning the decision of the Court of Appeal. The case was then remanded to the Court of Appeal, which issued its order this week.

The compensatory damages were based on both lost profits of the plaintiff and disgorgement of profits of Orange. Moral damages compensate the plaintiff for harm to reputation or other non-monetary injury.

Note: I patched this information together from various articles, mostly read in translation. The dates in the lawsuit process were inconsistent in those sources. If I find any errors, I will update this post.

Update 2/22/24: Here is the decision in French.