Privatisation of knowledge

This article first appeared on DNA here.

A LOT has been said about how Malaysian entrepreneurs have weak patent portfolios. Some of the complaints are about the slow approval process versus the speed at which business moves, and also the high cost of registration – particularly if one wants to enjoy international protection.

However, I would like to share my personal views on why I think that patents are a bad thing for entrepreneurship as a whole.

But first, let’s clarify what a patent is. Wikipedia (always useful) says that, “a patent is a set of exclusive rights granted by a sovereign state to an inventor or assignee for a limited period of time in exchange for detailed public disclosure of an invention.”

Simply put, a patent is a government-granted monopoly over an invention.

Now, patents were crucial to the success of the industrial revolution as it was the legal mechanism to reward people who successfully pushed the frontiers of technology, with a monopoly for them to commercially exploit their inventions.

In principle, there is nothing particularly wrong with this, as we’re rewarding the brave explorers who push forward human development.

However, the number of patents filed during the industrial age was very small compared with the thousands that are filed by individual companies today. Mimos alone files more than a thousand patents each year, while large technology companies like IBM are filing a lot more than that annually.

This presents a problem.

Let’s use an analogy to put things into perspective.

Imagine that the entire body of human knowledge is like a huge land. Let’s call this land Pengetahuan [Malay for ‘knowledge].

If you believe that human knowledge is unlimited, then just imagine that there are land reclamation or exploration works going on at the borders of Pengetahuan. When a brave explorer opens up a jungle or discovers some new land, the King of Pengetahuan grants him a leasehold on that plot, which he then fences up, staking his private claim on it.

There are no significant issues when there was unexplored land aplenty and few fenced up private plots. However, with the numbers of patents filed today, you can imagine that travelling around the land of Pengetahuan would be terribly difficult or even impossible, without hitting a fenced up private property. Entering without permission would amount to trespass and we know what happens to trespassers.

In my opinion, this is the problem with patents – it privatises human knowledge. It is nearly impossible to do anything today, whether in academic research or commercial development, without bumping against someone’s patent.

While the hurdles aren’t insurmountable, at the very least, it is a bump in the road that either forces us to climb over the fence or walk around it.

If things continue to be left unchecked, there would hardly be any land in Pengetauan that we can step on without paying rent, or walk through without paying a toll.

If this was merely land, then we could always choose to stay at home and not go on an adventure. However, patents are a fence on human knowledge. So, the analogy starts to fall apart here.

Imagine that an intrepid explorer – Kembara – manages to high jump over a fence and discovers a new land adjacent to the existing one. He can get a grant from the King on that new piece too. Then, he becomes the new lord in his own land.

Unfortunately, to get to his land, he would need to jump over the neighbour’s fence.

With real land, we can ask the government for a ‘right of way’ – to carve a small path into the new land through the neighbour’s – but this is not the case with patents. The only way that Kembara can get to his own land is by paying his neighbour a toll or rent. Otherwise, his neighbour can sue him, or shoot him.

This is where patents start to stifle inventions – particularly those from young startups. Silicon Valley would not be where it is today if the pioneers were surrounded by patent land-mines. Imagine that Kembara got shot at the moment he stepped out of his home. That would have put a severe damper on his adventures.

The present patent system also encourages some weird behaviour. There are even companies today – Patent Trolls – whose business model is built around patently suing other people for patent violations.

They don’t even need to do any research or development but simply buy up existing patents to bolster their patent portfolios.

What is sometimes missed is that a lot of the technology giants have huge patent banks, largely for defensive purposes. Some have suggested that Google’s purchase of Motorola Mobility for US$12.5 billion and subsequent sale at US$2.9 billion, was for its portfolio of mobile-related patents that it needed to defend Android.

The idea behind a patent bank is that if a company gets sued for patent violations by another, they can countersue for other patent violations because, simply put, it is a near certainty that there are some obscure patents in their portfolio that the other company has violated in return.

This business strategy is MAD – mutually assured destruction.

This is often the reason why startups are encouraged to file for patents. However, in order to make effective use of this defensive strategy, a company would need to have a rich stockpile of patents, and patents cost a lot of money to file and maintain.

The only ones to profit immediately from all of this are the agents of the patent system.

So, instead of encouraging Malaysian startups to buy into an ecosystem that will bleed them dry before they can even spread their wings to fly, I think that we can encourage them to embrace a culture of openness instead.

Knowledge does not come through divine revelation. Ideas cannot bloom in the dark. Innovation thrives when there is openness, sharing and cross-pollination of ideas.

Human progress has always been built on the shoulders of giants. Now, imagine where we would be today if said giant decided to swat us off its shoulder.

Bazaar model vs copyright registration

This article first appeared on DNA here.
Disclaimer: I am not a lawyer and this is not a legal opinion. Please seek professional advice.

