[Toybox] [RFC] Proposed text of crowdsourcing campaign.

Rob Landley rob at landley.net
Tue Jun 4 21:26:09 PDT 2013

Campaign goals:

   $20,000 - 3 months (minimum for funding)
   $40,000 - 6 months
   $60,000 - 9 months
   $80,000 - one year: full roadmap, 1.0 release

(Again, I'm looking at indiegogo not kickstarter because kickstarter's  
terms of service won't let you raise money for salary, it's designed  
around the assumption you ship a physical product to each individual  
donor. Indiegogo will let you do outright charity drives if you want  
to, it's a better fit for sponsoring open source development. Of course  
I'll still work on this if nobody sponsors me, at about the same rate  
I've been doing. I'd just stop feeling guilty about my inability to  
keep up. :)

---------- Begin audio

Hi, I'm Rob Landley, and this campaign is to let me work full-time on  
the open source software package Toybox, a BSD-licensed posix command  
line implementation for Android and Linux.

Why Toybox? Because smartphones are replacing the PC, just like the PC  
replaced the minicomputer and mainframe before it. I want to help  
Android beat iPhone to become the new standard, so that when PCs go  
away the next generation of computers aren't sealed black boxes from a  
monopoly vendor.

Phone hardware is ready to replace low-end workstations today. They've  
got gigahertz processors, gigabytes of storage, broadband internet  
access, and displays with as many pixels as HDTV. Display peripherals  
attached through USB can give you a full size screen, keyboard, mouse,  
and so on, often packaged into a convenient docking station that even  
charges the phone's battery while you use it. Since there are more  
pockets in the world than desks, economies of scale make phones cheaper  
than desktops could ever hope to be, so his transition is only a matter  
of time.

But the software side is not ready yet. You can't compile new software  
on a stock Android phone. Until android provides a self-hosting  
development environment capable of rebuilding the entire operating  
system from source code, it remains tethered to legacy PC workstations.  
As long as Android needs a "real computer" to produce system updates,  
it can't _be_ a real computer and replace the PC. I want to help  
Android grow up.

Android needs four software packages to provide a self hosting  
development environment, three of which are in good hands, and the  
fourth is my specialty. The four are a kernel, a compiler, a C library,  
and a posix command line. For reasons described in the long video,  
Android can't use the legacy Linux versions of these packages from the  
PC, so it needs new Android-compatible ones. (If you doubt this, note  
that busybox predates Android but still doesn't ship with it. As  
ex-busybox maintainer, I know why this is not a problem that waiting  
will fix, but writing new code can, so that's what I'm doing. See the  
long video for the gory details.)

Android's existing kernel is already good enough: it's an extended  
Linux kernel which adds new features but doesn't remove any. The new  
compiler, LLVM, is being developed primarily by Apple, which of course  
gives iPhone a headstart but this package is open source enough that  
Android can use it too. The new BSD-licensed C library musl, by Rich  
Felker, is already capable of building hundreds of existing Linux  
packages, and should provide everything Android needs.

Toybox provides the fourth package, a posix command line capable of  
running the configure, make, and install stages of package builds, and  
generally providing good system plumbing everywhere else.

I started toybox as a casual hobby, and in November 2011 I redirected  
toybox development to address the Android self-hosting problem. I  
worked out a roadmap of over two hundred commands toybox needs to  
implement, and put together a test environment using toybox to build  
other software. Over the past year and change I've put in five to ten  
hours a week on toybox, purely on a hobbyist basis, finishing almost  
half of the planned commands.

That's not good enough anymore. Transitions happen when the market is  
ready, not when any specific product is ready, which is how the market  
wound up standardizing on DOS and Windows. The transition from PC to  
smartphone is happening now. <a  
sales are declining rapidly.</a> If Toybox is affect the outcome, it  
needs to be finished as soon as possible.

Why me? Because I'm good at this, experienced at exactly this problem,  
and I love doing it. I worked on busybox for years before anyone ever  
paid me for it, and I've been working on toybox unpaid up until now.  
This just lets me spend more time on it, to finish it faster, be more  
responsive to my contributors, and to do a better job.

Unfortunately, I'm not cheap. I want to do this, but I'm not a college  
student living in a broom closet eating Ramen anymore, I have a real  
house with a real mortgage, my wife's back in college working towards  
her doctorate, I'm too old to voluntarily go without health insurance,  
and so on. A <a  
LinuxFest Northwest talk estimated</a> that an experienced programmer  
who _wants_ to work on an open source project would charge at least  
$75,000 a year. That's a signifcant pay cut from any of my last  
half-dozen contracts, but it sounds about right.

I'm bumping it up slightly to $80k for a year because indiegogo takes a  
cut and I want to buy some new hardware for the project, but I'm also  
offering a better deal by not demanding the job security of a full  
year. I'll do as little as three months if that's all I can get, but  
the full year would let me finish the entire roadmap and properly  
support the project.

BusyBox took almost ten years to get to the point Toybox needs to reach  
now if it's to help Android beat iPhone. I think this is important, I  
very much want to spend all the time I can afford to working on it. In  
the past year and a half, that hasn't been enough, so I'm asking the  
internet for help.

Thank you.

---------- End audio

The big video is at http://www.youtube.com/watch?v=SGmtP5Lg_t0

You can add #t=TIMESTAMP (ala #t=0m29s) to jump straight to any of the  
following timestamps:

  - 0m29s : Why the smartphone is replacing the PC
    - 4m22s : Software needed to become self-hosting
    - 6m20s : Do we care if android or iphone wins?
    - 9m45s : Android is not vanilla Linux: oppose or accept?
      - 11m30s : Why Open Source can't do User Interfaces
    - 15m09s : Android is not copyleft: oppose or accept?
      - Why copyleft is dying, killed by GPLv3
    - 18m23s : Security issues (early PC wasn't networked, yay  
    - 21m15s : Solving the software problems
    - 22m55s : What toybox needs to be/do
    - 28m17s : What is toybox?
      - 28m58s : Why toybox started...
      - 37m50s : What does toybox actually implement?
    - Questions (Toybox small as busybox? Yes but simplicity > size.)

See also:


And of course:





More information about the Toybox mailing list