Categories
Uncategorized

Call Me Crazy, But I Think NextMicrosoftCEO.com is Waaaaaay Off

Here’s the current voting status at NextMicrosoftCEO.com, a site where you can throw in your two cents and vote for who you think will be the next leader of The Empire:

next microsoft ceo

As of this writing, Valve’s Gabe Newell is in the lead, followed by Richard Stallman, then Linus Torvalds. No sign of former-Microsoftie-turned-Nokia CEO-turned back to Microsoftie Stephen Elop or that guy from Ford.

Categories
Uncategorized

“Shamsung” Strikes Again (or: The Galaxy Note 3 is Programmed to “Game” Benchmarking Apps)

shamsung

When the reviewers at Ars Technica noticed that Samsung’s Galaxy Note 3 “phablet” scored strikingly better than LG’s G2, despite having the exact same processor — a 2.3 GHz Snapdragon 800 processor — they decided to dig a little deeper. Their conclusion:

After a good bit of sleuthing, we can confidently say that Samsung appears to be artificially boosting the US Note 3’s benchmark scores with a special, high-power CPU mode that kicks in when the device runs a large number of popular benchmarking apps.

This isn’t the first time that Samsung has been caught artificially boosting benchmark results, but Ars Technica reports that this is the first time it’s been observed in a Samsung device shipped to the U.S.. Samsung defends the practice by saying that they boost performance for other apps as well.

In their investigation, Ars Technica did a fair bit of software disassembly and found the code that was actually boosting the speed, shown below. Remember that names and labels often get mangled in the compilation process, and that in the decompilation process, one often has to specify new names and labels, so while the logic of the code will be the same as the original source, the variable and constant names might not be:

{
BOARD_PLATFORM = SystemProperties.get("ro.board.platform");
mToken = 0;
PACKAGES_FOR_LCD_FRAME_RATE_ADJUSTMENT = new PackageInfo[0];
isEngBinary = "eng".equals(Build.TYPE);
PackageInfo[] arrayOfPackageInfo = new PackageInfo[26];
arrayOfPackageInfo[0] = new PackageInfo("com.aurorasoftworks.quadrant.ui.standard", false);
arrayOfPackageInfo[1] = new PackageInfo("com.aurorasoftworks.quadrant.ui.advanced", false);
arrayOfPackageInfo[2] = new PackageInfo("com.aurorasoftworks.quadrant.ui.professional", false);
arrayOfPackageInfo[3] = new PackageInfo("com.redlicense.benchmark.sqlite", false);
arrayOfPackageInfo[4] = new PackageInfo("com.antutu.ABenchMark", false);
arrayOfPackageInfo[5] = new PackageInfo("com.greenecomputing.linpack", false);
arrayOfPackageInfo[6] = new PackageInfo("com.greenecomputing.linpackpro", false);
arrayOfPackageInfo[7] = new PackageInfo("com.glbenchmark.glbenchmark27", false);
arrayOfPackageInfo[8] = new PackageInfo("com.glbenchmark.glbenchmark25", false);
arrayOfPackageInfo[9] = new PackageInfo("com.glbenchmark.glbenchmark21", false);
arrayOfPackageInfo[10] = new PackageInfo("ca.primatelabs.geekbench2", false);
arrayOfPackageInfo[11] = new PackageInfo("com.eembc.coremark", false);
arrayOfPackageInfo[12] = new PackageInfo("com.flexycore.caffeinemark", false);
arrayOfPackageInfo[13] = new PackageInfo("eu.chainfire.cfbench", false);
arrayOfPackageInfo[14] = new PackageInfo("gr.androiddev.BenchmarkPi", false);
arrayOfPackageInfo[15] = new PackageInfo("com.smartbench.twelve", false);
arrayOfPackageInfo[16] = new PackageInfo("com.passmark.pt_mobile", false);
arrayOfPackageInfo[17] = new PackageInfo("se.nena.nenamark2", false);
arrayOfPackageInfo[18] = new PackageInfo("com.samsung.benchmarks", false);
arrayOfPackageInfo[19] = new PackageInfo("com.samsung.benchmarks:db", false);
arrayOfPackageInfo[20] = new PackageInfo("com.samsung.benchmarks:es1", false);
arrayOfPackageInfo[21] = new PackageInfo("com.samsung.benchmarks:es2", false);
arrayOfPackageInfo[22] = new PackageInfo("com.samsung.benchmarks:g2d", false);
arrayOfPackageInfo[23] = new PackageInfo("com.samsung.benchmarks:fs", false);
arrayOfPackageInfo[24] = new PackageInfo("com.samsung.benchmarks:ks", false);
arrayOfPackageInfo[25] = new PackageInfo("com.samsung.benchmarks:cpu", false);
PACKAGES_FOR_BOOST_ALL_ADJUSTMENT = arrayOfPackageInfo;
mCameraCPUBooster = null;
mCameraCPUCoreNumBooster = null;
mCPUFrequencyTable = null;
mCPUCoreTable = null;
mRotationCPUCoreNumBooster = null;
mRotationGPUBooster = null;
}

The contents of the array arrayOfPackageInfo are the identifiers of well-known and often-used apps for benchmarking the performance of Android devices. The end result of this check is that it’s used by other code to alter CPU behaviour so that:

  • If an app that has any one of these identifiers is running, the Note 3 stays in a mode with all 4 of its CPU cores active and running at full-speed 2.3 GHz mode. This special behaviour yields excellent benchmark results.
  • If no such app is running, the Note 3 follows its default behaviour, which is to switch to a one-core-only energy-saving mode, with that single core running at 300 MHz. This normal behaviour extends battery life to something reasonable.

