Geeks Are Boring…

Main menu

Post navigation

0xlab Annual Report, 2009.

I began writing this at February, but never have the chance to put in everything I wanted to put in. Now I decided that it’s better to publish it in its current form then not doing it at all. So, here it goes. You may also download the PDF version.
So much happened since 0xlab was established in April. It’s one of the few, if not only, open source lab whose operation depends solely on the sponsorship of Taiwanese companies. This is a new and bold attempt for both the businesses and the developers. In the beginning of 2010, this report tries to give a reflect on our ideas, and our works.

Our Ideas

We believe open source is the right thing to do. Its contribution could be shared by everyone around the globe and allows people to build upon each other’s work. Plus, as a developer, coding makes much more sense if you can see the whole source. It’s something that makes our job as a software developer fun and meaningful.

On the other hand, we believe there is a chance in Taiwan to make open source profitable. We’re not talking about the conventional thinking that business should lock up as much as possible and only release source code enforced by the GPL-like license. We are talking about being a good community member and opening up as much as possible, not only the source codes, but issue trackers, documents and discussions yet still making money because of openness.

This is not a new idea, but already a practice. Companies such as Apple, Google, IBM, Intel, Novell, Redhat, Sun, etc. open up to attract more brain power and get more publicity. Contradicting conventional wisdom, openness is actually becoming a good business strategy.1

We believe that there exists an ecosystem that combines both the open source developers and the hardware manufacturers in Taiwan. Our focus is to strengthen this connection and make it profitable for both parties.

So, how are we going to do this?

Opening up the non-essential part of the software development and working with the communities. For the open source world, this means more contribution and feedbacks. For the business, this means minimized development and maintenance effort.

Focus on the unique advantage that is a combination of hardware and software. The actual profit comes from selling the physical product instead of selling the software, which is not a financially good idea anymore.

Businesses should cooperate on #1, so they could put more resource to build their own unique advantages #2.

A healthy ecosystem is the way to make open source prosper. So, by making this ecosystem strong, we can effectively make open source stronger in Taiwan, which is something we have long waited for.

Business Review

Hardware is becoming more and more standardized and keeps converging to a few solution providers. From the technical point of view, businesses have to stand out in software and the hardware/software integration.

However, the cost of creating your own proprietary OS is sky high and it requires a dominating power on the market to create enough acceptance, such as Apple. Solutions like Windows Mobile require royalty and the room to customize is rather limited because it depends on the kindness of its provider. Open source solution is a way out, but it’s not without its problems.

The Impact of Open Source

There are mainly three obstacles that are often missed by project owners:

The technical understanding of the code: most of the time the existing projects can only partially meet the requirement, so a certain amount of engineering resource is required to fill the gap. However, just because the code is opened does not mean it could be modified easily. A big, complex project can be very difficult to trace and understand. Inappropriate modification to the source code leads to maintenance hell, while the ability to change properly is rare. Without a thorough understanding, the exact effort to develop/fix/maintain the code could be hard to estimate, as well as the risk of the project.

Lack of overview: a Linux based product usually consists of multiple projects. These components may base on different technologies and work in different system levels with different functionalities. The way they interact with each other and the rule they play in the system could be hard to understand without prior knowledge of these projects. Thus, to obtain the overview of the system and to get a grip of the project status could become a challenge. The project owner must understand what’s the core advantage/business value of the project and the rest should be opened to save development effort.

Don’t know how to work with upstream: the best way to understand the source code and to get support is maintaining a good relationship with upstream. The best practice is working directly with them and merging back new functionalities and bug fixes. However, communication could be difficult because open source communities have their own development model, tool and culture, and will react rather badly if you don’t follow.

Legal issues: many businesses intentionally or unintentionally violate open source license. This puts them under the risk of being sued by people like our friend Harald Welte. These businesses need experienced people to deal with license issues, especially when you mix codes with different licenses.

How to Deal with It

Work with businesses that provide open source services. These are people who not only understand open source, but also bear the business value in mind. They have experience in commercial projects before, so they are very likely easier to communicate with.

Train your own experts. You still need to find some ‘seeds’ first. This takes longer but in the end you get your own group.

Managers with rich experience in open source is a must.

Seek legal consult familiar with different open source licenses.

New Challenges from Android

