Tag: software development

Windows 8–How about apps that exploit both the Desktop and Modern UI?

After upgrading to Windows 8 on my main computer and utilising Windows 8 on review-sample laptop computers, I had a good chance to use the classic Desktop user interface along with the newer Modern user interface for a lot of computing needs.

Windows 8 Modern UI start screen

Windows 8 Modern UI has some benefits for some tasks

What I had found was that each of the “views” appealed to different tasks and working conditions. For example, I could use the Desktop View for applications that required detailed work and were more mouse / keyboard focused. This is although I had used the touchscreen with this interface for coarse navigation tasks like selecting functions on a toolbar or hyperlinks on a Webpage.

The Modern view, previously known as the Metro view, came in handy when I wanted a simpler user experience for the task like viewing a PDF or photograph. Even using Skype or Facebook with the Modern View gave that “dashboard” look which has everything at a glance, This worked well with the mouse on my main computer and with touchscreen setups on suitably-equipped laptops but was a bit of a pain when using just the trackpad on laptops that didn’t come with a touchscreen.

Windows 8.1 Update 1 has integrated Modern UI apps and Desktop apps into the Desktop user interface by allowing users to pin the Modern UI apps to the Desktop UI’s taskbar. This is augmented with the Modern UI apps also having a control strip that can be brought up to minimise or close these apps.

The current problem

Application with Desktop user interface

Skype with uncluttered Modern user interface

Skype with uncluttered Modern user interface

The current problem with the way applications are written for Windows 8 is that two different programs need to be delivered by different channels if you want to perform the same function on both interfaces. Firstly, I would have to install one application through the traditional paths for a regular computer i.e. install it from a CD or other removeable medium or download it from the developer’s site and install that download file. Then, if I want to have the “full” Modern user experience, I would have to visit the Windows Store to download a separate app that exploits that interface.

How could we improve on this?

One direction that Microsoft could offer for this is to allow developers to deliver a Desktop and Modern UI package as part of a single Windows 8.1 application install package. Here, the user just installs this one package as one action and finds both a Desktop-view application and Modern-view application for the same task on their machine.

This could come in the form of separate apps for each of the user experiences or a monolith app that presents in one way for the simplified Modern user interface and another way for the detailed Desktop user interface. This could also cater for a “live tile” option to show always-updating data. The user then has the choice of seeing a simplified user interface that works well with the touchscreen or mouse-based operation or a detailed user interface.

There also has to be the ability to be assured of data continuity between both the Desktop view and the Modern view, which is important for a lot of tasks. Some tasks like VoIP or working on a document can play a difficult hand if you switch between views whereas other “read-only” tasks which relate to a common data source can play properly with a user-interface switch.

The only problem about this ideal is having the ability for a user to determine the view they want to run because it is possible for a Desktop-view app launched from the (Modern-view) Start Screen. Similarly, from Windows 8.1 Update 1, it is possible to put a Modern-view Windows Store app on the Taskbar and launch it from there.

Conclusion

If Microsoft could provide a single-install single-update experience for those of us who run Windows 8 and newer operating systems, this could encourage software developers to work the Modern UI as a clean “dashboard” user experience while the regular Desktop view serves as a “detailed” user experience for those of us who want more control.

Android Wear–to make designing more and better wearables easier

Article

Google unveils Android Wear, its modified OS for wearables | Internet & Media – CNET News

From the horse’s mouth

Google – Android Wear team

Sharing What’s Up Our Sleeve: Android coming to wearables | Official Android Blog

Android Wear Developer Preview Now Available | Android Developers Blog

Promotional Video

Click to play (YouTube)

Developer Preview video

Click to play (YouTube)

My Comments

Google has just released Android Wear which is a version or “fork” of the Android mobile operating system that is pitched at the so-called “wearable” devices. But what do I see of this?

One advantage that I see of this is that manufacturers can focus on designing smartwatches and fitness bands without the need to work on the software for these devices. They could work on a brand-specific “overlay” which includes applications specific to a brand’s needs like what Samsung, Sony and HTC have done with their Android phones and tablets. But most other manufacturers like the traditional watch manufacturers can jump on the wearable bandwagon and focus on devices that look elegant and fashionable to wear. They can also work on shortcomings of the current designs such as short battery runtime (make it possible to wear a smartwatch for a night or weekend “elsewhere”).

For example, could a Swiss watch name or someone like Casio or Seiko, the doyens of the digital watches. find themselves able to clamber on to the smartwatch scene? Similarly, could we see that it is feasible to have the “ladies” and “gents” watches as well as smartwatches that are a perfect replacement for the traditional analogue or digital watch.

