Log in

View Full Version : HP Read My Mind


Vincent Ferrari
12-23-2008, 06:00 PM
<div class='os_post_top_link'><a href='http://www.hp.com/united-states/consumer/digital_photography/free/software/iprint-photo.html?jumpi=ex_r602_go/iprintphoto' target='_blank'>http://www.hp.com/united-states/con..._go/iprintphoto</a><br /><br /></div><p><em>"HP iPrint Photo is a free downloadable software application that allows you to quickly and easily print 4" x 6" photos. Images stored on your iPhone or iPod touch can print on most HP networked ink jet printers connected to a local WiFi network. Wireless printing is a fun extension of the iPhone / iPod touch's easy photo capture and viewing experience."</em></p><p><img src="http://images.thoughtsmedia.com//at/auto/1230037675.usr18053.png" style="border: 1px solid #d2d2bb;" /></p><p>This is the kind of thing I love; a company thinking about what its users might want and then making it happen.&nbsp; In this case, HP took out its mind-reading hats and created an app that lets you print photos directly from your iPhone to an HP wireless printer.&nbsp; The quality is excellent, there's no configuration involved, and it's smart enough to pull the paper from the 4x6 tray meaning you just pick, click, and print.&nbsp; I've been hoping someone would figure out photo printing from the iPhone and after trying this one out, I'm glad it was HP.&nbsp; It works flawlessly as advertised.&nbsp; The camera on my iPhone just got a whole lot more useful.</p>

ptyork
12-23-2008, 09:35 PM
This is cool'ish, but to me it simply points out one of the biggest flaws in the iPhone software. Namely the complete stovepipe development model. It makes it a glorified feature phone instead of a true smart phone. Want an app to send pictures to Flickr, Picasa, Blogspot, Walgreens, Wal Mart, HP Printer, Kodak Printer, whatever? Each has to be a separate app. Want to crop and send or edit and send, well, each app has to implement their own method of doing this. Instead of building on 20+ years of software development experience (i.e., object oriented, component based development), Apple decided to revert to stovepipes in which each application must manage EVERY aspect of their operation and cannot be extended or share data with other applications. Yes, I know the stated reasons for this (security, user experience, battery life, blah), but quite frankly, I don't buy them. To me, the real reasons are laziness (I want to make sure nothing breaks my core apps and I'm too lazy to develop and test an extension API that can reliably isolate bad code) and greed (I'm going to control and make the revenue for anything that makes this platform better). How's that for a conversation starter. :)

This would have been much cooler as a plug-in to the standard photo library (send to... and choose from a list), but this is impossible given Jobso's choices. As a separate app it is just more clutter.

Note that this is just one small example of the shortcomings that this development model places on this otherwise amazing platform. There are far more and better ones...

Vincent Ferrari
12-23-2008, 09:59 PM
This would have been much cooler as a plug-in to the standard photo library (send to... and choose from a list), but this is impossible given Jobso's choices. As a separate app it is just more clutter.

Note that this is just one small example of the shortcomings that this development model places on this otherwise amazing platform. There are far more and better ones...

I'm sorry, but I have to completely and totally disagree with you. I don't want app developers to have access to system level functions in any sense. I'd rather have a separate app that's precluded from patching system functions because frankly, developers get sloppy and lazy. Take a look at the Palm Treo or any other Windows Mobile device. Developers update system files that they shouldn't be touching on a regular basis and their hacks make devices unstable. I've had enough WinMo devices in my life to know that the more you give developers access to stuff, the more they break it and make it unstable *cough* HTC *cough*

Then again, there's probably some middle ground, but I appreciate Jobs' hands-off approach to the OS. It's in the best interests of most users.

Pony99CA
12-24-2008, 01:02 AM
I'm sorry, but I have to completely and totally disagree with you. I don't want app developers to have access to system level functions in any sense. I'd rather have a separate app that's precluded from patching system functions because frankly, developers get sloppy and lazy.
Do you take that same attitude with your Mac (or PC for Windows users)? The iPhone is just a very small PC (in fact, people tout that it runs a PC OS), so I assume you do.

