IPad Pro: First Week Impressions

I don't currently have a personal laptop. I've been vaguely using my work one for personal stuff and that's been getting under my skin, so I've been on the market for a new one. 

Then, Apple released the iPad Pro. When I thought about what my personal needs for a laptop were (mail, web, photos, movies) it really seemed to fit the bill. But I was pretty skeptical that I could actually fully run my life on it.  Well, as a bit of an experiment (and also because Andy Ihnatko said that it was the "best computer he'd ever bought") I decided to pull the trigger. Here lie my impressions after the first week with it:

My Profile 

(You need to have my background to gauge if my feelings on the iPad Pro are relevant to your life): 

I am an extremely heavy computer user. Technical, compsci background, terminal user, occasional programmer, heavy MS Office user. I grew up building my own systems, and used to entertain myself building the Linux kernel from source, not gaming. I run multiple nodes in the cloud for various tasks. Generally, I demand a LOT of my computers. 

At one stage I had 9 different macs in my house, all running, all actually doing things. One year in college my desktop computer was 2 mac minis, one Xserve, and a Mac Pro...6 screens, 4 machines, one keyboard. Since I now work in Finance, I'm by no means doing day-to-day deep level comp-sci anything, but my expectations of what my computers should be able to do haven't really changed.

I'll use an analogy from my dad, who is an electrical engineer and has been rebuilding vintage LandRovers by hand for at least the last 40 years: He may not drive a Land Rover day to day, but he still expects every car he's in to perform like one - this is a man who would actually contemplate fording a river in a Toyota Camry. 

I'm the same with my computers: I expect them to be bullet-proof, performant, and powerful. 

Findings Overview:

First of all, let me say that I have had my iPad Pro + Logitech Create keyboard combo for a week and I LOVE it. I've been using it FAR more than my MacBook Pro, and getting far more done with it. Work, AND fun / browsing / video. 

Now, that said, the iPad was never really meant to be a CREATION device, it was a no-brainier for CONSUMPTION (i.e. Watching videos)  but creation of content and actually getting work done with it has always felt very shoe-horned into it, never quite a good fit. 

Apple in recent years, with the drop in iPad sales, has really been trying to fix this:

  • iOS 9's much improved hardware keyboard support was the first step,
  • the multi-tasking features were the second,
  • and the iPad Pro's size + power together were the third.

Have they been successful? If your bar is "is this better for creating content and doing work than previous iPads and iOS'es?" Then yes, they have definitely succeeded. But, if the bar is instead looking for a polished, no-rough-edges, "it-just-works" sort of experience, then we're going to have to see some serious polishing in iOS 10 to get there. 

Don't get me wrong: the iPad Pro with iOS 9 is a diamond, it's just currently a diamond that's still sitting in bauxite, needs to be mined, cut and polished before it actually resembles a diamond. Apple is DEFINITELY on the right track, but they better get those grinding saws spinning. 

I'm very interested in what we're going to see from iOS 10's announcements at WWDC, and I'm pretty sure that a bunch of the concerns I have below are going to be right in the cross-hairs (frankly, after using the iPad Pro with a keyboard for five minutes, any one of their product managers will probably have very similar feedback - these are glaring issues.)

Note: My entire use of the iPad Pro is with a keyboard attached to it so my entire review is based on the use case of using it like a simplified laptop, that just happens to have a touch screen, with a keyboard attached. 

No device can ever really function as a work or content creation device unless it plays nicely with a keyboard, hence my focus on this aspect of it. And, once you have a keyboard attached, certain things are just ONLY logical to do through the keyboard and you have to be willing to add keyboard functionality even if touch is your primary OS input. 

I am hyper obsessed with productivity, and one of the best ways to be productive when doing any task is to move your hands as little as possible. Hence, you'll see a bunch of diatribes in this about lack of keyboard functionality. If your hands are on the keyboard already, the easiest and fastest way to do something should be a keyboard shortcut, but far too often in iOS9 you're forced to move your hands up to the screen for things that have been no-brainer keyboard actions for years in "full" OSes. 