Another factor is software development. The Android Wear platform could appeal to software developers to write apps that work well on the wearable devices and see these targeted to many different devices. But, personally, I would like to see this focused on to “let-me-know” or “check-this” apps such as to show up messages from a messaging service, check the weather or “check in” on Foursquare. The fitness bands could work with health-and-wellness apps or similarly the “let-me-know” or “check-this” apps.

The third group of users that would benefit would be us consumers who could then find it easier to purchase a cost-effective smartwatch that we can impress others with at the office or on Friday or Saturday night. These will have as much a consistent user interface that can be worked by touch or voice thus not having to learn something new when you purchase a different Android Wear device.

As well, it also means that you don’t need to run multiple device-interface apps on your smartphone to have it work with different wearable devices like watches, Bluetooth headsets or fitness bands especially if you run multiple devices at the same time.

A question worth raising is whether these devices will have the “hub” capability promised in Bluetooth 4.1 where the watch can interact with other Bluetooth Low Energy (Bluetooth Smart) devices yet be able to upload and download data to a smartphone or tablet.  This could be of use if you decide to leave the smartphone behind while you go for that jog or swim and keep that FuelBand on you while you do that bit of exercise.

Personally, I would see this as a big break for wearables, especially smartwatches, and the Android platform. This could lead more so to innovation rather than imitation while the Android platform gains more traction as an “open-frame” mobile-device platform. In the same way, it extends the multi-screen concept between the smartphone and these watches this not having us bringing out our smartphones frequently.

A rush to release software can leave gaping holes for bugs and exploits

Article

iOS 7.0.2 Is Here, And It Fixes The iPhone’s Major Security Hole | Gizmodo

My Comments

The recent release of the iOS 7 operating system, like with the iOS 6 operating system with its Apple Maps product, has shown something that is very real with the way computer software and hardware has been developed.

In the case of the iOS 7 operating system, there was a gap concerning the lockout system which required the user to key in a PIN number in to their iOS device but someone could bypass that requirement easily. Apple had released the iOS 7.0.2 update just lately to fix this bug that was missed through the development process for this operating system. This operating system and the devices it runs on are at an increased risk of this behaviour because Apple keeps the marketing hype high as possible for as long as possible because they see it as the consumer-facing mobile operating system for most people.

Similarly various functions in Windows 8 weren’t as polished as most of us would like them to be so we are expecting great things out of Windows 8.1 with some improved “polish” to these functions.

As well, the Apple Maps program which was to oust Google’s Maps from the iPhone and iPad was rushed and there have been issues where there has been misnavigation going on with this program.

This happens more so with anything that affects popular consumer-facing devices and programs. Here, the software developers are put under pressure by the vendor’s marketing team to get the operating system update, firmware or other programs released as soon as possible so that the product can be marketed and sold while the hype surrounding it is still alive. Then the vendor has to wait for the bug reports to come in, whether via their support channels or the technology press, so that these can be fixed and released as part of a point update.

I often deem a software version number of x.x.x, preferable with a middle number greater than 1, such as 8.1.1 or 7.1.2 as being a “mature” version of the software in question. This is because bugs including security exploits and performance weaknesses have been identified and rectified since the original release of the program.

As for iOS devices, I would recommend that those of you who are running iOS 6 to run iOS 7.0.2 or hold off upgrading until a higher version number, preferable a 7.1 number appears.

How should I assess apps from that app store

Windows 8 Store

Windows Store – one of the desktop app stores starting to surface

There is an Increasing number of app stores coming to the fore for each of the mobile and regular computing environments where you can buy and / or download software for your computing device. Some of these also provide for after-the-fact purchasing of add-on options for the software through the software’s user interface.

The situation that affects app stores

But there is a real danger that the app stores are becoming like the bulletin boards and online services that existed before the Internet and the software-download sites that existed in the early days of the Internet. This is where these locations were filled with substandard software that, in some cases, you come across software with very limited functionality that borders on useless but you to pay the developer before you can see a fully-functional package that you can enjoy using.

In the case of the app stores, the substandard software uses a poor-quality user interface or underperforms in a way where the device suffers a short battery life or performs sluggishly. There have been situations where the apps have been used for delivering malware especially through those app stores where there isn’t any real control on the software that is delivered. The limited functionality software also surfaces in these app stores more so with games that require you to buy options or virtual currency in order for you to enjoy playing them.

Even an app store that implements an approval process can be overwhelmed with software pending approval, which can lead to their standards being reduced in order to clear the backlog or increase the software quantity.

Identifying the good apps

IMDB Android

IMDB movie app for Android – one of the good app-store apps