I WAS driving home one day when my mind began to wander, from some reason, onto the intersection between copyright laws and Open Source Software (OSS), and I began to mull over the consequences of recent amendments to our Copyright Act.

The Malaysian Copyright Act was amended in 2012 with many new sections added, but my focus is on Sections 26A – 26C. These sections create a Register of Copyright and spell procedures to apply for and amend registrations. The combined effect is the voluntary registration of copyright in Malaysia.

The entire OSS ecosystem relies on strong copyright laws to thrive. Without strong copyright laws, we will not be able to propagate OSS. So, these amendments simplify certain things as there will now be a central directory of all copyrighted works in Malaysia.

In principle, copyright vests automatically with the author the moment that the work is created, and this is clearly spelled out in Section 26 of the Act. Unlike trademarks or patents, there is no need for someone to register a copyright for it to exist.

What the new Section 26B(5) says is that all registered copyrights are secured and admissible as evidence in court. This means that there is now a rebuttable presumption that the person listed on the Register is the copyright owner.

From here on, this article is pure speculation as this is uncharted territory in Malaysian law. However, some insight can be obtained from the United States, where similar laws already exist. Over there, you cannot sue in court if your copyright is not registered, even if you do own the copyright. This may prove to be a problem.

As an illustration, let’s assume Mr Rekacipta wrote some software but did not register his work. Then Mr Cetakrompak copied his code and registered it. After a while, Mr Rekacipta found out that Mr Cetakrompak was selling his software. He was unable to sue because he did not register his work. Instead, Mr Cetakrompak sued Mr Rekacipta.

Since Mr Cetakrompak has a registered copyright, he is presumed to be the ‘true’ owner. So, Mr Rekacipta has the burden to prove that he is the ‘true’ owner. If he fails to prove it, then the law presumes that the owner is actually Mr Cetakrompak.

So, all that we need to do is to register our work and all will be well, right?

Then we need to understand how OSS is developed. There are two main models of OSS development, often called the Cathedral and the Bazaar models.

The Cathedral model is similar to a lot of proprietary software development, where the development work happens behind closed doors. It is centrally driven. The software is only opened up at the end of the development cycle when released to the public.

In this model, it is certainly possible to register the copyright as the code is under tight control from beginning to end. So, it is difficult for someone to copy the code and register the software ahead of the original owner; and the software only needs to be registered when it is finally released.

However, the Bazaar model is the exact opposite, where the development work happens in the open. It is usually community driven. An example of this is the Linux operating system, which is worked on by thousands of developers spread across the entire globe with new code ‘released’ practically every day.

Projects using this development model release new code continuously, whether due to bug fixes or adding new features. These projects are most at risk of being copied and registered by Mr Cetakrompak.

With this model, since copyright merely protects a specific expression of an idea, continuous releases of new code may constitute a new work and would potentially need to be registered, particularly if they added features or changed things significantly. For some actively developed projects, this could mean a new registration every day.

Unfortunately, under Section 26A(2) of the Malaysian Copyright Act , no voluntary registration will be entertained unless a prescribed fee is paid. While the fee may be a nominal one, multiply it across the daily release lifetime of the project, and it is no longer merely ‘nominal.’

Unlike patent registration, there is no requirement under the Copyright Act for the registering body to conduct a search of prior art. All that is needed to register a copyright is to submit the proper forms with due payment, accompanied by a statutory declaration.

For community developed projects, most of the developers are not paid and are contributing code on their own time and dime. Asking them to contribute additional money to register their copyrights regularly, would be a little unreasonable.

Therefore, this new voluntary registration ‘requirement’ has the potential to affect the Bazaar model of community driven software development in Malaysia, to our detriment.

Race Interview

This is a rant.

They say that, there’s a first time for everything. This is definitely the first time that I got asked by a candidate interviewing for an internship position in my company, on the races of the people working at my office.

I frowned, the moment he asked me that question and asked him his ‘reason’ for wanting to know such a thing. That’s when he backed off and tried to brush it off as a non-important question, that he had no reasons for asking it and was just asking for fun.

Wow.

Needless to say, I gave him a little tongue lashing. I reminded him that such a question was an extremely offensive one, even racist in nature, and that he should never ask questions like that unless he had very good reasons to do so. Such things shouldn’t be asked for ‘fun’.

I didn’t let him off that easily and pressed him for his reason and he said that he thought it important because he wanted to know what kind of environment he was going to be working in. I then asked him if he had any problems working with people from a different race, and he brushed it off.

Sigh.

What’s happening in our universities these days?

CRZ on Sport

My CRZ, right after a wash.

I’ve driven more than 5,000km in my CRZ. After the service, I decided to start driving more aggressively as I had gotten accustomed to the drive and handling of the car. That’s when I noticed a few things about the modes on the car.

