December 19, 2011

Introducing Performance Studio

Nwafor_lg

What is Performance Studio? Is it:

1. Some kind of hair product

2. A new "clinic" for MLB players

3. Full name: : Wind River Linux Performance Studio for Intel® Architecture; a new add-on product for Wind River Linux that helps you get the most performance out of your embedded Linux device software running on Intel hardware 

If you correctly answered "3", give yourself a round of applause.

Our portfolio of development solutions have long addressed a broad set of embedded device development concerns in the areas of system definition, bring-up, software construction, integration & test, and maintaining and retro-fitting embedded device software and hardware. Now, with the introduction of Performance Studio, we not only have the broad development solutions portfolio but also further extend it with capabilities that enable us to go deeper into the platform and obtain the best performance out of embedded Linux software running on Intel® Core(™), Xeon(™), and Atom(™) processors. 

Performance Studio integrates the Intel C/C++ Compiler to generate hardware optimized code, the Intel Integrated Performance Primitives to adapt your algorithms to take advantage of Intel acceleration capabilities (SIMD, AVX, AES, SSE, …), and VTune to help pinpoint areas in the application that are candidates to be optimized.

Want your software to run faster on your Intel embedded platform? Concerned with getting the most out of your Intel embedded hardware? Need to optimize a computational-intensive algorithm? Thinking about portability to future platforms? Need to get deeper insight into where your CPU is spending time, wasting time, or simply waiting?

We invite you to learn more about Performance Studio and its integration with Wind River Linux and Wind River Workbench. Also, check out a great blog posted by my colleague in the Wind River Linux Developer Community that provides some additional technical insights into this product.

Perf studio image
Many thanks to the teams in the Intel Developer Products Division and in the Wind River product group for the effort in bringing this solution to market.

I also want to use this time to wish our readers best wishes for this holiday season and peace, health, and happiness in 2012.

 

For additional information from Wind River, visit http://www.facebook.com/WindRiverSystems.  

 

 

October 14, 2010

It's a Beautiful Day

I have been totally absorbed by the media coverage of the incredible rescue of the thirty-three Chilean miners that were trapped about a kilometer below the earth's surface for months. The images of jubilation as "Super Mario" and the other miners exited the pod will be imprinted in our minds forever. A real Feel Good Story.

Many thanks to the scientists, engineers, and rescue specialists from across the planet for playing their part in bringing up the 33 miners and 4 rescue workers and for making this A Beautiful Day.

Between reports of the rescue of the individual Chilean miners, CNN's report on the "Best Jobs in America" caught my attention, my curiousity, and briefly diverted my focus from the rescue (and my day job). Of the top-100 jobs, I was pleasantly surprised to see that "Software Architect" ranked at the top - #1 in America. "Product Management Director" and "Software Engineering/Development Director" were in the top-20 - this was a pleasant but credible surprise. "Telecommunications Network Engineer", "Test Software Development Engineer", "R&D Manager", and "Systems Engineer" were all in the top-50. Very interesting considering that these rankings are based on criteria like compensation, job growth, and quality of life.

I proceeded to dive deeper into some of the detailed job descriptions - the "what they do", "what to like", and "what not to like" details. Just looking at the top-5, there were a few things that alarmed me. Interestingly, "Management Consultant" comes in at #3 - the third best job in America. Hmmm... I have respect for what Management Consultants do - I even know a few of them. But the third best job in America?!