But how do you identify a good app in those app stores and be sure you aren’t downloading a lemon?

  • One sign to look for is if the app has been put in the spotlight. Typically, the app may be positioned as an “editor’s choice” or “spotlight” app for its class or brought up front on the app store’s user interface. Blogs, newsletters and the like operated by the app store may cite the software in the “top picks” articles.
  • In some cases, if you hear your relatives and friends rave on about that app or you see many people in that train play that “time-waster” game on their smartphone or tablet, this could be the sign of a good app.
    You may also find that it’s a good idea to ask a computer-wise friend or relative about the apps you want on your device or get a second opinion on that app.
  • Similarly, the app would have some qualitative reviews in its “product-review” section. Here, you look for repeated reports of particular problems or notice many “copycat” or simplistic favourable comments, which could lead to a questionable app.
  • If you are looking for a “front-end” app for an online service, look for those apps that are published by the service themselves. This also holds true of apps that are linked with product and service brands. Typically these apps are announced through the brand’s advertising channels and the brands are wanting to defend their reputation.
    For example, I would prefer that Apple iOS users who are running newer versions of this operating system that didn’t come with YouTube pick up the Google YouTube app from the iTunes App Store. Similarly, when I was writing my article about the sports scoreboard apps, I recommended those apps commissioned by the sports leagues / codes themselves or the sports broadcasters.
  • The version number of the app may give away clues to the revision cycle that is taking place. Where there is a lot of revision taking place leading to a multi-point number like 1.3.1 typically indicates that there is a level of quality control going on. There may be some exceptions to the rule especially if the app or game is well-written from the start and this may apply with some of the casual games which are based on a known algorithm.
  • It may also be worth looking at what other software the app developer has offered to the app store. Here, look for the kind of reviews the software has as well as whether the software has ever been featured.
  • Also be aware of apps that require permission to use functions or resources not to do with its stated job. These can be about spyware or cause the phone or computer to underperform.
    Here, it may be worth checking the “blurb” about the software in the app store if it is requiring the use of the cameras or the location sensor because some of these sensors are used beyond the obvious. For example, some programs implement the GPS sensor as a distance-measuring tool or an increasing number of programs use the cameras for their machine-vision needs.

In some situations, cutting back on the number of apps on your device can allow it to perform smoothly, and you may have to be ready to uninstall some apps if you find them “swamping” your computer, tablet or smartphone.

Once you know how to sort the wheat from the chaff at your computing platform’s app store, you are in a good position to make sure that the devices that work on that platform are working smoothly.

Improving the way mobile operating environments are managed

Lately, Apple pulled the pin from Google’s YouTube app by not including it with the iOS 6 distribution. As well, they worked on their own maps platform for this same distribution rather than continue to use Google’s mapping platform. In some cases, there have been functionality or security weaknesses in the Android or iOS operating platform which require Apple or Google to furnish a new “point-level” distribution of the operating system. This also applies if they want to roll up the operating platform to a new requirement.

These updates typically require the host device to be restarted as part of the update process. As well, the process of downloading the complete package to fix a problem could place the device at risk of being put out of action if the connection failed. In some cases, the mobile operating-platform vendor puts off rolling out a needed patch until they have to add extra key functionality that makes it worth the while to deliver a major update.

Compare this to how an app for these platforms is kept up to date. Once you download the app from your operating platform’s app store, it is always checked for the latest version updates. Once there is a new version of the app available, the software is placed on the “Updates” list so you can start a bulk update or, depending on the platform and app store, you could set up an automatic app update so that the software is updated in the background.

Personally, I would like to see baseline functions for mobile computing devices made available as separately-updatable apps. This practice, of what Google has done with keeping YouTube and Google Maps up to date on Android, allows the functions like music / media players, email / messaging apps and the like to be kept up to date in a similar manner to the app you download from the platform’s app store.

Here, the platform developer could keep a mapping program up to date and behaving properly or add functionality to and improve the quality of the music player without having to wait for the next operating-system update. The user then experiences the mapping program, music player up to date to new requirements and working properly by just simply calling in to the app store and checking the update panel.

For the developer, they can have teams working on maintaining these apps and rolling out the updates as they are signed off and ready while another team can hone the baseline operating system through its lifecycle. In some cases, it could allow the developer to do things like prepare peripheral-interface code for new peripheral-device types and have that delivered as needed to the devices.

In this case, if Apple used this practice for keeping their Maps function up to date, they can be sure that their fanbois can update the function without having to download a “point” version of iOS 6 to their devices. Similarly, Google could “fix up” Android function apps that are misbehaving frequently and allow their users to see a stable Android device.

A CCTV hacking incident could be a lesson in system lifecycle issues