The CRZ comes with three pre-programmed modes – Econ, Normal, and Sport. I’ve been driving around using the Normal mode most of the time. It’s a decent enough drive, nothing particularly exciting about it. In Normal mode, it drives like almost any other car with a little more HP under the hood.

However, when in the Sport mode, it drives like the wind. Acceleration is awesome and I had to actually change driving styles just to accommodate it. As an example, when shifting gears, I cannot touch the accelerator at all unlike in the Normal mode. A slight touch would cause the engine to rev.

At first, I had thought that the Sport mode would be petrol guzzling. This is also reflected in the dash, which changes to red in Sport mode while it fluctuates between blue-green in Normal mode to indicate fuel efficiency.

However, by using the on-board measuring system, it turns out that the Sport mode is actually more fuel efficient than the Normal mode, if I am driving it aggressively i.e. if I want to drive aggressively, I’d actually save more fuel in Sport mode.

I can get the same <15km/L fuel efficiency in Normal mode if I'm driving it like a normal car, but not aggressively like the little sport coupe that it is. When I push the car in Normal mode, I get <13km/L on it.

Also, the handling changes a bit in Sport mode. The steering becomes noticeably heavier in Sport mode. In Normal mode, I can easily turn by a light push of the steering but in Sport mode, the steering pushes back and tries to straighten itself.

I guess that this is a safety feature, particularly if you were going at high speeds, you wouldn't want your steering to be too light and to easily turn at the slightest touch. So, that's also a good thing.

Anyway, just some observations.

Resolution 2014

Well, looks like it’s time for New Year’s resolutions again!

My resolutions for the coming year are:

  • Finish Law
    Yes, I’ve only got one more year to go for my Law degree. So, my resolution for 2014 is to not screw things up at the last mile.
  • Professional Engineer
    I have put this off long enough. I should just get things done this year. I must get my forms in this year.
  • Change Routine
    This is the toughest one to meet. I endeavour to switch my daily routine for the year. I’d like to play more, work less!
  • Make Money
    I would like to make more money. This is going to work against my previous resolution but I hope to reach a balance.
  • Write More
    I’ve found a healthy outlet for my creative juices – writing articles for the press. I should increase my output though.

Time truly flies.

System-on-Chip, and what it promises

First published on DNA here.

AT a recent dinner with several friends, I was asked what Snapdragon was. I was tempted to answer: “Trademark,” but decided against making that wisecrack. My friends had a vague idea that it had to do with the microprocessor in their phones, but was that not an ARM processor?

I think that some people out there might also be a little confused about it. Seeing that microprocessors are my little hobby, I tried to answer their question.

The technical term for the Qualcomm Snapdragon is a system-on-chip or system-on-a-chip (SoC). It is somewhat similar to products like the Apple A6, Samsung Exynos or TI OMAP devices also found in modern smartphone devices. There are a lot of SoC devices out there.

An SoC is essentially an electronic device that contains a number of other electronic devices that were traditionally found in separate chips that took up a lot of space on a circuit board. With the magic of modern technology, we can now integrate a lot of different functionality and powerful capabilities into a single silicon device.

Hence the term system-on-chip.

Integrating multiple chips into one saves on-board space that is already very limited in our increasingly smaller phones. This means that we can all look forward to having physically smaller devices as more and more functionality gets integrated into an SoC.

Furthermore, integration improves communication capacities between the different devices, keeping all circuit paths on-chip instead of on-board. Although electrons move very quickly, it still takes a finite amount of time for them to move from one place to another. So, shorter circuit paths will improve speeds and give us a better user experience.

In addition, integration also improves power consumption by having less circuitry overall. By squeezing everything onto a single chip and allowing all the different parts to communicate directly with each other, it reduces the amount of power needed for everything, which gives us better battery life.

Let us not forget that integration also means economies of scale and brings down the cost of manufacturing. Instead of manufacturing multiple devices using different technologies and processes, a fully integrated device could be manufactured at one time, using a single manufacturing process.

Therefore, SoCs are the way to smaller, faster and cheaper gadgets.

A typical SoC would contain one or more microprocessors with a number of other peripherals or devices all tightly integrated within it. These microprocessors do not even need to be of the same type or architecture, but are commonly so for convenience. Some makers couple big microprocessor cores with little cores in order to improve power efficiency.

It is not uncommon these days to find a modern smartphone with quad-core microprocessors and graphics processors integrated into the same SoC. This is where companies like ARM come in – to supply the microprocessors that power most mobile computing devices today.

A microprocessor is essentially the brains of all modern computing devices. But for a brain, it is actually pretty dumb. It is essentially an over-powered calculator, merely capable of performing billions of computations each second and moving bits of data around.

