Category Archives: android

image

Mobile World Congress 2015 round-up: MediaTek Helio, Samsung Galaxy S6, Boyd smell sensor, Jolla Sailfish 2.0, Alcatel OneTouch devices, ZTE eye scanning, and Ford’s electric bike

Finding time to write everything up is a struggle, so rather than risk not doing so at all, here is a quick-fire reflection on the event.

image

Microsoft’s Windows 10 was part of it of course; I’ve covered this in a separate post.

I attended MediaTek’s press event. This Taiwan SoC company announced the Helio X10 64-bit 8-core chip and had some neat imaging demos. Helio is its new brand name. I was impressed with the company’s presentation; it seems to be moving quickly and delivering high-performance chips.

image

Alcatel OneTouch showed me its latest range. The IDOL 3 smartphone includes a music mixing app which is good fun.

image

There is also a watch of course:

image

Despite using Android for its smartphones, Alcatel OneTouch says Android Wear is too heavyweight for its watches.

The Alcatel OneTouch range looks good value but availability in the UK is patchy. I was told in Barcelona that the company will address this with direct sales through its own ecommerce site, though currently this only sells accessories, and trying to get more retail presence as opposed to relying on carrier deals.

I attended Samsung’s launch of the Galaxy S6. Samsung is a special case at MWC. It has the largest exhibits and the biggest press launch (many partners attend too). It is not just about mobile devices but has a significant enterprise pitch with its Knox security piece.

So to the launch, which took place in the huge Centre de Convencions Internacional, unfortunately the other side of Barcelona from most of the other events.

image

The S5 was launched at the same venue last year, and while it was not exactly a flop, sales disappointed. Will the S6 fare better?

image

It’s a lovely phone, though there are a few things missing compared to the S5: no microSD slot, battery not replaceable, not water resistance. However the S6 is more powerful with its 8-core processor and 1440×2560 screen, vs quad-core and 1920×1080 in the S5. Samsung has also gone for a metal case with tough Gorilla Glass front and back, versus the plastic and glass construction of the S5, and most observers feel this gives a more premium feel to the newer smartphone.

I suspect that these details are unimportant relative to other factors. Samsung wants to compete with the iPhone, but it is hardly possible to do so, given the lock which the Apple brand and ecosystem holds on its customers. Samsung’s problem is that the cost of an excellent smartphone has come down and the perceived added value of a device at over £500 or $650 versus one for half the price is less than it was a couple of years ago. Although these prices get hidden to some extent in carrier deals, they still have an impact.

Of particular note at MWC were the signs that Samsung is falling out with Google. Evidence includes the fact that Samsung Knox, which Google and Samsung announced last year would be rolled into Android, is not in fact part of Android at Work, to the puzzlement of Samsung folk I talked to on the stand. More evidence is that Samsung is bundling Microsoft’s Office 365 with Knox, not what Google wants to see when it is promoting Google Apps.

Google owns Android and intends it to pull users towards its own services; the tension between the company and its largest OEM partner will be interesting to watch.

At MWC I also met with Imagination, which I’ve covered here.

Jolla showed its crowd-sourced tablet running Sailfish OS 2.0, which is based on the abandoned Nokia/Intel project called MeeGo. Most of its 128 employees are ex-Nokia.

image

Jolla’s purpose is not so much to sell a tablet and phone, as to kick-start Sailfish which the company hopes will become a “leading digital content and m-commerce platform”. It is targeting government officials, businesses and “privacy-aware consumers”  with what it calls a “security strengthened mobile solution”. Its business model is not based on data collection, says the Jolla presentation, taking a swipe at Google, and it is both independent and European. Sailfish can run many Android apps thanks to Myriad’s Alien Dalvik runtime.

The tablet looks great and the project has merit, but what chance of success? The evidence, as far as I can tell, is that most users do not much object to their data being collected; or put another way, if they do care, it does not much affect their buying or app-using decisions. That means Sailfish will have a hard task winning customers.

China based ZTE is differentiating its smartphones with eye-scanning technology. The Grand S3 smartphone lets you unlock the device with Eyeprint ID, based on a biometric solution from EyeVerify.

image

Senior Director Waiman Lam showed me the device. “It uses the retina characteristic of your eyes for authentication,” he said. “We believe eye-scanning technology is one of the most secure biometric ways. There are ways to get around fingerprint. It’s very very secure.”

Talking of sensors, I must also mention San Francisco based Boyd Sense, a startup, which has a smell sensor. I met with CEO Bruno Thuillier. “The idea we have is to bring gas technology to the mobile phone,” he said. Boyd Sense is using technology developed by partner Alpha MOS.

The image below shows a demo in which a prototype sensor is placed into a jar smelling of orange, which is detected and shown on the connected smartphone.

image

What is the use of a smell sensor? What we think of as smell is actually the ability to detect tiny quantities of chemicals, so a smell sensor is a gas analyser. “You can measure your environment,” says Thuillier. “Think about air quality. You can measure food safety. You can measure beverage safety. You can also measure your breath and some types of medical condition. There are a lot of applications.”

Not all of these ideas will be implemented immediately. Measuring gas accurately is difficult, and vulnerable to the general environment. “The result depends on humidity, temperature, speed of diffusion, and many other things,” Thuillier told me.

Of course the first thing that comes to mind is testing your breath the morning after a heavy night out, to see if you are safe to drive. “This is not complicated, it is one gas which is ethanol,” says Thuillier. “This I can do easily”.

Analysing multiple gasses is more complex, but necessary for advanced features like detecting medical conditions. Thuillier says more work needs to be done to make this work in a cheap mobile device, rather than the equipment available in a laboratory.