Article

How A Prison Had Its CCTV Hacked | Lifehacker Australia

My Comments

In this article, it was found that a prison’s video-surveillance system was compromised. The security team checked the network but found that it wasn’t the institution’s main back-office network that was compromised but a Windows Server 2003 server that was affected. This box had to be kept at a particular operating environment so it could work properly with particular surveillance cameras.

The reality with “business-durable” hardware and systems

Here, the problem was focusing on an issue with “business-durable” hardware like the video-surveillance cameras, point-of-sale receipt printers and similar hardware that is expected to have a very long lifespan, usually in the order of five to ten years. But computer software works to a different reality where it evolves every year. In most cases, it includes the frequent delivery of software patches to improve performance, remedy security problems or keep the system compliant to new operating requirements.

Newer software environments and unsupported hardware

The main problem that can occur is that if a computer is running a newer operating environment, some peripherals will work on lesser functionality or won’t work at all. It can come about very easily if a manufacturer has declared “end of life” on the device and won’t update the firmware or driver set for it. This also applies if a manufacturer has abandoned their product base in one or more of their markets and leaves their customers high and dry.

Requirement to “freeze” software environments

Then those sites that are dependent on these devices will end up running servers and other computer equipment that are frozen with a particular operating environment in order to assure the compatibility and stability for the system. This can then compromise the security of the system because the equipment cannot run newly-patched software that answers the latest threats. Similarly, the system cannot perform at its best or support the installation of new hardware due to the use of “old code”.

In some cases, this could allow contractors to deploy the chosen updates using removable media which can be a security risk in itself.

Design and lifecycle issues

Use standards as much as possible

One way to tackle this issue is to support standard hardware-software interfaces through the device’s and software’s lifecycle. Examples of these include UPnP Device Control Protocols, USB Device Classes, Bluetooth Profiles and the like. It also includes industry-specific standards like ONVIF for video-surveillance, DLNA for audio-video reproduction

If a standard was just ratified through the device’s lifespan, I would suggest that it be implemented. Similarly, the operating environment and application software would also have to support the core functionality such as through device-class drivers.

Provide a field-updatable software ecosystem

Similarly, a device would have to be designed to support field-updatable software and any software-update program would have to cover the expected lifespan of these devices. If a manufacturer wanted to declare “end of life” on a device, they could make sure that the last major update is one that enshrines all industry-specific standards and device classes, then encompass the device in a “software roll-up” program that covers compliance, safety and security issues only.

As well, a “last driver update” could then be sent to operating-system vendors like Microsoft so that the device can work with newer iterations of the operating systems that they release. This is more so if the operating-system vendor is responsible for curating driver sets and other software for their customers.

The device firmware has to work in such a way to permit newer software to run on servers and workstations without impairing the device’s functionality.

As well, the field-updating infrastructure should be able to work in a similar way to how regular and mobile computer setups are updated in most cases. This is where the software is sourced from the developers or manufacturers via the Internet, whether this involves a staging server or not. This should also include secure verification of the software such as code-signing and server verification where applicable.

Conclusion

What this hacking situation revealed is that manufacturers and software designers need to look seriously at the “business-durable” product classes and pay better attention to having them work to current expectations. This then allows us to keep computer systems associated with them up to date and to current secure expectations.

Security issues concerning field-updatable device software raised in HP lawsuit

Article

HP sued over security flaw in printers | Security – CNET News

My comments

An increasing trend that I have covered on this site and have noticed with equipment that I have reviewed is for the equipment to be updated with new firmware after it is sold to the customer.

Field-updating practices

Previously, this practice involved the device’s user using a regular computer as part of the update process. In a lot of cases, the user would download the update package to their computer and run a special program to deploy the update to the connected device. If the device, like a router, was connected via the network, the user uploaded the update package to the network-connected device via its management Web page or other network-file-transfer methods.

Now it is becoming more common for one to update the software in their device without the need to use a regular computer. This would be done using the setup options on the device’s control surface to check for and, if available, load newer firmware. 

It also includes the device automatically polling a server for new firmware updates and inviting the user to perform an update procedure or simply updating itself during off-hours for example; in a similar vein to the software-update mechanisms in Windows and MacOS.

As well, an increasing number of devices are becoming able to acquire new functionality through the use of “app stores” or the installation of add-on peripherals.

The HP lawsuit concerning printer firmware

Just last week, there has been a lawsuit filed against HP in San Jose District Court, California, USA concerning weaknesses in the firmware in some of their printers allowing for them to accept software of questionable origin. Issues that were raised were the ability to load modified software that could facilitate espionage or sabotage. This was discovered through lab-controlled experiments that were performed on some of the affected printers.