Personally, I don't have a problem with people making one-off apps. HP probably doesn't want to promote anything other than HP printers. I have a problem if the development model only allows one-off apps, though. (I don't know whether the iPhone does that or not.)

Then again, there's probably some middle ground, but I appreciate Jobs' hands-off approach to the OS. It's in the best interests of most users.
Of course there's a middle ground. For example, you provide safer versions of system APIs, or only allow access to system APIs to developers who get their apps "signed" (which requires taking a secure development course).

Yes, system-level APIs can be dangerous, but they also allow software to be developed that Apple might not have thought of. Of course, Apple seems to be a control freak now (only certain APIs, only our app store, only certain carriers, etc.), so I wouldn't be surprised if their development model is locked down, too. (I wonder what the younger Woz and Jobs would think of the new Apple.)

Steve

ptyork
12-24-2008, 09:28 AM
Do you take that same attitude with your Mac (or PC for Windows users)? The iPhone is just a very small PC (in fact, people tout that it runs a PC OS), so I assume you do.
Exactly! To me, the treatment of the iPhone in a completely different manner makes it far more of a feature phone than a smart phone. Really, it is very elegant and quite functional in it's core functionality, but it is exceedingly limited in extensibility. In reality, it is far LESS extensible than the phones that support only J2ME (like Blackberries and Sony/Nokia feature phones).

Personally, I don't have a problem with people making one-off apps. HP probably doesn't want to promote anything other than HP printers. I have a problem if the development model only allows one-off apps, though. (I don't know whether the iPhone does that or not.)
Yup, again. And yes, the iPhone DOES NOT allow for anything other than stovepipe apps. Every app can be distributed only as a monolithic whole (i.e., self executing) and can NOT interact directly with ANY other app on the phone (i.e., isolated storage). There can be some degree of sharing via a network connection, but since only one app can execute at a time (nothing in the background--one app is "on" at a time and others must shut down and save any state prior to handoff), any cooperation between apps is necessarily limited, slow, and exceedingly awkward. This, for instance, prohibits creating an app that has a plug-in architecture. It is all or nothing. Isolated storage is also why copy and paste can't work (there is NO way to share even a clipboard). There are some core storage locations from which apps can access "shared" data in a read-only fashion (e.g., photos, music, video), but that's it. It is insanely limiting and quite frankly for no good functional or techincal reason.

Of course there's a middle ground. For example, you provide safer versions of system APIs, or only allow access to system APIs to developers who get their apps "signed" (which requires taking a secure development course). Yes, system-level APIs can be dangerous, but they also allow software to be developed that Apple might not have thought of. Of course, Apple seems to be a control freak now (only certain APIs, only our app store, only certain carriers, etc.), so I wouldn't be surprised if their development model is locked down, too. (I wonder what the younger Woz and Jobs would think of the new Apple.)
Yes, but I'm not even asking for system-level APIs (Vincent, you completely missed the point here). I'm just asking for the middle ground--for controlled access to shared data and for a method for developing and distributing application components (i.e., shared libraries or DLL's in Windows-speak) in addition to stovepiped (one off) applications. I'd also like to see some limited means of backgrounding/sleeping an app instead of a full termination. You don't need root access to do this. It isn't hacking or patching or accessing anything in an unsafe manner. It is providing the flexibility to implement a whole class of apps that are possible on every other "smart" mobile platform that are NOT available on the iPhone. All of this is VERY possible to do in a very controlled manner. Apple is simply too lazy / controlling / whatever to do it. Sheesh, they haven't even implemented their much-touted (and only slightly useful) network-based messaging concept that would allow for a modicum of background-like processing (just notifications with no automatic processing, but at least it would be something). Hell, I don't even care if Apple doesn't allow any access to their core apps (though someting other than read-only access to their storage would be nice). Let someone else create a decent, extensible photo application. Just make it possible. And don't friggin block it by saying "it duplicates existing functionality." :)

FWIW, young Jobs would love how things are (always had the "I know best and will control your entire experience" mentality). I'm certain that both young and old Woz disagree, but it seems quite irrelevant now. ;)

Vincent Ferrari
12-24-2008, 01:23 PM
In reality, it is far LESS extensible than the phones that support only J2ME (like Blackberries and Sony/Nokia feature phones).

And yet it still sells hand over fist. I define extensible as being able to purchase or download applications that fill my needs, but that's me. I imagine a good number of consumers agree or the iPhone would've fallen flat on its face from day one.

And yes, the iPhone DOES NOT allow for anything other than stovepipe apps. Every app can be distributed only as a monolithic whole (i.e., self executing) and can NOT interact directly with ANY other app on the phone (i.e., isolated storage). There can be some degree of sharing via a network connection, but since only one app can execute at a time (nothing in the background--one app is "on" at a time and others must shut down and save any state prior to handoff), any cooperation between apps is necessarily limited, slow, and exceedingly awkward. This, for instance, prohibits creating an app that has a plug-in architecture. It is all or nothing. Isolated storage is also why copy and paste can't work (there is NO way to share even a clipboard). There are some core storage locations from which apps can access "shared" data in a read-only fashion (e.g., photos, music, video), but that's it. It is insanely limiting and quite frankly for no good functional or techincal reason.

Again, to whom? To people in theory or to people in the real world? Honestly, I know a lot of iPhone owners, myself included, to whom this just isn't that big a deal. Are there occasions where I wish an app could do more? Sure, but I've had that same feeling with the super highly extensible Windows Mobile and BlackBerry OS also. What's the limitation with them?

Yes, but I'm not even asking for system-level APIs (Vincent, you completely missed the point here).

Actually, yes you are.

I'm just asking for the middle ground--for controlled access to shared data and for a method for developing and distributing application components (i.e., shared libraries or DLL's in Windows-speak) in addition to stovepiped (one off) applications.

You are never going to see this on the iPhone.

I'd also like to see some limited means of backgrounding/sleeping an app instead of a full termination. You don't need root access to do this. It isn't hacking or patching or accessing anything in an unsafe manner. It is providing the flexibility to implement a whole class of apps that are possible on every other "smart" mobile platform that are NOT available on the iPhone.

Again, I wouldn't want this kind of crap. Ever get a Windows Mobile device all jacked up on apps and then answer a phone call? How many times has the "phone" application crashed for you on a Windows Mobile handset? Or a BlackBerry? Having owned plenty of both, I can tell you plenty. In fact, even the much touted Nokia N95 had that issue from time to time with background apps. I'm not in any hurry to have apps running in the background especially considering that every platform I've ever had where there were background apps running suffered from stability issues as those running apps multiplied or if they hung.

All of this is VERY possible to do in a very controlled manner.

Then why isn't anyone doing it right right now?

Apple is simply too lazy / controlling / whatever to do it. Sheesh, they haven't even implemented their much-touted (and only slightly useful) network-based messaging concept that would allow for a modicum of background-like processing (just notifications with no automatic processing, but at least it would be something).

They haven't implemented it because it doesn't work perfectly, not because it's never going to happen. Come on man, really. The only app I give a damn about having run in the background is Beejive IM, and I don't use it enough for it to be a dealbreaker. Running apps in the background, to me, is one of those things that people only miss because they can't do it, not because they need it.

ptyork
12-24-2008, 06:27 PM
Vincent, you apparently are not a programmer. I don't feel like arguing semantics here (actually it isn't semantics, it is a fundamental misunderstanding), but your assumption that because WM didn't do a very good job of something means that it is inherently a bad idea is 100% wrong. Also, your assumption that just because sales figures for something are high means that it is "right" (for the consumer anyway) is also quite wrong (e.g., http://www.digitalhomethoughts.com/news/show/91853/the-consumer-is-stupid-more-is-not-necessarily-better.html).

