Forbes: The New Pinebook Pro Will Challenge Google Chromebooks For $199.

Can’t say that I’ve ever cared a lot about Rockchip’s SoCs but that actually sounds pretty damned tempting. The chipset should deliver a really nice bang for the buck. Very tempting indeed!

At least as far as 14″ laptops with anything weaker than a Core i7 and 32 GB of RAM can go, and for those you would have to shift the price tag over a decimal place. Let’s just say for $200: you have no right to complain about the horse power that a Cortex A72/A53 like that can deliver.

Intel’s chipsets targeting that $200 price point tend to struggle just playing my music and opening tabs without stuttering. In fact getting tired of that is the number one reason my Chromebook will likely get retirement this year or next year.

Hmm, I wonder for the hell of it how bad the Graphics driver is for the RK3399’s GPU. Last time I tried a Mali it was on an Exynos 5 and I was most unimpressed by the desktop graphics performance. But that was quite a few generations ago.

MSPoweruser: Bill Gates calls losing the smartphone market to Android his “greatest mistake”.

In times equally long past I would have guessed it smart phones became a thing: they’d probably run something derived from Windows CE or be a tad Palmy. Meanwhile what I would have wanted back then would probably had looked something like PDAs from Sharp and Nokia.
Today, be it for better or worse: Android is insanely successful. It is to mobile what Windows is to PC in just about every sense of the word. Except it grew up with underpinnings built around Linux and Java rather than DOS and C. It also has had the benefit of hindsight: as those creating it came from a world populated by Windows and Unix based systems.
Microsoft is doing pretty well today. Hell they’ve even made some nice software and services. But they are dead as the platform for mobile. Want to use Microsoft things on the go? Your phone runs probably Android. If not well it sure won’t be running a Microsoft operating system!
For about the last five years or so, I’ve kind of wondered if in about another thirty years: will Android eventually overtake Windows. Much as Microsoft pretty much became the gold standard as Unix vendors fiddled and burned.
One thing is for sure: the Linux kernel ain’t disappearing anytime soon 😜.

Thoughts on Oracle v Google stuff

Or more specifically after parsing this, thanks Noles ;).

Personally, I think under that context, Oracle will likely win.  I do not believe that a language /should/ be copyrighted but that they technically can be, think about how the types involved might mix for various copyrighted works.

I’ll be the first to admit that our system for copyright, patents, intellectual property, trademarks, and the like is a maze with more than a few turns just full of bullshit. But let’s think a moment: what is it really about? Money. It’s not about fostering innovation (patents) or controlling your property (oi). It’s about money. That’s it, simple.

Java is a product and a creative work, sufficient to be copyrighted. So is the GNU Compiler Collection and that last book you read.

What is the jist of copyright? Wikipedia as of this writing, defines it as a sub class of Intellectual Property that is generally “the right to copy, but also gives the copyright holder the right to be credited for the work, to determine who may adapt the work to other forms, who may perform the work, who may financially benefit from it, and other related rights”

Java, as it applies to Android, is not very different than any other language applied to other systems. The devil is in the details as they say. An Android application is a collection of Dalvik bytecode, native code, and resources running under the Dalvik virtual machine: and Android provides a runtime.

The implementation is not “Java” as Oracle ships it. In fact, as Microsoft’s various efforts to make a .NET dialect of C++ and projects like JRuby confirm: you can have a fair bit of abstraction between *concept* and implementation. Android developers typically write code in Java to an interface documented in Java. They could just as easily write in any language you can eventually wrangle into Dalvik bytecode! Android applications can and have been written in other JVM languages, and non JVM languages. The interface, well hell, many things in the .NET world are done in C# but you could just as easily use Visual Basic or F#. Really helps to be able to read C# though. Just like how on many systems, it helps to be able to read C and or C++.

That runtime part that Android applications depend on is quite “Java like”. Many intrinsic components are provided. C programmer’s should think of the stdio library. Because that is the sort of thing that has been “Copied” from “Java”. Essential programming interfaces, not implementations but interfaces (as far as Oracle holds right to). GNU implements C’s I/O library in their runtime. So does Microsoft in their own. They didn’t have to supply crap like printf() and puts(), they could’ve supplied their own pf() and IoConsolePutLStr() functions! Nether group owes the other jack shit over that. But hey, printf() and puts() are what are widely used: even in other languages!!!!

A lot of things in Androids runtime are also unique. For example, the parts that make it Android specific rather than able to compile under Oracles development kits for PC. The implementation is not copied but the conceptual interface, yes.

So that’s a problemo, how far does that level of control and ownership apply to derivatives? And what actually constitutes a derivative work?