As all of us know, the firmware or apps are typically held on servers that can be easily compromised if one isn’t careful. This has been made more real with the recent Sony PlayStation Network break-ins, although data pertaining to users was stolen this time. But it could be feasible for a device to look for new firmware at a known server and find compromised software instead of the real thing.

They even raised the question not just about the software that is delivered and installed using a computer or network but the ability to install ROM or similar hardware chips in to the device to alter its functionality. I would also see this including the ability to pass in code through “debug” or “console” ports on these devices that are used to connect computers to the devices as part of the software-development process.

This could have implications as equipment like home appliances, HVAC / domestic-hot-water equipment and building security equipment become field-programmable and join the network all in the name of “smart energy” and building automation. Issues that can be raised include heaters, ovens or clothes dryers being allowed to run too hot and cause a fire or building alarm systems that betray security-critical information to the Social Web without the users knowing.

Further ramifications of this lawsuit

Device manufacturers will have to look at the firmware that governs their products in a similar vein to the software that runs regular and mobile computing equipment. This includes implementing authenticated software delivery, software rollback options and the requirement to keep customers in the loop about official software versions and change-logs (differences between software versions).

In some cases, business computing equipment like laser printers will have firmware delivered in a similar manner to how computer software is rolled out to regular computers in larger businesses. This includes software that enables centralised firmware deployment and the ability to implement trial-deployment scenarios when new firmware or add-on software is released.

Devices that have proper-operation requirements critical to data security or personnel / building safety and security may require highly-interactive firmware delivery augmented with digital-signature verification and direct software-update notification to the customer.

Similarly, security-software vendors may push for a system of integrating software solutions, including “edge-based” hardware firewall appliances in the process of software delivery to other devices.

Conclusion

What I would like to see out of this case if it is allowed to go “all the way” is that it becomes a platform where issues concerning the authenticity, veracity and safety of field-updatable firmware for specific-purpose devices are examined.

What are the issues involved with updating device firmware

Article

Firmware modders keep legal storm brewing

My comments

There is an increasing trend to design devices as though they are a computer similinar to a regular desktop computer. Here, the operating software for these devices, commonly known as “firmware”, is designed so it can be updated in the location where the device is used.

Typically newer versions of this software are delivered over the Internet, most likely via the manufacturer’s Web site or, in some cases, through device-support forums.

Methods

One common way of delivering this software is to deliver the update as a binary package that you download using your regular computer, then upload to the device in one or more different ways.

This may involve physically transferring the package to the device using removable media which you install in the device. Then you may either restart the device or select a “Firmware Update” menu option to load this software in the device. An example of this may be a digital camera or an MP3 player.

It may also include uploading the software to the device’s Web management interface as is commonly done with wireless routers. On the other hand you may have to run a firmware-update program on your regular computer which delivers the software to your directly-connected device such as a printer or, in some cases, your network-connected device.

Some consumer-focused devices like the Cyrus Lyric network CD receiver or a lot of appliances require you to connect your regular computer to a “debug” port and run a firmware-update program on that computer to install the new firmware. This can be very tedious for ordinary end-users, but a lot of these manufacturers who take this approach presume that the ordinary consumer will run the device with “out-of-the-box” software.

An increasingly-common method that is used for devices that are connected to the Internet is to invoke a firmware-update routine through the setup menu. Here, the device visits a special server run by its manufacturer, checks the version of the firmware on that server and downloads the latest version if it exists on that server. This may be performed as part of the setup routine for a new device or the device may poll the server for new firmware updates at specified times.

Benefits

The main benefit from device firmware that is updated through the device’s lifespan is that there is a chance for the device’s manufacturer to “iron out” bugs that may have been overlooked in the haste to get the device to market as soon as possible. This also includes “tuning” the device’s performance at handling particular tasks as newer algorithms come along.

In some cases, a firmware update may be about improving security, which is part of the increasingly-common “cat and mouse” game between the device manufacturer and the device-modding community. It also is about adding extra functions to the device that it didn’t come with when it was launched. An example of this include Draytek adding 3G wireless-broadband WAN functionality to their VPN routers or supporting newer wireless-broadband modems on these routers.

The security issue has in recent years come to light with respect to distributed denial-of-service attacks caused by the Mirai botnet and with home-network routers running compromised firmware. Here, software engineers are calling out for manufacturers to adopt a similar process to what Apple, Microsoft and Google are doing with their operating systems where security exploits that are identified in the software are rectified as quickly as possible.

The field-updatable firmware packages can allow a device to enjoy a longer service life as newer requirements can be “baked” in to the software and rapidly pushed out to customers. Examples of this can include support for newer peripheral hardware or newer operating standards.

