This app is about exploring the implementation of standard desktop UI features in the realm of files too large to fully read into main memory. Is it possible to do copy and paste, find and replace, undo and redo, on a document that may top a hundred gigabytes, and make it feel natural? Where do we run into trouble?
Friday, July 31, 2009
Thursday, July 30, 2009
But of course it’s not as simple as just writing a quick script. It’s tempting to think that adding a feature like this is just about adding the functionality — but there’s a bunch more to it than that.
A lot has been written about the success of the App Store, over 50,000 apps available, 1.5 Billion downloads in its first year, talk about how it’s unprecedented etc. However I think it’s long past time for a reality check here. This is a no holds barred, deadly serious, but sometimes snarky look at the App Store.
I still think the biggest problem is that Apple doesn’t allow trials. People will pay more for quality software if they can make sure that it meets their needs. Right now, everyone pays 99 cents for applications that look promising and then throws most of them away.
Tuesday, July 28, 2009
I recently decided to bite this bullet, and I discovered that while there is some really useful open source code out there to help achieve this goal, the pluses and minuses of each package is not well documented. I hope this roundup of several options helps direct your search for the most appropriate solution in your product.
I’ve been using my own crash reporter, which installs signal handlers for immediate reporting, reads the OS-generated crash report file, presents a dialog to the user, and submits it via HTTP POST to my server, which turns it into an e-mail. One of the challenges is that some people repeatedly report the same crash, which has an easy fix, but I can’t help them because they don’t fill in their e-mail address (and the crash reporter wasn’t able to auto fill in one from Address Book). Newer versions of my applications warn if the address is left blank, which seems to help.
Every single time, after I go listen to the voicemail, I have to click over to Recent to make that red dot with the number in it go away. Of course I know I missed the call, I've already listened to the voicemail. Why do I have to actively get rid of this extra dot?
He makes some good suggestions.
Sunday, July 26, 2009
First, you may acquire, or may already have on your machine, the occasional “bad PDF” file, and if you open it, this might trigger the font cache bug, which will manifest itself as character corruption later on until you restart the computer or otherwise rebuild the font caches.
Friday, July 24, 2009
Going back to the Default.png image file, I said some of the Apple applications modify it. What they do is save an image of the application when they quit and save the state of the application, that way, the default image will match the real application when it’s finished loading again. I couldn’t do this with PCalc because third-party apps can’t replace the default image.
But what I could do is keep the splashscreen default image, and then as quickly as possible display my own saved image before I loaded the calculator.
PCalc now feels like it launches very quickly, especially on an iPhone 3GS.
Thursday, July 23, 2009
This sounds impressive, but there’s a small problem: as far as I can tell, these numbers are for sales at retail.
Monday, July 20, 2009
While most of the software features I describe below work on any iPhone running the iPhone OS 3.0, the 3GS model has one significant advantage that enables all of its owners to experience enterprise-class security. The iPhone 3GS includes a hardware encryption chip that uses the industry-standard AES 256 protocol (that’s the Advanced Encryption Standard, with a key length of 256 bits).
Sunday, July 19, 2009
If you turn on the HP48 Style RPN setting, PCalc 1.7 does the right thing: it enters the number in the x-register and waits for you to type another number before pushing the entered value into the y-register.
I also like the orientation lock, the 4-line display, and the faster launching. PCalc was always good, but now it’s really fantastic.
Wednesday, July 15, 2009
SuspiciousPackage is a Quick Look plug-in that lets you see what files a Mac OS X installer package will install (via John Siracusa). You can even view the source of the shell scripts that it will run. Excellent idea!
Choosy is a utility that intercepts clicked-on URLs and opens them in the browser of your choice. For example, I prefer Safari, but some sites only work in Firefox. I set my browser to Choosy, and it figures out which to use when.
Thursday, July 9, 2009
WA is two things: a set of specialized, hand-built databases and data visualization apps, each of which would be cool, the set of which almost deserves the hype; and an intelligent UI, which translates an unstructured natural-language query into a call to one of these tools. The apps are useful and fine and good. The natural-language UI is a monstrous encumbrance, which needs to be taken out back and shot.
Imagine that—people thought that what Google meant by “beta” was what everyone else means by “beta.”
Monday, July 6, 2009
Sunday, July 5, 2009
I am not saying “don’t use DO” or “DO is broken”! It has valid uses, and it works as designed. But you should be aware of the less-obvious complexities. If you have a single GUI app and a single background agent, that’s a great use-case. If the agent communicates with multiple apps (like the iChatAgent), things get trickier. If you’re going to use DO over the network, you’ve got to be really, really careful.
Friday, July 3, 2009
This release includes support for Objective-C 2.0 on both 32 bit (iPhone) and 64 bit (Mac OS X). It shows class properties and handles all documented property attributes. Unrecognized property attributes are noted in a comment following the property declaration. class-dump also shows optional protocol methods. The Objective-C garbage collection status of each file is included in the output, as either “Unsupported”, “Supported”, or “Required”.
Thursday, July 2, 2009
The July issue of ATPM is out:
- Bloggable: Secrecy Boils Over
- MacMuser: iPine
- MacMuser: Suggestions Requested for Router Replacement
- Segments: Slices from the Macintosh Life: Small Macs: The Next Generation
- Desktop Pictures: Florida Flora
- Out at Five
- Qaptain Qwerty: The Angst of Internet Oh-Nine
- Accessory Review: Ballistix AURA Pro-Tour
- Software Review: PopChar X 4.2
- Software Review: Prizmo 1.0.1
- Book Review: Take Control of Syncing Data in Leopard
- FAQ: Frequently Asked Questions
I mean when I first went to submit it to the store I had done quite a bit of work getting it down to just marginally under two gigabytes, because two gigabytes was Apple’s stated limit. But it actually turned out that Apple’s infrastructure and their software was not able to handle two gigabyte applications or anything even close to it. I don’t know, but a couple hundred megabytes was the cutoff. That three-month approval process included them having to fix bugs and me having to change how the application worked and all the rest just so I could physically get it into the store. And so the way it actually works today is the application itself is extremely small. I mean just a couple of hundred K. And then you download the application. And then when you first run it, it includes its own sort of embedded downloader thing that allows you to download the Wikipedia from within the application. And it allows you to pause and resume the download and all of the rest. So this actually ended up being the only reliable way of making the download work.
Quasimodes require the user to do several things at the same time, such as holding down the Shift key while typing. Modes, on the other hand, allow users to do things sequentially - hit Caps Lock, type, hit Caps Lock again. Sequential actions, especially if guided well, are often easier to execute than parallel actions.
Wednesday, July 1, 2009
After an inordinate amount of discussions, both in public and privately, on the situation regarding codecs for <video> and <audio> in HTML5, I have reluctantly come to the conclusion that there is no suitable codec that all vendors are willing to implement and ship.