I decided to instead use Intruments to probe the application and find out exactly what RGBA colour was being used by UIKit. In modified my project to display the element I wanted to find out the colour of (in my case it was the colour of a UITableView’s section footer label) and then ran the application through Intruments.
Archive for July 2010
Herein lies my criticism of Node’s primary stated goal: “to provide an easy way to build scalable network programs”. I fundamentally do not believe that there is an easy way to build scalable anything. What’s happening is that people are confusing easy problems for easy solutions.
Nevertheless, Node is interesting tech.
This time, the Library went (comparatively) nuts, allowing widespread bypassing of the CSS encryption on DVDs, declaring iPhone jailbreaking to be “fair use,” and letting consumers crack their legally purchased e-books in order to have them read aloud by computers.
Good news, although the CSS exemption does not include format-shifting, unfortunately.
Right at the moment a Safari user visits a website, even if they’ve never been there before or entered any personal information, a malicious website can uncover their first name, last name, work place, city, state, and email address.
He recommends unchecking “Using info from my Address Book card.”
It is tempting to think of compiler optimizations as reducing the constant in your program’s big-O complexity, and nothing else. They aren’t supposed to be able to make your program asymptotically faster, or affect its output.
Naturally, he has some interesting counterexamples from GCC.
I suspect a lot of people aren’t sure what’s the top idea in their mind at any given time. I’m often mistaken about it. I tend to think it’s the idea I’d want to be the top one, rather than the one that is. But it’s easy to figure this out: just take a shower. What topic do your thoughts keep returning to? If it’s not what you want to be thinking about, you may want to change something.
So now we have the disassembly of the plugin, but the offsets of the crashlog cannot be found. The offsets produced by otx start at 0×00000f54 and go to 0×000024f3. That’s not nearly close to 0×179d383c. The reason behind that is simple: the plugin’s code is mapped into the memory where the linker things it got some space left. So we need to find out where the plugin was mapped in order to find the right spot in the disassembly.
The stack trace ended up looking funny in the crash log because of double method swizzling. I’ve run into the same issue with SpamSieve’s Apple Mail plug-in. SpamSieve always installs it in ~/Library/Mail/Bundles, but on some Macs another copy is installed in /Library/Mail/Bundles. (No user has admitted to putting it there, and it’s happened enough times that I think there must be some other software moving/copying it there. A mystery.) The plug-in now disables itself if another copy has already been loaded. For this crash, it was evident from the Binary Images section of the crash report what had happened, but it’s good to have otx in your toolbox.
Arq is an application for backing your Mac up to Amazon S3 (via Matt Henderson). I’m happy with CrashPlan, but Arq promises advantages such as better support for metadata and direct access to your backup data in a documented, Git-like format. S3 has an API and many clients, and Amazon is likely a very stable host, but it’s also considerably more expensive if you have hundreds of gigabytes of files.
Bill Cheeseman, developer of the UI Browser and UI Actions AppleScript utilities, has released some of his applications’ core technology as frameworks. The PFAssistive and PFEventTaps frameworks are Objective-C wrappers for the Accessibility and Quartz Event Tap APIs. There’s extensive PDF and HeaderDoc documentation, and for an extra fee you can get the source code. Garbage collection is not supported.
For those who want to see how it worked “under the hood,” we are pleased, with the permission of Apple Inc., to make available the original program source code of MacPaint and the underlying QuickDraw graphics library.
Xcode won’t open the .a files for display. I recommend viewing using BBEdit, which has syntax highlighting for both Pascal and 68K assembler files.
MAZeroingWeakRefbrings zeroing weak references to manual memory managed Objective-C. Although it uses some trickery on the inside, the API is extremely simple to use. By automatically zeroing weak references, you avoid many potential crashers and data corruption. Zeroing weak references can also be used for things like object caches where non-zeroing weak references aren’t very practical at all.
The resolution of offering free cases is what many people predicted. Apple wasn’t going to do a recall or a mid-year redesign, though iPhone 5 will probably have a coating or other modification to reduce the attenuation in the “weak spot.” The odd part was the tone. I was expecting something like the classy open letters that Apple has been posting from time to time. It could have been direct, businesslike, and brief. Instead, the event seemed to drag on forever, and it had an emotional and political flavor. This is more apparent watching the video than in most written accounts.
The event opened awkwardly with the iPhone Antenna Song, which includes lyrics like “the media loves a failure,” “the facts won’t ever matter,” and ”this whole damn thing is stupid.” Members of “the media” who flew across the country on barely any notice to sit in that room and hear Apple out; who were about to be trusted with relaying a message critical to Apple’s reputation; were greeted with sarcastic hostility. Customers who have seen their dropped calls double and triple—statistical minority or not, they exist—were mocked.
You really have to watch this quote to appreciate how the last line, “Okay. Great, let’s give everybody a case.” is dripping with disdain. Jobs seemed pretty forceful, even angry, during this whole presentation, but this part was exceptionally so. It’s like Jobs sees this “free case” response as a concession and certainly isn’t happy to announce it.
Instead, he sounded wounded and paranoid, as if we were all being ungrateful for not recognizing Apple’s contributions to the world. “We love our users so much we’ve built 300 Apple retail stores for them,” he claimed at one point. […] At another point, he asked a questioner, bizarrely, “What would you prefer, that we’re a Korean company? Do you not like the fact that we’re an American company leading the world right here?”
On Friday, Apple asked us to believe that the iPhone is just a phone. It’s just like the phones that Nokia and RIM make, or Samsung or Motorola. Nothing special about it. That may be the single most important thing they said, and I’m not even sure they know they said it.
It seems this is the end of the antenna story for now. I will be happy to move on. However, I can’t help wondering whether we’ve just witnessed a significant shift in the relationship between the company and its customers.
My hunch is that the iPhone 4 is more susceptible to signal loss from hand touches due to its external antenna. I also believe it does get better overall reception than earlier iPhones. What bothers me is that Apple, living up to the worst stereotypes of large corporations, hammers on the latter while never addressing the former. Maybe it has something to do with liability in all the class-action lawsuits, maybe it’s just “how things are done,” I don’t know. But it’s a shame.
Steve Jobs kept repeating that all smartphones are susceptible to this type of problem, but he could never quite say that Apple had made a tradeoff. He trotted out questionable statistics. (For example, the low return rate could be because the problem was well publicized, Apple had extended the return period, and people assumed a fix was in the works. And how likely is a return when you’re locked into the platform?) He didn’t address the possibility of adding a coating or some other hardware modification, instead joking that Apple hasn’t yet found a way around physics. The press let him spin and for the most part didn’t make good use of their questions.
The bumpers work, but I don’t think they’re a satisfactory solution. As Garrett Murray says:
But you can’t use the dock with a Bumper, and you can’t use most of the car accessories with a Bumper, and the Bumper makes it hard to put the phone into your pocket which means you’re more likely to drop it…
The good news is that Apple thinks the proximity sensor problem will be fixable in software.
Update: Marco Arment on cases.
The other thing the tape simulates is how the iPhone 4’s antenna would behave with a thick 1-mil (25.4 µm) coating. To test, I cupped the phone just like I did to cause the 24 dBm drop before.…The takeaway is that the best coatings Apple could possibly apply would bring the drop down to 15 or 16 dB—in league with the Nexus One’s worst case drop, and almost in league with the iPhone 3GS worst case drop.
The iPhone 4, by most accounts, is absolutely excellent. I love mine. It’s a huge step forward, and all previous iPhones look dated and primitive by comparison.
But there’s a giant asterisk. It has two major flaws, both of which appear to be physical and unsolvable by software updates…
Used to be that Apple’s products just worked, and if there was a problem you could count on them fixing it. iPhone 4 seems to be following the path of the Mini DisplayPort to Dual-Link DVI Adapter, where Apple stonewalls and eventually offers a fix that still doesn’t work properly.
I can appreciate why a lot of designers like Helvetica compared to Univers—Univers has a starkness about it, it’s cold. Maybe because of the antique-ness of Helvetica it has a certain charm that Univers lacks and at the same time has this neutrality, so I can see why people go for it, but if you start analysing it and going into the nitty gritty it is quite a horrendous font.
Fake is a new browser for Mac OS X that makes Web automation simple. Fake allows you to drag discrete browser Actions into a graphical Workflow that can be run again and again without human interaction. And Fake Workflows can be saved, reopened, and shared.
Inspired by Apple’s Automator application, Fake is like a combination of Safari and Automator.
It’s a simple class that wraps around a block allowing you to use it as the target and action for APIs that require it. It also optionally can take an extra block that is executed when the glue object is deallocated. This allows you to do any cleanup. In my NSTimer category from last time, I used this cleanup ability to allow the object to unregister from any notifications.
When some apps are left waiting weeks for approval, only to be rejected by Apple for minor objections, how does a company with no website, no description and apps that are literally swarming iTunes escape punishment? More importantly, how has someone managed to hack users’ accounts and left many, we can only assume, unaware they’ve been robbed?
More from Apple Insider.
Coalesce is good for periodic maintenance tasks. You can call the timer many times, and it will fire periodically as needed. By passing different delays into the timer, you can handle events with varying urgency. For example, if you write some very low-priority data to a file handle, you might specify a 60-second delay. If you write high-priority data, you might specify a 0.1-second delay.
MABGTimerwill intelligently combine those so that high-priority data following low-priority data will flush the entire cache.
- Pretending that previous iPhones were also subject to this problem, which as far as I know is not true—certainly not to the same extent.
- Acknowledging that iPhone has always inflated the signal strength. This explains why I usually have more bars than other AT&T phones and why calling is unreliable even with 4–5 bars.
- Announcing a free update that will reduce the number of displayed bars, thus hiding the drop.
- Not announcing anything that will improve the actual reception for people affected by this issue.
- Deflecting the blame to AT&T.
John Gruber brings his usual translation.
The July issue of ATPM is out:
- The Candy Apple: On Temptation
- MacMuser: Earl Grey, Computing’s Future?
- MacMuser: What a Waste
- Desktop Pictures: Charleston
- Out at Five
- Hardware Review: BearExtender n3
- Accessory Review: BookArc
- Software Review: Inner Quest 1.0
- Software Review: PDF2Office Professional 5.0.4
- FAQ: Frequently Asked Questions