Just recently we realized that, right here at Oranged Software, we’ve been using our iPads just as they would in a commercial flaunting “the technology of the future!” At first when I heard of “doctors using iPads” or “programming on the iPad” it all sounded so gimmicky. The iPad is a versatile device, and it’s great for many purposes, but it’d never replace a computer or have a large an impact on the way we work. Right?
Wrong. Well, mostly. The jury is still out on effectively programming on a device that doesn’t have a keyboard, but the other unforeseen uses for the iPad show just how important it can and will be. Take, for instance, a recent problem we’ve had with debugging our software on test machines.
Selling cross-platform software means that you have to test your software on many different operating systems and machines to ensure it’s actually cross-platform. This means we have a bunch of computers (as well as a bunch of segmented hard drives with different operating system installations) for various testing purposes.
To test on these machines, we usually use something called “Remote Debugging”. Basically, a computer with Studiometry’s source code will connect to any of the test machines and let us run our code on the test machine in a controlled environment. Remote debugging gives us the power to easily view live variable values and pause or resume code execution on a line-by-line basis. This is an incredible tool for finding and fixing issues related to specific setups, and we wouldn’t be able to effectively develop our software without it.
There is a problem, though. If we’re using computer A to debug a program that is running on test computer B, we need to repeatedly interact with both machines to effectively debug the software. All of the user input is done on computer B, while the variable values, code execution, and background information are displayed on computer A.
This means we can either run back and forth around our office trying to “remotely” debug – risking physical injury and causing extreme fatigue – or we can come up with a smarter way to access both machines. We first tried the obvious: we’d simply use VNC/screen-sharing to view the test computer’s screen on our debugging computer’s monitor. This works great for our Macs with the most recent operating systems. However, any Mac with 10.4 or older (and nearly every Windows machine we have) either isn’t compatible, doesn’t support screen sharing, or has too many permission checks that require you at the actual machine to get past.
The iPad Solution:
So in comes the iPad to save the day. A programmer here came up with the blatantly simple solution: “Hey, why don’t we just physically sit at the test machines and control the debugging computer with an iPad.” Brilliant. With this solution, we can easily go to each of the test machines with a fancy iPad and control the debugging process by connecting back to our Mac Pros. We use a great VNC app called Screens (http://itunes.apple.com/us/app/screens-vnc-client-for-ios/id400012962?mt=8) to step through (and even edit) code, view variables, and control everything in the debugger as if it were right there with us.
It almost feels like an Apple commercial. It’s like they wanted to catch us doing this and yell “See! The iPad is a business tool from the future!” It’s pretty amazing what this little tablet can do, and how it can completely change the way you work.