System Overlord

A blog about security engineering, research, and general hacking.

Needing more focus...

I've come to the conclusion that I need to become more focused in some areas of my life.  I want to be able to contribute to open-source projects, including Ubuntu, but I realized that I don't know enough about any single project to really dive in and work on the code.  I need to find a single project to contribute (codewise) to.

I sometimes feel that there's this technological void in my life, with a desire to work on a project of some sort.  The big problem is that I have diverse interests: user experience, information security, embedded systems/robotics, etc.  I know it's a ridiculous statement to make, but even at 25, I feel like I'm behind where I'd like to be in my life.

How do you all find your niche, and satisfy that urge?  Anyone got a favorite project that needs some love?


Binary Heaps are Slow

Most CS professors would probably take a look at the title of this post and assume it's a senseless rant or otherwise misdirected, but it turns out it's true: binary heaps are slow on real computers (not the theoretical systems often discussed in CS classrooms).  Poul-Henning Kamp, author of the Varnish HTTP Accelerator, discovered and wrote about this for the ACM.


Android Development on Ubuntu 10.04

If you've been trying to use the Android SDK on Ubuntu 10.04, you might be getting an error like:

No command line parameters provided, launching UI.
See 'android --help' for operations from the command line.
Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-gtk-3550 or swt-gtk in swt.library.path, java.library.path or the jar file
at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
at org.eclipse.swt.internal.C.<clinit>(Unknown Source)
at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source)
at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source)
at org.eclipse.swt.widgets.Display.<clinit>(Unknown Source)
at com.android.sdkmanager.Main.showMainWindow(Main.java:265)
at com.android.sdkmanager.Main.doAction(Main.java:249)
at com.android.sdkmanager.Main.run(Main.java:94)
at com.android.sdkmanager.Main.main(Main.java:83)

If you're getting this, try installing libswt-gtk-3.5-java and then running the android SDK via: ANDROID_SWT=/usr/lib/java ./android

Hope this helps somebody.


The expectations of new users of FOSS

Many new users of Free/Open Source Software come with one of two (if not more) unrealistic expectations: either an expectation for support despite not having paid anything for the software or support, or an idea that Open Source = Public Domain.

Community-based support is not the same as commercial support.  Community-based support is a purely volunteer effort, and should not have particular expectations of response times.  For example, telling the community that a particular issue is "Urgent!" does not generally make it more urgent for the community.  Making no effort to solve the problem yourself generally leads to even less urgency from the community.  If you want a commercial level of support, pay for it.  For example, Canonical offers commercial support for Ubuntu.  There are many support vendors out there.

Open Source is not Public Domain software.  It has a copyright and a license.  I have seen several people complaining that particular libraries are GPL-licensed (or other so-called "viral" licenses) preventing them from using them in their commercial applications.  Please realize that you are asking to take someone else's work for free and turn a profit on it.  Either participate in the social contract of open source, find another library, or approach the developer and offer to pay for a dual-license to allow use in your proprietary work.  Using GPL code without adhering to the copyleft provisions of the license is software piracy, which nobody should tolerate.  Presumably, if you don't want your application to be open source, you're looking for others to pay you for your work.  I don't think you'd very much appreciate it being resold without a license and without revenue for you.

There is a social contract in addition to the legally-binding licenses behind FOSS.  Respecting it will continue to encourage the development of a productive software ecosystem.


Ubuntu Membership

For a while now, I've considered going for Ubuntu Membership, and I've decided now is the time.  I feel that my contributions to the community are significant and that Ubuntu has become a significant part of my life.  I'd like to ask anyone who feels comfortable supporting me to post on my Ubuntu wiki page at https://wiki.ubuntu.com/Matir.  I appreciate your support in the community.