BlackBerry 10 developers can now download the release version of the various SDKs.
There are three primary SDKs: native C/C++, Cascades which includes a C++ app and user interface framework, and WebWorks for HTML5 and JavaScript.
If that is not enough, there is also an Adobe AIR SDK, and a Java SDK which is compatible with the Android Runtime.
RIM has made a huge effort to attract developers to its new platform, though how it will fare versus iOS, Android, and a somewhat reinvigorated Windows Phone is open to speculation.
A principal engineer at Nokia, Justin Angel, has written a piece showing how to hack apps on Windows 8, undermining their potential revenue for the app vendors. “This is an educational article written in the hope both developers and Microsoft can benefit from an open exchange of knowledge,” he says, adding that the article was written in his own time and has nothing to do with his employer.
The hacks he describes cover:
Compromising in-app purchases by modifying data held locally, such as app currency.
Converting trial apps to full versions without paying
Removing ads from games
Reducing the cost of items offered for in-app purchase
Injecting Javascript into the Internet Explorer 10 process in order to bypass trial restrictions
There is an inherent security weakness in any app that has to work offline, since the decryption keys also have to be stored locally; this inherent weakness is not unique to Windows 8. However, Angel argues that Microsoft could do more to address this, such as checking for tampered app files and preventing Javascript injection. Code obfuscation could also mitigate the vulnerabilities.
Although Angel is writing in his own time, the issues are relevant to Nokia, which makes Windows Phone devices and may make Windows 8 tablets in future.
Should Angel have revealed the cracks so openly and in such detail? This is an old debate; but it is sure to increase pressure on Microsoft to improve the security of the platform.
These figures from AdDuplex, which runs an ad network for Windows Phone, surprised me. The company studies its stats for a random day in November, the 30th, and reports that 71% of the Windows Phone devices contacting its servers were from Nokia. The Lumia 710 leads with 24%, followed by Lumia 800 at 18%, and the Lumia 900 at 7%.
The obvious conclusion is that Nokia dominates the Windows Phone market. Bad news for HTC, which seems to be making a real effort with its 8X release (the 20th most popular device according to the stats).
Dominating the market may sound good for Nokia, but unfortunately the entire market is relatively small. The risk for the platform is that it becomes in effect a Nokia-only OS with all the other OEMs focused on Android.
Embarcadero has released C++ Builder XE3, the first version built on the open source clang front end for the LLVM compiler. This has enabled the product to support many new features, including extensive C++ 11 support and a 64-bit compiler.
While it is a shame that the old Borland C/C++ Compiler is no more, it makes sense for Embarcadero to bring its VCL (Visual Component Library) and FireMonkey framework to Clang rather than continuing to work on its own compiler.
The other big change is cross-platform support. Through FireMonkey, C++ Builder XE3 supports Windows (including Windows 8) and Mac OS X, with iOS and Android promised for 2013.
Although Windows 8 is supported on the desktop, there is no official support for the Windows Runtime (Windows Store apps). Instead, Embarcadero has a curious application framework called Metropolis which fakes the Windows 8 style but with desktop applications, as if the Windows 8 world were not already sufficiently confusing.
The big question is how compatible VCL applications created for earlier versions of C++ Builder are with the XE3 release. With a new compiler and major changes to the VCL in order to support the new compiler, you might expect some issues.
“That’s what we’ve been spending all of our time on,” Embarcadero VP Michael Swindell told me. “This is fully compatible with all our previous C++ dialects. We’ve completely re-engineered the C++ front end but it’s engineered to be compatible with C++ Builder applications and Borland C++ applications.”
I would rather hear that from developers though, rather than from Embarcadero.
Although C++ Builder is a cross-platform compiler, it only runs on Windows. A common scenario is to run in Windows emulation on a Mac, using VMware Fusion or Parallels.
Similar changes are on the way for Delphi, which uses the same VCL and FireMonkey frameworks but with the Delphi language based on Object Pascal.
Note that the new Clang-based compiler is 64-bit only. You are meant to continue using the old Borland compiler for 32-bit, making it hard to maintain a single code base for both.
There has been some Twitter chatter about the closure of silverlight.net, Microsoft’s official site for its lightweight .NET client platform. multimedia player and browser plug-in.
I am not sure when it happened, but it is true. Silverlight.net now redirects to a page on MSDN. Some but not all of the content has been migrated to MSDN, but Microsoft has not bothered to redirect the URLs, so most of the links out there to resources and discussions on Silverlight will dump you to the aforementioned generic page.
One of the things this demonstrates is how short-sighted it is to create these mini-sites with their own top-level domain. It illustrates how fractured Microsoft is, with individual teams doing their own thing regardless. Microsoft has dozens of these sites, such as windowsazure.com, windowsphone.com, asp.net, and so on; there is little consistency of style, and when someone decides to fold one of these back to the main site, all the links die.
What about Silverlight though? It was always going to be a struggle against Flash, but Silverlight was a great technical achievement and I see it as client-side .NET done right, lightweight, secure, and powerful. It is easy to find flaws. Microsoft should have retained the cross-platform vision it started with; it should have worked wholeheartedly with the Mono team for Linux-based platforms; it should have retained parity between Windows and Mac; it should never have compromised Silverlight with the COM support that arrived in Silverlight 4.
The reasons for the absence of Silverlight in the Windows Runtime on Windows 8, and in both Metro and desktop environments in Windows RT, are likely political. The ability to run Silverlight apps on Surface RT would enhance the platform, and if COM support were removed, without compromising security.
XAML and .NET in the Windows Runtime is akin to Silverlight, but with enough differences to make porting difficult. There is an argument that supporting Silverlight there would confuse matters, though since Silverlight is still the development platform for Windows Phone 8 it is already confusing. Silverlight is a mature platform and if Microsoft had supported it in the Windows Runtime, we would have had a better set of apps at launch as well as more developer engagement.
I posted that Microsoft’s Silverlight dream is over in October 2010, during Microsoft’s final Professional Developers Conference, which is when the end of Silverlight became obvious. It lives on in Windows Phone, but I would guess that Windows Phone 8.5 or 9.0 will deprecate Silverlight in favour of the Windows Runtime. A shame, though of course it will be supported on the x86 Windows desktop and in x86 Internet Explorer for years to come.
Adobe is reminding developers that Flash is still around as a game development platform, with the release of a Game Developer Tools package including a Gaming SDK, the Flash C++ Compiler which translates C++ to ActionScript, Flash Professional CS6 and Flash Builder 4.7.
The new thing here is the Scout profiler, previewed as Monocle, which is now available for Creative Cloud subscribers. Scout is a desktop app which profiles Flash apps that have telemetry enabled. The app has to be running in Flash Player 11.4 or higher and have Advanced Telemetry enabled for most of the features to work. You can analyse the time taken for ActionScript code to execute, CPU usage, rendering time for the Flash DisplayList, and record Stage3D commands (hardware accelerated 2D and 3D graphics).
Normally Scout analyses Flash content running on the same machine, but there is a companion agent that you can use on iOS and Android for remote profiling of mobile apps.
I downloaded and installed the Game Development but with only partial success, since I mainly use Windows 8 and the Flash Player there is behind that used on Windows 7 and Mac. The reason is that Flash Player is now updated via Windows Update, and this additional step seems to mean delays. I was able to try out Scout using Google Chrome, which has a Flash Player 11.5 installed, but have not yet figured out how to update the default Flash Player for the system which is used by Flash Professional and Flash Builder. At the time of writing this is Flash Player 11.3, which is insufficient for the Game Development Tools.
Flash is a strong platform for game development, though it has lost momentum now that Adobe is betting mainly on HTML 5. I also hear a lot about Unity for cross-platform game development. Unity lets you publish to Adobe Flash Player, giving you more choices than with pure Flash development.
Internet Explorer 10 in Windows 8 features a new approach to Adobe Flash Player updates. These are now delivered via Microsoft’s Windows Update, so you get security updates without having to suffer Adobe’s separate updater.
That seems a good thing, and for security it probably is, but it seems that the price of this convenience is that you run an old version. See the table here:
Note that Windows 7 users have version 11.5.502.110, while Windows 8 has only 11.3.376.12. There are major new features only available in the updated version.
Trying to run the installer for the latest debug version fails with a misleading error message:
Umm, no it is not the latest version.
Of course you can get round this by running Google Chrome:
[the OS is actually 64-bit but Chrome runs as a 32-bit process].
This still strikes me as disappointing. You may want to run IE, if you like having the browser maintained and managed by the OS vendor, and in Windows RT (the ARM version of Windows) there is no other option. That is becoming an impossible choice for developers. Chrome offers WebKit (the browser engine used on most mobile devices and in Safari on the Mac) as well as nice tools and hooks for debugging, and Chrome-specific support from vendors like Adobe makes it hard to avoid.
Last week Amazon CEO Jeff Bezos spoke at a “Fireside Chat” with AWS (Amazon Web Services) chief Werner Vogels. It was an excellent and inspirational performance from Bezos.
If there was a common theme, it was his belief in the merit of low margins, which of necessity keep a business efficient. Low margins are also disruptive to other businesses with high margins. But how low can margins go? In some cases, almost to nothing. Talking of Kindle Fire, Bezos remarked that “We don’t get paid when you buy the device. We get paid when you use the device.” It is the same pay as you go model as Amazon Web Services, he said, trying to remain vaguely on topic since this was an AWS event.
His point is that Amazon makes money when you buy goods or services via the device, not from profit on the device itself. He adds that this makes him comfortable, since at that point the device is also proving its value to the customer.
Google has the same business model with its Nexus range, which is why Google Nexus 7 and Amazon Kindle Fire are currently the best value 7” tablets out there. For Google, there is another spin on this: it makes the OS freely available to OEMs so that they also push Google’s adware OS out to the market. If you are not making much profit on the hardware, it makes no difference whether you or someone else sells it.
We do not have to believe that either Amazon or Google really makes nothing at all on the Kindle Fire or Nexus 7. Perhaps they make a slim margin. The point though: this is not primarily a profit centre.
This is disruptive because other vendors such as Apple, Microsoft, Nokia or RIM are trying to make money on hardware. So too are the Android OEMs, who have to be exceptionally smart and agile to avoid simply pushing out hardware at thin margins from which Google makes all the real money.
Google can lose too, when vendors like Amazon take Android and strip out the Google sales channels leaving only their own. This is difficult to pull off if you are not Amazon though, since it relies on having a viable alternative ecosystem in place.
But where does this leave Apple and Microsoft? Apple has its own services to sell, but it is primarily a high margin hardware company selling on quality of design and service. Apple is under pressure now; but Microsoft is hardest hit, since its OEMs have to pay the Windows tax and then sell hardware into the market alongside Android.
Ah, but Android is not a full OS like Windows or OSX. Maybe not … yet … but do not be deceived. Three things will blur this distinction to nothing:
1. The tablet OS category (including iOS) will become more powerful and the capability of apps will increase
2. An increasing proportion of your work will be done online and web applications are also fast improving
3. More people will question whether they need a “full OS” with all that implies in terms of maintenance hassles
Microsoft at least has seen this coming. It is embracing services, from Office 365 to Xbox Music, and selling its own tablet OS and tablet hardware. That is an uphill struggle though, as the mixed reaction to Windows 8 and Surface demonstrates.
Most of the above, I hasten to add, is not from Bezos but is my own comment. Watch the fireside chat yourself below.
The Hauppauge HD PVR2 is a gadget for capturing video from an HDMI or component video source, such as an XBox 360 or PlayStation 3 games console, and has replaced the popular HD PVR, which was component video only.
The concept is simple: instead of connecting you console directly to your TV or A/V amplifier, connect it to the HD PVR2. Then connect the unit to a PC or Mac via USB, and to the original TV or amplifier via HDMI. Your PC can then capture the video (and audio) while you are playing the game using the big screen. Hauppauge says the delay between input and output is only 60 microseconds, which you will not notice.
The use of HDMI makes connecting the PVR2 simpler than with its predecessor. Instaead of a bunch of component audio connections, there is just power, USB, HDMI in and out, and an A/V input that connects to component video sources where needed. The A/V input has a special cable that gives floating sockets for component video and analogue audio. The unit is also supplied with a cable suitable for connecting to a PS3.
You might need component input in two cases:
1. Your games console lacks HDMI – for example, Nintendo Wii.
2. The HDMI output is encrypted for copyright protection. This is the case with the PS3, but not the XBox. Since component video and analogue audio cannot be encrypted, you can capture anything this way.
Getting started
Hooking up the HD PVR2 was easy, but getting started was troublesome. We tried a succession of Windows 7 laptops, including a Pentium Dual Core 2.3Ghz, a Core 2 Duo at 2.6 Ghz Pentium, and a Core i5 at 1.6 Ghz. The pattern with all these was similar: the drivers and software installed OK, HDMI pass-through worked, the capture might work once, but then there were frustrating errors. The problems:
Difficult or impossible to select the HD PVR2 as the input device in the capture software
Capture software hanging
USB device error reported
This was tedious, partly because nothing could be captured, and partly because the only way to retry was to reboot both the laptop and the HD PVR2.
Swapping to a high-spec USB cable seemed to help a little, but soon the old problems were back, even after applying the latest driver updates from Hauppauge support.
Just before giving up, we connected to another Windows 7 Core i5 laptop, speed this time 2.5Ghz. Everything worked perfectly.
It is not clear what to conclude here. Hauppauge specifies:
Laptop or desktop PC with 3.0 GHz single core or 2.0 GHz multi-core processor
and adds in the FAQ:
You can record HD PVR 2 video on pretty much any PC. Older, slow, laptop or desktop PCs can be used to record HD PVR 2 video.
But when you playback an HD PVR 2 recording on your PC screen, you need a fast CPU and at least 256MB of graphics memory.
All our machines meet the spec. Either our sample box is particularly fussy, or Hauppauge is optimistic about the minimum requirements, or there are other factors at play.
Bundled software and Mac support
Hauppauge supplies Windows drivers for the HD PVR2 along with a version of Arcsoft ShowBiz for capturing and editing video.
If you want to use a Mac, Hauppauge recommends third-party software called HDPVRCapture which costs an additional $29.95.
ShowBiz is easy to use and provides simple editing features and output to AVCHD, AVI, MPEG1, QTMOV or WMV. You can also upload direct to YouTube with a wizard.
You don’t have to use ShowBiz if you have other capture software you prefer.
Another feature is called Personal Logo. This is a separate application which lets you specify a bitmap as a logo to appear on your captured videos, along with its position and transparency. Handy for reminding everyone who you are on YouTube, or for publications posting review footage.
Capturing video
Once your system is up and working, you can start capturing video with one of two methods. The first is to hit a large corner button on top of the HD PVR2, which automatically starts up ShowBiz in capture mode. Alternatively, you can start ShowBiz, select Capture, and click Start.
While capturing, you can see the video running on the PC. There is several seconds delay between your live gameplay and the capture stream, which is confusing to watch, so ignore it and focus on your gameplay. When you are done hit stop. Videos are saved automatically, by default to the Videos folder on your PC, named according to the date and time.
Next, you can edit the video in ShowBiz. I created the following video and uploaded it to YouTube as a demo. However, I could not get the YouTube unload in ShowBiz to work. I saved the file as an AVI and uploaded it manually.
Settings in depth
When you run the Capture module in ArcSoft ShowBiz it exposes a number of settings, which you get to by clicking Device and Format Settings.
Device Settings lets you set brightness, contrast, Hue, Saturation and Sharpness.
Format settings gets you a bunch of settings which gives extensive control subject to the limitations of the hardware. Here are the settings for the H264 encoder:
Here are the video settings:
and the audio properties:
All this looks impressive though many users will just want to click and go. Mostly this works OK, though check that you have 16:9 specified if you use widescreen.
Note that 1080p at 60 fps (frames per second) is captured at a maximum of 30 fps, and 1080p at 50 fps is captured at a maximum of 25 fps.
Annoyances
Hauppauge says that your PC does not need to be on for HDMI pass-through to work. Despite this, we found that if you turn the system on from cold, pass-through does not work until the USB connection to a PC is made. Once up and running, you can disconnect and turn the PC off and pass-through still works.
ArcSoft ShowBiz is very basic. Fortunately you can import the captured videos into other editors.
Having to use component video for the PS3 is annoying but not the fault of Hauppauge. It is surprising in some ways that the XBox generally outputs an unencrypted HDMI stream.
Conclusion
When this device was not working I wanted to throw it out of the window; but once I got it running it was great. The bundled software is poor, documentation is thin, and it is just a little quirky, but the ability to capture your gaming output is worth a bit of hassle.