I had always assumed that sampling blood is the best way to get insight into what is happening in your body, but apparently some believe breathe is as good or better, as well as being easier to get at.

For this to succeed, Boyd Sense needs to get the cost of the sensor low enough to appeal to smartphone vendors, and small enough not to spoil the design, as well as working on the analysis software.

It is an interesting idea though, and more innovative than most of what I saw on the MWC floor. Thuillier is hoping to bring something to the consumer market next year.

Finally, one of my favourite items at MWC this year was Ford’s electric bikes.

image

Ford showed two powered bicycles at the show, both prototypes and the outcome of an internal competition. The idea, I was told, is that bikes are ideal for the last part of a journey, especially in today’s urban environments where parking is difficult. You can put your destination into an app, get directions to the car park nearest your destination, and then dock your phone to the bike for the handlebar by handlebar directions.

image

I also saw a prototype delivery van with three bikes in the back. Aimed at delivery companies, this would let the driver park at a convenient spot for the next three deliveries, and have bikers zip off to drop the parcels.

Microsoft risks enterprise credibility by pushing out insecure mobile Outlook

One thing about Microsoft: it may not be the greatest for usability or convenience, but it does understand enterprise requirements around compliance and protecting corporate data.

At least, I thought it did.

That confidence has been undermined by the release yesterday of new “Outlook” mobile apps for iOS and Android.

I read the cheery blog posts from Office PM Julia White and from new Outlook GM Javier Soltero. “Now, with Outlook, you really can manage your work and personal email on your phone and tablet – as efficiently as you do on your computer,” says White.

There is a snag though. The new Outlook apps are rebadged Acompli apps, Acompli being a company acquired by Microsoft in early December 2014. Acompli, when it thought about how to create user-friendly email apps that connected to multiple accounts, came up with a solution which, as I understand it, looks like this:

  1. User gives us credentials for accessing email account
  2. We store those credentials in our cloud servers – except they are not really our servers, they are virtual machines on Amazon Web Services (AWS)
  3. Our server app grabs your email and we push it down to the app

A reasonable approach? Well, it simplifies the mobile app and means that the server component does all the hard work of dealing with multiple accounts and mail formats; and of course everything is described as “secure”.

However, there are several issues with this from a security and compliance perspective:

  1. From the perspective of the email provider, the app accessing the email is on the server, not on the device, and the server app may push the emails to multiple devices. That means no per-device access control.
  2. Storing credentials anywhere in a third-party cloud is a big deal. In the case of Exchange, they are Active Directory credentials, which means that if they were compromised, the hacker would potentially get access not only to email, but to anything for which the user has permission on that Active Directory domain.
  3. If an organisation has a policy of running servers on its own premises, it is unlikely to want credentials and email cached on the AWS cloud.

The best source of information is this post A Deeper look at Outlook on iOS and Android, and specifically, the comments. Microsoft’s Jon Orton confirms the architecture described above, which is also described in the Acompli privacy policy:

Our service retrieves your incoming and outgoing email messages and securely pushes them to the app on your device. Similarly, the service retrieves the calendar data and address book contacts associated with your email account and securely pushes those to the app on your device. Those messages, calendar events, and contacts, along with their associated metadata, may be temporarily stored and indexed securely both in our servers and locally on the app on your device. If your emails have attachments and you request to open them in our app, the service retrieves them from the mail server, securely stores them temporarily on our servers, and delivers them to the app … If you decide to sign up to use the service, you will need to create an account. That requires that you provide the email address(es) that you want to access with our service. Some email accounts (ones that use Microsoft Exchange, for example) also require that you provide your email login credentials, including your username, password, server URL, and server domain. Other accounts (Google Gmail accounts, for example) use the OAuth authorization mechanism which does not require us to access or store your password.

image

The only solution offered by Microsoft is to block the new apps using Exchange ActiveSync policy rules.

The new apps do not even respect Exchange ActiveSync policies – presumably hard to enforce given the architecture described above – though Microsoft’s AllenFilush says:

Outlook is wired up to work with Active Sync policies, but it currently only supports Remote Wipe (a selective wipe of the corporate data, not a device wipe). We will be adding full support for EAS policies like PIN lock soon.

However a user remarks:

Also, i have set up a test account, and performed a remote wipe, and nothing happened. I also removed the mobile device partnership later and still able to send and receive emails.

The inability to enforce a PIN lock means that if a device is stolen, the recipient might be able simply to turn on the device and read the corporate email.

The disappointment here is that Microsoft held to a higher standard for security and compliance than its competitors, more perhaps than some realise, with things like Bitlocker encryption built into Surface and Windows Phone devices.

Now the company seems willing to throw that reputation away for the sake of getting a consumer-friendly mobile app out of the door quickly. Worse still, it has been left to the community to identify and publicise the problems, leaving admins now racing to put the necessary blocks in place. If Microsoft was determined to do this, it should at least have forewarned administrators so that corporate data could be protected.

Why Microsoft is hard to love

Microsoft CEO Satya Nadella stated last week that “We want to move from people needing Windows to choosing Windows to loving Windows. That is our bold goal with Windows.”

It is an understandable goal. Many users have discovered a better experience using a Mac than with Windows, for example, and they are reluctant to go back. I will not go into all the reasons; personally I find little difference in usability between Mac and Windows, but I do not question the evidence. There are numerous factors, including the damage done by OEMs bundling unwanted software with Windows, countless attacks from malware and adware, badly written applications, low quality hardware sold on price, and yes, problems with Windows itself that cause frustration.

