Archive for the ‘ Uncategorized ’ Category

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 http://elinux.org/RPi_VerifiedPeripherals).  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.

SPDX

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 – AndroLib.com), 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. . .

Read more at blog.blackducksoftware.com

Will Android Drive Mobile Commodization?

Little Androids, On the Hillside . . .

Yesterday, my friend and fellow analyst Andreas Constantinou of VisionMobile delivered an excellent guest blog for mobile virtualization supplier OK Labs.  In his post, Andreas posits that Android is changing the macroeconomics of mobile, increasingly to resemble the PC business.  In particular, he highlights the emergence of cookie-cutter Android reference designs and ever-cheaper Android-based handsets from chipset vendors, ODMs and contract manufacturers in Taiwan and China.  He segregates the coming wave of Android handset OEMs into Leaders, Innovators and Assemblers and projects that by 2015 the top 5% of the handset market will enjoy 50% of the revenue, in concert with today’s global PC marketplace.

There are indeed striking parallels between the PC business and trends in mobile-wireless, as well as important, persistent differences.

In the mid-90s, a decade before Linux Pundit, I worked as Country Manager at Acer Brazil. We constantly referenced Acer founder Stan Shih‘s “Smile Curve”. Let’s use my old boss’s paradigm (slightly updated) to compare the two markets.

Stan Shih's Smile Curve

Pre-commoditization, PC value-added was dominated by manufacturers cum hardware integrators — originally IBM, Digital and their peers.  PC expertise sat in the hands of a few,  those companies drew on components of their choosing and went to market through direct sales channels.  Industry standardization gave rise to the “PC-AT virtual machine” (BIOS, memory maps, peripherals, etc.) and more importantly, the emphasis on PCs being defined by DOS and Windows software (and not the box they lived in).  Standardization on these h/w and s/w parameters initiated the value shift into the “smile” that Stan described:  the highest value today lies in key components — CPU, HDD, display, memory, GPU, etc. and OS — and in brand and channel, and not in with integrators and motherboard manufacturers.

Another angle to describe this value-added rictus is with barriers to entry:  almost anyone today can put together a whitebox PC from available components — take a trip to Fry’s or visit the Mom-and-Pop PC stores that still dot developing countries.  Design and manufacturing-wise, any decent team of hardware engineers can start a motherboard company is 9-12 months.  But how much time and money must you invest to ship your own processors, hard drives, DRAMs or LCD displays?  Ditto for brand and channel, which takes years and millions of Dollars and Euros and RMB to cultivate.

The global handset market, from its inception in the 1980s through most of its history, cleaved closely the legacy PC (frowning) ecosystem:  handset OEMs defined what is a mobile phone (especially a smartphone), and held value-added captive.  Nokia, Motorola, Samsung, LG, Apple and their cohorts essentially dictate(d) to chipset vendors and to OS suppliers the form and function of the shiny mobile baubles they produce(d).

The mobile business, however, departed and still departs markedly from its PC analogs in key parameters:

  • handsets were (and mostly still are) content delivery vehicles (voice, data, video) and not stand-alone compute platforms (cp. pre-Internet PCs vs. modern desktops)
  • core handset requirements were/are determined not by OEMs but by their channel partners, the mobile network operators (MNOs)
  • wireless connectivity (GPRS, CDMA, etc.) while standardized as protocols and embedded in mobile chipsets, is not available to all comers:  narrow and deep silicon sales channels and certification/homologation requirements restrict who can field a phone in most global markets; building a quality radio set is still an art.
  • while barriers to entry in building handsets notch incrementally lower, building and profitably marketing mobile handsets is still difficult and arcane

The introduction and increasing ubiquity of Android is leveling the playing field and certainly can have the impact described by Andreas:  lower-cost (cheap?) Android-based smartphones built by upstart Asian OEMs and sold through non-MNO retail and self-service channels.  But building and shipping quality Android-based handsets (let alone functional ones) has consistently proven more difficult than it should be.  Even branded T1 Android phones have received lackluster reviews. Moreover, while CES and MWC this year and last were replete with Android phone announcements, most devices have been late to market (or yet to ship), with underwhelming user experiences.

I do not argue that like the PC marketplace, the Android ecosystem is increasingly driven by applications.  Indeed, the Android Market is flush with thousands of apps and poised to give the Apple iTunes App Store stiff competition n the next 12-18 months.  But, for the moment at least, handsets, even smartphones are still phones first and application platforms second (I own Nokia Maemo devices but I use my iPhone all the time).  OEM expertise still rules in delivering mobile phones to market, more in concert with the notebook market than its whitebox PC parent.

The undeniable value-added of technology vendors (Qualcomm, TI, Samsung et al.), of handset OEMs (Motorola, HTC, Samsung) and of full-service operator-centric channel will for years keep the mobile market from grinning Stan Shih’s pearly smile, or even from flashing the notebook sneer.  Instead we’ll have the Mobile Handset Bite:

The "Handset Bite"

Unlike the PC Smile Curve, the Bite will be shaped by

  • Android itself not adding value, but the hardware technology to support it doing so, as will key s/w components like CODECs, media players, home screens and of course, applications
  • Upstart Tier II/III OEMs and ODMs adding little value to Android itself and the chipsets it runs on, but Tier I OEMs building Android handsets will enjoy better margins (sans royalties and subsidies), and delivering Android-based differentiated user experiences, hopefully/eventually on a par with Apple iPhone
  • Cheap Android-based handsets flooding BRICK, developing and even developed markets through non-operator channels, with mixed results

So, to answer the question posed by the title of this blog — Yes and No.  Android will not commoditize the mobile market (more than it already is), but it will help to keep it polarized between Tier I devices with high value-added and the rest of the (commodity) pack.

Also interesting will be a new category,  emerging from Tier I OEMs – the Mass Market Smartphone.  More on this topic in my next blog.