With such artificial boosting, the Note 3 gets impressive results. But by compiling Geekbench under a different name and thereby bypassing identification by the code above, Ars Technica were able to get more honest results:

samsung note 3 geekbench

Ars Technica astutely note:

The ironic thing is that even with the benchmark booster disabled, the Note 3 still comes out faster than the G2 in this test. If the intent behind the boosting was simply to ensure that the Note 3 came out ahead in the benchmark race, it doesn’t appear to have been necessary in the first place.

It’s a little crass, it’s a little desperate, and it’s…well, so, so Samgsung-y. That’s a real shame, because they do produce good stuff (I myself count a Galaxy S3 and a number of Samsung monitors among my devices).

Categories
Uncategorized

A Speed Comparison Test of Every iPhone Ever Made

iphone speed comparison test

Here’s something interesting for all you iPhone users and developers: a video featuring a side-by-side comparison of stock, freshly-restored, non jailbroken iPhones ranging from the newest and most powerful 5S, the also-new 5C, and every iPhone dating back to the “2G” (the colloquial name for the original iPhone released back in 2007):

One valuable take-away from this video: you don’t have to upgrade every time Apple release a new iPhone, as the difference isn’t all that dramatic from one version to the next. Unless you absolutely need a feature in the latest model, you may want to follow my strategy of upgrading every other or even every third model — that’s when you’ll see the dramatic differences.

Categories
Uncategorized

iOS 7 Developer Tutorial-a-palooza: iOS 7 Sampler, a UIMotionEffect Tutorial, 3 UIKit Dynamics Tutorials, 3 Sprite Kit Tutorials, and a Text Kit Tutorial

ios 7 developmentWith Apple moving over 9 million phones on the iPhone 5C / 5S opening weekend, all pre-loaded with iOS 7, and with iOS 7 adoption at 60% before last weekend, it’s a good time to start working on your iOS 7 coding chops. I’m working on my own tutorials for iOS 7 development, which will appear shortly in my iOS Fortnightly series of tutorial articles. In the meantime, I can tide you over with all sorts of tutorials and examples on iOS 7 development from all over the web…

iOS 7 Sampler: An App That Demos and Provides Code Samples for New features in iOS 7

iOS 7 sampler

A GitHub user going by the handle “shu223” has put together an app — iOS7 Sampler, which demonstrates a good number of features that premiere in the just-released version of iOS. Among the features for which there are demos and code are:

  • Dynamic behaviours
  • Speech synthesis
  • Custom transitions
  • 3D maps
  • Smile detection in images
  • Image filters
  • Sprite Kit
  • Map directions
  • Parallax motion effects
  • Multipeer connectivity
  • AirDrop, post to Flickr/Vimeo, add to reading list
  • QR code generator
  • Static map snapshots

I’m definitely downloading this one. Get it here!

Ash Furrow’s Introduction to UIMotionEffect and Introduction to UIKit Dynamics

uimotionEffect

If you’re interested in getting the “parallax” effect that you can see on iOS 7’s home screens — and which have been making a few users seasick — check out Teehan+Lax developer Ash Furrow’s Introduction to UIMotionEffect.

If dynamic optical effects isn’t your thing, perhaps adding a 2D physics engine to your UI is, in which case you’ll want to look at Ash’s other article, Introduction to UIKit Dynamics.

If the name “Ash Furrow” sounds familiar, it might be because I pointed to his iOS programming tutorial ebook, Your First iOS App, in an article here in Global Nerdy back in July.

Using UIKit Dynamics to Make a Simple “Pong” App

uikit pong

Over at the blog of renowned programming teachers Big Nerd Ranch, there’s another article about using UIKit Dynamics to add 2D physics to a user interface, this time with a rudimentary “pong” app.

Loads of iOS 7 Development Tutorials at Ray Wenderlich

text kit - MixedStyles

The latest article at Ray Wenderlich’s site is an introduction to Text Kit, the new framework which brings a whole new level of easy control over typography to iOS. Given that the new look introduced in iOS 7 emphasizes typography heavily — something with which this old Windows Phone Champ is quite familiar — sooner or later, you’re going to make use of Text Kit, so start learning it now.

If you’re looking to write 2D games or 2D graphic-intensive apps, you’ll want to pick up Sprite Kit. Luckily, there are already three tutorials at Ray Wenderlich:

Last but not least, there’s a UIKit Dynamics tutorial for some real physics action sin your UIs.

ios 7 by tutorials

The iOS 7 articles at Ray Wenderlich are condensed versions of more in-depth chapters within their new book, iOS 7 by Tutorials, which features 25 chapters and 800 pages of material on new goodies in iOS 7. At a mere $54, it’s a good investment in your development career.

 

Categories
Uncategorized

Mobile App Design Roundup

mobile design roundup

App development is more than just writing code – design is just as important. Here’s a collection of links to some recent articles on mobile design, most of which date from this year (mobile’s such a moving target that design articles on the topic tend to date rather quickly). Enjoy!

Categories
Uncategorized

Computer Graphics Pun of the Day

viva lo resolution

Categories
Uncategorized

Grand and Second Prizes

grand and second prizes

Seen at BarCamp Tampa. The obvious joke is that third prize is two Nexus 7s.