I KNOW that the flexibility required to do this right is possible. Most smartphone OS's go too far in allowing access to low-level system functions, but that doesn't mean that a good set of managed API's can't be created to supply most of the required access to implement what I (and MANY others) are asking for. If you install a bunch of hacked or over stuffed crap, then sure, it could become less functional. Just like your iMac and MacBook. It's up to you to do a little filtering (only a little), but the benefits are significant vs. locking everything down so tightly. And properly developed (making the API's listener/event based instead of polling), even this caveat could be almost 100% removed.

The iPhone is quite remarkable, but I outgrew its functionality very quickly. If its limited capabilities are good enough for you (and they obviously are), then cool. But just to whet your appetite, here are some things that CAN'T be done because of the limitations you so vehemently defend.

Things that could be done with the relaxing of pointless restrictions and with the addition of the LIMITED API's that I'm asking for:

- Copy and Paste
- Shared Databases -- This is huge, frankly.
- Flash & Silverlight -- There are SOOO many missing pieces of functionality that are not present because the only way to provide them is through a rich programming environment and it is not cost effective to program for the iPhone and "everybody else." Especially when the iPhone development model is more complex and thus expensive than either Flash or Silverlight. This is 100% (no 110%) greed on Apple's part because allowing flash and silverlight would allow for rich apps that didn't pass through their app store.
- IM -- IM is almost worthless without always on capability.
- VOIP/Skype -- Again, almost worthless without background capability.
- Better email -- If you think Apple's mail client is the end-all-be-all, then fine. Want something more powerful, or heck, even want push mail that doesn't require a $99 subscription fee? Nope. iPhone mail doesn't even properly support IMAP IDLE.
- Better calendar -- Yes, you can write your own calendar app (if Apple allows it on to the store), but you can't get notifications. Can't do background syncs.
- Full PIM -- Same issues as above. All good PIM's are also quite integrated with other apps. For someone like Agendus to make a port that fully integrated all of these pieces (but did so independently of the built-in PIM apps), would be exceedingly expensive, large, and unwieldy. I don't think you'll see it, at least not as well done as the Palm/WM/BB ones.
- Photo Editor -- Possible to create one. Impossible to link (other than read-only) with the standard photo library. You want two copies of everything? Sometimes, but it is limiting. Plus it would be impossible to use the edited photo in ANY other iPhone application.
- Integrated PWD File/Wallet -- Want something that makes it easier to enter passwords and credit card info? Possible to STORE it on the iPhone, but moving it from the store to the browser requires a keen memory or paper and pen plus the patience to wait.
- Turn-by-turn GPS -- EULA aside, it is impractical to create a GPS app for the iPhone since EVERY TIME you switched apps (like for instance took a call), the app would need to be restarted, reacquire satellite, recalculate based on current position, etc. This NEEDS background functionality to be practical. Sorry.
- Location based notifications -- Want an app to notify you if you get near a friend or something (there are lots of these LBS visions). Possible only if you are always actively running the required app.
- ANYTHING with plug-ins -- discussed (apparently ineffectively) in my last post.
- MANY MORE