Clearly, I have a bias. When reading the Management Consultant job details, to me it read like a niche role when compared side-by-side with the likes of the "Software Architect" description or the "Systems Engineer" description (#49). To me it feels even more "niche-like" when I think of this in the context of the innovative embedded devices and applications and "smart products" that embedded developers across the planet are developing to make our lives better when interacting with information on the web, interacting with our cars, interacting with our medical specialists, or making life safer when travelling in planes and trains.

So, what could the "Top Jobs in America" list look like in 5 years?

Like "Management Consultant", will we see new job descriptions that better characterize what is going on in the growing embedded software development space? Will jobs like "Human Device Interaction Engineer", "Device Performance Therapist", "Software Restoration Engineer", or "Software Archaeologist" make it into the top-25 jobs in America list? In 5 years, I wonder if these jobs would crack the top-10 "Benefit to Society" jobs list and join  the ranks of the "Anesthesiologists" and "Rehabilitation Services Directors" that are there today.

I think so.

There needs to be more celebration about the great things that we are doing with embedded software. I think we need to tell more stories about how our innovation matters to society. Here's a little story to illustrate why I think this might happen...

During my last visit to the doctor's office, we wrapped up the visit with our usual discussion around the latest and hottest hi-tech gadgets. The discussion this time around expectedly was focused on the iPad. My doctor shared a story about how the iPad had made one of his patients lives better. This patient had suffered a stroke that limited his use of one of his arms and had impacted his vision. Before the iPad, the patient routinely complained about difficulty in using his computer because of the effects of the stroke - difficulty with the mouse and keyboard, difficulty in reading the screen, and headaches. Life for this patient got better with the iPad. Browsing the web was easier using one hand and the multitouch interface. The ease of magnifying text and images when reading resulted in fewer headaches.

For me, this too is a Feel Good Story.

I am sure that there are many more like them for almost every embedded device application that's out there. I always look forward to hearing about the cool applications Wind River's customers are designing and the stories about how these embedded devices help to make A Beautiful Day in our lives.

June 08, 2010

Workbench and Jazz

Today I managed to carve out some quality hands-on time to play with Wind River Workbench integrated with Rational Team Concert - also known as Jazz. While playing with this development environment, I found myself wishing that "I had these types of development tools back when I was doing embedded development environment".


Workbench and RTC - Create a Work Item from a Memory Analysis Log


If you are not familiar with Rational Team Concert (RTC), think of it as a collaborative development platform that unifies planning, tracking, automation of software development processes, team collaboration, work item management, and reporting (think dashboards) with traceability across all artifacts that participate in software delivery processes. By artifacts, I mean things like source code, builds, defects, requirements, log files, change sets, etc... In short, RTC is all about connecting team members.

When integrated with Workbench the integrated development environment provides developers with the ability to connect-with and optimize an embedded device while connecting team members that are participating in the software delivery activities. I strongly believe that to be successful, organizations need to effectively manage both device technology and people collaboration concerns.

There is much that can be said about the environment and the integration opportunities. More of this will come out over time. For now, there are 3 simple things that have got me jazzed up about Workbench and RTC:

1. Clean Integration with Eclipse...
Folks close to me will acknowledge that over the last 8 years, I have had a sinusoidal love-struggle-love-struggle-love-struggle feeling about Eclipse. Hopefully, that is behind me now. Building Workbench on the Eclipse platform is the only way we could have enabled this type of integration for embedded device development. The benefit to a Workbench / RTC user is a cleanly integrated usage experience and traceability of artifacts - like Workbench's Memory Analysis log files - with Rational Team Concert's work-item automation engine. A need that I hear from customers is about how they can improve the collaboration between the platform integration teams and the distributed teams developing the device's application logic. The RTC collaboration infrastructure can help here by sharing much of the system build, test case, and environmental information that must be conveyed the developers to help shorten the "time-to-fix" when defects are found.

Another impressive discovery was that RTC is not just for Java. Many of change management related process templates simply just work with the Eclipse CDT. That was a really nice discovery...
 
2. It is a Very Pleasant Development Environment...
The Jazz platform brings in a number of widgets that simply make it a delightful environment for software development. Things like snapshots, thumbnail views of images, RSS, and chat all add a little sparkle to the Workbench IDE.

3. RTC/Jazz Doesn't Get in the Way!
As we were thinking about the integration of Workbench with RTC, I have to admit that I was a little nervous about the process automation and reporting aspects of the solution. Not the case. The process automation framework is highly customizable; you can enable as much or as little as you want and get value out of the solution without it getting in the way.RTC puts a lot of emphasis on agile workflows. I really like having out-of-box samples and templates to enact the processes of an agile team, but in using it I discovered that teams that are simply doing milestone or time-boxed based planning would benefit from the solution.

I will be demoing the integration of Workbench and RTC for VxWorks 6.8 at the IBM Innovate Conference in Orlando, Florida. The demo will preview some integration work done by Doug Schaefer and enabled by the IBM Ready for Rational Software team - the group responsible for validating that commercial offerings meet IBM's integration criteria and will be well behaved when inserted in our customer's environments. A special "thank you" to IBM Rational software's Pat McCarthy for his patience in running me through RTC bootcamp.

My goal is to use the demo to provoke some conversation on other integration points. If you can't make the demo and are interested in trying out this integration on your own, drop me comment and I'll post the set-up instructions.

February 09, 2010

Kill Bugs: Volume 1

The Bride: [Japanese] I need Japanese steel. 
Hattori Hanzo: [Japanese] Why do you need Japanese steel? 
The Bride: [Japanese] I have vermin to kill. 
Hattori Hanzo: [English] You must have big rats if you need Hattori Hanzo's steel. 
The Bride: [English] ... Huge. 
(from Kill Bill: Vol. 1)

I will probably need the help of a therapist to assist me in decoding why I think of that passage from Tarantino's great movie whenever I think of our portfolio of multicore development tools. When I ponder the personality of our development tools (i.e. the fearless Hattori Hanzo and his sword) and the risks presented to our customers in getting their multicore software to be correct (i.e. vermin - in reference to the challenges and bugs, not our customers) the exchange works for me. 

I digress.

We just announced a new release that extends our capabilities for multicore and virtualization for embedded applications. As always, I'm very proud of our development tools engineering team. A special shout-out to our teams in Canton and Vannes for their efforts in delivering this release.

Last week, my colleague - Bill "The Truth" Graham - blogged about the importance of development tools in reducing the inherent complexity of the task at hand. This latest release - actually, two product releases - is special because we have extended our hypervisor support to support Intel Xeon processors AND we have extended our development tools capabilities to now include "hypervisor-aware" debugging with our JTAG debuggers.

Why do I think this is important?

My mind goes back to a conversation with one of our early adopters of our hypervisor technology. The folks we met with were responsible for developing and stabilizing the software platform. The hypervisor technology is a critical component of their project as they are looking to consolidate multiple processors onto a single multicore device. They depend on our technology for memory protection to ensure the reliability of their system. One of the clearest memories I have from that day was when they asked "how do I debug my system running on the hypervisor"? The question was not asked out of curiousity - in their situation having assurances that we could address their needs in this area was critical for success.

So, what have done to help Kill Bugs when using virtualization?

The latest release of our Wind River On-Chip Debugging solutions enables debugging of a system running on the hypervisor without the need to add a target resident agent (see Figure 1). This new capability helps developers with tools to develop and debug hardware initialization code, virtual board bring-up, kernels, and drivers. When developing software for virtualized systems, these solutions give developers the confidence to know that they can set breakpoint, watch memory, or analyze stack frames.

Overview of Hypervisor Aware Debugging
Figure 1 - Overview of Hypervisor-aware debugging using Wind River On-Chip Debugging [click to enlarge]

This capability borrows from the concepts applied when debugging Linux processes using a JTAG debugger, but extends them to include the concepts of virtual boards running on the hypervisor. One of the special attributes of our solution is that we go beyond the MMU support provided by the processor to provide visibility and control over all of the virtual boards running on the system - not just the instance that is currently executing.

There's much more that can be discussed on this topic. More information and videos can be found here and there on our site. More importantly, we would like to hear your views on how to Kill Bugs when developing virtualized systems.

February 01, 2010

Stark Bloggin' Mad!

Wow!!! OK, so how is it that a few innocent tweets about the iPad gets me embroiled in a little Twitter / blogosphere skirmish with a colleague? Who would have thunk it? It's not just Schaefer, almost everyone seems to have formulated an opinion or a prediction about the future of mobile computing. Following last week's announcement of the Apple iPad there has been an impressive flood of blogs, microblogs, and YouTube from pundits and pranksters, alike.  I don't recall a technology preview that had as much publicly generated hype and excitement as the iPad announcement.

So how is it that the company that is focused on bringing us the best possible personal computing experience has generated so much emotion and excitement? iSchmad? Please...

I think that much of the excitement has to deal with the fact that many of us are not fully satisfied with the current state of mobile computing experience and we were looking to Apple - or anyone else - to show us a better way. I have to admit that when I first saw the iPad launch on Wednesday, I wasn't blown away. A few days later, I'm still not sure I completely get it, but I think it is a Good Thing for the industry for a couple of reasons:

  1. The tablet form factor is well suited for rendering digital media. There have been several attempts over the years to tabletize the PC. The iPad is taking a different approach that just might work. Chip vendors, hardware vendors, software stacks - commercial and open source - will all optimize their offerings to follow Apple's lead and participate in the new market created by the iPad. I see this as a Good Thing. Within the next 18 months, we can expect both product choice and downward cost pressures which will make the technology broadly accessible and help bridge the digital divide.
  2. Digital living is here. Wind River participates in the market of device vendors that are trying to connect all the devices in our homes - allowing you to get access to internet content anywhere. In his blog, Schaefer makes allusions to yours truly being an "Apple Fanboy". Yes, I have some of their gear and I like it very much because it works well and delivers on a great usage experience for listening to music, watching videos, sharing pictures, and surfing the web. And, oh yeah... the Apple stuff looks great, too. If the iPad is successful - and I predict it will be - then we will all benefit from the new standard for content sharing and device connectivity that will be set by Apple's innovation and the momentum it has built from the iPhone and iTunes.
Fascinating.

November 03, 2009

What exactly are you testing, and how?

"What exactly are you testing? How are you testing it?"

I'm sure that these are amongst the questions that product, business, and technical managers across the embedded software industry have asked themselves on several occasions throughout their careers. I know I have.

The importance of testing embedded software isn't new. In my "youth", I remember our VP of Product Development circulating a white paper that discussed the devastating impact resulting from the deployment of an untested "simple" patch to some switching software and declaring that "this cannot happen to us". I also recall reading and feeling sad about a software bug in a medical radiation instrument that when combined with operator error resulted in lethal doses of radiation being administered to patients.

There is no debate that software quality assurance is serious business. But how seriously are we really taking it, particularly in non-safety critical software applications? Survey data continues to tell us that we're spending upwards of 25% of our project budgets testing and fixing our software, yet we're still not satisfied that our testing practices are effective. Hmmm...

Transparency and visibility into what is being tested is a concern. One of my colleagues blogged about this not too long ago. Confidence that you've covered all your usage different scenarios is another big concern. I can tell you that when I run software that has "encountered an unexpected exception" and I lose work, I get irate and think about other software options.
[editor's note: I thought about including a link to a PC vs. Mac commercial here, but thought against it. Sort of...]

I have invested in partnering with Integrated Processing Limited (IPL) to provide an extension to Wind River Workbench that provides developers with a professional unit testing solution for C/C++ development. This week we are announcing and launching IPL Cantata++ version 5.3.2. Cantata++ provides software developers with unit testing capabilities for Wind River's run-times - including VxWorks and Wind River Linux. Cantata++ 5.3.2 introduces a cool new capability called "robustness testing" that is useful for automating the generation test cases - useful for reducing the likelihood of those "unexpected exceptions".



We are pretty jazzed about this product release. Several of the enhancements made should make it easier to integrate Cantata++ into your environment - including extending Cantata++ to support proprietary and 3rd party embedded operating systems. I anticipate that as we move further into the multicore era - the percentage of multi-OS systems will continue to increase as our customers look to consolidate the number of processors in their systems. One of our goals at Wind River is to provide our clients with a choice of development tools to help with these usage scenarios.

To learn more about our unit testing solutions, please come and check out our webinar on The Benefits of Effective Unit Testing for Embedded Development this Thursday November 5th. There still some great seats available. If we don't see you there, please feel free to "start the conversation" right here.

October 18, 2009

Simulation? Virtualization? What's in a name?

Check out this great panel round-table conversation about Virtualization & Simulation featuring a great set of panelists from Virtutech, Freescale, Cadence, GreenSocs, and our own Wind River CTO. The discussion touches on a number of important topics, including:

  • the differences between virtualization and simulation
  • the level of abstractions in models and their importance in predicting a system's behavior
  • methodologies driving vendors solutions for virtualization and simulation
  • programmable hardware and vanilla (i.e. standard) platforms

While the panelists do not agree on all points, I had a few great takeaways from the discussion:
  1. Platform simulation is important to software engineers for managing complexity and risk when analyzing software performance - beyond MIPS and footprint. This is particularly the case when migrating existing software to multicore and dealing with race conditions resulting from parallelization of existing algorithms.
  2. Multiple abstract models can be leveraged to ensure application integrity and timing, even before silicon is available. This involves abstract models ranging from cycle accurate instruction simulators to fast OS simulators. 
  3. Software development can be fast-tracked using one or more abstract models of the hardware.

Proprietary and commercial simulation solutions have been around for many years. The need to shorten hardware-software integration time and achieve the goal of having working software when silicon/hardware arrives is a good reason to give virtual systems development solutions a good look.
 

September 21, 2009

2009 Autumnal Equinox

September 21st marks the last full day of the memorable summer of 2009, a summer that was memorable on several fronts - including personal and professional. My summer of 2009 includes memories of rainfalls of near biblical proportions, personal triumphs and losses, the passing of several social icons, and the evolution of the embedded software market.

There is some small debate as to when summer officially ends and when we must stop wearing white to work. If the sun could talk, I would guess that it would suggest that summer officially ends and fall begins at the moment of the autumnal equinox. This is the moment in the September when the sun is vertical to the equator. This year's autumnal equinox will occur on September 22nd at 17:18 ET (21:18 UTC) - just about five hours and eight minutes after the opening keynote at the 2009 Intel Developer Forum being held in San Francisco, California. This is also about nineteen and half hours before the day 2 keynote titled "Developing for the Continuum of Intel Platforms".

Blogpic

The team has been working intensely to prepare for IDF and the Day 2 keynote. We have contributed a short segment that we call "A Day in the Life of an Embedded Multicore Developer... in under 5 minutes". This portion of the keynote is intended to convey how Wind River's development tools and run-times work together cohesively to simplify dealing with the challenges of adapting existing uniprocessor code for multicore. The demo will showcase the Tilcon Graphics suite, Wind River Workbench, and a preview of soon to be available JTAG debugging solutions for Core 2 Duo and Xeon processors. (This is an extension of the Atom configuration of the solution that was made generally available this past July) I am very appreciative of the effort the team put in to create the demo systems.

These types of demonstrations are going to be important as we continue to evolve in the multicore era. A few months ago, I participated in a multicore development tools panel with Dave Stewart of Critical Blue. Dave made a comment to the effect that embedded developers "don't know what they don't know about multicore development" [editor's note: I am paraphrasing] and stressed the importance of education on the different technologies and techniques involved with multicore software. This comment resonates with me and I feel that it puts onus on vendors to support our "techno-speak" with demonstrable proof-points.

If you have an area of interest as it relates to our development tools support for multicore, drop me a comment and I'll put together a posting or video that helps to show the solution in action.

[You can follow Emeka's feed on Twitter - http://twitter.com/enwafor ]

June 23, 2009

What's the 4-1-1 on 3.1.1?

We have just announced that we are taking orders for Wind River Workbench On-Chip Debugging version 3.1.1. Here's some infomation (i.e. "the 4-1-1") on this release. Version 3.1.1 is a significant update to the software and firmware that powers our JTAG debugger units - the Wind River ICE 2 and the Wind River Probe. A couple of the highlights include our support for RMI Corporation's XLR and XLS processor lines, a new capability that strengthens our support for multicore and multithreaded processors. This component of the release was the result of some hard work and great teaming between the folks at RMI, our professional services organization, and our engineering team in Canton. The other thing that has our team excited is that version 3.1.1 introduces support for Intel Architecture starting with support for the Intel Atom product family. Intel Architecture support in our on-chip debugging solutions extends our existing coverage for ARM, MIPS, and PowerPC. These different architectures are supported using firmware updates to the same physical hardware - this is something that our clients have told me that they appreciate since the same debug solution can be used across multiple projects in there heterogeneous environments. I tend to feel a certain amount of pride everytime we execute a new release, but I'm particularly proud and nostalgic about this release. I'm proud because our clients are jazzed that we are expanding our optimized-for-multicore JTAG debugging solution to the Intel Architecture and are pleased that we have a non-intrusive debug solution for Intel that helps to abstract the debugging of operating systems and the stuff running on them - including operating systems like VxWorks and Wind River Linux.

So why the feelings of nostalgia? It is because the 80x86 instruction set was the first architecture I worked with.

Coming out of university, I started my professional and embedded software career with a company in Montreal that developed point-to-point TDMA-based wireless networks. The company had been primarily a hardware company, but because this "software thing" seemed important, they were ramping up their software engineering team. When I was brought in, I was asked to study if-and-how C++ could be used in this environment. We were also asked to investigate techniques to improve the quality of our software design processes by using formal requirments management techniques, OO-techniques, and state machines to improve the quality of our design activities.

In those first few weeks of my employment, my mornings would consist of researching new software engineering techniques and my afternoons were spent in the lab learning how to debug the distributed system. At this time, most of the system was running on an Intel 80C186 processor and the software consisted mostly of undocumented assembly language that had been written by a former employee who had left to pursue other interests because he had become independently wealthy. (This was the polite explanation that was given to me)

The afternoons were - let's just say - "difficult". My mentor "V" was a brilliant engineer, but not much of a talker. I would later describe "V" as a man who was put on earth with a limited number of words that he could speak for his entire life, and he was using each and every one of these words sparingly. So my afternoons would be spent watching "V" debug the system from a UNIX terminal that was connected to one or more HP 64700 emulators attached to either a central station or a terminal station. "V" was also a six-sigma UNIX blackbelt and a smoker. So, we would sit together at this terminal - with smoke billowing all around the screen - and I would watch as "V" would type a flurry of shell and emulator commands that would grab code from SCCS, compile it in the background, load it into the emulator, and then display assembly code in the debugger window. I would struggle to keep pace as "V" entered a flurry of commands - vi, grep, sed, make, get, sccsdiff, "yy", "set trigger on read/write 0F0B83E00H", "set trigger on I/O output to 040H"  - while navigating all over the filesystem. It was intense - so intense that it didn't feel appropriate to ask questions while all this activity was going on.

I was totally and completely lost.

Usually after an hour or so of analyzing the 80x86 assembly code and traces, "V" would speak saying something like:

"Ah-ha! Can't you see it?! The blah-blah hasn't received a message from the blah-blah, and the connection memory updates are not getting to the blah-blah. This is why we don't have dial-tone."

There would then be another flurry of typng activity culminating in a "make" command. And then he would walk away. I usually used this time to review the history of the commands "V" had typed in the shell. In hindsight, it really felt like trying to understand the hieroglyphics left behind my another civilization.

This went on for weeks (it seemed longer) and then due to some scheduling screw-up, all of the senior software engineers who knew the system were on vacation at the same time. At that time our engineering director - who looked like a Hellenic version of the Malboro Man - was a real "getting things done" kind of guy. There was an ASIC for our next generation terminal station that had to get done and they needed some software guys to test it out. The director walked into the pit where the new engineers were researching software engineering techniques and I remember the discussion going something like this:

Malboro Man: "Sonny, what are you doing for a living?"

Me: "I'm reading about C++ for our next generation software development efforts..."

Malboro Man: "Sonny, does this look like an [expletive deleted, gerund form] library?! 'M' needs to debug the ASIC in the lab before he can go on vacation. Go help him."

We walked to the lab together and I'll never forget the look on "M's" face when he saw that some new grad was between the debugging of his $100K ASIC and a much needed vacation with his family. The next week and a bit was challenging, but proved to be rewarding. We connected the HP 64700 emulator to the new board.This activity in itself was noteworthy just based on the size and cost of these emulators (see figure below). As a new grad, I always felt nervous about dropping one of these emulators that cost about the same amount as my annual salary at the time. Because they were so big, they were almost always mounted in some dangerous configuration.

Hp64700

With the emulator mounted to the board with the new ASIC, I sat down in front of the UNIX terminal, brought out my notebook of commands that I captured, and together with "M" we somehow (read: miraculously) verified the ASIC and "M" went on vacation with his family. For me the bigger accomplishment was learning from the experience of debugging the system at the HW-SW interface level. I quickly developed an appreciation for the visibility that on-chip debugging provides into the system. This knowledge of the system helped  me in later phases of my career as we designed both the hardware and the software for our next generation systems. Reading the specs is one thing, but using an on-chip debugger to gain insights into the execution of the software proved to be essential capability required to help verify and optimize our software.

This year's TechInsights Embedded Market Study by TechInsights confirms that "Testing and Debugging" activities continue to take up the most time in our embedded software development products. Embedded developers need quality debugging tools to help address these challenges and meet their schedules. What's also encouraging is that when asked the questions "Which of the following are your favorite/most important software/hardware tools", "debuggers" rated just a hair behind "compilers" and "JTAG/BDM" debuggers finished in the top-five. These on-chip debugging solutions are essential for embedded and device software development.

This summer's release brings this on-chip debugging capability to an avalance of [new uniprocessor and multicore processors from Freescale, Intel, Broadcom, and Texas Instruments] and puts Wind River in a great position to help engineers tackle their debugging challenges so that they can enjoy more of their summers.

E

P.S. If you have an on-chip debugging story that you want to share, I would be glad to hear it.

[You can follow me on Twitter - enwafor]

June 13, 2009

When will my Smartphone be as smart as a fifth grader?

Mobile mania is upon us.

In recent days, we've been introduced to the awesome looking Palm Pre. The Pre is Palm's attempt to share some of the spotlight with Apple's innovative and popular iPhone. Apple has had a big role to play in feeding the Mobile mania frenzy and it too was in the news this week. I have to acknowledge that I count myself amongst the multitudes that watched and waited in anticipation of The Big Announcement at this week's Apple Worldwide Developer's Conference where the Apple iPhone 3.0 was introduced. Since its first release, I have always admired the iPhone and its cousin the iPod Touch. I see the iPhone 3.0 at its pricepoint as being similar to a standing-up double in baseball; a great hit that puts them in scoring position, but it didn't bring the runner home. I was hoping for something different - more on this later in this post...

It seems like everyday I have some kind of conversation about the smartphones that are now close to the center of our lives. On the day of our big announcement, one of my Starbucks acquantances - Sherif - pulled me aside to tell me that as much as he loved his iPhone, he really wanted an iPhone that had a better lens on it and that can take better pictures. The other day one of our illustrious senior engineers (I have to say that since he develops stuff for my product division) was showing off his new HTC phone and rubbing his hands together in gleeful anticipation of writing an application for this platform. Today, I came across this great article by Steve Johnson that provides a view into how Intel is developing new Intel Atom microprocessors to power smartphones and mobile internet devices.

There are a number of elements that need to come together in harmony for our smartphones to meet our needs, including:
  • low power devices that allow these devices we depend on to work with us through our waking hours
  • rich platforms that address our needs around the convergence of the gagets that we use to capture and view pictures, capture and view video, play music, control our A/V equipment, or control the lighting in our homes
  • killer applications that make our lives better, or at least more interesting

As a software guy, these are exciting times. Much of the "smarts" in these smartphones come from the software that powers the platforms that power these sleek devices. Without the software, our smartphone isn't so smart - they are really mostly just gadgets.

I often feel that many of the apps that we run on our handsets today are "clever" and more "superficially skillful" than "smart". There are clearly some great apps to help us manage our time, apps that help us communicate through Facebook and Twitter, data gathering apps, and stuff that could help me program my TV when I'm away (not yet available in Canada). There's also a bunch of apps that are great "party tricks" - I think of the cool little app for the iPhone/Touch that allows you to blow on the touch screen and puts mist on your picture or the one that reads MRI's.

But how smart is this software really? We have metrics that we can use to measure the popularity of an application - indicators like the number of downloads, application ratings, and the buzz in the forums help here. But have we really found a metric or an indicator that we can use to assess the quality of these applications with respect to their effectiveness in making our lives better? It might be out there and if it is, please let me know - I want to learn more about it.

I started thinking about the approaches be taken to developing applications for smartphones after seeing a recent tweet from David Pogue:

Pogue tweet
Yep, me too - I just want to TYPE IN "8:45".  The spin wheels is how it works on my Apple iPod Touch. I tried it out on my Blackberry - it too had a variation on the spin wheels. Both implementations seem to be patterned after the real alarm clock gadgets with those "modal >> | <<" buttons. I know these buttons well and get frustrated with them a couple of times a week when I have to adjust my wakeup time. You would think that a phone, especially a smartphone, would always require no more than 7 - maybe 8 - gestures to set ANY time. Wouldn't it be cool if I could just issue a voice command telling the phone to wake me up at 8:45am? And oh yeah, a Really Smartphone would also think to reprogram the coffee machine on its own - without me having to remind it.

I am nitpicking on the alarm clock since it is an application that most of us can relate to. The thing that excites me about the future of smartphones and Mobile Internet Devices are the possibilities that they create once some unconventional thinking and some hardwork are applied to developing capable and easy to use software on mobile device platforms. Once this is combined with a focus on simplicity of use, we'll be well on our way through this phase of the Technological Revolution. 

So here's what I was hoping for...

A slightly larger iPod Touch with a bigger screen and built-in stereo speakers that could sit on my night table with an easy programming interface to wake me up to one of my favorite tunes from my library. Maybe I could even jot down notes on it when an idea came into my head in the middle of the night (read: a tablet). When the device realized I was awake, it would then play all the tweets and e-mail that came through while I was sleeping.

Maybe for Christmas?

E

[You can follow me on Twitter - "enwafor"]

Emeka Nwafor

  • As Director of Product Management for Wind River’s development tools, Emeka Nwafor is responsible for product planning, marketing, and management of Wind River Workbench and the Wind River On-Chip Debugging products. Emeka joined Wind River in the spring of 2008, bringing 17 years of experience in software development tools.