Open Source Delivers: MWC OSS Report



Excerpt from my OSD blog post:

Every year the movers and shakers of the mobile/wireless industry converge upon the industry’s mecca, the Mobile World Congress (MWC).  This year’s ecosystem extravaganza in Barcelona drew 1,500 exhibitors and over 72,000 visitors.  Attendees spanned the gadget gamut, from mobile chipset vendors and software platform suppliers to device manufacturers and network operators, from app developers, ISVs and services providers to journalists and end-users in consumer and enterprise IT markets.


Following is a roundup of highlights from this mobile mega event, and it is no surprise that every key announcement and trend coming out of MWC 2013 involved open source software.

Read More

Raspberry Pi Diary : December 27, 2012

Late Night Hacking

Since my wife decided to spend the evening cleaning out the bedroom closet, using the bed as buffer space for old clothes and other detritus, I HAD TO stay up and play with my RPi some more.   Since I have guests sleeping in my office, I set about doing some remote hacking from upstairs.

I moved a few steps closer to making the PI more useful:raspberry_pi

  • Without any additional configuration, I used SSH to login to the Pi from my upstairs desk.  Most excellent that no additional messing about was necessary
  • Used apt-get to update the distro and installed PHP5, Apache, vsftpd and a few other tidbits.  Started playing with building content – totally standard Apache configuration.  Again, the CL tools are easier to use than the utilities included in Raspian.
  • Discovered that I can’t address the RPi using local DNS (.local addresses), but both the Ethernet and WiFi interfaces (10.0.0.x) serve just fine.   Tried pinging a variety of clients using the .local syntax.  Some resolve, some don’t.  Need to grok this issue in fullness.

 What to do Next?

So, I have a very cute and reasonably powerful ARM-based system to play with.  I don’t want it to just sit on the shelf next to my MIPS-based ShivaPlug, so I am mulling over some real-world applications for it:

  • Use it as a caching/loop storage server for IP cameras I originally installed to watch our puppies from Hawaii
  • Build a home-brewed smart thermostat – think Nest with wires hanging out
  • Experiment with Lua (very doable, even if the RPi community is focused on Python), among other things to diddle the bits on the GPIO port
  • Use it to learn Python 😉
  • Employ the RPi to teach my younger daughter about embedded systems, web programming, etc.

Other suggestions welcome!

Incidentally, I backed Karl Lattimer’s HotPi project on Kickstarter.  I plan to have fun with the HotPi daughterboard once it arrives – it’ll help with the Nest clone project.

RaspberryPi.local – Avahi Daemon!

Without even meaning to, I tripped over a useful blog post by Matt Richardson – 10 Tips for New Raspberry Pi Owners.  To enable local DNS-style naming of my RPi (raspberrypi.local), I needed to install the Avahi Daemon.   Impressive dependency set – bless apt-get.  Worked immediately.

Raspberry Pi Diary : December 26, 2012

Gosh, my last post to this blog was back in April 2011.  Well, here goes.

I received a Raspberry Pi (B) as a holiday gift, along with a case and a wireless nub.  I had commented in the media on several occasions about the RPi phenom, but had never laid hands on actual kit until this week.Image

