February was a pretty hectic month. Among other things, we put in appearances at the Embedded Linux Conference and SCALE.
Embedded Linux Conference, which was held at the Parc 55 hotel in San Francisco, focused on using the open source operating system in a variety of embedded systems. Open webOS is based on Linux so it was a good fit for the team. Roy Sutton and Peter Helm manned the HP booth and talked not only about Open webOS but also how Enyo could be used in embedded systems that provided touch-sensitive displays.
Following that conference, Roy headed to SCALE 11x in Los Angeles. There he teamed up with Open webOS intern Patrick Roberts and webOS Ports team leader Tom King. At SCALE, Roy gave a presentation on the history of Open webOS and the process that it took to open source such a large piece of code. He and Tom also gave a presentation on what it takes to keep a community of developers interested in an open source project.
As always, we welcome you to join the Open webOS project. Drop by the webOS Ports IRC channel and see how you can get involved.
Open webOS @ SCaLE
SCaLE, the Southern California Linux Expo, is one of the largest recurring open source and Linux conferences. With dozens of speakers and multiple tracks, there’s a lot to discover. One thing you can discover at SCaLE is Open webOS. Roy Sutton will be on-hand to demo Open webOS at the HP booth and to present at the conference.
The first presentation, co-presented with WebOS Ports leader Tom King, will be “Open Source Community Relations”, which will explore what it takes to run a successful open source community. The second will be “From Closed to Open: The Open webOS Story”, which will explore how Open webOS came to the open source community.
If you’ll be in the Los Angeles area between February 22nd and 24th we encourage you to attend. There may even be an Enyo book signing at the O’Reilly booth!
January Edition
Happy New Year everyone! I hope everyone was gifted some new hardware to port Open webOS to! We are kicking off the New Year with some new features and updates.
First off is the return of the Virtualbox emulator. In the original webOS SDK, the emulator was an important tool for app developers. Developers used the emulator to test device specific features without having to buy hardware or get early access to new devices. On Open webOS, this is even more important for developers, who would otherwise have to worry about what hardware Open webOS is ported to. If you are an app developer and want to know more, we did a post last month on how to use Enyo 2 with phone-gap for cross-platform apps on Open webOS.
This month we upgraded meta-webos to Yocto 1.3. This brings new features and bug fixes to the build process. You can read more about it here from the mailinglist. Also, we are currently upgrading the nodejs platform. Watch out for 0.8.18 hitting the node repo in the coming days.
Earlier this month we had the privilege of having Tom King (who is leading the WebOS-Ports effort) stop in to meet with us. The team are feverishly preparing for their beta release on Galaxy Nexus and Nexus 7. We have established a great relationship with Tom. In his own words, “the meetings went well”, and we are working hard on clearing any roadblocks that are ahead of them. Tom left with some additional Nexus hardware for people working on the beta. If this interests you, catch Tom on IRC: #webos-ports on Freenode under ka6sox.
Over at Open webOS’s sister project Enyo, the team is hard at work on their next release. Enyo 2.2 will include Windows 8 and BlackBerry 10 app support, a Contextual Popup widget, some cool new list functionality, and a slew of other enhancements and fixes. Watch the Enyo site for updates or follow them on Twitter: @EnyoJS.
Look for the Developer Relations and Enyo team members at Apps-World next week (February 7th and 8th) in San Francisco. We have two on-stage presentations and are participating in panel about “Exploring cross platform development tools”. Stop by our booth, say hello, and stay for one of our theater sessions on Enyo — you could win some really cool hardware.
We also will be attending the Embedded Linux conference as part of the HP booth (February 20th-22nd). Also look out for our community manager Roy Sutton (@pre101) at SCaLE (February 22nd-24th)
As always your feedback is welcome and appreciated.
December Edition
As we come to a close of our first year as Open webOS, we would like to thank everyone involved. Since we published the original roadmap 12 months ago we achieved our goal of delivering 1.0 on schedule as promised. The New Year will see new features and components as we look to enhance the OS.
This month we completed and delivered the pluggable keyboard project, WebAppMgr separation and upgrading to Qt 4.8.3. Work continues as planned on upgrading Qt5/webkit2 (more details next month). Also, the complete rewrite of mediaServer has been completed and is now undergoing internal QA testing, look for this to hit the repos in the coming weeks.
Apache Cordova
The power of Open Source is the ability to leverage other open source projects. We have been privileged to know and support the PhoneGap guys from start and are excited to be part of the Apache Cordova project. Originally Enyo 1.0 supported direct API access to webOS hardware, however in order for Enyo 2.0 to be a truly cross-platform framework, it doesn’t.
To allow Enyo apps to be built once for multiple platforms we have worked closely with the Cordova project to also support webOS. With the release of Cordova 2.2, Enyo 2.0 is now supported on webOS up to version 3.0.5, which includes the Community Edition. Testing and development for Open webOS continues and should see full support in version 2.3. You can read more about how to use Cordova to wrap your Enyo 2.0 app here.
Community
This month we’ve added a new “getting to know the community” section where we highlight a prominent community member. The WebOS Ports team have done some amazing work over the last few months, so it’s fitting we start with a founding member: Patrick Roberts, known as halfhalo on IRC. Patrick decided to tackle the Samsung Slate 7 project because he wanted to see Open webOS running on a standard x86 tablet. He said that although he hadn’t contributed to a lot of open source projects before, he was able to get up-and-running with Open webOS very quickly. While talking with community manager Roy Sutton, he said “The key was learning how the Open Embedded layers system used for building Open webOS works.”
Patrick said he enjoys working with the ports team and that the IRC channel provides a good means for the team to collaborate and solve problems. He would like to have more contributors working on the Slate 7 port and encourages others to get involved. One issue still to be resolved is the lack of acceleration. Because the x86 version uses a different method for interacting with the graphics system than the Galaxy Nexus port, he can’t borrow the same solution. You can check out the current status of the Slate port below.
The WebOS-Ports team also release a video today of Open webOS running on a Nexus 7
We’d like to wish you all a happy New Year, may 2013 be a joyful and prosperous year for you and Open webOS.
JavaScript Apps for Open webOS With Enyo and Cordova
In the past, we encouraged developers to use Enyo to develop apps for webOS. We still love Enyo and encourage developers to use it. However, as we moved to Open webOS we decided to embrace all the JavaScript frameworks developers use. Enyo, a truly cross-platform app development tool, is no longer bundled with Open webOS. Enyo 1.0 provided a number of webOS-specific functions. Enyo 2.0 doesn’t have that so we needed a way to provide access to device features. The solution we decided upon was to use Apache Cordova for deploying apps on Open webOS.
This will make it easier for developers to not only deploy apps for Open webOS but will also help developers port apps developed for Open webOS to other platforms. With a single code base you can deploy native-quality apps across many mobile devices. We still, of course, love Enyo so we’ll demonstrate how to use it to create an app with Cordova.
In this article we’ll discuss some of the important considerations when building Open webOS (and regular webOS) apps with Enyo 2.0. webOS specific functions that were present in Enyo 1.0 aren’t available. This is where Cordova comes in. It was designed to provide a consistent interface regardless of the device an app is deployed on.
We’re going to build upon the Bootplate project, a starter app that is a part of Enyo 2.0. Bootplate provides tools for debugging apps in a desktop browser and tools for preparing apps for deployment. Bootplate is available from the Enyo GitHub repo or for download from the Enyo Web site. For more information, visit the Bootplate wiki page.
Once Bootplate is downloaded you’ll need to modify the project a bit to be ready for Cordova. To make debugging easy we’re going to leave debug.html alone so that we can test in desktop browsers. We’ll modify index.html to load the Cordova JavaScript library. Modify the head section to add the following before the script to include Enyo:
<script src="cordova-2.2.0.js"></script>
With other frameworks you might need to tap in to the onDeviceReady() event. Enyo supports PhoneGap events out of the box and you can subscribe to them using Signals. To listen for the Cordova startup event add the following to your main app kind’s components block:
{kind: "Signals", ondeviceready: "deviceready"}
This signal will be sent as soon as Cordova detects the device is ready. If you need to call any Cordova functions on initialization simply place them in the deviceready() function.
Once done with that step, we can prepare the project for deployment by running the deploy script. For Windows users, deploy\deploy.bat and for everyone else deploy/deploy.sh.
The next step is setting up the Cordova environment. For this, we’ll use the PhoneGap build of Cordova, available here. At the time of this post, the latest version is 2.2.0. The PhoneGap environment will exist side-by-side with Bootplate and should not be installed in the same directory. Each supported platform in PhoneGap has a directory under lib. For webOS deployments we’ll be placing our app’s files into lib/webos/framework. To prepare, delete all files in this directory except for appinfo.json, which you can edit to your liking.
Copy the of the bootplate deploy directory to lib/webos/framework inside your phonegap directory. Now you can package the app for deployment. You can use PhoneGap’s make command or use palm-package to pack up the contents of the lib/webos directory.
Some of the functionality in PhoneGap for webOS is also webOS specific, for example you can call webOS services from your app. Here’s an example using the connectionmanager service:
Last week in Santa Clara, the Open webOS team ventured out into the developer community by sponsoring Digia’s Qt Developer Days: North America.
As the team demoed the latest porting work of the webOS-ports crew as well as the build running on the HP TouchSmart desktop, the Open webOS booth was busy with curious Qt developers interested in how Qt technology was being used in Open webOS and what is up next on the roadmap for Open webOS. See November’s post for more information on that.
The event was headlined by our very own Qt lead engineer Roger Stringer. Roger gave the audience an overview of Open webOS and the use of Qt in Open webOS before taking questions from the crowd.
Overall, the Qt community was excited to see the direction in which Open webOS is heading. We look forward to adding these excited Qt developers to the Open webOS community.
November Edition
Warning this month’s post is pretty technical!
Back in September we announced a roadmap on what we would be working on next. The focus this month is on three significant SysMgr projects that will be completed in rapid sequence over the next month, plus one routine update.
Pluggable Keyboard Project
We have pulled the existing virtual keyboard logic out of “luna-sysmgr” into a new component “keyboard-efigs”. This component supports either a tablet or phone-style virtual keyboard based on the familiar keyboard design for the HP Touchpad, supporting English, French, Italian, German and Spanish entry (hence “-efigs”)
This keyboard can be used as the basis for implementing different designs and locale support. “luna-sysmgr” will be able to query multiple available keyboard modules and will select the best fit, based on the pixel dimensions of the display, the DPI and the locale.
This code change affected the following components and can be tested with the identified branches:
We expect to complete our internal QA process by the end of November, and then we will roll over the “unstable” branches for “luna-webkit-api” and “luna-sysmgr” into the “master” branch, and switch the keyboard selection process over to this new method.
Qt 4.8.3 update
We are performing final testing on updating our Qt4.8.2 support to the latest upstream version of 4.8.3 and expect to post that before the end of November.
WebAppManager Separation Project
The existing “luna-sysmgr” component has two separate processes combined into one codebase, LunaSysMgr and WebAppMgr. When LunaSysMgr loads, it currently immediately forks a copy of itself as WebAppMgr, and the two processes do different but complementary tasks, where WebAppMgr is responsible for running JavaScript applications and LunaSysMgr runs the rest of the system. There are weird historical reasons for this and it greatly complicates the maintenance and enhancement of SysMgr components.
We have already completed the first phase of breaking out the WebAppManager codebase into the new component “webappmanager” and are now pruning the resulting obsolete code from “luna-sysmgr”. This will still leave these two components with a significant set of common code, which we will progressively extract into a new shared library component “luna-sysmgr-common”.
Once the “unstable” branch of “luna-sysmgr” is released from the Pluggable Keyboard project, we will immediately reuse that branch for these changes and ensure their visibility and of the ongoing development of the new “luna-sysmgr-common” component.
This code change will affect the following components and will become testable with the identified branches:
We expect to complete our internal QA process in early December and then we will roll over the “unstable” branch for “luna-sysmgr” into the “master” branch, and have a substantially reduced codebase for “luna-sysmgr” focused on the traditional responsibilities of the LunaSysMgr process.
Qt5/WebKit2 Upgrade for SysMgr Components Project
Early in December we will begin the complex process of updating the following SysMgr components from Qt4.8/WebKit1 to be based on Qt5/WebKit2 and we expect to complete the process by the end of that month: “luna-sysmgr”, “luna-sysmgr-common”, “keyboard-efigs”, “smartkey-hun” and “webappmanager”.
We expect the bulk of the effort will be related to supporting Qt5 in the build system, updating the QPAs to work with Qt5, and of modifying “luna-sysmgr” and “webappmanager” to convert deprecated Qt4.8 capabilities to their Qt5 equivalents.
Once the WebAppManager Separation Project has reached a stable point early in December, and the “unstable” branch of “luna-sysmgr” has again been rolled up into the “master” branch, you will begin seeing the Qt5 conversion work appearing in the “unstable” branches of these five components.
Interested in contributing?
Join us in the forums, mailinglist or IRC to discuss these topics and many more. Of course you can also join the engineering team and get paid to work on your favorite open source project. Head on over to our jobs page and browse through the great opportunities available.
Enyo 2.1.1
We are also pleased to announce the latest Enyo release. Version 2.1.1. offers Tier-1 support for IE 10 and Kindle Fire HD. This follow’s last month release of 2.1, which supports Chrome on Android and iOS 6. You can read more about 2.1.1 over on the Enyo blog.
Out and about
We are packing in lots of events to end the year. Come join us at QT developer days in Santa Clara Dec 5-7th. Our very own Chief Architect Steve Winston will be giving a talk on Friday about the importance of QT for Open webOS. We will also have a booth displaying some of the ports that community members have been working on. Also on the schedule is mHealth in Washington, DC from Dec. 3-5 where we will be talking about cross-platform design in healthcare. Enyo guru Kevin Schaaf will be giving a talk on Encapsulating the Web at dotjs in Paris.
As always we look forward to meeting you either online or in person and your feedback is definitely welcome.
October Edition
With the release of webOS Community Edition back in July, we got our first glimpse into the power of open source and the community of developers that support it. Developers immediately started patching and adding features to SysMgr that have enhanced the user experience on a TouchPad. Now one month after the release of Open webOS 1.0 we have already seen it ported to multiple devices. Within hours of its official release, the WebOS Ports team demonstrated Open webOS running on a Galaxy nexus (see previous blog post). After a lot of hard work their latest video shows how far they have come in just one month.
The WebOS Ports team also ported Open WebOS to a Samsung series 7, as demonstrated by our own Roy Sutton.
If you are interested in contributing, WebOS Ports is looking for help in particular with being able to utilize LibHybris and the Android Video Driver to accelerate applications in Cards. Join them on Freenode:#webos-ports or in the OpenWebOS-General mailing list if you can help.
Developer Ping-Hsun Chen ported Open webOS to a Nook color and has even implemented hardware acceleration.
Another intrepid developer, Mause Malone, took the bootable CD image that Ping-Hsun created and booted a desktop build of Open webOS onto a Dell Mini 9 and a ThinkPad x4.
And general hacker Steven Troughton-Smith (@stroughtonsmith) ported Open webOS 1.0 to the Nexus S and an Asus Transformer Prime.
All this in less than one month and more on the way! Very exciting indeed.
We have seen increased activity on the forums and mailing lists as developers discuss issues and new features like the new threaded email app that was released earlier this month. Ideas are flowing, bugs/features are being submitted to JIRA and code pull requests are being made and accepted. This month we saw a great example of the whole community working together. After receiving feedback from people who had issues porting Open webOS to new devices, our engineering team made a change to the build system in order to allow SysMgr be configured for different targets.
Long may the collaboration continue!
If you are interested in getting paid for your contributions check out our open positions, we are looking to add talented people across the board.
As always your feedback and input are valued. If you are working on a port let us know about it so we can help promote your work!
See you soon.
News flash
Hot on the heels of this morning’s release of Open webOS comes the exciting announcement from the webOS-Ports.org team that they have successfully ported Open webOS to a Google Nexus phone.
Says Tom King of webOS-Ports:
The Community has been working right along with HP to make this a reality. With every release of code we have continued to track along and get things working with hardware, as much as possible, till today’s release let us put it all together, Kudos go the WebOS Ports team and especially Morphis, JaMa, and GNUtoo for working to get us to this point.
Tom said they are working on getting hardware acceleration working still. That said, here’s a video of Open webOS running on the Google Nexus:
And an image of the device:
Open webOS 1.0 Edition
Today is a great day for Open webOS. We have completed our initial roadmap and are releasing Open webOS 1.0 on schedule, as promised.
Our combined efforts with the community and hard work have paid off, and we are now ready to move on to the next phase together. With this release we have affirmed our commitment to meet our goals and create a vibrant open source community.
What 1.0 contains
We now have an OpenEmbeddedbuild that allows a full webOS experience running inside an OE emulator. We have added core applications — email & browser — while continuing to support the desktop build environment.
The 1.0 release also brings support for Enyo2. You can now take apps built on one of the best cross-platform JavaScript frameworks and easily run these same apps on Open webOS or other platforms.
In the past 9 months, we have delivered over 75 Open webOS components. This totals over 450,000 lines of code. (Can I get a hell yeah!). The source code for Open webOS can be found in Open webOS repositories on GitHub.
What 1.0 means
Combining today’s components with those from the previous releases, Open webOS can now be ported to new devices.
Our Chief Architect, Steve Winston, demonstrates our first Open webOS port to an HP device in the video below.
We expect to have more Open webOS port announcements in the future and will work with the community to deliver updates here.
The future
We will continue to innovate and develop for Open webOS over the coming months, including the following planned enhancements:
·Qt5 / WebKit2
·Open sourced media and audio components
·BlueZ Bluetooth stack
·ConnMan network management
·Optimized SysMgr rendering architecture
Come join in the chatter on our mailing list and forums; your collaboration is encouraged.
Community activity
Last month’s Beta release delivered collaboration tools for community members. Today’s 1.0 release includes new forums, and our project infrastructure now includes an integrated login across the website, forums, and the JIRA bug tracker.
The 1.0 launch includes contributions by expert community members made after the beta release. These contain bug fixes, resolution of dependencies, and substantive commentary which guided our decisions on code structure and other issues. Across the repos, the bug tracker and the mailing lists community members are helping each other.
The webOS-Ports team also continues to enhance the user experience on LunaCE with their latest release which includes shortcuts, bug fixes and several user-facing feature additions such as gesture-based app switching and improved card stack management.
Thank you
Today is a day to celebrate our engineers. Martin Risau, our SVP, said that he was, “proud that we did what we said we would do in January. This achievement gives us the credibility to execute our future plans.”
Together, with the open source community, we have achieved great results over the last few months. Both internal and external engineers have put a lot of time and effort into getting us to where we are today, and they deserve a lot of credit.
Jim Zemlin, Executive Director of The Linux Foundation, echoed the importance of reaching this benchmark:
“By using the build framework for embedded Linux, the Yocto Project with OpenEmbedded-Core, Open webOS is poised to deliver an open source build environment that developers will thrive from. Open webOS continues to hit its milestones, and we expect the community around the project to continue to grow. All the right tools are in place.”
As we strive to make Open webOS an open platform of choice, we are excited to continue working with a great community whose members continue to amaze us with their innovation and creativity.
That’s all for now folks. See you on the Interweb and at community events.