[Ubuntu Nexus7] Keeping up with progress

To make it easier to keep up with the work and progress on the Nexus 7 , I have set up a topic in status.ubuntu.com and a wiki page with the performance goals for the release:

If there is  a missing Blueprint that should be track under this topic, please let me know.

 

[Ubuntu Nexus 7] Browser Performance

I decided to run some browser performance benchmarks from http://peacekeeper.futuremark.com/ in the Nexus 7 running Ubuntu, mainly to see how it compares with other platforms. Here are my basic conclusions as a result of the test:

  • In general Ubuntu + Nexus 7 performs pretty well
  • The Nexus 7 with Ubuntu and Chromium (629) performs better that the Android Nexus 7 (489)
  • Firefox performance (257) is pretty bad compare with Chromium (629). I have tested it in my laptop and the same different exist, however the more powerful hardware makes it not as relevant.

Unfortunately, I wasn’t able to access the detailed results (it displays blank), any suggestions why? My results are the bottom firefox (257) results, and the top Chrome (629):

Ubuntu ARMv8.. ready for hardware bring up!

When it come to ARM Servers one thing that everyone agrees is that the new 64 bit architecture, introduced in ARMv8, will be a significant milestone for this market.

It seems that 14.04 LTS will be a big release for ARM Servers, as it is likely to be the first Long Term Support with ARMv8. However, the road to 14.04 starts now!

The first set of ARMv8 licensees are starting to be announced, so it is time to get Ubuntu ready for hardware bring up. What better place to start that with an ARMv8 kernel? and that is what Jeremy Kerr from Canonical has just published.

As he says: “Most of the components of the 64-bit ARM toolchain have been released, so I’ve put together some details on building a cross compiler for aarch64. At present, this is only binutils & compiler (ie, no libc), so is probably not useful for applications. However, I have a 64-bit ARM kernel building without any trouble.”

If you want to find out more about Jeremy’s work, see:

With the test kernel builds, we’re able to start low-level testing of ARMv8 hardware as soon as they become available. So, we are ready for ARMv8 hardware bring up, Are you?

ARM Server on a Prezi

Have you ever wondered what is all the fuss about ARM Servers? Yes? good , good.

Have you ever wish you had some crazy Zooming UI presentation that told you all about it? what.. no!? Well though.. because now you have one :)

If you haven’t heard of Prezi, it is a new way to generate more dynamic presentations. I will give you a few tips:

  • When viewing a Prezi, make sure you click on the “Full Screen” for maximum effect (under More..)
  • You can also click on autorun if you fancy the animation to happen on its own
  • You can also use the right and left arrows to move around the animation at your leisure
  • If you want to zoom into something, just double click on it!

Without further ado, I give you ARM Server on  a Prezi:

url: http://prezi.com/_zwqpnowk8cv/arm-server/

[A Juju adventure] Linking up with Android

In my previous entry, I argued that Ubuntu is possibly the best development environment to write connected android apps, thanks to Juju. Although using WordPress was possibly not a great example :) I still think that this idea has legs! Hence, I have decided to build an example project.

The example will mainly  be a simple and plan ToDo list app for Android, that gets its items from a back-end MySQL server.

So here is my list of things to get done for this example project:

  • Proof that you can access a Juju local environment from the Android Emulator
  • Develop a TODO list android app
  • Using a few charms from the charm store plus a custom one, set up a MySQL database that can be exposed through a web service with simple commands/steps
  • Connect the android app and the webservice, so they talk to each other.

And as there is no time like the present, here is the first bullet point!

Accessing a Juju Local Environment from the Android Emulator

As I was working on my wordpress charm, the easiest thing for me to do was to access the local webserver set-up for the blog.  I first installed the Android SDK, which turned out to be pretty easy to do by just following the instructions posted at http://developer.android.com/sdk/index.html . Apart of the sdk tools that download you the emulator, build tools and so on.. you can also choose to use Eclipse as your IDE. If you do this, you can then install an Android plug-in that is *very very* complete.  Having had previous experience with Eclipse, I choose this root and unless you feel very strongly against it, I recommend that you do the same.

Once I had the SDK installed, I run the 2.2 emulator (because that happens to be the version in the spare Android phone that I plan to use later on) and open the local IP address of the WordPress service.  That just worked fine.

Then I decided to create a sample android project and tried some code to do the same. I found that the following method within the main activity of the project was able to ping and then open in a browser window the wordpress app:

private String hostip = "192.168.122.137";

...

public void pingme(View view) {
 TextView info = (TextView) findViewById(R.id.mytext);
 WebView mweb = (WebView) findViewById(R.id.webView1);
 InetAddress in = null;

 Log.w("PING","trying to reach" + hostip);
 info.setText("trying to reach" + hostip);
 in = InetAddress.getByName(hostip);

 if (in.isReachable(5000)) {
   info.append("\nHost found");
   Log.w("FOUND",in.getCanonicalHostName());
 } else {
   info.append("\nHost found");
 }
 mweb.getSettings().setJavaScriptEnabled(true);
 mweb.loadUrl("http://"+hostip);
}

So in a nutshell, the first bullet point (and the easiest) of my list is completed!

[Juju adventure] Android

I have been playing for Juju for a bit before my nice and long holidays on the Costa Brava!

Back into action and I was thinking that I would be losingmy wordpress mobile app once I deploy my own wordpress instance, no? (please correct me if I am wrong). Would I be better of writting something simple for my own use on Android?

Then it dawned on me. Most phone apps today are mainly a front end to a web/cloud service. In that case, Ubuntu and Juju are the perfect development enviroment for an Android developer.

Think about it. You can write your app using the Android Linux SDK, then you can write your web service and deploy it locally with Juju. You can test that your end to end system works well and then deploy it. You just need to push your app to the android market and “juju deploy” your service into the public cloud.

I was curious, Has anyone tried this? Did it work well for you?

[A JuJu Adventure] Splitting my charm out

In my previous post, Jorge Castro commented that a new super wordpress charm is in the works, and I want to keep working on my blog site configuration (theme and plug-ins) without missing out on any updates. This means that I needed to stop forking the wordpress plugin and find a way to just use the one in the charm store and then ,onto the same instance, roll-out my configuration.

I mentioned that I might try splitting my configuration out into a Subordinate service, and that is what I done :) It was actually pretty easy.

I created a new charm called wordpress-conf.  I set the metadata.yaml file to contain:

name: wordpress-conf
summary: "WordPress configuration"
subordinate: true
description: |
Provides configuration for wordpress blogs
- Plugin:
- WordPress importers
- super cache plug-in
requires:
logging:
 interface: logging-directory
 scope: container
juju-info:
 interface: juju-info
 scope: container

As you can see it has a line calling out that this charm is a subordinate, and has two requirement.  The two requirements are for testing purposes really. The “logging” requirement is an explicit requirement that the charm that you are “subordinating” to must have defined, while “juju-info” is an implicit requirement that is define for all charms. What this mean is that using “juju-info”, I can deploy my charm against any service. The key is to define the scope as container.

The magic happens not when you deploy a subordinate charm, but when you add a relationship to another service. For example the following commands result on a wordpress instance setup following the WP charm in the charm store, but with my plugin and theme set up:

juju bootstrap
juju deploy wordpress
juju deploy mysql
juju add-relation wordpress mysql
juju expose wordpress
juju deploy --repository=~/mycharm local:precise/wordpress-conf
juju add-relation wordpress-conf wordpress

Pretty cool, eh!? I should be able to upgrade the two charms now independently

Follow

Get every new post delivered to your Inbox.