There is more though. What about the interaction customers have with the company, which makes a difference to the emotional response to which Nadella refers? Again, Apple has an advantage here, since high margins enable exceptional customer service, but any company is capable of treating its customers with respect and consideration; it is just that not all of them do.

Now I will point Nadella to this huge thread on Microsoft’s own community forums.  The discussion dates from September 10 2014 and the contributors are customers who own Windows Phone devices such as the Lumia 1020. They discovered that after updating their devices to Windows 8.1 they experienced intermittent freezes, where the phone stops responding and has to be cold booted by pressing an emergency button combination (volume down plus power). These, note, are critical customers for Microsoft since they are in the minority that have chosen Windows Phone and potentially form a group that can evangelise this so far moribund platform to others.

The thread starts with a huge effort by one user (“ArkEngel”) to document the problem and possible fixes. Users understand that these problems can be complex and that a fix may take some time. It seems clear that while not all devices are affected, there are a substantial number which worked fine with Windows Phone 8, but are now unreliable with Windows Phone 8.1. A system freeze is particularly problematic in a phone, since you may not realise it has happened, and until you do, no calls are received, no alerts or reminders fire, and so on, so these customers are anxious to find a solution.

Following the initial complaint, more users report similar issues. Nobody from Microsoft comments. When customers go through normal support channels, they often find that the phone is reset to factory defaults, but this does not fix the problem, leading to multiple returns.

Still no official comment. Then there is an intervention … by Microsoft’s Brian Harry on the developer side. He is nothing to do with the phone team, but on 27 October receives this comment on his official blog:

Brian, sorry to hijack you blog again, but you are the only person in MS who seems to care about customers. Can you please advise whoever in MS is responsible for WP8.1 and make them aware of the “freeze” bug that MANY users are reporting (31 pages on the forum below). There has been NO feedback from MS whatsoever in the months that this has been ongoing and it is obviously affecting many users (myself included). If “cloud first, mobile first” is to be a success, you better make the bl00dy OS work properly. Thanks

Harry promises to raise the issue internally. On 12 Nov still nothing, but a reminder is posted on Harry’s blog and he says:

Nag mail sent.  Sorry for no update.

This (I assume) prompts a post from Microsoft’s Kevin Lee – his only forum post ever according to his profile:

I’m sorry we’ve been dark – I work closely with the Lumia engineering team that’s working directly on this. Trying to shed a little light on this…

Beginning in early September we started to receive an increased number of customer feedback regarding Microsoft Lumia 1020 and 925 device freezes. During the last two months we have been reaching out for more and more data and devices to systematically reproduce and narrow down the root cause. It turned out to be a power regulator logic failure where in combination with multiple reasons the device fails to power up the CPU and peripherals after idling into a deep sleep state.

I am pleased to pass on that we have a fix candidate under validation which we expect to push out the soon with the next SW update!

Appreciate your patience.

OK, so Microsoft knows about the problem, has sat back saying nothing while users try this thing and that, but now after two months says it has a “fix candidate”. This is greeted warmly as good news, but guess what? Phones keep freezing, no fix appears, and in addition, there is lack of clarity about how exactly the fix is being “pushed out”.

Two months later, user Shubhan NeO says:

And I broke my Lumia 1020. Not going back to Windows Phone ever ! Switching back to Android ! Here is sneak peek of my phone !

image

It is not quite clear whether he broke the phone deliberately in a fit of frustration, but perhaps he did as he comments further:

Works ? Seriously ? It hangs 2-3 a day, has stupid support for official apps. So many issue.

I’m done.

Here is another:

I paid the extra £ for a better phone; with a better ’41-megapixel camera’… now to find out that people with cheaper models have not had any freeze problems. Despite peoples comments about this being an aged device, and probably the reason for lack of support, I must add that I only purchased my 1020 ‘NEW’ in July 2014 (which is only 6 months ago). For 3 of those months it has been very unreliable … I am extremely disappointed in how I and everyone else here has been treated by Microsoft.

Read the thread for more stories of frustration and decisions never to buy another Windows Phone.

What are the real problems here? The hardest thing to accept is not the fact of the fault occurring, or even the time taken to fix it, but the apparent lack of concern by the company for the plight of its customers. If Mr Lee, or others from the team, had posted regularly about what the problem is, how they are addressing it, possible workarounds and likely time scales, it would easier for users to understand.

As it is, it seems that this part of the company does not care; a particular shame, as Nokia had a good reputation for customer service.

I post this then as feedback to Nadella and suggest that a cultural shift in some areas of Microsoft is necessary in order to make possible the kind of emotional transition he seeks.

Review: Synology DS415+ Network Attached Storage

Synology’s DS415+ is a NAS (Network Attached Storage) device aimed at small businesses or demanding home users. I have been running this on my own network for the last 6 weeks or so.

image

First, a note about Synology’s product range. Let us say you want a NAS with 4 drive bays. Here are the choices, with current bare NAS prices from Amazon.co.uk:

  • DS414j £252.63: Budget offering, 512MB RAM, 1.2 GHz  dual core ARM CPU, 1 USB 2.0, 1 USB 3.0, 1 1GB Ethernet port. 90W power supply, 32.64W power consumption.
  • DS414 Slim £237.87: Smaller case designed for 2.5″ drives. All the other units here support 3.5″ drives. Given that you can normally tuck your NAS away in a corner, there is limited value in restricting yourself to these smaller drives, but there is also an energy as well as space saving. 512MB RAM, 1.2GHz single core ARM CPU, 2 USB 3.0 ports, 2 1Gb Ethernet ports. 30W power supply, 15.48W power consumption.
  • DS414 £332.83: Core product. 1GB RAM, 1.33 GHz dual core ARM CPU, 1 USB 2.0, 2 USB 3.0, 2 1Gb Ethernet ports, 90W power supply, 28.42W power consumption.
  • DS415 Play £379.99: Home oriented. Benefits from hardware video transcoding. 1GB RAM, 1.6GHz dual core Intel Atom CPU, 3 USB 2.0 ports, 2 USB 3.0 ports, 1 1Gb Ethernet port, 90W power supply, 27.33W power consumption.
  • DS415+ £460.74: Business oriented. 2GB RAM, 2.4GHz quad core Intel Atom CPU, 1 USB 2.0 port, 2 USB 3.0 ports, 1 eSATA port, 2 1Gb Ethernet ports, 100W power supply, 32.64W power consumption.