Other stuff requiring system-level API's (I could do without these, though it would be nice):

- Custom synchronization -- Want to synchronize something not directly supported by iTunes...good luck.
- Useful home screen -- If you like the, err, utilitarian grid then fine. Want useful, at-a-glance information? Good luck again.
- Custom CODEC's -- Want OGG to play in the standard Music app?
- Theming
- Ringtones
- etc., etc., etc.

Hey, if you don't want any of the above and/or think that you can't because Steve says so, then fine. Quite frankly, it's his and people are buying it. Very Apple. It's just that I like the platform, wish it could do more, and am frustrated by the mostly pointless (unless you are Apple and are protecting revenue streams) restrictions.

Vincent Ferrari
12-24-2008, 07:29 PM
Hey, if you don't want any of the above and/or think that you can't because Steve says so, then fine. Quite frankly, it's his and people are buying it. Very Apple. It's just that I like the platform, wish it could do more, and am frustrated by the mostly pointless (unless you are Apple and are protecting revenue streams) restrictions.

Once you start out with the assumption that all the restrictions are pointless and based on revenue streams, there's no convincing you otherwise, so I think we'll just leave it be. No one will ever be able to convince you that there even is another side, let alone get you to go along with it, so let's just leave this dog laying there.

WyattEarp
12-24-2008, 09:03 PM
I'm glad HP put this out. It's similar to the one they had for the iPAQs back in the day. Just wish it would work from bluetooth. Oh well, new Wifi router coming soon in 2009. :D