Is copying the script of a movie scene for scene, line for line, and reshooting it for your own release and profit, an issue? Yeah. Obvious. Is doing a movie about a train, going to allow whoever owns copyright on some other movie with a train, to sue your ass for it? It shouldn’t unless it’s close enough to the former, or similarly having a legal problem of some other sort.

It’s more of a question like, should Matz and Oracle be able to sue the developers of JRuby for copyright infridgement: because it provides an even stronger resemblance to both Ruby’s and Java’s programming interfaces than Android’s runtime does to Java’s. Things like C, C++, C#, Common Lisp, Scheme, and EmcaScript are formally standardized to some extent. Things like Java, Python, Perl, Ruby, and Lua are not. Could Niklaus Wirth (or Apple) have sued Boreland over Delphi?

I do not feel that it is responsible to exercise such strong-arm aggression against users. It’s bad for Java, it’s bad for business, it’s bad for the continuing evolution of the industry, and it’s bad for those who have already invested.

And as far as I am concerned, enough programming languages “Borrow” stuff that applications of copyright the way Oracle must be seeking, or not feasible—and may very well fuck up language development for the next decade. Now we have to worry what the fuck we name our classes? What next, companies are going to start exerting control over _our_ works made with their tools?

Thanks Oracle, hope your stock plummets and your employees find good jobs with businesses that offer better job security.

Titanium Backup + Dropbox HOWTO

I set this up today at long last (and assume most of it will apply to Box as well). Couldn’t find much use on how to actually make it sync, so here is a picture!

Go into your Preferences -> Cloud sync settings; and enable dropbox. You can go into Dropbox Settings to control stuff like what to sync and where to sync, etc. Then go to the “Schedules” tab and voila!

I don’t see what is so schedule about that, and I seem to remember reading that you have to do sync’s manually rather than on a schedule but whatever. Couldn’t find crap on Google, so I took a screenie ^_^.

Curse you irony!

Just before I got up to pee, I was looking at Skinomi carbon fibre skin protectors and thinking, “Maybe later” after I get my new dock.

Guess what? My foot caught the fucking charging cord and slid my Prime off the desk, and me “Snap catching slash pushing” it against the desk to keep it from falling: just gave me a finger nail sized ding in the aluminum backplate.

*groan* nothing like denting $600 because it takes for fucking ever to get a dock shipped here: that extra batter life and keyboard really helps.

The Big Android Browser Test

There have been a couple of things on the net about various browsers, I’m sure, but certainly nothing comprehensive that I have found. Like wise, over @XDA in the Transformer forums at least, things tend to get muddled up after awhile from all the commentary.

So I thought I would install a shit load of browsers and do some testing! My test procedures can be found here.

It will take a while to do in my off hours and I doubt I’m going to get much done today, stuck home with the parental unit sick, so, I’m pretty much on butler call all day :-/. I’d rather be getting work done, like debugging yesterdays crap near interrupt free.

Thoughts on Android Game architecture revisited

A while back, I blogged some thoughts on game architecture for Android. In the time since, I’ve looked a bit at the Light Weight Java Game Library (LWJGL) and Maven, and am developing a bit of an interest in just how much one could push shader programs to maintain performance.

I’d rather like a Maven setup, and something that will support both PC systems and Android, and it seems that Maven even has an Android plugin :-). That got me to thinking about source tree architecture and the notion of sharing a library between a PC / Android game setup and how that might fit into a source tree. Then it hit me! Break it up into separate sub modules, and create a master project for each. Nice, easy, and simple. Also has a perk that it should work with any decent version control system, not just Git.

Hehehe.

Playing with linpack and power save modes on my prime

This is what I’m getting with basically just a few web pages open in Opera:

  • Performance mode: up to 90-125 MFLOPS. Usually in the one hundred and teens.
  • Balanced mode: averaging around 75-115 MFLOPS. Most often between 90-110.
  • Power Save mode: averaging around 50~70 MFLOPS.
Every test was in multithreaded. The first anandtech review of the Prime has a good stack of stuff in it, I’m just fiddling around out of curiosity, not profiling :-).On the TF101 which has no power save settings in the stock ROM, and I believe my notes are recorded here.

Argh, sometimes technology just makes me sick!

Recently, I updated my journal about the repairs I tried on Sunday, well yesterday I started breaking in a TF201 and working on the epoxy trick. No luck but hey, ICS is really freaking awesome and my Prime is solid, even if I still prefer the TF101’s build.

Now today, I just threw my hands up. I was jugging things getting data transferred and the like, well, I accidentally added an icon on my TF101’s home screen and instinctively tried to remove it with my finger, before I could realize which tablet I was touching. Guess what? I got the long tap event in ADWLauncher Ex but couldn’t drag it. I got the bloody touch event in the dead area of the screen, where haven’t been able to get touch invents without using the docks touch pad! But no dragging or sliding stuff would work and the touch events would only work every few taps…than suddenly the mother fucking thing just started to work PERFECTLY until it crashed toggling the screen. Now it works perfectly.