Pro's: What is working well

  • Simplicity and focus: There is something to be said for using iOS as your main OS. It's designed to do one thing well at a time; and at a stretch, two things, with a video overlay if you really want to do three things. However, primarily everything is geared towards single-tasking. Now, don't call me a heretic for saying this, but in the world we're in where multi-tasking is glorified, I've gotten more work done on my iPad than I have on my computer because, when I'm on the iPad there AREN'T multiple windows and apps and pop-ups and alerts. I can get down to business and actually immerse myself in a task and get it done. So it turns out that iOS is perfect for single-tasking, and single-tasking is perfect for getting things done.
  • Keyboard autocorrect: The autocorrect engine in iOS is MUCH better than the one in OS X. I find that I can type a LOT faster on the iPad as long as I just "trust" it to clean things up for me. Yes, occasionally I get a bizarre correction, because it has the ability to correct entire phrases, not just typos, but by-and-large, even including the time I now take to re-read things, my output per minute on the iPad is probably ~25%-50% more than on OS X.
  • Video overlay: Being in a video app, watching a movie, switching to another app, and just having the movie automagically pop-out and float into a smaller window is just such brilliant UX, I don't know why it hasn't been around on full-fledge OS'es forever. Performance is still stellar with this happening (no-doubt because of the dedicated MP4 hardware the iPad has). It just works, which is what Apple is known for
  • Performance: This thing runs smooth as butter. Yes, I'm running beta 6 of iOS 9.3 so there are a couple of visual glitches every now and then, but it feels snappier, more usable, and more agile than the Core i7, 16GB of RAM MacBook Pro that I have from work. Granted, when that machine is running, it's doing a hundred things at the same time, not least of which is that it's running a full copy of Windows 10 in Parallels (see my diatribe on needing Windows Excel below); so there's reason for it to feel a little bogged down. But, my point is, where should one draw the line between actual power, and usable power; or maybe the line should be actual power and PERCEIVED power? Because from the usability point of view, from the snappiness of the apps point of view; from the wake from sleep point of view...the iPad seems to be winning 99 times out of a hundred.
  • Battery Life: It's more than enough to get through a full work day. I don't have "battery anxiety" at all. If I happened to accidentally leave the house without a charger for the day, I probably wouldn't go back to fetch it. That said, the measly charger it's packaged with REALLY struggles to keep up with it's power consumption. I.e. If it's plugged in and you're using it with the brightness up, then the power level essentially stays static. To actually CHARGE the battery you need to put it to sleep. So a larger power supply would be great bundled in the box