Anyway I read all the responses and find this whole argument just seems a bit retarded at this point. This article was for the HP iPrint Photo not to debate on the lack of functionality of the iPhone which again has nothing to do with this app. HP did it for the Pocket PC and now for the iPhone. Everything here has been discussed to death.
Also I think people need to look up what a "smartphone" really is and not what they think it is due to today's confusion of the term and how it came about. And by the way, access to low-level functionality a smartphone does not make or even demand. If you don't like the iPhone move on to another device, as there are plenty out there and all with equally annoying and aggravating shortcomings.

Pony99CA
12-25-2008, 04:16 AM
Once you start out with the assumption that all the restrictions are pointless and based on revenue streams, there's no convincing you otherwise, so I think we'll just leave it be. No one will ever be able to convince you that there even is another side, let alone get you to go along with it, so let's just leave this dog laying there.
I don't think anybody said the restrictions were "pointless". I get the point -- it supposedly makes the device less crash-prone. Of course, I've read that Safari in the iPhone 2 software crashes more and apps can crash easily, but whatever. (By the way, weren't you the person who brought sales up, Vincent, as if lots of sales justified the restrictions?)

Even though it's off-topic (as WyattEarp correctly points out), as long as we've started here, let me ask a couple of questions.

First, is there any level of multi-tasking in the iPhone. For example, I assume that you can play music or accept phone calls while doing something else, right? If not, those would be a huge restrictions for a media and phone device.

Second, can you have E-mail running in the background? If not, push E-mail would be impossible.

Third, if there is that level of multi-tasking, can any other apps do that? Even the ancient Palm OS allowed a few apps to multi-task (so you could play music, for example). I assume Mac OS X has full multi-tasking, but does the version on the iPhone have it and Apple just disabled it for non-Apple apps?

I think one thing that led to Palm's stagnation was their inability to add decent multi-tasking to the OS. Sure, the iPhone is all cool now, but so were Palm PDAs back in the day.

Steve

ptyork
12-25-2008, 06:32 AM
I don't think anybody said the restrictions were "pointless".
Yup, I said "MOSTLY pointless." :) In addition to supposedly improving stability (not really, but okay), it also makes your data safer by letting nothing but Apple stuff touch it (true, I suppose), and it protects you from yourself in terms of overloading your phone with too many background apps and killing performance / battery (also true). The assumption is that both developers and users are children and thus must be prevented from doing anything potentially dangerous. Yes, I get it too.

Of course, I've read that Safari in the iPhone 2 software crashes more and apps can crash easily, but whatever.

Actually the latest firmware is pretty solid for most things, though I still get crazy reboots once every other day or so on my iPod touch (usually with Safari). The pre-2.0 firmware was horrid, as the browser would crash the whole device quite often when loading anything of size (like CNN.com, say). Now, it is quite good, actually. Definitely the best mobile browser I've used from a "real web" point of view, excepting the lack of flash. It'll still crash your phone, but all mobile browsers seem to do that at this point. Browsing the "real web" on a mobile device doesn't happen for me much, though. It is too painful.

All that said, my good old Sprint Treo 650 running ChatterEmail in the background still stands as my most stable and ultimately useful smartphone to date. The browser sucked wind, but I didn't use it much back then either. Otherwise, it was solid as a rock. I miss it.

Even though it's off-topic (as WyattEarp correctly points out), as long as we've started here, let me ask a couple of questions.

Yeah, sorry. I missed the "Things I wish the iPhone could do better" thread last week...sheesh, it's not like I'm posting about the frakkin weather. :)