You can get a more detailed comparison of these four models in this table. Incidentally, I am guessing that in the Synology numbering scheme, the first digit represents the number of drive bays, and the second two digits the year of release.

The 415 models are the latest releases then, and the only ones to use Intel CPUs. The extra cost of the 415+ buys you double the amount of RAM, a quad core CPU, and an eSATA port.

The software is mostly the same on all the devices, Synology’s Diskstation Manager (DSM), currently at version 5.1. It looks as if some limits are lifted with the 415+, for example there is support for 256 iSCSI LUNs on the 415+, versus 10 on the 415 Play. The 415+ also has specifica support for VMWare VAAI (vStorage API for Array Integration) and Windows Server ODX (Offloaded Data Transfer); this enables some storage tasks to be offloaded to the storage system for better performance on the virtualization host.

Why buy a unit like this when you could simply get a server with plenty of drive bays, or with hardware RAID, and install Linux or Windows Storage Server? The two reasons are first, simplicity of operation, and second, low power consumption.

The distinction is not as sharp as it first appears, since a Synology device like this is in fact a server. If you require maximum flexibility and do not care about energy use, a generic server is probably better. If you require only simple network attached storage, such as a large shared folder on the network, a unit like the 415+ is overkill; just get a DS414j or some other brand. On the other hand, if you expect to install and use several apps, the extra for a DS415+ buys you a substantially more capable server.

Another way of looking at this is that the processing power in the DS415+, while still modest compared to a modern desktop PC, is sufficient for some real work, such as running web applications or even a media server with software transcoding.

Setup

image

Unpack the box, and you find the NAS unit, power supply and a couple of ethernet cables. Unclip the front cover and you can see the four drive bays, with caddies which can easily be removed for drive installation.

image

The drive caddies are screwless for 3.5″ drives; just remove the side panels, insert the drive, and replace the side panels to secure.

image

You can also install 2.5″ drives with four screws through holes in the caddy base.

At the rear of the unit, there are dual fans, two Ethernet ports, 2 USB 3.0 ports, eSata port, and the power connector.

image

I fitted four 3TB Western Digital Red drives – currently £89.36 on Amazon – attached the device to the network and powered up. You can than access the NAS management UI with any web browser. Normally, entering diskstation:5000 will find it. The initial setup downloads and installs the latest version of DSM, and offers an instant configuration which is a single large network folder backed by Synology Hybrid RAID (SHR).

image

I accepted this just to try it, and then blew it away in favour of a more flexible configuration.

Diskstation Manager

Synology DSM is a version of Linux. You can access the OS via SSH, or use the browser-based GUI. The GUI is rather well done, and presents a desktop-like environment with a windowing system.

image

The button at top right open a kind of Start menu:

image

Applications are installed and removed through the Package Center:

image

Generally, you should use only the Package Center to manage applications, though terminal access can be useful for troubleshooting, cleanup, or tweaking settings if you know what you are doing.

Since packages are only available from Synology, you are limited to those applications which are supported, unless you do a manual install:

image

Even a manual install has to be in the Synology package format (an archive with appropriate metadata). Some packages, such as the Plex media server, are available for download as manual installs, though may need tweaking to install correctly.

Third party developers can create packages, free or paid, and submit them to Synology for approval.

If an application is updated, it can take a while before the Synology package is updated. This could be a problem if, for example, a critical security bug is found in an application running on a Synology device exposed to the internet. There are not a huge number of packages available. I counted 63 in the DS415+ Package Center. However, this does include everything you need for a basic business server, including a mail server, DNS Server, LDAP Directory Server, Drupal CMS, SugarCRM, web server with PHP and MySQL, Tomcat application server, and more.

On the multimedia side, there are applications for serving audio and video, a DLNA media server, and Logitech Media Server (also known as Squeezebox Server).

There are several backup applications, including one for Amazon’s Glacier service (low-cost cloud storage).

Storage management

The primary role of a Synology device is for storage of course, and this is configured through the Storage Manager. Configuration begins with Disk Groups, which represent one or more physical drives in a RAID configuration.

image

There are several supported RAID configurations:

SHR: Synology Hybrid RAID with 1- or 2- disk fault tolerance. You need at least 4 drives for 2-disk tolerance.

RAID 0: disk striping, no fault tolerance

RAID 1: drive mirroring

RAID 5: 1-disk fault tolerance

RAID 6: 2-disk fault tolerance

RAID 10: RAID 0 across mirrored drives, 1-disk fault tolerance with high performance.

What is SHR? There is an explanation here. The high-level story is that SHR is more efficient with drives of varying capacity, and more flexible when adding new drives. It is not proprietary and apparently data can be recovered if necessary by mounting SHR drives in a Linux PC (provided no more than one drive has failed).

You set the RAID level when you create a disk group. Once you have a disk group, you can create volumes or iSCSI targets on that group.

