Learn Python On A Smartphone

You can learn to code Python on an iPhone or Android relatively easily. There are lots of classes and tutorials on where to start, but all you really need is a Smartphone and a good search engine to get started. I like to tell people that there is no singular more important/useful thing that you can learn other than to speak and read/write. You’ll never look back on your life and say, “Boy, I wish I hadn’t learned this incredibly useful skill.” It may seem crazy that you can learn Python on an iPhone, but it’s actually really simple, and anyone can do it.

  • Start with the right peripherals. Specifically invest in an Apple TV or Chromecast and a Bluetooth keyboard. You’re going to thank me later when your thumbs aren’t falling off.
  • Next, download something like Python 2.7 for iOS ($1.99). It’s not quite as full featured as the full blown thing, but it’s a great place to get your feet wet as you’re learning, and doesn’t require Internet access, which is great when you’re on an airplane our out in nature and still want to be learning/practicing.
  • If you want an eBook that you can read on the road without lugging a heavy book along with you you can try Introduction to Python Programming ($9.99 on Kindle). There is a free Kindle app for the iPhone too, which is even better.
  • Once you feel a little more comfortable programming you can shift to getting yourself a FREE Amazon EC2 instance. Yes, Amazon has a free tier to get you started. They want you to like and use their products and what better way to entice you than to give it to you for free, right? You’ll want an Ubuntu install for this, because it works really well with Python.
  • Next you’ll download and install the Coda App ($24.99) or an equivalent SSH client. This will allow you to connect to your EC2 computer in the cloud. Just copy the private key and use that with the username provided, which will be “ubuntu” and you should be off to the races. I recommend you also run the command “screen” upon login so that if you get disconnected you can just type “screen -r” and recover the session without losing anything. This is a key bullet because it will allow you to build a website too if you want.
  • Then you can use your favorite terminal editor. I prefer vi, which has a steep learning curve but is very lightweight and powerful. Here’s a great tutorial on vi. If that’s too complicated pico is a nice option.

If you’ve ever wanted to pick up a new skill, this is a very inexpensive way to do it. I always recommend starting with something simple that you need to be done repetitively. A simple program that alerts you when something happens, or something that allows you to write something down in a format that’s easy to retrieve are both good examples of things you might need to be done on a regular basis. Start simple and start with something you need and it’ll be a lot more practical.

This is one of the many ways in which smartphones are helping to democratize business. Even someone with just a smartphone can start a business, learn to program, or generally produce great content. I hope this has been helpful! Good luck!

Writing Code on a Phone

Learning to program on a phone is actually easier than you might think. You just need the correct peripherals and the right software to help you accomplish the goal. One such software apps is the Coda by Panic, Inc.. It has all of the benefits of a normal SSH client but also helps create SSH keys, and gives you easy access to multiple sites. Combined with screen on the remote host and you can easily pump out code on a phone.

You can learn Python, or Java or Ruby or whatever you fancy. Coda also has a nice feature where you can preview your code before you bother uploading it. Combined with the Transmit application you can easily sync between your phone and the remote server. You can use the remote machine as a file store, or a backup, or as a test server, etc. All you need is a couple of apps and the determination to learn how to develop on a command line and you’ve got everything you need!

I’m always amazed when people don’t take advantage of things like free EC2 accounts (as an example). But if you are just learning how to program, and want to get started, you don’t need anything more than a free EC2 account and an app like Coda to get started. A quick note on EC2 though – EC2 is free to use as long as you don’t use it a lot (lots of CPU usage, or disc usage, or bandwidth, etc), so if you’re going to start doing something significant, you’ll want to think about your options a bit more.

Like always, I think that trying to program or do any meaningful tasks without a full keyboard is slow and tedious, so make sure you have a Bluetooth keyboard. But just today, I wrote several small programs, compiled Java, set up some aliases, copied code around and many other administrative tasks all from my phone. It’s always going to be easier to do it on your desktop, but we’re getting closer and closer to a world where you won’t miss your laptop one bit!

Identify Radio Signals On The Road

When you’re traveling it can often be difficult to know exactly whether it’s your fault you have no signal or if there is simply no cell towers or Wifis within range. There’s a very cool little app called Architecture of Radio that can help.

You can’t see in the picture, but as you turn you can see the various radio towers, their relative signal strength, approximate distance, who owns them and various other facts. You can even see the geo-stationary satellites in orbit.

There are some places I go that have very poor signals, and it was easy to see which carriers were close by and which ones would have a better signal strength, simply by turning around. It’s a fun party trick, but also very useful for knowing where you need to head to get a stronger signal.

Workflows

One of the more common complaints I hear about trying to use the phone is that it’s slow. These people don’t necessarily mean processor speed, or refresh speed, or anything related to hardware specs per se, for the most part. I think a lot of people feel that the modern cell phone is useful but slow because the workflow is tedious.

Let’s take the example of editing a Word Document hosted on your computer but saved through Dropbox. Without having to do anything special, it is synced to your local computer. Let’s walk through the two workflows of editing a Word Document. Computer first – and let’s use Windows 10 as an example:

  • Mouse over to your Windows Icon start menu button.
  • Click “File Explorer”
  • Click “Dropbox” and find the file in question
  • Double click the file.
  • Edit the file
  • Save or Save-As if you want to save a new version for revision control instead.

On smart phones, it’s a bit more annoying:

  • Click on the Dropbox icon to launch Dropbox and wait a moment.
  • Find the file.
  • Tap the file and wait for it to download, unless you’ve already selected it to be stored locally.
  • Click the button to edit it.
  • Select Word to open it (there’s no option to remember)
  • Wait for Word to download the file (despite the fact that it might be local to Dropbox) and open the document inside of Word
  • Technically you can edit directly at this point, but Word encourages you to select the button to put it into mobile friendly mode – and they should, because it’s a much easier mode to edit in. The problem being that is another step, and it lacks pagination and pagecount information which can be useful. It’s also got quirks where the cursor goes below the navigation bar at the bottom in landscape mode.
  • At this point you don’t have many options, because auto-save is enabled. Normally I’d say this is a great thing, but if you need to do revision control you don’t really have an option to “save-as”. You’re going to be saving over the original document, unless you took an initial step to make a copy.

I fully realize there are ways around some of this, but ironically, this is one of the best flows that I’ve found. The Dropbox/Word integration workflow is straightforward, the functionality is largely there, and despite the form factor, you can do what you want. I’d even say the functionality nearly mirrors the laptop/desktop environment. But the differences in workflow are substantially different even in this relatively good use case. It’s worthy of noting that most workflows are not nearly this nice either, which I’ll talk about in depth later.

As smartphone app developers think through the design, they should do their best to force the fewest clicks possible, and make the design as intuitive and easy to control as possible, because anything other than that is a time-waster and discourages use. If people aren’t going to use the app, the developers have wasted a lot of time building it – they might as well do it correctly, right?