Drawbacks

There may be cases where some functions offered by the device may be broken due to a firmware update; or the device’s user has to learn new operating procedures to perform some of the functions.

As well, firmware updates that are drawn down by the device may chew up bandwidth especially if there are more of the same device to be update. This can also extend to frequently-delivered large firmware updates for the same device.

Experiences

One situation that I had observed was the use of a Creative Labs Nomad Jukebox as a music-playout device at the church I go to. Initially, there were problems with using this music play because the previous music-playout device, which was a MiniDisc deck had a time-remaining indicator for the currently-playing track.

Subsequent to the purchase of this music player, Creative Labs delivered a major firmware update across the Nomad Jukebox range and this firmware had a “fuel-gauge” indicator to show how far in to the currently-playing track the unit was as well as a time-remaining indicator. Once the latest firmware was applied to this Nomad Jukebox, it became easier to use the device for the purpose that the church bought it for.

Another example was the Western Digital WDTV Live network media adaptor. Through the time I had the unit, there had been many firmware updates with UPnP AV / DLNA media playback being delivered through one of the updates and full MediaRenderer functionality being delivered at a subsequent update. Similarly, this device acquired Facebook, TuneIn Internet radio and other network-service functionality.

Yet another example was where I reviewed two HP business laser printers for this site. I had noticed that once these printers received firmware updates, they were able to work with HP’s ePrint ecosystem.

Issues

A large software image for a small problem

One main issue with firmware updating is that the company typically needs to deliver a complete firmware image to fix a small problem in the device. This can be annoying as devices have a firmware size equivalent to earlier incarnations of the Windows operating environment and this figure is increasing rapidly.

A direction that may have to be looked at for firmware-update delivery is to implement practices associated with updating regular-computer operating systems. This is where smaller incremental updates are delivered to the device and installed by that device. Apple has headed in to that direction with the iOS and this has become easier for them due to the regular desktop computing system being their founding stone. This direction may not work if the firmware is to be subject to a major rewrite with a changed user-interface.

Making and breaking preferred content distribution mechanisms

The article looked at the issue of field-updatable device software as making or breaking a preferred content-distribution model. There are examples of this with games consoles having their software modified so they can play pirated, homebrew or grey-import games titles; the “jailbreaking” of iOS devices (iPhone, iPad, iPod Touch) so they run software not provided by the iTunes App Store; or DVD and Blu-Ray players modified to play pirated and grey-import movies.

The manufacturers are in a game of “cat and mouse” with these devices with the software-modification community to keep these preferred distribution mechanisms alive. This is especially with devices like printers or games consoles that may be sold at loss-leading prices so that customers buy software or accessories at higher prices through preferred distribution chains.

Limiting “out-of-the-box” functionality unless updates are performed

This can lead to devices and partner software being unable to function fully unless the device is updated.

Some examples of this may include the PlayStation 3 games console package cited in the original article where you needed to download a significant update to play a game that was packaged with the console. Then you had to download extra software on to the console from the game supplier before you could play online.

Another example would be the previously-mentioned HP LaserJet printers which needed to be updated before they could run with the ePrint ecosystem. This situation may happen if the new software requirement was ran out just after the hardware was released.

Update loops

A situation that can occur with devices that implement Internet-based updating is what I call an “update loop” or “update chain”. This is where the device completes many firmware-update cycles before it becomes useable. It has happened with the WDTV Live network media adaptor but can happen with other devices.

What manufacturers could do is to allow a “once and for all” update cycle that obtains and installs the latest firmware. The server software could prepare a software build that is particular to the device’s current firmware and supply that build rather than supplying earlier software builds.

PC-style functionality addition

The trend now is to have our devices work in a similar vein to a regular personal computer, where users can add accessory hardware and software at a later date through the product’s lifecycle.

This is intensified with the “app” ecosystem that has been driven by smartphones and tablets, where users visit an “app store” to download programs to their devices. Similarly, TV manufacturers are integrating programs like Skype in their network-enabled TVs and allowing customers to add on Webcams to these sets for video conferencing.

Here, we could the thinking of adding software functionality to devices either through apps and “drivers” that are downloaded as hardware is installed or subsequent full firmware updates. The former method could work well with devices that can have their functionality evolved by the customer or installer whereas the latter method would work with devices that perform the same function all the time.

What could be looked at with device software management

UPnP Device Management

The UPnP Forum have recently released a DeviceManagement Device Control Protocol which allows for network-based configuration and management of devices. This includes a SoftwareManagement Service which looks after the issue of software delivery for these devices.

This may be of relevance where another device works as a management point for another networked device with no user interface or a limited user interface. An example of this setup may be a regular computer or a tablet running an application that co-ordinates and manages firmware updates for a variety of devices; or an IPTV set-top box that is part of a “triple-play” setup managing the software on the router that is at the network-Internet “edge”.

Use of a network-attached storage to keep device software images

An increasing number of home networks are or will be equipped with a network-attached storage device which shares data held on a hard disk across the local network. One main application for this would be to keep music, picture and video files so that they can be shared across the network.

The industry could look at ways of using these NAS (network attached storage) to track down and keep a local cache of new firmware for devices on the home network. Then the devices can check this resource for newer software images when they need to update their firmware.  This may suit home networks where there are multiple devices running the same software, such as multiple units of the same games console or multiple TVs made by the same manufacturer within a close time frame.

It may sound like a practice associated with computing in the “big end of town” where the desire by business IT teams is to maintain standard operating environments; but this technique could be used to keep multiple devices from the same manufacturer up to date without using up bandwidth for firmware updates. As well, with the appropriate protocols, it could allow for a “hands-off” approach when adding new devices to the network or maintaining existing devices.

Conclusion

As more and more dedicated-purpose devices move towards the computing model used by regular computers, we will need to think of issues concerning keeping the software up to date and using the updates to improve the devices.

ARM-based microarchitecture — now a game-changer for general-purpose computing

Article:

ARM The Next Big Thing In Personal Computing | eHomeUpgrade

My comments

I have previously mentioned about NVIDIA developing an ARM-based CPU/GPU chipset and have noticed that this class of RISC chipset is about to resurface in the desktop and laptop computer scene.

What is ARM and how it came about

Initially, Acorn, a British computer company well known for the BBC Model B computer which was used as part of the BBC’s computer-education program in the UK, had pushed on with a RISC processor-based computer in the late 1980s. This became a disaster due to the dominance of the IBM-PC and Apple Macintosh computer platforms as general-purpose computing platforms; even though Acorn were trying to push the computer as a multimedia computer for the classroom. This is although the Apple Macintosh and the Commodore Amiga, which were the multimedia computer platforms of that time, were based on Motorola RISC processors.

Luckily they didn’t give up on the RISC microprocessor and had this class of processor pushed into dedicated-purpose computer setups like set-top boxes, games consoles, mobile phones and PDAs. This chipset and class of microarchitecture became known as the ARM (Acorn RISC Microprocessor) chipset.

The benefit of these RISC (Reduced Instruction Set Computing) class of microarchitecture was to achieve an efficient instruction set that suited the task-intensive requirements that graphics-rich multimedia computing offered; compared to the CISC (Complex Instruction Set Computing) microarchitecture that was practised primarily with Intel 80×86-based chipsets.

There was reduced interest in the RISC chipset due to Motorola pulling out of the processor game since the mid 2000s when they ceased manufacturing the PowerPC processors. Here, Apple had to build the Macintosh platform for the Intel Architecture because this was offering RISC performance at a cheaper cost to Apple; and started selling Intel-based Macintosh computers.

How is this coming about

An increasing number of processor makers who have made ARM-based microprocessors have pushed for these processors to return to general-purpose computing as a way of achieving power-efficient highly-capable computer systems.

This has come along with Microsoft offering a Windows build for the ARM microarchitecture as well as for the Intel microarchitecture. Similarly, Apple bought out a chipset designer when developed ARM-based chipsets.

What will this mean for software development

There will be a requirement for software to be built for the ARM microarchitecture as well as for the Intel microarchitecture because these work on totally different instruction sets. This may be easier for Apple and Macintosh software developers because when the Intel-based Macintosh computers came along, they had to work out a way of packaging software for the PowerPC and the Intel processor families. Apple marketed these software builds as being “Universal” software builds because of the need to suit the two main processor types.

Windows developers will be needing to head down this same path, especially if they work with orthodox code where they fully compile the programs to machine code themselves. This may not be as limiting for people who work with managed code like the Microsoft .NET platform because the runtime packages could just be prepared for the instruction set that the host computer uses.

Of course, Java programmers won’t need to face this challenge due to the language being designed around a “build once run anywhere” scheme with “virtual machines” that work between the computer and the compiled Java code.

For the consumer

This may require that people who run desktop or laptop computers that use ARM processors will need to look for packaged software or downloadable software that is distributed as an ARM build rather than for Intel processors. This may be made easier through the use of “universal” packages that are part of the software distribution requirement.

It may not worry people who run Java or similar programs because Oracle and others who stand behind these programming environments will be needing to port the runtime environments to these ARM systems.