First, is there any level of multi-tasking in the iPhone. For example, I assume that you can play music or accept phone calls while doing something else, right? If not, those would be a huge restrictions for a media and phone device. Second, can you have E-mail running in the background? If not, push E-mail would be impossible. Third, if there is that level of multi-tasking, can any other apps do that? Even the ancient Palm OS allowed a few apps to multi-task (so you could play music, for example). I assume Mac OS X has full multi-tasking, but does the version on the iPhone have it and Apple just disabled it for non-Apple apps?

Only Apple apps can run in the background, and then only a couple. Music runs actively in the background (in fact the thing's ONLY "hot key" shortcut (double tap home button) pops up a play/pause/ff/rew control on top of any app). Phone runs constantly, as well (it probably physically handles text messages as well as phone calls). A fetch mail daemon also runs in the background if so configured, as does a sync daemon if you pony up your $99 for MobileMe. There are also numerous other system-level processes (and I'm sure some non-system things I'm forgetting about). No third party app can run in the background under any circumstances (the entire process is terminated each time you switch apps and there is no way to spawn additional processes). It's a shame. It is quite an elegant and modern OS. A jailbroken iPhone/iPod Touch is an incredible machine from a developers perspective.

I think one thing that led to Palm's stagnation was their inability to add decent multi-tasking to the OS. Sure, the iPhone is all cool now, but so were Palm PDAs back in the day.

Yeah, it was (still is, I guess) a pretty limited OS, but I'm not sure that is what killed it. Even without "true" multi-tasking (it was cooperative ala Win 3.1 and MacOS 9) and multi-threading (one execution thread per process), you were still able to do most anything you needed. Still far more flexible than a non-jailbroken iPhone. I think they're dying because they've reintroduced the same damn phone for 6 straight years. Nobody is willing to "upgrade" to the same phone after their 2 year contract, so they're looking elsewhere. Plus, the industry matured around them and now of course everyone is waiting for their next big thing.

I'll be interested in seeing what Nova brings two weeks from now. Palm's secrecy may have nearly killed them, but it leaves us with hope. I for one think there is still room for another good mobile OS that sits somewhere in between Beauty and the Geeks...

Pony99CA
12-25-2008, 10:01 AM
No third party app can run in the background under any circumstances (the entire process is terminated each time you switch apps and there is no way to spawn additional processes).
When I heard that the iPhone didn't multi-task, I assumed they followed the Palm model and just suspended the process until you switched back to it. If the iPhone actually terminates the process, that's even worse; at least with Palm OS, you didn't have to restart from scratch.

Does the phone process cause whatever you were doing to terminate, too? If I'm typing an E-mail and a phone call comes in, what happens? Does the E-mail automatically get saved to a Drafts folder, does the user get prompted to save the E-mail or do you lose what you typed? (I'm guessing it's probably the first, but I have no idea.) Or if I'm typing a URL into Safari and the phone rings, do I lose what I've typed?

Steve

ptyork
12-25-2008, 08:24 PM
The behavior is 100% up to the developer. The app gets a terminate signal and has a second or so to respond by saving whatever state is desired/possible. So the response is somewhat inconsistent. Some apps are pretty seamless. Others just start you back from scratch. Most are actually pretty good about it. Safari remembers your last visited page, but not any partially entered URL. Mail saves your entire draft and returns you to the composition window automatically (though because the input window loses focus, it assumes any partially entered email address is completed, which can be annoying since you can't edit a completed address). Actually, I suspect the whole Mail app (not just the fetcher daemon) runs in the background since it is so good at remembering everything about your state and restores so quickly, but I have no proof of this.

Note that there is actually a sleep/suspend state, but it is only invoked when the phone is put to sleep or a phone call comes in. Here active threads are suspended, but the process itself and its resources remain resident in memory for a quick resume. Otherwise, it is on or off. For many apps this is not a big deal, and since it does reduce the overall memory footprint it can be a good thing (though the app switching performance is relatively poor, a second or two is hardly crippling). However, for all of the apps I mentioned before, this limitation (and the 100% sandboxed data) makes them DOA.