Cons: What needs fixing

  • Spotlight: Alt-tabbing between apps is fantastic, BUT, what if the app you want isn't in the last 9 apps used? Then it's not in the alt-tab menu. Now your options are: (1) double-tap the home button and then swipe through all the open apps until you find it (that take hands off keyboard) or (2) go back to the home screen and poke around for it (hands off keyboard) or finally (3) spotlight (cmd-space), which would be GREAT if it worked like spotlight on the Mac by opening a small searchbox in front of what you're working on and showing you results right there. INSTEAD opening spotlight EXITS the app you're in, boots you to the home screen, runs an animation of icons flying in, gausian blurs them, doesn't cache keyboard strokes so you can't type at all, THEN only lets you type for your search, so you're sat waiting for what seams like hours before you can actually get to what you were searching for. This is a MASSIVE slow down in day to day workflow. Needs to be fixed ASAP. For example:
  • Keyboard focus: When alt-tabbing between two apps side by side on the screen, the keyboard focus doesn't always follow the active application. That's madness! For example: Have Safari open on left, and messages open on right. When Safari is dominant, keyboard works in safari to do things like scroll or for keyboard shortcut capture. Then you get a message from a friend. You cmd-tab over to Messages on the right of the screen. First off, the text box doesn't automatically get focus, instead you have to lift your hands from the keyboard and press your finger there to get it there. You type your response and hit return to send it. Then you cmd-tab back to safari to keep doing stuff. You hit the down arrow to scroll, and nothing happens. Why? The Messages text box STILL has keyboard focus even though you have technically cmd-tabbed into another application. That would NEVER happen in Max OS 7, let alone any other OS made this Century.
  • Keyboard shortcuts: The iPad Pro is large enough to have a keyboard, but the OS doesn't have many of the standard keyboard shortcuts that have been around in OS'es for decades. There are SOME keyboard shortcuts, and many apps are adding more, but right now we're stuck in a weird no-man's land of having just enough shortcuts work for you to WANT all shortcuts you know to work, but only some of them working. If anything, that's worse than having no shortcuts at all. It's like we're in the uncanny valley of shortcuts. Special mention goes here to excel. I'm going to admit that as an ex-banker, and admitted excel junky I have NEVER used Mac excel specifically because of the keyboard shortcuts (or lack thereof). I tell stories of training on excel back in the day when we would literally have the mouse unplugged from the computer to get over the urge to use it. And the great thing about Windows excel is that it is 200% functional without the mouse. I say 200% because you are AT LEAST 200% faster when you stop using the mouse. So, as much as this is a castigation of Apple for not having more keyboard shortcuts, this is also a MASSIVE castigation of MSFT for not standardizing keyboard shortcuts across platforms. If you want your app to actually be useful on multiple platforms, it has to have the same UI. So far you have standardized a lot of the UI, but you seem to have forgotten what UI stands for - it stands for User Interface, and the keyboard is the primary User Interface for any of you millions of power-users and enterprise users (where the money comes from) so please standardize ASAP 
  • PDF Export please: One of the hallmarks of OS X is that essentially anything can always be output as a PDF (through the print dialogue.) Without going into too many details about OS X internals, the way that OS X actually draws the screen and the windows on it is Screen Postscript - I.e. The precursor to PDF (originally- this has somewhat changed as we've shifted to Core Graphics and more GPU accelerated stuff) But the bottom line is that, because of that, PDF has always been very closely tied into OS X and it's always been very easy to create PDFs in Mac apps. That is NOT the case in iOS. In fact, you have to pay for apps and there doesn't seem to be a good one to do it. I'd like to see a PDF option anywhere you can get a print option in the OS, just like in OSX
  • File drag and drop or some sort of Finder: and/or some sort of finder-like sheet that can be pulled up anywhere: If you want to just be able to drag a file from one generic place into an email window, or quickly grab something from the filesystem to open in the app you're in, then you're out of luck. Now that many apps include Dropbox connectivity, you can essentially use Dropbox a the "finder" for iOS, but again we're in the awkward uncanny valley issue where not all apps support it and so it's nightmarishly annoying when one doesn't. Shouldn't file handling be a core OS offering?
  • Split screen app search: When you drag an app in from the right of the screen to do dual-windows, there seems to be NO rhyme or reason as to the order of icons you are presented with in the list of apps you can use. Is it guessing what you want? Is this the last used Apps? Is this randomized? I have no idea. But there's no quick way to find the app that you want. What they should have is: drag in from right, show ~5 last used apps, and a SPOTLIGHT SEARCH BAR to search for any other ones.
  • Multi-app workflows: Any time you have a workflow that involves multiple documents in multiple apps, you're probably still going to find things a little bit fiddly. Yes, my MBP runs two 27" monitors and I can have multiple app Windows in them and drag and drop across them. But, if truth be told, I'm only ever REALLY doing work in two of those apps at a time. So having two apps open at the same time on my iPad SHOULD get me to the same level of productivity, but, because of the weird touch-screen eccentricities and bizarre file-system workarounds we have to deal with, the process just doesn't ever feel fluid. And this is one of the things where I don't think 6 months of muscle-memory is going to fix it. There need to be some fundamental changes (not least of which is keyboard shortcuts above) that are needed to fix this. One of the most glaring things is the classic example of not being able to have two windows of the same app open at the same time.
  • Escape Key: This is a nit with the Logitech Create and the Apple Smart Keyboard, but neither of them have an ESC key. You wouldn't realize how much you use it until it's gone...and worse, on these keyboards it's\ been replaced with the home hey, a key that CLOSES THE APPLICATION YOU'RE IN! The number of times I've been trying to hit escape to exit the URL box in Safari and landed at the home screen is infuriating!

Bottom Line

None of the rough edges I've described are "fundamental" - meaning I don't think they require a full-on rethink of the OS. Rather, they just require some iteration, time, and thought. Apple V1 products are almost never fantastic. I would think of iOS9 and the iPad Pro as their V1 of a "work-centric" iPad. They have a lot of big things right, but many many small things wrong. 

I'm expecting that iOS 10 (to be announce at WWDC) will clear up a LOT of the issues I've brought up. For now, I'm getting a lot of work done (along with all my other computer use, surfing, and movie-watching) on my iPad. But I'm looking forward to doing even more, and doing it more seamlessly, with iOS 10.

 

Alluxio: In memory sql compute layer kicking Spark ass?

Commenting on Matt Asay's article about Alluxio on ReadWrite here

There's a constant strive to increase spead, reduce latency, and increase data scale for the compute layer of our modern distributed stacks.

Traditionally there's a trade-off here: Ceteris parabis, you can either have scale, or speed, but not both.

To increase both scale and speed, you need to change something, like throwing more hardware at the problem, or constraining the problem:

Latency vs Data Scale

In the real world, latency scales WAY faster than data scale. Or in other words, performance falls off a cliff at each storage tier threshold: going from CPU Cache to Memory, Memory to Disk, Disk to Network (Remote Node), Remote Node to Remote Data Center. Each tier is thousands of times slower than the one before. It takes some real smarts to avoid these cliffs, or intelligently work around. This is a highly complicated data-locality problem

Hadoop brought scale, but we quickly realized it was shockingly slow on the compute side. Only really good for batch workloads. Also, it was tough to use (not SQL)

Along came Hbase solving the SQL problem, but if anything it was slower.

Finally, along came a little company called DataStax with Spark, promising to speed up computation of these large distributed datasets, specifically with machine learning in mind.

Well, given that it was still a "generic" platform, they couldn't optimize it for the types of data or workloads they knew to expect. Hence they couldn't squeeze every last bit of performance out of it.

In answer to this, there have been a bunch of purpose built systems that have managed to get "real-time" performance off of distributed systems with large data sets, even when pulling off of spinning disk. One of the most well known (if not actually available to the public) is Scuba at Facebook. Originally developed for their user analytics, they constrained the types of queries (and hence computations) that could be applied to the data, and also constrained it to assume everything is a time-series (as it is with user click-streams). Using these constraints, they were able to get extremely impressive performance across vast data-sets. See Lior Abrams' fantastic original blog post here:

Data Diving with Scuba

As an aside - the Scuba team went on to start the company Interana where they're trying (and succeeding) to build a version of this analytics engine for companies other than Facebook.

Now onto Alluxio - doing a little more research, it doesn't look like they're actually breaking the laws of physics. I.e. They aren't fundamentally moving that real-world data processing line down. What they are in fact doing is writing spark to be extremely optimized for in-memory; and then doing some much more intelligent data-locality work to keep caches and memory filled.

Is it a step in the right direction? Yes. Is it 100x faster than Spark as the click bait title would suggest? No, it's actually only 30x faster, in certain workloads, and the author apparently can't do math (it's actually 100x faster than HBase - not a hard task).

Great to see things moving in the right direction here, but this isn't some panacea breakthrough as the article would herald.

Mutterings on Sh!t: Polishing Turds into Biofuel

(C) Spectrum Solutions / MSU. Me getting fat is an easy process; getting bacteria to get fat is somewhat more complex

Whenever I've read articles on people using biomass for biofuel there's always some paragraph in there about how the cost of biomass and the process makes the whole system somehow not cost effective vs. fossil fuels. This has never sat right with me. Aren't there literally rivers of biomass beneath every single city on earth? Aren't we currently PAYING to have these treated and swept away? Isn't the veritable "horn of plenty" of biomass right beneath our feet? How is it possible that fossil fuels can be cheaper than a process that uses something that's FREE as an input?

Well, it turns out that I don't know everything there is to know about cleantech. With no background in biology, or chemistry, or poop, for that matter, it seems that I have overlooked a crucial issue with using waste-water and turning it into bio-diesel:

It's really easy to make alcohol from sugar-rich substances (like corn) and then mix that with other oils to create diesel. This is the method used by most ethanol-fuel co-generation plants. But the process of having to add oils and mix it into something suitable for a typical internal combustion engine really screws up the economics of the equation.

Secondly, there isn't enough sugar-content in human wastewater for typical bacteria to even make the ethanol you want, so you're stuck having to use uxpensive feedstock (like grain), which further ruins the economics.

So, being able to actually create diesel without the need for those other oils, AND, being able to do so with a free feedstock like human waste could turn this industry on its head.

These folks have figured out how to breed yeast and bacteria derivatives that create fats, that through a few steps of esterification can be directly turned into bio-diesel.

They have also greatly reduced the amount of sugars needed in the process. Meaning that most of the feedstock can be human waste, with only a small amount of other feedstock (e.g. use grain from breweries) being used to top up the carbohydrate levels.

This is extremely promising work.

Obviously: "it's not yet at industrial scale" & "we can't compete with $2 per gallow diesel yet" but let's suspend our disbelief for a second, shall we, and celebrate the proverbial polishing of the turd.

Ars Technica: Powerful Crap

Quantum Uncertainty

One of D-Wave's early chips

One of D-Wave's early chips

It turns out it's a little tough to work out whether or not D-Wave's quantum computer is actually doing anything, well, quantum. Fantastic write-up here from Ars Technica, but the short version:

D-Wave's method of doing quantum computing makes it engineering-feasible, and somewhat scalable, but tough to tell if it's actually doing anything quantum-like. Testing if any "spooky-action-at-a-distance" is actually happening inside the system can't really be done, and whether or not quantum tunneling is actually happening only really comes down to whether it PERFORMS better than a classical computer at solving certain tasks that should be faster to perform on a quantum computer. 

D-Wave, NASA, and Google's most recent paper and press releases show that it is performing better than the worst classical algorithm, but it's not performing better than the best. So it's a point in the right direction, but not an entirely definitive smoking gun.

Thoroughly mind-bending reading below:

http://arstechnica.com/science/2016/02/is-d-waves-quantum-processor-really-10⁸-times-faster-than-a-normal-computer/