I guess maybe whatever component got jarred just a smidge loose to cause that, must have somehow got pressed back in without me trying to do it manually, well, trying successfully, since I couldn’t get it open again… :-/. All I know is that sometimes technology makes me fucking sick!!!

*kicks the air* I’m really glad it works (for now) but I hate it when stuff like this happens o/.

My summery of Android versions

  • 1.0.
    • September of 2008.
  • 1.1.
    • February of 2009.
    • General software refinements, which I’ll usually omit below.
  • 1.5 Cupcake.
    • April of 2009.
    • Third party (custom) keyboards are now possible.
    • We got widgets!
    • Bluetooth A2DP and AVRCP profiles (think stereo).
  • 1.6 Donut.
    • September 2009.
    • Voice I/O.
      • Voice input (Speach to Text).
      • Multi-lingual voice output (Text to Speech)
    • Apps can make their data available to search results.
    • Better support for gestures.
  • 2.0 – 2.1 Eclair.
    • 2.0 in October of 2009, 2.0.1 in December of 2009, and 2.1 in January of 2010.
    • Support for multiple accounts in sync.
    • Exchange account support for email.
    • Camera app sucks much less.
  • 2.2 – 2.2.3 Froyo.
    • 2.2 in May of 2010, 2.2.1 and 2.2. in January of 2011, 2.2.3 in November of 2011.
    • Dalvik VM gains Just In Time (JIT) compilation.
    • Exchange support becomes USEFUL.
    • USB and WiFi tethering. (Use your phone as a bridge between your laptop and your data plan.)
    • Now have the option to DISABLE mobile data.
    • Apps can now be installed to external memory (e.g. MicroSD card).
  • 2.3 – 2.3.7 Gingerbread.
    • 2.3 in December of 2010, 2.3.3 in February of 2011, 2.3.4 in ???, 2.5 in July of 2011, 2.3.6 in September of 2011, and 2.3.7 in ???.
    • Native support for SIP VoIP.
    • Selecting text to cut/copy/paste actually works.
    • Text input cursor can now be precisely positioned.
    • Ext4 replaces YAFFS(2) as standard file system.
    • Native support for more sensors; gyroscopes, barometers, etc.
    • NFC support.
  • 3.0 – 3.2.2 Honeycomb
    • 3.0 in February of 2011, 3.1 in May of 2011, 3.2 in July of 2011, 3.2.1 in September of 2011, 3.2.2 in August of 2011.
    • Notification bar moved from top of screen to bottom corner.
    • On screen software buttons (back, home, multi-task, menu, …) and the action bar.
    • View of recent apps can be snap shots (multi-task button) or existing icon view (long press physical home button).
    • Browser UI becomes more like Google Chrome.
    • Browser can now sync bookmarks with Google Chrome.
    • Apps are now commonly multi-pane, e.g. message list and message body on one screen.
    • More hardware acceleration.
    • Support for multi-core CPUs.
    • Encrypting user data.
    • USB devices now work as expected, e.g. flash drives, game pads.
    • Proper support for Bluetooth keyboards, gamepads, etc.
    • Stock launcher now allows widgets to be resized.
    • WiFi performance can be maintained when screen is off (WiFi locking).
    • Apps designed for small screens can be zoomed or stretched to fit.
      • this Android 2.2 feature is a really good thing and makes many reviewer’s complaints about Honeycomb less of a big deal for normal people.
    • Screenshots (or was this just a TF101 thang?).
      • Previously required a custom ROM like Cyanogen Mod.
    • Pasting integrated with 2.3.x selection UI.
  • 4.0.1 – Ice Cream Sandwich.
    • 4.0.1 in October of 2011, 4.0.2 in November of 2011, 4.0.3 in December of 2011.
    • Small screens get traditional (1.0-2.3.x) UI, large screens get tablet style (3.x) UI from Honeycomb.
    • On screen software buttons (from 3.x) now work on phones.
    • Stock launcher catches up to common features of custom launchers.
    • Access apps from lock screen.
      • Previously required custom ROM/UI (e.g. Sense; Cyanogen Mod).
    • Unlock your phone by taking a picture of your face.
    • New Roboto font.
    • Can now monitor data usage without requiring third party apps (or custom ROMs).
    • Camera app sucks less.
    • Basic photo-editing.
    • Much stronger NFC integration, alternative to Bluetooth data transfer.
    • Yet more work on hardware acceleration.
    • WiFi Direct, a form of Ad-hoc WiFi networking and bridging.