Because I’m totally comfortable with allowing the phone company with the most contempt for its customers to access my bank account information:
I can’t wait to stop paying these jokers their “subsidy” once the contract ends and my monthly bill doesn’t go down. Need to be able to make phone calls, plain and simple. Why are they even bothering to spend R&D money on this junk? Perhaps they recognized that if they couldn’t force this stuff on their subscribers, they can at least make it available through the App Store. Still doesn’t make any sense.
It’s been suggested by Marco Arment and others that one of the reasons the iPhone isn’t available on Verizon yet is because Apple doesn’t go for allowing the carriers to dictate anything about the device, and Verizon is pretty much #1 at doing just that. I’m curious of any of my VZW-Droid-owning friends can elaborate on whether this is currently the case for them? Are there apps on there you don’t want and can’t delete?
Brent Simmons lays out the case for setting up a sort of gentlemen’s agreement between iPhone OS developers, or at least an agreement in behavior for the apps – in order to facilitate inter-app communication. The title of his article refers to iPad, but the concept applies well to all iPhone OS apps, and he asks if his solution is sensible or silly:
But we don’t have an easy way to get back to the calling app. Imagine a hypothetical case like this:
You’re in Twitterrific, looking at a web page, and there’s a link to a feed. You want to subscribe to that feed.
So you choose a “Subscribe in NetNewsWire” command. It opens NetNewsWire and subscribes to the feed.
Now that you’ve done that, you want to get back to your place in Twitterrific. You want it to be exactly as if it never quit.
We can do #1 and #2. It’s #3 that’s tricky.
So I have an idea. It just came to me, so I don’t know if it’s good or bad — but it’s worth posting, at least.
What if the calling app added, as a parameter to the URL, a URL to call when the task is completed?
Seems pretty sensible to me. It would be fantastic for Strip. I’ve been looking for ways to make our password manager more easily accessible from other apps so that it’s easy to take that very round-trip he describes into Strip and back out to another app to either store some data in Strip and go back, or to retrieve some data from Strip to use. It’s pretty easy now, but it could be better, it could just work.
I think Bret’s idea is a really good one, and provides for a lot of flexibility going forward. However, there’s still no way an app could “discover” what other apps are available and what services they provide under this scenario, and that’s really clutch for this sort of thing, for providing a button like “Fire a flame thrower in NetNewsWire” and knowing that it will in fact launch NetNewsWire and run some fictional “Fire a flame thrower” command.
Maybe apps should broadcast their services over Bonjour to the localhost? Right there we already have a very solid model for advertising and discovering “services,” although it doesn’t quite lend itself to application switching. And on iPhone OS 3 and lower, no application that isn’t running could advertise a service in the background.
In iPhone OS 4, that will no longer be the case, it would seem. Perhaps one could just run a bonjour advertisement for a service in the background in an
NSOperationQueue? What an awful kludge that would be. I don’t understand why this isn’t a basic feature of iPhone OS 3 already.
We’ve put a little bit of extra elbow grease into our web presence over the last couple of weeks, and as part of that effort, we launched a new website just for Strip last night: getstrip.com.
That gorgeous design is the work of Mr. Johnny Bilotta.
We expect this will serve customers of Strip quite a lot better than the old sub-page on zetetic.net, it makes it a lot easier to find information about the program itself, and there’s a ton of documentation on there. We’ve redirected/rewritten all old links to the new site, let us know if you see any broken ones. And let us know what you think!
Thanks to Johnny, Bret Morgan of DBL Systems who helped me hack out all the wiring, and the rest of the Zetetic Team (Don Quander, Steve Kradel, SJ-Lo) for doing such a great job and providing great feedback.
One of the nifty things about this site is that we decided to forgo any kind of webapp or content management system, and instead built a completely static site using HAML, SASS and staticmatic. We thought it worked out so well that we’re doing the same for zetetic.net at the moment, and moving off of Radiant. We had a good run with Radiant, but upgrades have been extremely painful and it’s really easy to break the site. We like kicking it in a text editor and using Git to manage our static content, much nicer than having it all in a database. As for the blog itself, we’re building ourselves a fresh Rails 3 app to hone our chops for upcoming upgrades.
Russian developer Igor Bogomolov put together a fantastic tutorial for building SQLCipher with QT in Russian, and it translates really quite well into English via Google Translate. That’s really quite remarkable.
Thanks again, Igor!
Stephen has updated the openssl-xcode project to support building OpenSSL 1.0.0. We’re not entirely sure why, but the make process was attempting to use x86 assembler on non-x86 architectures (ppc, armv6, etc), so we updated the build script in the Xcode project to do the right thing by setting certain flags based on architectures. Works like a charm, now.
This was tested with Xcode 3.2 and OpenSSL 1.1.0 only, results may vary with different versions of either. You can grab the latest by pulling from the master branch.
I’ve updated our fork of the fantastic choctop Ruby gem, which we use to automate release builds for Mac OS X apps. The recent change adds a “codesign_identity” accessor. Set this to the name of your code signing identity and the gem will sign the target app bundle right before it builds the DMG. My fork can be found and forked here on Github, but to install you can pull it from Gemcutter, the name of the gem is billymeltdown-choctop, e.g.:
gem install billymeltdown-choctop
Then you can require it in your Rakefile like so:
ChocTop.new do |s|
s.build_opts = '-sdk macosx10.5'
s.codesign_identity = 'Zetetic LLC'
s.remote_dir = '/www/zetetic.net/current/public/files/strip-sync'
s.base_url = "http://www.zetetic.net/files/strip-sync"
s.build_products = "/Users/wgray/Documents/Sources/xcode-build/Release"
s.transport = :rsync
s.rsync_args = '-vazxS --delete -e "/usr/bin/ssh -p 11122" '
My fork has been modified from the original in numerous small ways because I had to get it working on OS X 10.5, and then 10.6. Caveat emptor.