Well, I downloaded the Raspian image and rolled up my sleeves.

  • Burned Raspian on an SD card using my MacPook Pro – don’t bother with the graphical UI – dd works just fine.  Set bs=2m for better performance.
  • Hooked the cute little card up to my giant monitor using HDMI, inserted the SD card,  plugged in an old IBM USB keyboard/hub, ran a short CAT5 cable to the nearest Ethernet switch, and connected a borrowed Nexus charger/power supply.  And . . . nothing.  No boot msgs, no diagnostics.  Bubkes.
  • A little research revealed that the SD card (Sandisk Ultra 8 GB) I used was marginal, at least for the RPi (works great in cameras).    Bought a handful of alternate cards (after consulting  Gotta love post-holiday sales. The next one I tried, a PNY 4 GB Class 6, worked fine – gave the rest of the cards to my kids for use in Xmas presents.
  • The RPi booted right up, albeit slower than I would have liked (700 MHz ARM).  Nice clean Debian distro, familiar in some ways, alien in others.  Awkward config utility – need to go back and reconfigure a few key items
  • Discarded the IBM keyboard (too much key bounce) in favor of an ancient Compaq I dug out of the garage.  Added an equally antediluvian MS mouse.
  • Having run out of USB slots, I dug out a nice little powered 7 position USB hub.  Moved the KB and mouse over, jettisoned the Nexus charger, and now draw power from the hub (up to 2A).
  • Stuffed a wireless nub in the now-available RPi USB slot.  Rebooted, ran the wireless config util and voila – everything just works.  Only issue – both the wireless and Ethernet interfaces present the same MAC address to my router.  Hmmm.

More later.

Cat Herding Tools

Black Duck Blog Header

Guest Blog for Black Duck Software

Part II

In earlier blog posts, I examined five areas challenging Android development (Android Cat Herding – Part I).  In this blog, I discuss two solutions to address them.


The first is SPDX – the emerging Software Package Data Exchange, part of the Linux Foundation’s Open Compliance Program.  SPDX has a charter to

create a set of data exchange standards that enable companies and organizations to share component information (metadata) for software packages and related content with the aim of facilitating license and other policy compliance.

building on a specification defined as

a standard format for communicating the components, licenses and copyrights associated with a software package. An SPDX file is associated with a particular software package and contains information about that package in the SPDX format.

Read More . . .

Android Cat Herding

Guest Blog for Black Duck Software

Part I – Synchronizing / Harmonizing Android Source Code & Licenses

In earlier Black Duck blog posts, I highlighted the complexity underlying the Android mobile application platform, especially complications arising from the multi-sourced nature of the OS and its enabling middleware.

At the close of that blog, I listed five challenge areas and promised to elaborate, and to follow up with ways to address them.  In Part I, I’ll expand on the challenges, in Part II, I will examine some solutions.

1. Unique Licensing and Copyright of Patches / Contributions
While the Android project promotes a global Apache 2.0 licensing regime, there is no formal submission or copyright assignment process (cp. those for Linux and for GNU projects).  This somwhat casual patch submission and management process results in diverse and sometimes uncertain provenance of Android platform code (see my earlier blog for examples from the Black Duck Software study).

Read More . . .

Android Platform Code – Turtles Most of the Way Down

Guest Blog for Black Duck Software

Part 1 – Hidden Complexity

This week Android application developers from around the world are gathering in San Mateo at AnDevCon – the Android Developers Conference. While they are soaking up tutorials on UI haptics and building apps with Ruby and HTML5, I find myself pondering the particulars of the Android platform.

A quick glance at the conference curriculum (and Gingerbread documentation) reveals Android as ever more resource-rich, with a growing repertoire of APIs and capabilities to leverage emerging hardware (like the barometer on the Motorola XOOM) and to meet developer community requirements.  In providing the underpinnings for its burgeoning app portfolio (approaching 300,000 –, Google and its Open Handset Alliance (OHA) partners have created an increasingly complex mobile applications platform.

A Daunting Integration Task

The underlying complexity of Android platform code can be daunting to developers, especially to software teams at chipset suppliers, device manufacturers (OEMs) and integrators.   Anyone needing to integrate Android platform code with hardware and system software will be concerned about

  • Managing the 165 different packages that comprise the Android GIT repository
  • Tracking changes in over 80,000 source code files
  • Integrating Android internal system code, device drivers, Dalvik code, middleware and applications with myriad external repositories
  • Maintaining, integrating and QAing company-specific additions to the platform (e.g., UI customizations and Dalvik performance enhancements)
  • Reconciling the rights and obligations represented in at least 19 different licenses
  • Repeating this exercise every 3-4 months (hello Gingerbread and Android 3.0!)

Read more . . .

Black Duck Mobile Open Source Study: Out of the Attic, Into the Spotlight

Guest Blog for Black Duck Software

Mobile Open Source:

Out of the Attic, Into the Spotlight

Only a few years ago “open source in mobile” was like a crazy cousin or unpleasant uncle, barred from family gatherings and discussed in whispers.  While the first Linux-based handsets appeared almost a decade ago (like the Motorola A760), open source remained in the background, lurking in platform code, far from application developers and the mobile end-user experience.

Mobile is different, or is it?

Mobile, while standards-based, has for over two decades been a proprietary affair.  “Mobile is different,” I was told repeatedly by operators and platform suppliers at the Linux Phone Standards Forum. “Operators and the FCC mandate closed devices for secure networks,” they continued.  “Mobile IP needs special protection,” lectured lawyers at consortia and handset OEMs, imposing impenetrable 100+ page IPR documents whose sole purpose was to corral community code and maintain legacy status quo. . .