Multilayer debugging: Android is a complex combination of various technologies. Most of its platform services are a mix of different computer languages and run across multiple layers. Debugging (inside the platform itself, not the application layer) often requires tracing back and forth between the java framework and native libraries across different processes. This is significantly harder then tracing the old fashioned pure c/c++ codes.

Follow the fast paced upstream: Android evolves really fast, i.e. two major releases per year. This means your product will become outdated during the development phase and you will have to do the catching up and the product development (polishing, bugfixes, new features, etc.) at the same time. This will be a new challenge to a software team.

Knowledge of various technical areas: as mentioned before, Android is a complex mix of different technologies. Peripherals, power management, mobile phone protocols (2G/3G/…), graphic 2D/3D acceleration, virtual machine (Dalvik), toolchain (bionic, gcc, …), the design of user interface, certifications, etc. , each one of these could be a big topic. Android provides a basic platform to build on, but the entry barrier to build on top of it properly is still high, if not even higher.

Where We Stand

0xlab has an unique standing facing all all these new challenges. Most of us are both professional engineers experienced in shipping end products and active open source developers.

We consist of experts in different areas. Experience in major smartphone brand/ODM R&D, User interface, virtual machine, compiler, low-level kernel development, multimedia codecs, Mesa 3D contributor and Openmoko, the world’s first open phone, gives us everything we need to do Android platform development.

We offer the following:

Reduced development effort by working with the communities. Short time-to-market. Automatic testing suite to ensure quality.

Contribute back to the industry to make a bigger pie.

Cutting edge technology by following upstream development closely.

Commercial friendly license because we use the same license as Android.

Work with Us

We are accepting the following possibilities if they are technically related to Android:

Community: follow the convention. Join our mailing lists, chat on IRC, fire questions and share your knowledge just like any other open projects. Get helps for free by helping others.

Project: we’re accepting offers to work on a specific project as long as our work could be opened as well.

Consulting: contact us to get more info.

For Developers

0xlab is a virtual organization consists of full time employees and freelancers. We welcome passionate developers to join us. It doesn’t matter if you’re employed or self-employed as long as you share the same idea with us.

For Businesses

We encourage businesses to change mindset and open up non-essential parts to gain more developers’ eye balls. The more eye balls you get, the more powerful you’ll likely become. You don’t need to own every part of the software to sell the product. You just need your own unique advantage and that’s where you should really focus on.

Background

Why Android

Android is the event of the year with regards to mobile devices, which is our primary interest. Many OEM/ODM manufactures and brand names in Taiwan have put development resources into it, while the government agencies provide budgets to encourage Android research and development. We want to reuse as much resource as possible, so we picked it as our development focus.

Beagleboard

One of the problem we faced when 0xlab was just getting started is that it’s not easy to get a hardware platform. We picked Beagleboard because it’s modern, powerful, cheap and open with an active community. We do not have any business relationship with TI, but we do like their idea of opening up hardware. However, we are indeed the world’s no.1 RMA customer with the highest return rate since we broke a lot of boards while trying to do hardware modifications. We are software developers, after all…

Beagleboard is the platform we focused on, but it’s not the only platform we are interested to work on. We welcome people sending us their cool gadgets. If you want to find out what Android can do on your device, send us some sample. We may work on them and try to keep them in one piece.

More Info

We use git as our primary SCM, and use gitorious to host all of our projects. Some projects with the same name were created on google code as well for issue tracking and an easier to use wiki.

0xlab.org is hosted on our own cost and acts as an entry point. It provides basic information about us. The most interesting page is perhaps Planet, since it acts as a aggregation of our blogs.

About 0xlab

0xlab is founded on 4/27, 2009 in Taiwan by a group of enthused FOSS3 developers, some of the finest. Most of its members are of Linux background with rich experience in embedded systems and created/contributed to various open source projects such as Linux kernel, opkg, OpenOCD, OpenEmbedded, QT Extended, Packagekit, FreeType, Kaffe and LXDE.

They met each other in the local FOSS community and at the startup Openmoko, from where they became familiar and connected with developers worldwide. This differentiated them in pan-Asian because they stay much closer with the mainstream and are actively attending the ongoing development.

The list of its current members could be found on our gitorious page. 0xlab aims to be a virtual organization, but at the moment it mainly operates in Taipei. 0xlab could be reached at: