Tag: software development

Dealing with the bloatware that comes with your computer

Article

Lenovo Yoga 3 Pro convertible notebook at Rydges Hotel Melbourne

Being able to keep stock of the software that comes with your laptop or all-in-one computer can prevent unwanted conduits to your data.

Windows PC makers hang customers out to dry with flawed crapware updaters | PC World

My Comments

A common issue with laptop and all-in-one computers sold through the popular retail channels is the supply of “bloatware” or “crapware” with these computers. This is typically low-value software including trial or demo packages that are pre-installed on consumer-grade computers but doesn’t necessarily include drivers or manufacturer-supplied software that enables the particular features that the computer has. I have covered this issue before in relationship to the Superfish software that Lenovo had furnished with some of their consumer-focused laptops.

This can also apply to software delivered on a CD-ROM with retail-pack system parts, peripheral devices or consumer-electronics devices like digital cameras or keyboards. Some of the software is ostensibly supplied as a way to give the customer a “foot in the door” when it comes to a particular function or computing task, which tends to apply to trial versions of desktop security software or entry-level video editors and DVD / Blu-Ray playback software.

This wouldn’t necessarily happen with computer systems supplied to big businesses or contractor-supplied equipment because it is easier for these customer groups to call for a standard operating environment when they purchase their technology. Similarly, the traditional desktop computers that are built and sold be independent computer stores and dedicated computer-store chains aren’t as likely to be full of the “bloatware”.

The key issue that has been raised is the poor quality-assurance that occurs when it comes to supplying and maintaining this software. Here, there isn’t a secure path for software delivery especially whenever the software is updated or upgraded to a paid-up premium version. The software can be substituted by a man-in-the-middle attack that can be easily facilitated on an unsecured public-access Wi-Fi network. As well, there isn’t any way to verify the authenticity of the software updates, whether it is the software intended to be or actually delivered as part of the update.

This is part of the culture associated with the low-value software that the OEMs are paid to deliver with the systems that they sell to consumers and small businesses, but can affect the device drivers and functionality-enablement software.

Respected software names like Microsoft and Apple implement a secure delivery path for both server-to-device delivery and backend data transfer. As well, they implement a digitally-signed manifest (“shopping list” of files to be substituted in an update) and digitally-verified software files so that the programs can’t be altered surreptitiously.

Dell and Lenovo implement a TLS secure path for the software-manifest delivery while Lenovo implements a digitally-signed software manifest. But these policies are not applied across a manufacturer’s product line.

What can we do?

The best practice for consumers, small businesses and community organisations to do is to “strip back” the bloatware that isn’t being used. Most such software can be uninstalled through the “Programs and Features” option in the Windows Control Panel or through the uninstall routine in the software. Preferably, they should keep just the drivers and functionality software on their system.

On the other hand, they could facilitate a supervised semi-automatic software update for the OEM-supplied software and do this on their home or small-business network. If they are using any of the third-party software that has been provisioned by the OEM, it may be a better idea to visit the software developer’s Website and draw down newer versions of that software from there.

What is needed for OEM-supplied software update processes

If an OEM wishes to provision extra software with a computer, peripheral or consumer-electronics device; they need to make sure that this software is of high-quality, and respects customers’ security, privacy and data sovereignty wishes.

This includes a secure software-maintenance policy such as:

  • a secure software-delivery path with latest standards and protocols between the device and the software-provisioning servers and the software distribution backbone
  • digitally-signed software files and update manifests with verification occurring before and after delivery

Third-party software developers who wish to package software with a computer systems should be required to maintain this software to the same standard as what would be expected if they sold the software to customers themselves or through a traditional retailer. This includes allowing a person to upgrade from an OEM version to a premium version or instigate a subscription through their storefront rather the OEM’s storefront.

The Universal Windows platform gains momentum

Article

Windows 10 Start Menu

Windows 10’s Universal Windows platform now in place and allowing for an app to serve smartphones, tablets and regular computers

Microsoft’s Universal Windows Platform might be gaining momentum | SuperSite For Windows

My Comments

With Windows 10 out in the field, Microsoft has been observing that the Windows 10 Universal Windows Platform has been gathering steam.

What has been valued about the Universal Windows Platform is that a single codebase exists for applications destined for the Windows 10 Desktop operating system on regular computers and larger tablets; the Windows 10 Mobile operating system on smartphones, phablets and small tablets; along with the XBox One games console which would be used as a set-top box for online entertainment.

Candy Crush Saga gameplay on Windows 10

Candy Crush Saga – an example of what can be done here

Microsoft has worked on some software-development tools to simplify the process of porting apps from other mobile platforms to the Universal Windows Platform. One of these was the Project Astoria which simplified the process of porting Android apps but this was put aside while the Project Islandwood which facilitates the porting of iOS (iPhone and iPad) apps gained more traction.

This showed up initially with the ability for you to play Candy Crush Saga on your Windows 10 computer or Windows mobile phone. But now Uber, TuneIn Radio and other apps have shown up in the Windows Store. TuneIn Radio would have the same benefit across the board as a way to have Internet radio play on your regular computer like I have done a few times with Windows 8.

The article saw no use for the Uber ride-booking client on a regular computer. But I see Uber and other journey-booking apps that are pitched to smartphone users being relevant also to regular-computer users including those of us using desktop computers. This is because of the ability to book your ride using your Windows-based regular computer rather than finding your smartphone to do the job. User classes that would benefit are business users booking transport for people like lone workers or valued customers; hotel concierges and others in the accommodation industry; people who use 2-in-1 computers; or householders who use the main family computer to organise transport for members of their household or their houseguests.

As well, I would see the likes of Instagram and Pinterest benefit from this treatment because one could upload a photo taken with their good camera and post it there. They can also implement Instagram’s filters to “treat” the picture before having it available for all and sundry to see.

The Windows 10 Universal Windows platform can make the idea of apps being relevant across all computing devices without the need to write versions of the software to target particular device classes.

The effort has paid off for Candy Crush

Previous coverage

It is now simple to port iOS and Android apps to Windows 10

My Comments

Candy Crush Saga gameplay screen Android

Candy Crush Saga on Android

I have played the Android version of Candy Crush Saga and this has performed very smoothly on a variety of Android phone devices that I owned.

But Microsoft and King, the developer of this popular casual game, have worked together and used this game to approach the idea of porting an app from a mobile platform like iOS and Android to a regular-computing platform like Windows 10 along with the XBox One games console. The goal is to make an app or game take advantage of what the subequent platform has to offer without destroying the usage experience that the software is know for.

In the previous article, I cited the computing scene in the 1980s where there was a requirement for games developers to have a game on as many platforms as possible with the best examples being Atarisoft, Sierra and Broderbund. Atarisoft made a strong effort to port the legendary Atari games like PacMan, Asteroids and Centipede to a larger number of popular 1980s home computers while Sierra and Broderbund had games like the Kings Quest, Space Quest, Leisure Suit Larry and Carmen Sandiego franchises on platforms like the IBM PC, Apple II and Macintosh platforms and Commodore’s legendary games machines of all time. It is also very similar to how Minecraft has been ported between Windows, Macintosh, the mobile platforms and XBox One yet is still very playable.

Candy Crush Saga gameplay on Windows 10

This same game as ported to Windows 10

After installing Windows 10 on my computer, I downloaded the Windows 10 port of Candy Crush Saga to assess how this port was to turn out, especially for mouse-based play. After playing a few rounds, the experience was very much similar to what it was like on the Android version. It had reminded me of the late 80s with Boulder Dash where I had played that game on the Commodore 64 and the Apple IIe where the game yielded the same “boulder-shifting” user experience with the same graphics, sound and gameplay on both those platforms.

But the game’s interface didn’t depend on whether you used a touchscreen or a mouse, Nor did it depend on whether you had the game in a window or in a full-screen mode. Candy Crush Saga was still as playable on the Windows 10 platform as it was on the Android platform.

Microsoft is on a winner with their Project Islandwood and Project Astoria software-development kits in that someone could get a casual game across the mobile platforms and Windows to the same expectations as the late ‘80s home-computing era. This is where each platform’s assets can be taken advantage of very easily yet the user experience is kept consistent.

If Microsoft, Google, Apple and others use their software-development knowhow properly, they could encourage app developers, especially games studios, to have apps and games that maintain a consistent high-quality user interface no matter the computing platform they run on.

An operating system rewrite may make it run smoothly on older hardware

Article

Lenovo ThinkPad X1 Carbon Ultrabook

After a few versions, operating systems on computing equipment will need to be reworked

Apple iOS 9 upgrade could make old iPhones feel new again | The Age

My Comments

A common practice that takes place when an operating system is being written for a computing platform is that extra code is bolted on to the existing code to give it more functionality or cater to newer hardware. This happens due to newer peripheral types or connection methods being available to the computing platform or these devices being improved; along with security and stability questions that are raised through the software’s lifespan being answered.

But after a succession of releases, the operating system’s software-footprint becomes increasingly larger and ends up being slower to run. In the case of battery-operated equipment like smartphones, tablets and laptops, this same situation places a strain on the amount of time you can run this device on its own batteries.

This is more true when the operating system is partnered with older hardware that can be slower or not have enough storage capacity. It then comes to a tipping point in the operating system’s life that the software has to be rewritten from the ground up for improved performance and to have the newer abilities factored in to the software’s codebase.

This had happened with Windows when the security enhancements that were added on to Windows Vista made that version of the operating system become too slow and unwieldy. Microsoft subsequently rewrote the Windows codebase to provide for a highly-stable highly-secure operating system in the form of Windows 7.

It also happened with Android where version 4.3 Jelly Bean and 4.4 Kitkat became unwieldy with certain functions like handling Bluetooth or security-related functions. Android 5 Lollipop had a lot of this functionality written in to its codebase rather than being tacked on thus making for an operating system that was more stable.

Now it is happening with Apple’s operating systems – the iOS mobile operating system and MacOS X operating system. Both these operating systems will be undergoing a rewrite with minimum emphasis on new functionality but more to iron out the bugs. The Age article highlighted the fact that iOS 9 will work more “tightly” on older iPhones like the iPhone 4 Series, giving some sort of freshness to these devices.

A reality that can happen after one of these major overhauls is that as the computer scene changes and the operating system undergoes further revisions to accommodate the new changes, it could end up being bloated again. Again, this is the time that one of these major rewrites would have to take place in order to keep devices of that platform running smoothly.

Pre-baked operating systems to be the norm for the Internet Of Everything

Article

Google reportedly building an OS for the Internet of Things | Engadget

My Comments

As part of developing Windows 10, Microsoft released a variant of the operating system for small-form embedded devices such as what would represent the “Internet Of Things” or “Internet Of Everything”. Now Google has fronted up with a similar operating system that is pitched for the same purpose.

But why these operating systems? Designing a device that is to be “connected” typically requires the manufacturer to shoehorn a task-specific operating system for this device and typically these devices require one that has a small storage, memory and power footprint.  There is also the expectation that the device will have very limited user interaction capabilities, perhaps only a switch and LED.

These operating systems won’t require the manufacturer to reinvent the wheel for functionality like communications or power management. Rather they can concentrate on what the device is all about and build the code necessary for its functionality. This may also allow them to concentrate on differentiating the device they build from the “rest of the pack” and make it more compelling.

But could this bring forth a level playing field for the “Internet Of Everything” which assures connectivity and interoperability along with devices that are secure by design?

What is happening with the way Android products are updated?

Article

Sports scoreboard app

Microsoft slams Android updates, claims Google ships a ‘big pile of… code’  | The Verge

Microsoft takes a pop at Android updates | TrustedReviews

Microsoft disses Android: ‘Google ships a big pile of … Code’ | Android Authority

My Comments

A common complaint by people who use Android phones and tablets is that it takes too long for an operating-system update to materialise on their device after Google releases the software code. Microsoft, a key competitor to Google, described Android as a “heap of … code” during the keynote speech for the Ignition 2015 business-computing conference’s keynote speech.

Typically what happens is that the update is delivered to the hardware manufacturers who will package it with their software like shell replacements before issuing it. In the case of smartphones or tablets that have wireless-broadband functionality, these updates have to be modified and approved by the telecommunications carriers before they are allowed on devices that their customers use.

Google has worked around this by using the Google Play Store to deploy updates to their software and, in some cases, offer plugins. Some manufacturers are even using this path or their own app store to roll out updates to their software.

Other platforms like iOS and Windows Phone allow the operating system’s software developer to push updates independent of manufacturer or carrier approval. This is similarly true for desktop operating systems like WIndows and OS X.

But what can Google do about this if the goal is to roll out security patches and bugfixes in between platform updates? This is important when, for example, my Samsung Galaxy Note 2 handset was failing frequently when it came to discovering Bluetooth devices and this was due to bugs in relationship to Android Jelly Bean’s Bluetooth stack which was based on Bluetooth LE / Smart functionality tacked on to an existing Android Gingerbread or ICS Bluetooth stack.

A way to assure the ability to work with manufacturers and carriers yet roll out the important patches could be to allow the deployment of the patches without need to have the prior approval. But Google would need to work with the manufacturers when rolling out major platform updates like when transitioning from KitKat to Lollipop.

A platform update for Google Android and any other operating system should also be about rewriting various parts of that operating system that gain functionality boosts that will change the device’s behaviour rather than “tacking on” the new functionality. This is what led to Windows Vista being criticised by the industry for its performance because the new security abilities were “tacked on” to an existing Windows XP codebase.

It is now simple to port iOS and Android apps to Windows 10

Articles Windows logo courtesy of Microsoft

How Microsoft Is Going To Port Everything To Windows | Gizmodo

Android applications will be able to run on Windows 10 | Android Authority

From the horse’s mouth

Microsoft

Welcome speech for Build 2015 – Blogging Windows

My Comments

Candy Crush Saga gameplay screen Android

This game has been the test-bed for porting to Windows 10

The Web has been awash with rumours about Microsoft allowing Android apps to run on Windows 10. The image projected by these rumours underscored ideas of users running Android APK program files in the Windows 10 environment or a gateway to Google Play on this operating system.

But Microsoft announced at Build 2015 conference a very different scenario that is more about developers being able to easily port iOS and Android apps to Windows 10 Universal Apps. It is part of a simplified code-porting mechanism that will come with this new operating system.

As you already know, a Windows 10 Universal app is designed from the outset to run on a regular desktop / laptop computing environment, a tablet or 2-in-1 in “tablet mode”, a smartphone or even the XBox One games console.

The process of “porting” an app to run on different computing platforms is about making sure that the program conveys a user experience that doesn’t differ no matter the platform that you are running it on. Rather it takes advantage of the bouquets that the platform provides like improved sound or graphics and is something I have seen in action through the late 1980s with games written by the likes of Sierra and Broderbund. In that era, there were a few different home / desktop computing platforms in circulation ranging from the IBM PC (MS-DOS) platform, Apple’s Apple II and Macintosh platforms, to Commodore’s legendary C64 and Amiga computer platforms and anyone who wanted to cover a large market with a games title had to port these titles across the different platforms.

Windows 10 Start Menu courtesy of Microsoft

Now easier to port from mobile platforms to this platform

Take for example “Where In The World Is Carmen Sandiego” which I had played on an Apple IIe and on an IBM-compatible running MS-DOS 3.3 . These games were ported in a way to take advantage of the graphics abilities the different platforms offered and were worked to give the same smooth operating environment for the platform you bought it for. If I had played that game on a Commodore Amiga, it would have come through with graphics and sound performance appropriate for that platform such as sharper graphics with many different colours along with a richer music soundtrack.

If you were to port an application or game to a different platform, you had to rewrite the program code from the ground up to target that platform. As well, you had to re-engineer all of the resources like the graphics and sound for that platform. This became a costly affair because you had to hire programmers who were conversant with your native computing platform and the target platform to do this job and make sure they run as expected on that platform. In some cases, the software may not run exactly as required nor would it properly take advantage of the platform’s assets.

Microsoft has made this process simpler courtesy of the Project Islandwood and Project Astoria software-development kits which simplify the process of porting iOS or Android apps to Windows 10 Universal Apps. These would allow the developer to reuse the iOS Objective C or Android Java/C++ code as the mechanism for the program and allow them to tweak the code to run smoothly in Windows 10, taking advantage of its assets like Cortana, Live Tiles, XBox Achievements and the like where appropriate.

They worked with King.com to use the new software-development kits to port Candy Crush Saga to Windows, having the gameplay experience on a Windows Phone similar to what was expected out of an iPhone.

What does this mean? It could allow a software developer to target iOS or Android for their programs then have it ready for the Windows platform very shortly after that without it being a costly affair..Who knows when a game like Candy Crush Saga could appear on the XBox One as a “quick-play” game to play on your TV?

Windows 10 Software ecosystem–what will this be like?

ArticleWindows logo courtesy of Microsoft

Windows 10 Apps Will Be ‘Windows Apps’ Or ‘Windows Desktop Apps’ | Lifehacker

My Comments

Windows 10 Start Menu courtesy of Microsoft

Windows 10 – what it’s about

Microsoft is taking bolder steps towards having software developers write one piece of software that runs across multiple types of devices. Previously, if one wanted to develop a program to run on a Windows Phone, the Windows 8 computer or XBox, they had to prepare three discretely different packages with user experiences that play in to the capabilities of the different devices.

Skype with uncluttered Modern user interface

Skype – an example of an app that has been demonstrated to work across Windows 10 and Windows Phone

 

TripAdvisor Modern UI screenshot

TripAdvisor – an app that would be written to work across the phone or regular computer

Now Microsoft is using Windows 10 as a vehicle to encourage the development of a program that runs on a Windows Phone or small tablet, a regular computer running Windows 10 including a 10”-13” tablet or “2-in-1”, or the XBox. Each of these device classes has a different user experience need so there is the idea to develop a different screen for each of the different classes.

There will be the idea of packaging software as “Windows Desktop Apps” which are like the traditional Windows apps we run on regular desktop or laptop computers, while there will be the Windows Apps that run on the different user experiences such as the Windows Phone or the XBox One. This even applies to future device form factors that Microsoft will target Windows at.

It is symptomatic of the way software development is heading towards where a single program package can be pitched at multiple device form-factors like a handheld mobile device, a tablet, a regular desktop / laptop computer, a TV-based game console / media player and even an in-car display. An example of this is what Google is achieving with their Android platform where a software developer can write a program that plays well for the Android phone or tablet and for a TV (Android TV), in-car display (Android Auto) or smartwatch (Android Wear) just by adding a few lines of extra code pitched at the platform.

What will typically happen will be the provision of a “responsive design” user interface that adapts to the device that the user is running the software on, along with code that can run on the classic Intel processors or the ARM processors. This may be a cinch for various “front-end” programs for online services or some games where there is a desire to have access to all functionality no matter the device.

On the other hand, office productivity software may be focused to allow full-time document creation on a regular computer or quick amendments on a phone or small tablet but wouldn’t play with the XBox One. Or similarly, an MMO game may allow you to use a regular computer or the XBox One to engage heavily with it, including playing the highly-interactive segments but may allow you to use the phone to play it in a reduced-interactivity “incremental” manner.

What I see of value is that someone could get an app off the ground to run on a regular Windows computer, a Windows Phone and, where relevant, the XBox One as one effort. As well it could effectively mean that there are fewer platforms to target when developing that great app yet there is a similar or better level of market reach as they have had before.

The XBox One to be the first console to support home-developed games

Article Project Spark Editor screenshot press image courtesy of Microsoft

Microsoft’s Project Spark Finally Out Of Beta | Tom’s Hardware

From the horse’s mouth

Microsoft (XBox)

Press Release

Product Page

My Comments

Project Spark screenshot press image courtesy of MicrosoftOne item that Microsoft has had as its foundation stone was to allow people to develop their own computer software through the provision of the necessary tools to do this.

This started from Bill Gates writing a BASIC interpreter for the Altair microcomputer and effectively writing the BASIC interpreters for a few subsequent personal computers of the era like the Radio Shack TRS-80 and the IBM PC. In the 1990s, Microsoft had developed the Visual BASIC software to allow one cost-effectively develop software for the Windows platform that took off through that era.

Now Microsoft have fully released Project Spark which is a software-development kit to allow one to develop games for the XBox One games console along with regular computers running Windows 8.1 . People who have tinkered with the earlier beta versions of this software have used it to create extra game levels for their favourite games.

It may appear that you would have to work within boundaries when building a game or level but I would see this as a way for Microsoft to work on a games-development platform for both regular computers and the XBox One games consoles. This may also lead to a marketplace for “lean-back” console games which are developed by individuals and independent studios and, hopefully open up the console-gaming world.

Getting girls and women to develop computer games using the summer-camp model

Article

Inaugural ‘Girls Make Games’ Summer Camps Fight Industry’s Gender Gap | Mashable

My Comments

Women and girls are increasingly dabbling in computer games, especially the strategy and casual types on mobile platforms, as I have seen lately with the likes of Candy Crush Saga and Piano Tiles being played by them on iPads and similar devices. But a lot of games, especially “core” games are being developed by men for men.

Just lately, there is activity taking place to encourage women and girls to develop these games and this is taking place in the form of a “summer-camp” or “school-camp” model where groups of them stay at particular locations to work together on this goal. This is an attempt to fight an industry gender gap and increase interest in this activity amongst under-represented groups. One of the issues that was raised was creating interest in “STEM” (science, technology, engineering, maths) subjects amongst women and girls to have them show interest in programming and related disciplines/

It is also being cultivated through the existence of “indie” game development which is brought along with the rise of mobile devices, especially tablets like iPads and the Sony VAIO Tap 20, as a gaming platform along with the increased capabilities that these devices offer.

But could the participation of women and girls change the landscape of game content? Personally, I would find that they could provide games that appeal to more users such as middle-aged and older people along with other younger women. As well, they could work towards opening up computer gaming as a leisure activity for more people across the board. One thing to be aware of is to encourage the use of the platform’s abilities when it comes to graphics, sound and interaction rather than being “basic” with the games.