Conclusion

This has certainly shown that the technology behind the chipsets that powered the computing environments that were considered more exciting through the late 1980s are now relevant in today’s computing life. These will even provide a competitive development field for the next generation of computer systems.

Next Windows to have ARM build as well as Intel build. Apple,used to delivering MacOS X for Motorola PowerPC RISC as well as Intel CPUs, to implement Apple ARM processors on Macintosh laptops.

The HTML5 vs Flash debate

The computer press have been running articles regarding the use of Flash or HTML5 in highly-interactive Web sites such as video sites.

It has started off with Apple wanting to move iPhone and iPad towards HTML5 / H264 video by proscribing Flash runtime engines from these platforms and forcing developers to move to the HTML5 / H264 platform. This caused Google to write YouTube client-side apps for these platforms and develop an HTML5 site. Then Microsoft and others worked towards implementing HTML5 in their next browser issue, with some browsers being equipped with HTML5 interpreters.

The debate about HTML5 vs Flash has been more “video-centric” because Adobe Flash was mainly used by YouTube to display the many videos hosted on that site.

It is worth noting that the FLV files used in YouTube and similar Flash applications are container files with the video and audio encoded using the H.263 video codec. The HTML5-based video applications will use FLV, MOV or AVI container files with H.264 video codecs which are becoming the standard for high-resolution video.

Applications beyond video

Adobe Flash has been used for applications beyond video. Primarily it has been used for high-interactivity applications like games such as Farmville on Facebook or the casual games on MiniClip because it offers a quick-response user interface and easy development that these applications needed. Here, it has offered a “write-once run-anywhere” platform for these Web-centric applications with plenty of “rapid-application-development” tools.

It is also worth knowing that most of these games refer to back-end databases and / or “client-local” cookie files to persistently store game-state and other user-generated data. These programs will then have to work with the different data stores as they are used.

Web-based runtime environments for partially-linked programs

HTML5 has a variety of inherent elements that allow for vector-graphics and interactivity for highly-interactive applications. It also may be of benefit to open-source software developers and Linux advocates/

But there are some developers, most notably games developers, who want to keep their source-code closed in order to control reuse of that code. These developers also want to provide programs in a manner where the target machine doesn’t have to interpret or compile code before it is of use, which will benefit high-interactivity applications where quick response is desired.

These developers typically want to provide these programs as either an executable file or a “p-code” (partially-linked) program file which is run by an interpreter or just-in-time compiler program, known as a runtime module, that works with these files on the target platform. At the moment, there isn’t a mechanism for delivering a compiled HTML5 file in a “write once, run anywhere” manner.

Java

An interactive-applications developer could work with the latest version of Java to develop these kind of applications in a “write-once run-anywhere” platform. This platform is natively supported by the Blu-Ray Disc system as part of providing interactive video from discs and/or the Internet through that system. It could then lead to someone writing a games disc that runs classic games types on any old Blu-Ray Disc player without the player being a games console.

The main issue with this is that not all platforms, especially tablet and handheld platforms, support Java natively. As well, desktop support for Java may require the Java runtime software to be downloaded separately from Sun.

Microsoft Silverlight

As well, Microsoft is wanting to advance their Silverlight runtime platform for client-executed Web applications but this platform has not yet been ported for anything outside general-purpose computers running the Windows operating-system family. Again, this is another platform for Web-based highly-interactive content that requires the client machine to work with a “runtime module”.

Apple’s control over what runs on their platforms

One of the main cornerstones in this debate is what Apple wants out of the iPhone, iPad and iPod Touch platforms. They want to maintain control over programs and highly-interactive content that runs on this platform and preserve the requirement that all such content is obtained through the iTunes App Store. The practice of supplying a “runtime module” for pre-compiled “p-code” software available elsewhere, such as what happens with Java and Flash, works against this ideal because Apple can’t see the program’s code before it runs on an iPod or iPhone. Therefore Apple have proscribed the creation of such modules for this platform.

Some Apple skeptics may also have a fear that Apple may change their desktop platform away from the Macintosh (MacOS X) platform where their is a “free-for-all” for software development towards a platform not dissimilar to the iPhone or iPad platform with a controlled development environment. This is like how they retired the Apple II platform in the early 90s in order to focus on the Macintosh platform.

The open question

Therefore, there is an “open question” concerning Web-based software development. It is whether the likes of Farmville or Bejewelled should be developed using HTML5 and in a vulnerably-open manner or whether they should be packaged as “p-code” and delivered to a runtime environment? It also includes whether Apple should expect developers to create a separate client-side app for their iPhone / iPod / iPad devices for each game or highly-interactive site that they work on.