I was interested in trying iSCSI. I have a desktop PC that is running out of space. I created a 1500GB iSCSI target and mounted it on the PC using the iSCSI initiator in Control Panel. It worked perfectly, and a new drive appeared in Disk Management.

image

Is this sensible, or should you just use a network folder which is more flexible, since it is shared storage? An iSCSI target behaves like a local drive, which can be an advantage, but iSCSI is mostly used for servers where centralising storage is convenient. You should also use a dedicated network for iSCSI, so it is probably not a great idea for a desktop PC.

I compared performance. On simple tests, such as time taken to copy a file, there was little advantage; in fact, my iSCSI drive was slightly slower: 61.2 MB/s vs 76.4 MB/s for a shared folder.

I tried ODX, copying a file from one iSCSI drive to another. Capturing the copy thermometer was a challenge, as it was near-instant:

image

In general, I have been very happy with the performance of the NAS.

Folder permissions

My local network uses Active Directory (AD), so I was keen to set up permissions on the NAS using AD. Connecting a Linux server to AD can be a problem, and at first the Synology would not play. I connected it, seemingly successfully, but it would not see any users. There are threads on the Synology forums showing users with similar problems. The fix for me was to enter my Domain Controllers as IP numbers rather then FQDNs (fully qualified domain names). Since then it has worked perfectly, though DSM shows the Domain Server Type as “NT4 Domain”, puzzling when my DCs are on Server 2012 R2.

Once connected, you can set folder permissions using the Synology File Station package. First, create the shared folder, then right-click the folder and choose Permissions.

image

Apps and Applications

Aside from the storage services, the main application I run on the Synology is Logitech Media Server (LMS). This used to run on a Windows server, and actually runs much better on the Synology. Search is quicker, the server is more responsive, and it is more reliable.

I tried the Synology audio and video applications, and the media server. There are various companion mobile apps, such as DS Audio and DS Video, for media playback.

image

The apps I tried worked well for me, though I am sticking with LMS for home music streaming.

Final words

I have no complaints about the DS415+, which has performed well so far. Browsing through the user forums though, I have noticed some areas of difficulty. One is that the Cloud Station service, which synchs files between your NAS, computers and mobile devices, is notorious for consuming disk space. Users find their drives filling up even though the total size of their files is much less than the available space. Currently, the best advice seems to be not to use Cloud Station.

The general issue with a system like this is that the friendly GUI is great while everything is working, but if something goes wrong and you have to dive into Linux, the ease of use disappears. That is worth noting if you plan to use this as the main server in a small business (beyond storage), unless someone there has the necessary troubleshooting skills.

The device does tick a lot of boxes though: resilient storage, excellent performance, low power consumption, flexible configuration, AD integration, and enough power to run something like Logitech Media Server without blinking.

Recommended.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Google’s official Android Studio is at version 1.0

Google has released version 1.0 of Android Studio.

image

This Java/Android IDE has been in preview/beta since Google IO in May. It is based on the excellent JetBrains IntelliJ IDEA.

You can get Android Studio here. It is now the official Android IDE and developers using Eclipse are encouraged to migrate – like it or not.

One of the key features is a new build system based on Gradle. Another notable features is a visual layout designer; you can toggle between visual and text modes.

image

Presumably one reason for Google developing its own Android IDE is to integrate more tightly with its cloud services. There is a Google Cloud Module on offer in the IDE.

image

Android development has its hassles. I seem to spend far too much time in the Android SDK Manager downloading new versions of the SDK, which is frequently updated.

image

Another annoyance is that the Intel Emulator Accelerator (HAXM) is incompatible with Hyper-V, the official Windows hypervisor. You either have to uninstall Hyper-V,  or put up with a slow emulator. I would prefer it if Google/Intel/JetBrains used the standard Windows component.

Microsoft takes its .NET runtime open source and cross-platform, announces new C++ compilers for iOS and Android: unpacking today’s news

Microsoft announced today that the .NET runtime will be open source and cross-platform for Linux and Mac. There are a several announcements and it is potentially confusing, so here is a quick summary.

The .NET runtime, also known as the CLR (Common Language Runtime) is the virtual machine that runs Microsoft’s C#, F# and Visual Basic .NET languages, performing just –in-time compilation to native code and providing interop between the application code and the operating system APIs. It is distinct from the .NET Framework, which is the library of mostly C# code that underlies application platforms like ASP.NET, Windows Presentation Foundation (WPF), Windows Forms, Windows Communication Foundation and more.

There is is already a cross-platform version of .NET, an open source project called Mono founded by Miguel de Icaza in 2001, not long after the first preview release of C# in 2000. Mono runs on Linux, Mac and Windows. In addition, de Icaza is co-founder of Xamarin, which uses Mono together with its own technology to compile C# for iOS, Android and Mac OS X.

Further, some of .NET is already open source. At Microsoft’s Build conference earlier this year, Anders Hejlsberg made the Roslyn project, the compiler for the next generation of the .NET Runtime, open source under the Apache 2.0 license. I spoke to Hejlsberg about the announcement and wrote it up on the Register here. Note the key point:

Since Roslyn is the compiler for the forthcoming C# 6.0, does that mean C# itself is now an open source language? “Yes, absolutely,” says Hejlsberg.

