The content on this site is my own and does not necessarily represent my employer’s positions, strategies or opinions.
- I’ve been playing around with Swift, the new programming language from Apple, for a few days and I’ve been quite …
- The Supermoon over Cranberry Lake, New York, in the New York Adirondack Mountains on 11 July, 2014.
- Yesterday IBM and Apple made an important announcement about partnering to significantly growth the use of mobile via Apple devices …
How the constant presence of a smartphone along with some analytics could have improved one travel experience, albeit with caveats on privacy and centralized personal data storage.
Several months ago I was connecting through a large US midwest airport on my way home to New York from California. I had a three hour layover and dutifully went to my scheduled departure date and settled in. It was at the far end of the terminal.
After about an hour I realized that my gate had probably changed since I was surrounded by travelers speaking French. Indeed, when I looked up at the board over the desk it stated that the next flight was going to Montreal.
Via my iPhone, I looked up the new gate and discovered that it had changed, and that the new location was at the far end of another terminal. I could not have had to walk further to get to my plane.
I had several thoughts at this point. First, I should have registered for automatic updates from the airline so I could have been notified of the gate change. This should be a standing feature that I don’t have to enable on a trip-by-trip basis.
Second, I wondered why the airline/airport would have changed my flight to a gate so far away. Presumably they knew where I was, probably near the original gate. Now I know that they probably didn’t care about me, an individual passenger, but if they had known with accuracy via geolocation where a majority of the flight’s passengers were, they could have improved customer satisfaction by having the new gate closer to the old one, or one that at least minimized the distance connecting passengers needed to walk.
Let me say now, that in what I have said above and will say below, I’m assuming that appropriate permission has been given to all necessary parties to use my information for my benefit. Let’s imagine how analytics and transformational mobile apps could have made the experience better.
So I did need to take a walk. It was evening and I had landed after a 3+ hour ride in coach. The airline knew that, and they knew that they certainly had not fed me dinner. It’s possible they also could have known whether I had bought one of those expensive snacks on board. So I was hungry.
Therefore it was possible that I would like to grab some dinner on my 20+ minute trip to the next gate. Via personal preference stored on my phone or one time “in the cloud,” mobile software could have suggested where I would like to eat. This could have been combined further with analytics using airport data and passenger recommendations to suggest where the good places were and how long it would likely take to get me in and out of each restaurant.
Based on this, I could have a good meal and still make my flight. I would have accepted an automatic suggestion that I text a message to my wife saying that I had already eaten.
Some of this sounds like a recent blog entry, “a transformational mobile app is one that significantly improves the quality of your personal or business life, allowing you to do things you have never done before, and permitting you to be more effective and productive in an especially seamless way.”‘s ads for Siri, and various of these things can be done by multiple apps. It needs to be seamless. My smartphone is there to be my helper. As I said in
So what I really need a personal assistant that lives on my smartphone or tablet, is kept current with what I am doing and where I am, is linked to the services I need, and makes suggestions when necessary. Today we cobble many features together among multiple apps. Via analytics, the cloud, and services accessed via APIs, tomorrow’s apps will be more all inclusive and offer greater value.
While some of this computation could be done on the phone, centralized services are continuing to advance in holding my information and deciding what to do with it. Helloand .
Personally, I would prefer a more federated approach where I have more fine tuned control over what data is stored and who has access to it. I wrote about this two years ago, but the idea does not seem to be catching on. Rather, the big social networks appear to be getting bigger, gobbling up any smaller players that add a bit of value.
Does this sound a bit like AI, artificial intelligence, per science fiction? It does, but I’m ok with that. But only if I have tight control over privacy and use.
I haven’t posted the stats for browser and operating system access to this website since last July, but since I’ve been doing a lot of posting lately on mobile topics, I thought it would be useful to check the stats again. The numbers are from Analytics and are for the last six weeks of traffic.
|5.||“Mozilla Compatible Agent”||2.58%|
Browsers and Operating Systems
|Position||Browser / Operating System||Percentage|
|1.||Firefox / Windows||26.72%|
|2.||Chrome / Windows||19.19%|
|3.||Internet Explorer / Windows||13.42%|
|4.||Chrome / Macintosh||11.20%|
|5.||Firefox / Linux||5.79%|
What does it mean to manage a mobile device, say a smartphone like aniPhone or one with ‘s operating system?
At the lowest level, the device level, you might want to
- establish a policy for length and structure of passwords
- set or reset a password
- detect whether the phone had been jail-broken or rooted
- configure device-wide VPN
- set power management policies
- manage the low level security of the filesystem or other local storage
- wipe the device entirely or reset it to factory settings
Above that, at the application level, you might want to
- inventory the device for installed applications
- install or update applications
- set security policies for use of the applications, their data, and their network connections
- selectively remove an application or its data
- configure application-specific VPN
- manage anti-virus and other security tools for browsers and other applications that access the web
- manage installation and use of an enterprise application store behind a firewall, private hosted outside, or via external sites like the Apple iTunes Store or the Android Marketplace
The first list of items, with additional functions, is part of Mobile Device Management, or MDM. Note that people do sometimes confuse “MDM” in this context with “Master Data Management.”
The second collection is part of Mobile Application Management, sometimes shortened to MAM.
The first thing to notice is that what I deemed “management” often has a lot to do with security, especially when the phone is used to access enterprise data and systems.
Second, in practice, those who provide MDM functionality often provide some MAM functionality, and vice-versa. That is, a vendor might say “I can give you an enterprise app store but can also wipe devices.”
BYOD, or “bring your own device” complicates things because I probably do not want the organization for which I work to impose overbearing policies that affect my personal use of my phone. I certainly don’t want them to wipe my entire device if I leave the organization juto remove all traces of enterprise data or network access.
So the line is blurry between MDM and MAM, and I think we should get rid of the distinction altogether. That is, let’s just talk about Mobile Management and combine the two categories above. It will simplify things, remove the imprecision of the definitions, and bring better clarity to what vendors do and do not offer.
So if we can agree that Mobile Management consists of 27 common capabilities (for example), a vendor that offers 5 of them can be more fairly compared with one that offers 25.
No doubt that vendor proving minimum capability will embellish the description by adding “but we do it from the cloud!” (grin)
BYOD, or “bring your own device,” is an important topic in today’s discussion of mobile in the enterprise. Employees buy their own smartphones or tablets, love them, then bring them to work and want to use them to access company data, systems, and applications.
For the CIO, this represents an opportunity to save money by not having to pay for and provide devices, but opens up many questions about how to allow secure access and management of the enterprise portions of those devices. I’m here at the Lotusphere conference in Orlando, so it shouldn’t surprise you when I say that many of Lotus Traveler for secure access to email, calendar, and contacts on mobile devices, for example.‘s customers are looking at
BYOD does not mean that any employee can bring any device to the office and demand that it be allowed access to the company’s digital infrastructure. That said, if the CEO brings in his or her sexy new smartphone, the CIO may feel more inclined to make that work.
In practice, CIOs will say that certain devices running specific mobile operating system versions, augmented by security and management software and policies will be allowed access to the company’s network. That is, “bring your own device” really means “bring your own device as long as it is one of the following.”
Many enterprises already support Blackberrys, so that will be relatively easy. There’s not too much variation amongiPhones and iPads beyond the major version numbers. So while a 3g phone might work, I think many enterprises will insist on a 4 or 4s phone, probably running the latest version of iOS.
is more problematic because there are many handset providers and many versions of the operating system. Expect individual handset vendors to negotiate directly with CIOs to allow use of their devices in the CIOs’ companies, even if those devices are bought by the employees.
The wildcard here will be Windows Phone and the devices that support it. While Apple iOS and Android are very different, both technically and culturally, Windows Phone is different yet. While Mango is quite nice looking, as I saw from the Nokia team at Lotusphere, will individual purchasers and CIOs wait until Windows Phone 8? Will the rate of adoption allow it to be accepted into the enterprise any time in 2012 or might it even be 2014 before the demand is sufficient for supporting it inside companies?
My advice to CIOs is this: if you support Blackberrys, you will need to support them for the foreseeable future. The newer iPhone and iPads will need to be given enterprise access because of their marketshare and the demands of senior management. For Android, pick a couple of handset vendors, perhaps based on a survey of your current employee users, and settle on the level of the operating system you will support. Educate yourself about Windows Phone, but the above combinations are probably of more immediate and higher priority.
Yes, it’s that time of year of for predictions for what we might see in the next twelve months. Being in the IT business and in a company like, I’m somewhat hamstrung in what I can say regarding the future because of confidentiality, but here’s my attempt at some prognostications that won’t be giving away anything secret.
These are my personal predictions and not those of IBM.
- There will be a huge rush to fill the developing void being left by RIM and Blackberry, and smart enterprise CIOs will focus on security and management issues first.
- Although there seem to be 1 or 2 new entrants in the mobile device management area every week, potential customers will learn that it takes more than being able to call an API to wipe a device to give you enterprise credibility.
- The differences between mobile application management and mobile device management will become clear.
- Companies that develop multiple applications will understand that some will be web/HTML5 based, some will be native, and some will be hybrid. You don’t need to support just one kind and your application platform vendors shouldn’t force you to do so.
- CIOs will realize that the connection between mobile and cloud is overhyped. CIOs will realize that the connection between mobile and cloud is underhyped. That is, your use of cloud for mobile applications may not be in the way you expect today.
- Traditional networks that support web applications will need to be reconfigured and re-optimized to support an increasing amount of traffic from mobile devices. The number of interactions will dramatically increase, their length will be shorter, and significantly more asynchronous notifications from the server side will all drive a lot of R&D.
- While fans continue to claim world domination and keeps selling more and more iPhones and iPads, look for ‘s relative marketshare to start inching up.
- WebOS is done, but look for a new smartphone/tablet operating system to arise by late 2012 that will start to challenge RIM and Microsoft for the number 3 and 4 market positions.
- will have a serious tablet in the market by mid-2012 that will start to get some enterprise interest. The connection between that and the Amazon cloud will become clearer. The device may not be running Android.
- Apple will make changes to iOS to make it easier to support both personal and enterprise secure personalities on the same device. Yes, I know you can do this on Android today, but we weren’t talking about Android, were we?
Bonus: I will give up my Blackberry and get an Android smartphone for the first time (to complement my personal iPhone and).
Over the last 15 years of my career, I’ve seen several ideas or technology trends capture a significant amount of customer, press, and analyst attention. There was Java, XML, web services, SOA, and cloud. In and around all those were standards and open source. To me, the unquestionably hot technology today is mobile.
To be clear, I’m not talking about what happens in cell phone towers or the so called machine-to-machine communication. I mean smartphones and tablets. Those other areas are important as well, but devices are so front of mind because so many people have them.
is obviously playing a big role with its iPhone and , not to mention the half million apps in their App Store. and the ecosystem have produced even more smartphones and a whole lot of apps as well. Then there’s been the drama around HP and webOS, plus RIM and the PlayBook and outages. So we’ve got competition, winners and losers, closed ecosystems, and sometimes open ones. What’s not to love about mobile?
It can get confusing, especially for people trying to figure out their enterprise mobile strategy. They are looking for strong statements, for “points of view,” that will help them take advantage of mobile quickly but also aid them in avoiding the biggest risks. This is made even more interesting by employees bringing their own devices to work, the “BYOD” movement.
Not every employee is issued an official company smartphone and the devices they buy themselves are often better than what the company might provide. So they are saying “I’ll pay for my phone and my contract, let me have access to work systems so I can do my job better.” The recent ComputerWorld article “IBM opens up smartphone, tablet support for its workers” discusses some of what’s happening in this space at , my employer.
Next there is the whole web vs. hybrid vs. native discussion regarding how to build apps on the device itself. Should you write it to the core SDK on the device (native), stick to developing standards for continuity and interoperability reasons (web), or something in between (hybrid)? Which is faster and for what kinds of apps? Does the app cause a lot of network traffic or does it require great graphics? Are you willing to bet that HTML5 will get better and better? I’ve started discussing this in a series of blog entries called “Mobile app development: Native vs. hybrid vs. HTML5″ (part 1 and part 2). Your choice will involve tradeoffs among expense, time to market, reuse of web skills, portability, and maintainability.
What about management? If I bring my own device to work, how do the company’s apps get onto it in the first place and then get updated? Is there an enterprise app store? If I leave the company, do they zap my whole phone or just the apps they put on it? There are differences between Mobile Application Management (MAM?) and Mobile Device Management (MDM) that you need to understand.
Let’s not forget security, as if we could. A colleague of mine, Nataraj Nagaratnam, CTO of IBM Security Systems, told me the way to start thinking about that for mobile is that “a secure device is a managed device.” That doesn’t mean that all security falls under management, but rather you need to have device management to have a complete mobile security strategy. You also need to be handle identity management, authorization and authentication, single sign-on across apps, data loss protection, and all the things you need to worry about with the web today such as phishing, viruses, worms, social networking, VPN, etc. Security must be there but it also needs to be unobtrusive. Most mobile users will not know what a certificate is nor whether they should accept it.
Fundamental to managing and securing mobile devices compared to laptops is that people tend to lose their phones a lot more often than they lose their laptops. That’s a good starting point for thinking about the differences.
The Mobile Technology Preview encapsulates several technologies we’ve been working on in the labs. We’re making it available for you to experiment with it, comment on it, share your requirements for your mobile platform, discuss the pros and cons of different approaches to mobile app development on both the device and server side, and join the community to make it better.
We plan to update the Technology Preview as we add or change the feature set, ideally because of your stated requirements. In this release we’ve included
- an application server runtime that uses the WebSphere Liberty Profile of the WebSphere Application Server 8.5 Alpha (runs on Linux, Mac, and Windows)
- a notification framework
- basic management functions
- location-based security
- several samples featuring notifications, Dojo, PhoneGap, and a starter insurance app for handling car accidents.
The Mobile Technology Preview is available for Android devices.
I plan to use the tech preview from time to time to illustrate some of my discussions of mobile in my blog. I encourage you to try it out, track its progress, and influence its roadmap.
I’ve seen and heard a lot of discussion about how people build applications for mobile devices. While there are literally hundreds of thousands of apps out there for, , Blackberry and other smartphones, I can’t help but think the majority of these are one-off efforts. In this series in the blog, I’m going to tackle some of the issues with developing mobile apps, especially for enterprise use, and along the way propose some ideas for making the process easier and more repeatable.
I’m going to start this series by discussing the basic concepts of how you might develop an application for a smartphone or a tablet. I’m scoping it at this high functionality level and not looking at feature phones, at least not right now. I’ll use Apple as my primary example, but things are similar for other devices and mobile operating environments.
If you have an Apple Apple’s developer website and contains almost everything you need to start creating apps. Like any software you plan to use, make sure you read all the legal terms and conditions before you agree to them. If you work for a company, make sure your manager and local attorney also agree that you can use the SDK. This goes not only for Apple, but for , Blackberry, , or any other SDK provider.or an iPhone, many of the apps use the native software development kit, or SDK. It is available from
Most native apps on Apple devices are written in Objective-C, an object-oriented language. If you’ve developed software using C++, C#, or Java, Objective-C might take some getting used to. If you are comfortable with SmallTalk, however, it should seem much more familiar.
An Objective-C application is developed using the traditional write-compile-link-run-debug iteration, though the Apple XCode environment is quite powerful and makes this loop straighforward. Nevertheless, it is not a whole lot different from what programmers did 10 or 15 years ago. Objective-C is not a scripting language, is not interpreted, and on mobile devices you need to do your own memory management.
That said, when you create an app with a native SDK, you can use the very best and most powerful features on the device. You can optimize your app as much as you want and you have maximum control. This is very important for many software engineers. The app will be as functional, as beautiful, as secure, as bug-free, and as fast as you and your team can make it. It may also take you much longer to develop the app because you need to do all these things yourself.
Yes, the SDK makes your life easier, but it is still the case that when you go the native route you need to do more of the basic development yourself.
Here’s another important issue: if you write an app using a native SDK directly, you will essentially need to completely rewrite it when you use native SDKs for other devices. I say essentially because you may be able to write some of your apps non-UI program logic in C++ and re-use that for Apple, Android, and some other environments. There are some additional but similar tricks available.
To be on the safe side planning-wise, if you decide that you need to support multiple devices and you are using the native SDKs, assume that you or someone else will rewrite the app as many times as necessary to get the broad support you need. It is not uncommon to develop the first app for the iPhone and then outsource the creation of versions for other devices based on the original reference implementation. This can be expensive and time-consuming because you need a lot of people to get this done.
For some apps you will need to go the native SDK route for the reasons I stated above. If you do not have extreme requirements for look-and-feel, device functionality, or performance there are some other choices.
In future entries I’ll look are extending the native approach with libraries, something I call, oddly enough, “Extended Native.” I’ll also discuss the pure HTML5 web approach, and poke at the strange middle ground between Native and HTML5 called “Hybrid.” Tools that target multiple devices such as cross-compilers can also work, and I’ll get to them as well.
Next up: HTML5
It’s been a while since I last put up some stats about what browsers and operating systems access my website at sutor.com. Traditionally,did well, followed by Internet Explorer, and then Chrome. The last two are now reversed.
Since much of my blog content has focused on content regarding open standards and open source, it makes sense for Firefox to have consistently led. Here’s the statistical story for the last month, thanks toAnalytics. I’ve focused on the top 5 in each category.
Browsers and Operating Systems
|Position||Browser / Operating System||Percentage|
|1.||Firefox / Windows||26.17%|
|2.||Internet Explorer / Windows||14.89%|
|3.||Chrome / Windows||12.57%|
|4.||Chrome / Macintosh||9.28%|
|5.||Firefox / Linux||8.07%|
This last week was my son Will’s Spring Break from school, so he and I took a 1750+ mile (2800+ km) road trip from our home in upstate New York, USA, down south to Tennessee. Over several blog entries I’ll highlight where we went and what we did. This is the first entry in the series.
April in upstate New York can be very warm, or very cool, and very dry, or very wet, sometimes on alternate days. It’s the real transition month from winter to spring. It’s not quite either, though, so in order to try to guarantee some warmer weather, my 14 year old son Will and I decided to get away by driving down to Tennessee. I had never been to that state except for a brief stopover in an airport almost 30 years ago, and Will had not been there at all, so it seemed like a good destination.
To sum up what we were looking for: warmth, bar-be-que, and new experiences.
Our plan was to leave last Saturday and spend a week on the road. Unlike highly scripted trips where all flight arrangements and hotel reservations are made in advance, my idea of a road trip is to make one or two essential reservations, plan a rough route, do enough research so you can get to the good things along the way if the mood strikes you, and then take off.
Having your own car and the flexibility to bring along anything you want is a big plus. Having a smartphone and anmakes it easier to be spontaneous as well.
Several years ago my daughter Katie and I took a road trip to Hibbing, Minnesota, to see where Bob Dylan grew up. We both agree that it was one of the best vacations we ever took.
Here was the rough plan for the trip:
- Leave on Saturday and get to Pigeon Forge, TN, by Sunday evening.
- See Dollywood on Monday.
- Visit the Great Smoky Mountains National Park on Tuesday.
- Get ourselves farther west to Nashville by Wednesday night and spend two days there.
- Start driving home on Friday, getting back on Saturday.
I don’t like to drive more than 500 miles in a day, and since the distance to Pigeon Forge from our house is 758 miles (1220 km), I knew it would be a two day trip. Though I planned to leave around lunch on Saturday, the weather didn’t cooperate and I was nervous about driving into the heavy rains and high winds that were left over from the destructive storm that launched tornadoes in Oklahoma and North Carolina.
I set a decision time of 4 pm to figure out if we would leave on Saturday or wait until Sunday morning. By that time things had cleared up considerably and we left a bit after 5 pm on Saturday evening. A Sunday departure would have compressed the trip quite a bit.
How far did we plan to go? As far as we could. Because of this, I did not make any hotel reservations for the night before we left. I’ve found that I can usually find a Hampton Inn or other suitable hotel along the way. The downside is that depending on the day of the week and what might be happening in a particular area, we might not get a hotel when we are ready to stop. If that happens, we have to keep going until we can find a vacancy. I won’t accept anything but a non-smoking room, so that lowers the odds a bit.
The usual route is to head west toward Buffalo, head southwest toward Erie, PA, on I-90, and then pick up I-79 to drop straight south. I modified this a bit by first going south to I-86/Route 17 and then picking up I-90 north of Erie. This is a bit longer but cuts down on the truck traffic. Just as we got on I-86 it was clear that there had been a recent blow down of trees so we were right to have left later than we had planned.
We got to Erie around 7:30 and I pulled into a restaurant parking lot to take stock of where we were. I felt that I could do more driving even though there were plenty of hotels along Peach Street, I-90 Exit 24, in Erie. The problem was, and is, that I don’t really like that area. It’s extremely busy with a lot of traffic and feels very artificial to me. Here’s an example: there’s a business right off the highway that advertises “fireworks, pepper spray, stun guns, and sugar-free fudge.” That’s no place in which I want to spend a lot of time.
I used my iPhone Hampton Inn app and discovered that there was a hotel with a non-smoking two bed room another half hour down the road. The receptionist said there were plenty of restaurants in the area and, anxious to get out of Erie, we got back on I-90 and merged onto I-79 south in a few minutes. We stayed in Meadville, PA, and had a very nice dinner at Montana’s.
We got up early on Sunday morning and drive the 572 miles (921 km) to Pigeon Forge in about 12 hours. It was a long day on the road.
Here are some notes on that portion of the trip:
- We just skimmed the Pittsburgh area to the west, so I still can’t say I’ve been to that city.
- Driving through West Virginia is: turn to the left, turn to the right, go up a hill, go down a hill, repeat 5000 times.
- West Virginia would have been more pleasant if a truck hadn’t lost its cargo and forced all traffic to a single lane. We lost 45 minutes because there was no way to go around it. I was very patient, if I say so myself, but with such a long day I didn’t need the delay.
- We got off the highway to go to a little bar-be-que place near Clendenin, WV, only to discover it was only open Thursdays, Fridays, and Saturday’s. The Bob Evan’s Restaurant where we ate lunch wasn’t much consolation.
- When we exited West Virginia via a very long tunnel on I-77, one that I found rather unnerving to drive through, we ended up in Virginia. Somehow that surprised me, but there’s an awful lot of Virginia that is just as far west as West Virginia. This was a failure of mine to read the map more carefully than just noting which interstate highways led to others.
It was dark by the time we left I-40 in Tennessee and drove the 30 minutes south on Route 66 to Pigeon Forge. The man at the check-in desk at the hotel said we were lucky that we had not come the previous day because traffic congestion from a car show made the trip on the local road take 3 hours instead of 1/2.
The main attraction in Pigeon Forge is Dollywood, the theme park that Dolly Parton bought into in the 1980s. However, from the highway south through the town it is hotel after motel after restaurant after go cart place after attraction after … . Imagine mini Orlando meets mini Las Vegas. Also imagine a lot of road construction.
Whatever: we had gotten to our destination with a week’s worth of vacation in Tennessee yet to come. But that’s a tale for tomorrow.
The Entire 2011 Road Trip Series
As we reach the end of 2010 and so the end of the first calendar year for‘s , I decided to look around one more time at the math software available for that tablet. I’ve previously done this in several blog entries:
- Math software in the age of the iPad and other tablets
- Math software, dynamic languages, and the iPad
- Revisiting math software on the iPad
- Math and the iPad: Mathination
My opinion hasn’t changed much from July when I said there was a lot of room for improvement and innovation. There are still far too many math games and educational titles out there.
I can understand as a software developer that you might hope that your title could be the one to really make it big, but it’s a very crowded field. Anyone contemplating doing a new app in this category, indeed any iPad app category, needs to check out what has been developed and get really comfortable that what he or she will produce is new, interesting, and presumably somewhat profitable.
Also, I get nervous when I see an app that hasn’t been updated since June. There are many possible reasons for this, but the best apps are updated regularly. They add new features but they need to focus on stability, good interfaces, iOS updates, and most of all, what the existing users need. Leverage your best critics’ work to develop an app that even more people want to use.
Here are a few math-related iPad apps that are worth investigating beyond what I’ve spoken about in the past. The descriptions are from the app providers themselves:
“Perfect for quickly visualizing ideas and presenting them, OmniGraphSketcher for iPad helps you make elegant and precise graphs in seconds. Using simple multitouch gestures, you get the numeric precision of a charting application—with no complicated equations necessary. Whenever you need to produce a sharp-looking graph on the fly, OmniGraphSketcher for iPad combines the quantitative power of data plotting with the ease of touchscreen drawing.”
- SpaceTime for iPad
“SpaceTime is the award winning iPhone math app now available for iPad. From basic calculations to college calculus, SpaceTime is a full-featured graphing and mathematics application.”
- Tex Touch
“Tex Touch is a LaTeX code editor! Create, import, export or mail your LaTeX documents! Edit them on the go using a stunning user interface that lets you enter and navigate code at top speed!”
Yesterdayreleased the latest version of their operating system for iPhones and iPads. iOS 4.2 is not radically new and different for the iPhone, but does bring new functionality to the .
The primary thing I’ve been waiting for is folders, the ability to hold up to 20 apps in a named collection. I’ve acquired a lot of applications since I got my iPad in April and this will bring more order and structure to my screens. It will also mean that I’m more willing to get some new apps, something that Apple no doubt understood as it rushed to get this feature out. Note that you can give several folders the same name, such as “Games.”
The partial multitasking is good to have though I haven’t had time to play with it much. It’s not something I’m particularly impressed by since I think it should have been there onday one.
The really cool feature is AirPlay, the ability to stream music (and video?) to devices like Apple TV. We got one of those mainly to access Netflix, but it’s very cool to sit on the couch and beam over music into my speakers. I must admit that this is slightly redundant since I could already access my home music collection through Apple TV, but it’s an interesting indication of technology to come.
‘s changes to the iOS Developer Program License Agreement resolve some issues but still contain confusing elements for those who might want to develop sophisticated apps such as those for mathematical computation.
As I first discovered this morning in a blog post by Hank Williams, Apple has changed their iOS Developer Program License Agreement to be less restrictive on the tools used to create apps for iOS for the iPos Touch, iPhone, and .
Apple’s press release states:
We are continually trying to make the App Store even better. We have listened to our developers and taken much of their feedback to heart. Based on their input, today we are making some important changes to our iOS Developer Program license in sections 3.3.1, 3.3.2 and 3.3.9 to relax some restrictions we put in place earlier this year.
In particular, we are relaxing all restrictions on the development tools used to create iOS apps, as long as the resulting apps do not download any code. This should give developers the flexibility they want, while preserving the security we need.
Those relevant sections in the license agreement are:
3.3.1 Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.
3.3.2 An Application may not download or install executable code. Interpreted code may only be used in an Application if all scripts, code and interpreters are packaged in the Application and not downloaded. The only exception to the foregoing is scripts and code downloaded and run by Apple’s built-in WebKit framework.
3.3.9 You and Your Applications may not collect user or device data without prior user consent, and then only to provide a service or function that is directly relevant to the use of the Application, or to serve advertising. You may not use analytics software in Your Application to collect and send device data to a third party.
In April I looked at the previous restrictions in the license and concluded that it would be very difficult to to implement a full featured mathematics application on the iPad.
Nota Bene: I am not an attorney and the following does not represent a legal opinion and certainly not an officialpoint of view.
The changes to sections 3.3.1 and 3.3.s improve things somewhat today:
- Evidently you can now have an interpreter on the device. This means that you could run or a Java virtual machine on an iPad.
- From 3.3.2, prepackaged scripts are allowed, so interpreted Python code is allowed if that code comes with the app.
- You cannot download code to be interpreted.
- I am not sure if you are allowed to type in code on the iPad and then have it interpreted. I suspect not, because that code is not prepackaged with the app, even though it is not downloaded.
From the perspective of building a math app with Python or another interpreted language, I interpret this as strictly meaning that the app and libraries are fine now, but users cannot write new functions if the math app provides an interpreted language such asand do.
This is problematic. If, say, the library does not provide a factorial function, am I not allowed to write one?
I suspect that one of the things that Apple wants to avoid are system calls into the iOS operating system by random downloaded scripts. I hope it is not just a question of performance. Some computations take a very long time.
I really can’t see how this type of interpreted script for math computations should cause any problem for the iPad device, for Apple, or the users. This form of code interpretation is how things get done in these kinds of apps.
Indeed, if I have a word processing document it contains markup to indicate paragraphs, fonts, colors, and so forth. A work processing app interprets that information, which could be said to be a descriptive script. Or is ok to interpret such things? Do I need permission from Apple to do this?
I don’t think this is the last we will hear from Apple in this area. Their statement is now shorter, but it is not complete enough regarding the kinds of code that might be interpreted. I think another round is necessary to clarify matters.
On the other hand, perhaps all this is below Apple’s radar or level of caring. While that might be true, it might be better to ask permission first rather than asking forgiveness later when you submit your app for publication.
Now that thehas been out for about 3 months and I have had mine for a bit longer than 2 months, I’m going to revisit math software on the iPad. I previously did a couple of blog entries on the subject:
- April 13: “Math software in the age of the iPad and other tablets”
- April 15: “Math software, dynamic languages, and the iPad”
What is the state of math software available in theApp Store for the iPad?
Here’s my lightning review of most of the titles: pretty bad.
I’ll break the apps down into categories and highlight several I think are worthwhile:
- Math apps for teaching really little children how to do simple arithmetic. I’ll admit I haven’t looked at all of them, but make sure you ask your child if he or she thinks the app is inane before you purchase it.
- Calculators, lots and lots of calculators. Too many calculators. Some of these fall under the sub (or super?) category of “my first iPad app.” Since Apple provides a calculator for the iPhone but not for the iPad, evidently tens of people think this is a huge market opportunity. There’s only so much you can do with a calculator. I use the Calculator HD for iPad and I think it’s pretty elegant and worth the $.99.If you are an HP or TI calculator aficionado you have several choices, so look around. You have quite a few options if you don’t want to pay anything, so I suggest you start by trying out several of the freebies first. You’ll develop criteria pretty quickly for what is junk and what isn’t.
- Limited apps that do simple high school math like computing greatest common divisors or solving some simultaneous equations. You need a whole lot of these to cover the basic algebraic operations. I can’t imagine many of these took too long to write.
- Fancy calculators with alternative user interfaces. My choice in this category is Math Sheet. It’s not quite perfect: I don’t know how to use a previous result in a later calculation and it doesn’t support big, arbitrary precision integers. It uses the iPad screen real estate well and it’s free.
- Really nice graphing apps. These really give you insight into graphs, especially 3D ones. My favorite is Quick Graph for $1.99. Here’s some advice from a former mathematician and math teacher: you really, really need to understand equations and their graphs to do well in pre-calculus and calculus. Don’t try to shortcut and learn the minimum necessary. If you learn it well, your geometric intuition will help your algebraic and analytical problem solving, and vice-versa.
- Kitchen sinks. These are ports of desktop apps to the iPad. They are often expensive because the authors, I would guess, are afraid of cannibalizing their desktop markets. I suspect they will get subsetted and will change to better use the iPad user interface if they are to survive.
- Numbers. This is a mini version of the Apple iWork spreadsheet for $9.99. If you don’t expect it to do everything its older and bigger sibling can do, I think you’ll be impressed. Check out the sample new spreadsheet documents to see its power.
I’m still waiting for an iPad version ofor . Having been part of a team that built a computer algebra system, I know it will be a lot of work to bring a credible one to the iPad. As with many apps, they will really need to take advantage of the multitouch interface. Otherwise they might just look like today’s batch of kitchen sink apps, see above.
- October 27, 2010: “Math and the iPad: Mathination”
It used to be that I tried a new Firefox browser from Mozilla became a standard tool for how I do business and generally access the web, I’ve focused less on trying new things and more on tuning the environment I have. I then replicated that environment across the various computers I use with the various operating systems on them.extension every day. Since the
I don’t use Firefox exclusively. I’m a software guy and I love to try new things, so I certainly have Chrome, and on the iPhone andI use ‘s Safari browser. I’ve played with Opera but never stuck with it. Firefox is the browser I use when I need to know that things will work and look right.
I’ve decided that I am going to spend a little time each day for a few days and check out what’s been going on in the Firefox extension world. Before I do that, however, I want to list the extensions I do use now to establish the baseline.
- Adblock Plus: I’ve tried to live with website ads, especially when I experimented with them here, but they were just too annoying. This addon removes most of them and there are subscriptions to keep your blocked list up to date.
- ColorfulTabs: This makes my tabs appear in different pretty colors. Not essential, but it really improves the user interface experience.
- Diigo: I use Diigo to save and publish the daily links that appear in my blog, and this is their official addon to make it easy to capture those bookmarks.
- Firebug: This addon is a great too for debugging web pages when things go wrong. I mostly use it for figuring out why CSS isn’t doing what I thought it should.
- OptimizeGoogle: This cleans up some behavior in various apps, makes some more secure, and gets rid of even more ads.
- Xmarks: This synchronizes my bookmarks across multiple browser types across multiple computers and devices.