Slides of the Android System Development Forum

These are some of the slides from the technical speakers of the Android System Development Forum on April 28th, 2011. Copyrights belong to their perspective owners and distributed under their permission.

Android RenderScript on LLVM by 廖世偉 博士

http://www.slideshare.net/johncylee/android-renderscript-on-llvm-8103150

Is parallel programming hard? And if so, what can you do about it? by Paul McKenney

http://www.slideshare.net/johncylee/is-parallel-programming-hard-and-if-so-what-can-you-do-about-it

Guides To Analyzing WebKit Performance by Holger Freyther and Jim (jserv) Huang 黃敬群

http://www.slideshare.net/jserv/guides-to-analyzing-webkit-performance

Linaro and Android Kernel by Andy Green

http://www.slideshare.net/johncylee/linaro-and-android-kernel

There are still some slides missing and I’ll keep updating here.

Android System Development Forum

By coincidence, the abbreviation of this is ASDF, which is kind of geeky…

0xlab is going to co-host this event on 2011/04/28. Please refer to http://www.digitimes.com.tw/seminar/android_1000428.htm for more information. The introduction page is in Traditional Chinese, but some of the sessions are in English.

We think there are quite some Android summits out there, but most of them are about application development and business trends. We want to focus on the system development aspect from a more technical point of view.

Oh by the way, did I mention it’s free of charge?

vmplayer 3.1.3-324285 + Linux 2.6.37

I need to use vmplayer because Microsoft Windows is required for Linux-unfriendly IT infrastructures, document formats, Online ATMs, etc. However the modules of the latest vmplayer, v3.1.3, cannot build under Linux 2.6.37. So:

Extract the tar balls under /usr/lib/vmware/modules/source , then apply this patch. Enter each directory, make.

Put the generated .o under /lib/modules/$(uname -r)/misc , symlink them to .ko, depmod -a. Done.

notification-daemon instead of notify-osd

After reading this, unsurprisingly I decided to switch back to notification-daemon. Here is how:

  1. Since ubuntu-desktop depends on notify-osd, I have to keep it.
  2. Install notification-daemon
  3. sudo mv /usr/share/dbus-1/services/org.freedesktop.Notifications.service.notify-osd /usr/share/dbus-1/services/org.freedesktop.Notifications.service
  4. logout, login again This is all too familiar. The power users ask an open source company to change their design, then the company says “hey, this is open source! We are aiming at normal users, not you geeky developers. If you don’t like it, go fork your own project. We know what’s best for our users, and you don’t.”

This is just too sad.

mutt + fetchmail + maildrop + esmtpmsmtp

… are still the best combination on laptop. Originally I use mutt + fetchmail + maildrop + exim but the ability to use different SMTP server with different mail account won me over again.

My .fetchmailrc:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
poll gmail
via pop.gmail.com
protocol pop3
username "xxx@gmail.com"
password "####"
mda maildrop
ssl

poll dotcom
via dot.com
protocol pop3
username "xxx"
password "####"
mda maildrop

My .esmtprc:

1
2
3
4
5
6
7
8
9
10
11
# default
identity = xxx@gmail.com
hostname = smtp.gmail.com
starttls = required
username = xxx@gmail.com
password = ####

identity = xxx@dot.com
hostname = smtp.dot.com
username = xxx
password = ####

My .mailfilter:

1
2
3
4
5
6
7
8
if ( /^List-Id:.*<android-porting.googlegroups.com>/:h )
to $DEFAULT/android-porting

if ( /^List-Id:.*<android-ndk.googlegroups.com>/:h )
to $DEFAULT/android-ndk

if ( /^List-Id:.*<android-platform.googlegroups.com>/:h )
to $DEFAULT/android-platform

Ten Months

Ten months ago when we just established 0xlab, we do have some ideas regarding our business model in mind. We cannot say exactly what it is, since we are under the constraint of NDA. However, I can roughly outline our goals and our progress here.

In the world of open source, you gain credibility by contributing. The more credibility you have, the more powerful you become. Basically 0xlab’s initial and first goal is to open up our development, establish our credibility and get more publicity. Our policy to open up as much as we can turns out to be more beneficial then we have expected. Since we put our code in the open, any individual or business entity who is interested in us can evaluate our results directly. This leads to direct communication channel to developers inside some big companies such as Google, Qualcomm (Innovation Center), Broadcom, TI, EMBINUX (SQL Star) and Motorola, or even cooperation in business level.

We found out that since we don’t sell software for a living, but instead we use software to add value to the hardware (made by AzureWave), the work we did is actually beneficial to our sponsor, so they are willing to keep supporting us. This means a lot (in my opinion), since nobody in Taiwan believes that people can write open source for a living, until we proved them wrong. I believe we’re reproducing a ecosystem, which is not uncommon in Europe and US, but never shows up in Taiwan before.

Since we can support ourselves now, what’s the next step? I can’t disclose it, but suffice to say we are planning to take this a step further. We hope, once we proved that business can make money from openness, more Taiwanese companies can understand and duplicate our open source model, thus creates more modern software developers and stay closer to the world.

xrandr in Ubuntu 9.10

I’ve been using an external monitor with my laptop at work for quite a while. Ubuntu 9.04 did this like I expected: xrandr --output VGA --mode 1280x1024 --above LVDS will use my external monitor as an extension and put it virtually on top of my laptop screen, with the panel on top of the virtual desktop. After upgrading to 9.10, this doesn’t work anymore. The first thing is to change VGA and LVDS to VGA1 and LVDS1, but after that, the location of my top panel changed: The old setting gives me easy access to my top panel, now if I want to use that panel I need to move my pointer to a very thin band between two physical monitors, which is extremely difficult to do. How stupid is that?