What then is today’s news? Blow by blow, here are what seems to me the main pieces:

  • The CLR itself will be open source. This is the C++ code from which the CLR is compiled.
  • Microsoft will provide a full open source server stack for Mac and Linux including the CLR. This will not include the frameworks for client applications; no Windows Forms or WPF. Rather, it is the “.NET Core Runtime” and “.NET Core Framework”. However Microsoft is working with the Mono team which does support client applications so there could be some interesting permutations (bear in mind that Mono also has its own runtime). However Microsoft is focused on the server stack.
  • Microsoft will release C++ frameworks and compilers for iOS and Android, using the open source Clang (C and C++ compiler front-end) and LVVM (code generation back end), but with Visual Studio as the IDE. If you are targeting iOS you will need a Mac with a build agent, or you can use a cloud build service (see below). The Android compiler is available now in preview, the iOS compiler is coming soon. “You can edit and debug a single set of C++ source code, and build it for iOS, Android and Windows,” says Microsoft’s Soma Somasegar, corporate VP of the developer division.
  • Microsoft has a new Android emulator for Windows based on Hyper-V. This will assist with Android development using Cordova (the HTML and JavaScript approach also used by PhoneGap) as well as the new C++ option.

    image

  • The next Visual Studio will be called Visual Studio 2015 and is now available in preview; download it here.
  • There will be a thing called Connected Services to make it easier to code against Office 365, Salesforce and Azure
  • A new edition of Visual Studio 2013, called the Community Edition, is now available for free, download it here. The big difference between this and the current Express editions is first that the Community Edition supports multiple target types, whereas you needed a different Express edition for Web applications, Windows Store and Phone apps, and Windows desktop apps.  Second, the Community Edition is extensible so that third parties can create plug-ins; today Xamarin was among the first to announce support. There may be some license restrictions; I am clarifying and will update later.
  • New Cloud Deployment Projects for Azure enable the cloud infrastructure associated with a project to be captured as code.
  • Release Management is being added to Visual Studio Online, Microsoft’s cloud-hosted Team Foundation Server.
  • Enhancements to the Visual Studio Online build service will support builds for iOS and OS X
  • Visual Studio 2013 Update 4 is complete. This is not a big update but adds fixes for TFS and Visual C++ as well as some new features in TFS and in GPU performance diagnostics.

The process by which these new .NET projects will interact with the open source community will be handled by the .NET Foundation.

What is Microsoft up to?

Today’s announcements are extensive, but with two overall themes.

The first is about open sourcing .NET,  a process that was already under way, and the second is about cross-platform.

It is the cross-platform announcements that are more notable, though they go hand in hand with the open source process, partly because of Microsoft’s increasingly close relationship with Mono and Xamarin. Note that Microsoft is doing its own C++ compilers for iOS and Android, but leaving the mobile C# and .NET space open for Xamarin.

By adding native code iOS and Android mobile into Visual Studio, Microsoft is signalling real commitment to these platforms. You could interpret this as an admission that Windows Phone and Windows tablets will never reach parity with their rivals, but it is more a consequence of the company’s focus on cloud, and in particular Office 365 and Azure. The company is prioritising the promotion of its cloud services by providing strong tooling for all major client platforms.

The provision of new Microsoft server-side .NET runtimes for Mac and Linux is a surprise to me. The Mac is not much used as a server but very widely used for development. Linux is an increasingly important operating system within the Azure cloud platform.

A side effect of all this is that the .NET Framework may finally fulfil its cross-platform promise, something Microsoft suppressed for years by only supporting it on Windows. That is good news for those who like programming in C#.

The .NET Framework is changing substantially in its next version. This is partly because of the Roslyn compiler, which is itself written in C# and opens up new possibilities for rich refactoring and code transformation; and partly because of .NET Core and major changes in the forthcoming version of ASP.NET.

Is Microsoft concerned that by supporting Linux it might reduce the usage of Windows Server? “In Azure, Windows and Linux are a core part of our platform,” Somesegar told me. “Helping developers by providing a good set of tools and letting them decide what server they run on, we feel is all goodness. If you want a complete open source platform, we have the tools for them.”

How big are these announcements? “I would say huge,”  Somasegar told me, “What is shows is that we are not being constrained by any one platform. We are doing more open source, more cross-platform, delivering Visual Studio free to a broader set of people. It’s all about having a great developer offering irrespective of what platform they are targeting or what kind of app they are building.”

That’s Microsoft’s perspective then. In the end, whether you interpret these moves as a sign of strength or weakness for Microsoft, developers will gain from these enhancements to Visual Studio and the .NET platform.

Xamarin Evolve: developers enjoy the buzz around cross-platform coding with C#

“It’s like a Microsoft developer event back when they were good,” one exhibitor here at Xamarin Evolve in Atlanta told me, and I do see what he means. There is plenty of buzz, since Xamarin is just three years old as a company and growing fast; there is the sense of an emerging technology, and that developers are actually enjoying their exploration of what they can do on today’s mobile devices.

Microsoft is an engineering-led company and was more so in its early days. The same is true of Xamarin. It also also still small enough that everyone is approachable, including co-founders Miguel de Icaza and Nat Friedman. The session on what’s new in Xamarin.Mac and Xamarin.iOS was presented by de Icaza, and it is obvious that he is still hands-on with the technology and knows it inside out. Developers warm to this because they feel that the company will be responsive to their needs.

image

Approachability is important, because this is a company that is delivering code at breakneck speed and bugs or known issues are not uncommon. A typical conversation with an attendee here goes like this:

“How do you find the tools?” “Oh, we like them, they are working well for us. Well, we did find some bugs, but we talked to Xamarin about them and they were fixed quickly.”

Xamarin’s tools let you write C# code and compile it for iOS, Android and Mac. If you are building for Windows Phone or Windows, you will probably use Microsoft’s tools and share non-visual C# code, though the recently introduced Xamarin Forms, a cross-platform XML language for defining a user interface, builds for Windows Phone as well as iOS and Android.