But through the modern sorcery of software, all this calculating and moving bits around actually give us our videos, music, games, the Internet and all other manner of modern entertainment, information and communication capabilities.

So, what about Intel?

Intel is definitely a major supplier of microprocessors, especially for the desktop, laptop and server markets. However, Intel microprocessors have traditionally been sold as standalone microprocessors and not fully integrated SoCs.

Only recently has Intel released a line of Atom-based SoC for use in smartphones and tablets, which has found use by several manufacturers. It is a late entry into the mobile phone market, which is the traditional stronghold of ARM microprocessors. This is the reason why most phones run on an ARM microprocessor.

So, how does all this change our lives?

Since nearly all mobile phone SoC use ARM microprocessors, their computational capabilities are fairly similar with all else being equal. However, the difference in the types of devices integrated into the SoC by different makers mean that different devices will have different features and capabilities.

However, unlike traditional PC markets, all this tight integration means that the consumer loses the option to mix-and-match capabilities. We cannot pick and choose different microprocessor, graphics, radio and other capabilities. Consumers are only left with using the set of capabilities that the device makers have decided to put in.

One does sometimes wonder if the world would be a different place if the smartphone market developed like the PC market – where one could assemble custom hardware and load it with any software they liked instead. Wouldn’t it be great if someone out there provided the tools for consumers to easily assemble their own SoC?

It seems that in our pursuit of having smaller, faster and cheaper devices, we may have sacrificed some personal freedom. If that does not matter, then it’s a non-issue.

But if it matters, supporting product ideas like Project Ara, Phonebloks and Neo900 would be a good start as it would tell device makers that consumers want more freedom. And to take things further, supporting open-source SoC efforts like ORPSoC, Milkymist and T3RAS would be even better.

Disclosure: Milkymist was originally powered by my AEMB2 microprocessor and T3RAS is the upcoming SoC from my company.

How to Learn Programming in Small Groups

This article first appeared on DNA here.

In my previous column, I suggested several ways that one could start learning programming, at any age, on our own. The important thing to remember while doing all this learning is to keep things fun and what could be more fun than doing it with some like-minded individuals?

Although the stereotypical computer programmer is often depicted as a loner working from a dark basement or kitchen table, programming is actually a social activity. In fact, there are certain aspects of a programmer’s skillset that can only be cultivated if we do programming as a group activity.
The group does not need to be big – a pair is often good enough.

We can think of a program’s source code as a form of written communication. Besides being a systematic method to instruct computers on what to do, it also serves as an exact and unambiguous form of communication between those who understand the language.

Just like how we are often told to read and write more as a way to improve our language skills, by our English teacher, a good way to improve our programming skills is to write some code and have someone else read and critique it.

Another excellent way of improving our coding skills is to read code written by other programmers. It takes a good programmer to spot the bugs in someone else’s code. We can learn as much from the mistake that others make, as from our own.

Therefore, working in a small group is a good way of sharpening communication skills and ensuring that others are able to understand what we are trying to accomplish. If someone else finds it difficult to read and understand our code, then we are likely doing it wrong.

A popular cartooni illustrates this best: “the only valid measurement of code quality is WTFs a minute.”

Programming is an intellectual activity involving multiple layers of abstraction and many moving parts. Sometimes, things get complicated quickly. We can often discover better ways of doing things by simply discussing our code with others.

In addition to sharpening our communication skills, we will learn how to see things from a different viewpoint and learn to think at multiple levels of abstraction. It is often useful to discuss things with non-programmers too as they can offer a fresh perspective.

Useful real-world software is often created by programmers working together, sometimes across different geographical regions and time-zones. As a result, a lot of effort has been spent on developing tools that enable teams of programmers from around the world to work together.

While there are far too manyii such tools to list, they all have the same objective – to help manage source code and teams. So, the key is to just pick one and learn good house-keeping rules. Just like programming languages, good programmers know how to use several.

I would personally recommend learningiii to use Gitiv, simply because it is used to manage the source code of Linux, which has several million lines of code written by thousands of programmers from across the world. It is both capable of managing complex projects and quite useful for handling small individual projects.
There are many different methodsv to use Git but which one we ultimately choose will depend on individual preference and group dynamics.

That’s right, programming is a great way of learning how to work with other people.

Writing software gives us a chance to work with diverse people from around the world, and not just those from our own kampung. This is particularly true for major open-source projects. We will get to interact with others who share our interest, from all across the world.

A good programmer needs to know more than just how to write code. A good programmer must be capable of communicating clearly and concisely, able to see things from different perspectives, and able to work effectively with others including those who may not necessarily be programmers. These skills cannot be learned by working alone.

Disoriented Musings of a Technology Romantic

Follow

Get every new post delivered to your Inbox.

Join 290 other followers