When Epic Games sued Apple, it looked like the fight would center on Fortnite. But, Apple decided to expand the ban against Epic Games, revoking the company's developer license effective at the end of their month. This move had a significantly bigger impact than just preventing iPhone owners from playing one of the most popular games in the world. It meant that everyone who uses Unreal Engine to build their apps and games for iPhone, iPad, and macOS, would lose that core. To express just how important Unreal Engine is to the software world, even GMS's new Hummer uses it for the infotainment system.
This week, Judge Yvonne Gonzalez Rogers of the US District Court for the Northern District of California ruled in favor of both companies. The court upheld the injunction against Epic Games, allowing Apple to keep Fortnite out of the App Store but also put in place a permanent injunction against Apple, preventing them from blocking Unreal Engine.
There was little chance that the court would put in place a temporary stay of the ban against the game, but it is a good thing to see that Apple cannot harm Unreal Engine. So many apps and games use Unreal Engine to build their products that this move would have negatively harmed most of Apple's customers almost immediately. While it was designed as a gaming engine, it has been used for drone flight controllers, enterprise applications, and now even vehicle computer systems.
This is still just the beginning of the battle between these two companies. The next major court date will be in May 2021, when the primary issue will be heard. That case will have lasting ramifications to the mobile world, no matter which direction the ruling goes. We also expect whichever company loses to appeal until the Supreme Court weighs in. With that said, this court case could pend for a long time, if Google and Oracle is any indication.
When it comes to the mobile world, there is an important battle heating up over the way developers and users are treated. As time goes on, sides are forming and unlikely allies are building. Some companies have been incredibly outspoken, like Epic Games, which went so far as to sue Apple over its billing policies. Facebook and Microsoft spoke out over Apple's gaming policies.
It seems most publishers would like to see the option for external stores introduced to Apple's iOS ecosystem. Google's Android allows for external stores, such as Samsung's Galaxy Store or Amazon's Appstore, but on iOS, Apple is 100% in charge like Marcus Lemonis. Microsoft, whose ecosystem has always been an open one, decided to call out Apple's policies without calling them out.
In a blog post, the company put forward what it considers to be an essential set of principle - its "app fairness" policy. The first commitment is that Microsoft will never prevent alternate distribution methods. Sure, Windows 10 S restricts installation to the Microsoft Store, but that is a security feature, which can be turned on or off. If you want to install software from the web, you can. If you want to install a competing store, Like Steam or Epic Games Store, you can. The computer is yours, not Microsoft's.
The most blatant commitment, though, is their commitment to not block an app or a developer because of the payment method they choose. That issue has been at the heart of the Epic Games battle, which also had some motion this week. Epic does not want to pay Apple 30% of its sales for the privilege to use a payment system they don't want to use.
The company also promises to revisit these core principles regularly in order to evaluate its fairness against current legal requirements and developer feedback.
A little over a decade ago, Oracle followed what seemed like every other tech company and filed suit against Google. While it was the popular thing to do at the time, Oracle's suit was different from everyone else's. Oracle claimed that, in Google's implementation of Oracle's Java programming language for Android, they duplicated protected API interfaces. Google argued that the API surfaces, or the outer structure that defines the methods and arguments for those methods, were publicly available and, therefore, not protectable.
This is an unbelievably complicated topic that requires further explanation. In particular, let's discuss some of the terms which have been at the center of this court battle. The first and most important term is API. An API, or Application Programming Interface, is a collection of code with publicly exposed methods for a system's operation. Generally, when we discuss APIs, we talk about web APIs also known as web services. A lot of web services are intended for public consumption, and so their structure is publicly known.
In the Oracle and Google case, the API is very low level, including basic math functions. The idea of creating a method to find the maximum value or a number is far from unique. However, creating a class called Math in a namespace named java.lang, with a method named max with two arguments, both doubles, named E and PI, is unique. The structure was designed by the Java language team, which Google duplicated in order for Java to be used to develop for Android. That's because Oracle does not make the implementation of Java available to the world. But, because of the nature of APIs, the surface is publicly documented.
The programming surface is the most outer aspect of the API. It is the part that is exposed to programmers. It includes the namespaces, the classes, the methods, and the arguments. Even with fully compiled and signed code, the programming surface is exposed. There is no way for an API to be useful if you cannot discover, one way or another, the structure of the surface. Everything under the surface, however, is protected. That means that the implementation is private, and the code behind the implementation is copyrightable. The case, however, is all about whether or not the surface itself is also copyrightable.
Over the past ten years, this case has seemingly landed in every court possible. This week finalized that legal tour, with Google and Oracle arguing their cases in front of the final word in US law - the United States Supreme Court. The court, which currently has 8 sitting Justices, heard the case presented by both sides and will before the end of their current term. Under normal circumstances, there are two likely outcomes, but under these current circumstances, there are three.
The first likely outcome is that Oracle wins outright, setting a national precedent in favor of code protection. This would mean that developers can protect their general program code, as well as their interfaces. The second likely outcome is that Google wins outright, setting a national precedent in favor of code ubiquity. This could mean that, not only are programming interfaces lose protection, but code as a whole could as well. The third possibility, which is created by the even number of Justices, is a tie. In this fairly unusual scenario, the ruling would default to the previous court's ruling, but would not set a national precedent, meaning that different jurisdictions could relitigate the case. The previous ruling was in favor of Oracle.
In addition to national precedent, which is important to the developers of the country, Oracle is looking for a licensing fee to subsidiary Sun, which is responsible for the Java ecosystem. Sun licenses the Java language and ecosystem as its primary business model. A decade worth of overdue licensing fees for billions of instances of Android across the world could cost Google billions or tens of billions of dollars.
With a case this important, being argued in front of the most important court in the country, with potential repercussions beyond what we currently understand, you would expect that both sides would bring their A-game. However, Google appears to have gone a different direction. In fact, legal scholar James Grimmelmann of Cornell University said of Google's attorney Thomas Goldstein,
He did an abysmal job. At the level of nuance he was willing to get into, his case was a loser. The only way to make it stick is to be nuanced about what it means to declare code.
Nuance was the key to this case. How do you argue that some parts of a software system are protectable but other parts are not? You have to describe in nearly excruciating detail just how different these two aspects of software are. But Goldstein's primary argument was that an API method like Math.max was a "method of operation" because programmers "operate" the Java language through invocations of these interfaces. This seems like an important distinction because Section 102(b) of the Copyright Act, the centerpiece of the case, states that an "idea, procedure, process, system, method of operation, concept, principle, or discovery" cannot be copyrighted.
Google's argument falls apart immediately, however, because any function, including private functions, can be described the same way. That would mean that no software could ever be copyrighted, meaning that software clones (which is where someone steals the code of an app and publishes it under their own name) would be entirely legal. It also means that the entire law, which is intended to allow developers to protect their work, has zero value. Justice Samuel Alito summed this up well, saying,
I'm concerned that under your argument, all computer code is at risk of losing protection under 102(b). How do you square your position with Congress' express intent to provide protection for computer codes?
Goldstein was not able to articulate a position in which the two types of code were different, essentially undermining his own case. Justice Brett Kavanaugh, the last to ask questions because of his position on the court, brought up that Oracle's lawyer said,
...declaring code is a method of operation only in the same sense that computer programs as a whole are methods of operation, and that therefore your method of operation argument would swallow the protection for computer programs.
He followed up by asking Goldstein,
You're not allowed to copy a song just because it's the only way to copy a song. Why is that principle not at play here?
The Court has not yet ruled but will need to by the end of their current session. There is no clear indication which way the court is leaning, though at least some of the Justices seemed unconvinced by Google's arguments.
If you've missed the news about alternate fuel vehicle brand Nikola, it's been quite a wild ride. The company has been exposed for being a Theranos-level fraud in all aspects. The design of their flagship truck was stolen from the 2010 concept by designer Adriano Mudri, who is now the head designer for the Croatian automaker Rimac. This is following a lawsuit against Tesla, claiming the company stole the design from them. Then, a partnership was announced with GM to produce the vehicle. Within short order, it was revealed that the sizzle video that was everywhere, showing the truck in operation was also a fraud.
Things have just gotten worse from there. The GM deal, which was supposed to be finalized this week, has not and potentially will not close at all. GM has come under fire for accidentally supporting a company that has no product and is under legal scrutiny on every front. But, it is all about that video - which has become a topic of much conversation, both in the technology space and in the investment space.
Investors are seeing another Theranos, with a founder that is under fire, and a company with high theoretical value based on nothing but lies. In discussing the topic, many commentators have included the clip of the truck rolling down the hill by gravity, which has been the center of the controversy. Including this clip is an important aspect of the news reporting, as it shows just what the company did to defraud investors and partners. However, the company has been using the Digital Millenium Copyright Act (DMCA) to issue takedowns against those who include the clip.
Many of the uses, including one from Sam Alexander, fall under fair use, but YouTube took the video down and hit Alexander with a copyright strike. That could ultimately affect the channel's monetization and reach, even though he did nothing wrong. Filing an invalid DMCA notice is illegal, and in Nikola's case, could also violate SEC guidelines in trying to hide fraudulent activity. Nikola founder Trevor Milton resigned as executive chairman but could be facing the same future as Elizabeth Holmes, as the cases are incredibly similar.
In 2020, the number of ransomware attacks has grown significantly. In addition to computers and mobile phones, we've begun to see internet-connected devices come under attack, including things as innocuous as coffee makers. All governments have always warned that paying these ransoms are dangerous for multiple reasons, from a likelihood that you won't get back what's been taken to the fact that you're paying criminals and encouraging it to happen again. In the United States, the guidance is changing, and it could become a crime to aide this criminal behavior.
In an advisory from the Treasury Department, it is stressed that transferring money to criminal enterprises, for any reason, is a crime. They point out that many of these groups are international, making the transaction an international wire funding fraud. In addition, the transfers could be going to groups or countries on blacklists, such as Iran, North Korea, or Cuba. The advisory states,
Facilitating a ransomware payment that is demanded as a result of malicious cyber activities may enable criminals and adversaries with a sanctions nexus to profit and advance their illicit aims. For example, ransomware payments made to sanctioned persons or to comprehensively sanctioned jurisdictions could be used to fund activities adverse to the national security and foreign policy objectives of the United States. Ransomware payments may also embolden cyber actors to engage in future attacks. In addition, paying a ransom to cyber actors does not guarantee that the victim will regain access to its stolen data.
The feds have been trying to get a handle on what's been going on with the ransomware space. With medical centers, research facilities, and more, all coming under attack, something has to be done to not only protect citizens but sensitive data, as well. While it is unlikely that the Treasury Department will act on this advisory with individuals, there is no doubt that they will act against large organizations that pay large fees to criminals.
It's been just over a year since Google began testing Google Play Pass, a subscription service for gaming on mobile devices. Apple quickly announced Apple Arcade, a near copy of the service. However, like many of the new and exciting Google services, it was region locked to a small number of countries. Since coming out of preview, the list has not grown much, until now.
Google has announced that Google Play Pass is officially expanding in a big way - with 24 new countries coming online right now. This brings the full count of countries to 34. For users in these countries, all you need is a compatible device running Android 4.4 or higher and a valid payment option attached to their Google Account.
When it comes to subscription services, one of the biggest challenges can be international expansion. The service has to ensure that they have licenses to distribute content in these new markets. They have to ensure that there is regionalization for the markets. They also have to make sure that the service is a good value proposition for subscribers. In gaming, it can be even more difficult, as some games use technologies that are not always exportable, meaning that the games that are available in the US may not be available in the UK. Plus, a game may not have German language capabilities to be valuable in Germany.
Of course, there has been a lot of discussion about whether or not Google Play Pass is worth the money. There is also the issue of subscription fatigue, something that we have discussed many times over the past year. While most of the focus has been on video services, we have seen a huge increase in the number of subscription services. For heavy mobile gamers, though, a service like Google Play Pass or Apple Arcade can be a valuable option.