The relationship with Microsoft runs deep. The main appeal of the tools is to Microsoft platform developers who either want to use their existing C# (or now F#) skills to respond to the inevitable demand for iOS and Android clients, or to port existing C# code, or to make use of existing C# libraries to integrate with Windows applications on the server.

That said, Xamarin is beginning to appeal to developers from outside the Microsoft ecosystem and I was told that there is now demand for Xamarin to run introductory C# classes. Key to its appeal is that you get deep native integration on each platform. The word “native” is abused by cross-platform tool vendors, all of whom claim to have it. In Xamarin’s case what it means is that the user interface is rendered using native controls on each platform. There are also extensive language bindings so that, for example, you can call the iOS API seamlessly from C# code. Of course this code is not cross-platform, so developers need to work out how to structure their solutions to isolate the platform-specific code so that the app builds correctly for each target. The developers of Wordament, a casual game which started out as a Windows Phone app, gave a nice session on this here at Evolve.

Wordament has an interesting history. It started out using Silverlight for Windows Phone and Google App Engine on the server. Following outages with Google App Engine, the server parts were moved to Azure. Then for Windows 8 the team ported the app to HTML and JavaScript. Then they did a port to Objective C for iOS and Java for Android. Then they found that managing all these codebases made it near-impossible to add features. Wordament is a network game where you compete simultaneously with players on all platforms, so all versions need to keep tightly in step. So they ported to Xamarin and now it is C# on all platforms.. 

I digress. The attendees here are mostly from a Microsoft platform background, and they like the fact that Xamarin works with Visual Studio. This also means that there are plenty of Microsoft partner companies here, such as the component vendors DevExpress, Syncfusion, Infragistics and ComponentOne. It is curious: according to one of the component companies I spoke to, Microsoft platform developers get the value of this approach where others do not. They have had only limited success with products for native iOS or Android development, but now that Xamarin Forms has come along, interest is high.

Another Microsoft connection is Charles Petzold – yes, the guy who wrote Programming Windows – who is here presenting on Xamarin Forms and signing preview copies of his book on the subject. Petzold now works for Xamarin; I interviewed him here and hope to post this soon. Microsoft itself is here as well; it is the biggest sponsor and promoting Microsoft Azure along with Visual Studio.

Xamarin is not Microsoft though, and that is also important. IBM is also a big sponsor, and announced a partnership with Xamarin, offering libraries and IDE add-ins to integrate with its Worklight mobile-oriented middleware. Amazon is here, promoting both its app platform and its cloud services. Google is a sponsor though not all that visible here; Peter Friese from the company gave a session on using Google Play Services, and Jon Skeet also from Google presented a session, but it was pure C# and not Google-specific. Salesforce is a sponsor because it wants developers to hook into its cloud services no matter what tool they use; so too is Dropbox.

  image

Most of the Xamarin folk use Macs, and either use Xamarin Studio (a customised version of the open source MonoDevelop IDE), or Visual Studio running in a virtual machine (given that the team mostly use Macs, this seems to me the preferred platform for Xamarin development, though Visual Studio is a more advanced IDE so you will probably end up dipping in and out of Windows/Mac however you approach it).

Xamarin announced several new products here at Evolve; I gave a quick summary in a Register post. To be specific:

  • A new fast Android emulator based on Virtual Box
  • Xamarin Sketches for trying out code with immediate analysis and execution
  • Xamarin Profiler
  • Xamarin Insights: analytics and troubleshooting for deployed apps

Of these, Sketches is the most interesting. You write snippets of code and the tool not only executes it but does magic like generating a graph from sequences of data. You can use it for UI code too, trying out different fonts, colours and shapes until you get something you like. It is great fun and would be good for teaching as well; maybe Xamarin could do a version for education at a modest price (or free)?

image

I am looking forward to trying out Sketches though I have heard grumbles about the preview being hard to get working so it may have to wait until next week.

image

LibreOffice is four years old, plans Android version

Four years ago, on 28th September 2010, the open source LibreOffice productivity suite was created by forking OpenOffice. This Microsoft Office alternative offers a word processor, spreadsheet, presentation graphics, vector drawing package, and database manager. Its origins are in a German suite called Star Office, which was acquired by Sun Microsystems in 1999. In an effort to disrupt Microsoft, Sun made Star Office free and open source, creating OpenOffice.org. However Sun itself was acquired by Oracle Corporation in 2010, and LibreOffice was created by a breakaway group of OpenOffice contributors who were wary of what might happen to the project under Oracle’s stewardship.

image

They probably need not have worried, since Oracle donated OpenOffice to the Apache foundation in 2011. It is still performing its intended function as a Microsoft disruptor; see for example this report of the Italian city of Udine moving from Microsoft Windows and Office to Linux and OpenOffice.

A key motivation is that it is easier to keep free software up to date, and organisations like having all their users on the same version:

"Some of our PCs are stuck with pretty old software like Office 2000, which is no longer supported, as we haven’t had the resources to upgrade," Gabriele Giacomini, the innovation and economic development councillor for the municipality of Udine, told ZDNet.

"By switching to open source, we will have the chance to allow our employees to work with the latest version of the suite”

Microsoft, of course, wants to address this by persuading users to subscribe to Office rather than buying it outright; though this does not solve the problem of out of date Windows versions (but watch this space).

But what about LibreOffice? What is the point of having two major open source productivity suites based on essentially the same products?

Good question; but one possible differentiator is that LibreOffice is working on an Android port. The Document Foundation, which runs the LibreOffice project, is inviting tenders for implementation of the suite on Android, complete with a basic interface for integrating with the user’s “preferred cloud storage”.

Another point of interest is that the Foundation is asking for commercial tenders rather than hiring its own coders to work with the open source community.

That said, there is already an Android port of OpenOffice, called AndrOpen Office, though this is a fork and not an official Apache OpenOffice project.

Are these multiple forks healthy proliferation, or open source confusion? That depends on your point of view, though it does show the ability of the open source community to respond to obvious needs.

It seems to me though that the suite would be more attractive to businesses if LibreOffice and OpenOffice could merge, and develop an official Android version of the suite.

My guess is that productivity software on tablets (and phablets) will be a key battleground as users do an increasing proportion of their work on mobile devices rather than PCs or laptops. Microsoft already has an iOS version of Office, and one for Android in preparation. There is also a version of Office for the Windows 8 “Metro” personality in preparation.

Open source advocate Glyn Moody has posted about the LibreOffice project here.

Testing mobile apps: Xamarin goes live with Test Cloud for iOS and Android (but no Windows Phone)

Testing a mobile app is challenging, thanks to operating system fragmentation combined with diversity of hardware. In April 2013 Xamarin acquired a company called LessPainful, specialists in functional testing for mobile apps, which had created a mobile app testing tool called Calabash. Calabash is based on Cucumber, and lets you define test steps and then combine them into natural language tests. LessPainful also had a cloud testing service which let you run tests on remote physical devices and see visual test reports.

Eighteen months on, Xamarin has now gone live with Test Cloud, and has announced some big names which it says are using the service, including Dropbox, Flipboard and eBay.

There are currently 1036 devices (the number changes regularly) in the Test Cloud, including 273 iOS and 763 Android (Windows Phone is not supported, but Amazon’s Fire Phone and Kindle Fire does appear in the list).

image

You write your tests either in Calabash or in C#, upload your app and the tests to Test Cloud, wait a while, and then get notification that the tests are done and a report ready to view.

image

You can simulate events such as changes in location, device rotation, network dropouts, and of course user interactions like taps and gestures. You get screenshots and performance data (memory and CPU usage) for each test step.

You can also integrate with CI (Continuous Integration) systems like TFS, Jenkins and TeamCity to automate testing.

Writing and maintaining tests is hard work, of course, but for businesses that can afford the investment in both time and money, Test Cloud is likely to be a great improvement on manually gathering up as many devices as you can find and installing your app on all of them.

The cost is significant though, starting at $1000 per month for up to 2 apps and 200 device hours. You have to pay annually too, so it looks like a strategy of just buying one month towards the end of your development cycle will not work.

That said, I have been told that Xamarin will be coming out with an Indie version in the future that has a lower price.

Android apps on Chrome: how it works and what it may become

Google announced at its I/O conference in June 2014 that Android apps are coming to its Chrome OS. Earlier this month product managers Ken Mixter and Josh Woodward announced that the first four Android apps are available in the Chromebook app store: Duolingo, Evernote, Sight Words and Vine.

I delayed posting about this until I found the time to investigate a little into how it works. I fired up an Acer C720 and installed Evernote from the Chrome web store (in addition to Evernote Web which was already installed).

image

When you install your first Android app, Chrome installs the App Runtime for Chrome (Beta) (ARC) automatically.

image

Incidentally, I found Evernote slightly odd on Chromebook since it is runs in a window although the app is designed to run full screen, as it would on a phone or tablet. This caught me out when I went to settings, which looks like a dialog, and closed it with the x at the top right of the window. Of course that closes the app entirely. If you want to navigate the app, you have to click the back arrow at top left of the window instead.

But what is the App Runtime for Chrome? This seems to be an implementation of the Android runtime for NaCl (Native Client), which lets you run compiled C and C++ code in the browser. If you browse the parts of ARC which are open source, you can see how it implements the Android Open Source Project (AOSP) for arch-nacl: a virtual processor running as a browser extension.

Not all of ARC is open source. The docs say:

Getting Started with ARC Open Source on Linux

=============================================

A small set of shared objects can be built which are part of ARC currently.

A fully running system cannot currently be built.

It is early days, with just four apps available, ARC in beta, and developers asked to contact Google if they are interested in having their Android apps run on Chrome OS. However, an independent developer has already ported ARC to desktop Chrome:

ARChon runtime lets you run unlimited number of Android APKs created with chromeos-apk on Chrome OS and across any desktop platform that supports Chrome.

The desktop version is unstable, and apps that need Google Play services run into problems. Still, think of it as a proof of concept.

In particular, note that this is Android Runtime for Chrome, not Android Runtime for Chrome OS. Google is targeting the browser, not the operating system. This means that ARC can, if Google chooses, become an Android runtime for every operating system where Chrome runs – with the exception, I imagine, of Chrome for iOS, which is really a wrapper for Apple’s web browser engine and cannot support NaCl, and Chrome for Android which does not need it.

Imagine that Google gets ARC running well on Windows and Mac. What are the implications?

The answer is that Android will become a cross-platform runtime, alongside others such as Flash (the engine in Adobe AIR) and Java. There has to be some performance penalty for apps written in Java for Android running in an Android VM in the browser; but NaCl runs native code and I would expect performance to be good enough.

This would make Android an even more attractive target for developers, since apps will run on desktop computers as well as on Android itself.

Might this get to the point where developers drop dedicated Windows or Mac versions of their apps, arguing that users can just run the Android version? An ARC app will be compromised not only in performance, but also in the way it integrates with the OS, so you would not expect this to happen with major apps. However, it could happen with some apps, since it greatly simplifies development.