Patrick Collison:
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.
Lukas Mathis:
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.
Interesting post from Ian Hickson (via John Gruber):
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.
The Pragmatic Programmers have started a new programming magazine, PragPub, edited by Michael Swaine. It’s available for free in PDF, mobi, and epub formats.
Junio Hamano:
We would want to find the commit that changed the contents of the file to make this block of code into its final shape. […] Note that we are not interested in commits for which “git show” output contains the given string. We are only interested in a commit whose tree has this string in the file literally, but whose parent’s tree does not. In other words, we do not have to (nor want to) run textual diff and grep in the result. We count the number of occurences of the given string in the file in the tree of the commit, and the same for the commit’s parent. If we get different number, the commit chnages the string, which is what we wanted to find. Counting occurrences of substring is much cheaper than first generating textual diff and grepping in it (which is not what we want to do anyway).
Bill Nye (via John Gruber):
The Applers were able to do this by bonding this oleophobic polymer to glass. The polymer is an organic (from organisms) compound, carbon-based. The glass is nominally inorganic, silicon-based…solid rock. The trick is getting the one to stick to the other. Although it is nominally proprietary, this is probably done with a third molecule that sticks to silicon on one side and to carbon-based polymers on the other side. Chemical engineers get it to stay stuck by inducing compounds to diffuse or “inter-penetrate” into the polymer. The intermediate chemical is a “silane,” a molecule that has silicon and alkanes (chains of carbon atoms).
I was surprised and pleased to find that it really does work. Now, about the back of the phone…
Daniel Jalkut:
I have been thinking for some time of eliminating FastScripts Lite. Customers found it confusing to differentiate between the versions, and I found it tedious to artificially maintain two versions. With the new, liberal evaluation terms in FastScripts 2.4, all of the old Lite functionality and much more is now included for free in the full version.
These days I rely on just two interface/automation utilities: FastScripts and LaunchBar.
Jim Capobianco:
Originally we were talking about carrying the art history into the crawl with 20th century art – cubism, Pollock, etc. but then Alex and Scott Morse had the idea to design the crawl as 8-bit. At first I wasn’t sure the style would work after Van Gogh but I guess since the “they survive” narrative was done with the cards we had license to play with a new thing. I also didn’t know until it was pretty much irreversible if this would work with Peter Gabriel’s song. But it is amazing how our minds associate images with what information we are given, auditory, visual, and just makes a connection.
Mike Ash:
RPRVT can be useful as a rough indicator for watching if the total amount of memory your program has allocated is going up or down. This is dangerous to rely on, however. Because this only tracks resident memory, if your program has started to swap then your RPRVT will no longer increase, even though you’re still allocating more and more memory. (To detect this, you can watch to see if VPRVT is going up, and the number of pageouts listed at the top of the screen is going up.) Conversely, the memory allocator doesn’t always give memory back to the system right away, so this number may not go down if your program is freeing memory.
Lukas Mathis:
The stop/reload button doesn’t immediately switch from one state to the other anymore. Instead, there is a quick fade between the two states. During the fade, clicks on the button are ignored, so when you want to stop loading right when the button switches from «stop» to «reload», the click is mercifully ignored.
Marco Arment:
The majority of the audience was clearly there for the Q&A. As people lined up at the microphones around the room, the presenter abruptly showed a simple slide with only “WWDC” in plain lettering, thanked us for coming, and bolted off the stage. The Apple engineers, usually staying around the stage for one-on-one questions, were gone. The lights came up instantly, and it was the only session that didn’t end in music. The audience was stunned.
James Carr (via Ned Batchelder):
The Nitpicker:
A unit test which compares a complete output when it’s really only interested in small parts of it, so the test has to continually be kept in line with otherwise unimportant details. Endemic in web application testing.
Mike Ash:
The way it works is it essentially runs your program inside an emulator. By doing this, it has total control over everything your program does. Something that's undetectable when running on the processor, like reading from a memory location that was never initialized, suddenly becomes easy to see.
John Gruber:
But it seems risky and unbecoming for a company of Palm’s stature. It’s a hack, and if they’re really using Apple’s USB vendor and/or device IDs, it’s a duplicitous hack. It could well break with a future iTunes upgrade. (For all I know, it’s already broken with the iTunes 8.2 update released earlier today.) If Apple finds a way that Palm’s iTunes integration hack differs from that of the actual iPod it is masquerading as, Apple could change iTunes to block it. At that point, an advertised Pre feature would be broken. What does Palm do then? Start a cat-and-mouse game? Advise Pre users against updating their copies of iTunes?
Vincent Gable:
What authentication code do you think is harder for a bad guy to hack, the 7 character strong password “1Ea.$]/”, or the pneumonic for the first 3 characters, “One Elvis Amazon”? Certainly “1Ea.$]/” is harder for a person to remember. It feels like it should be harder to break. But a computer, not a person, is going to be doing the guessing, and all it cares about is how big the search space is.
Jens Alfke, regarding the Eucalyptus rejection:
Maybe you think “evil” is too strong or melodramatic or exaggerated a word for this. Then feel free to substitute something that has fewer loaded connotations to you—“unethical” or “anticompetitive” or whatever. But if you’re one of those who, like me, has applied the “e” word to the past actions of Microsoft, or to groups that try to ban books from libraries, then I think there’s really no option but to use the same blunt language here and now.
Secondly, Alfke makes a good point in the first comment that there can be a big difference between what users think is in the SDK and the reality of what’s allowed.
Tim Bray:
In the old days, I would have been happily running on the new machine by now, cheerily blogging about my shiny new Mac. As it is, it looks to me like Apple, not to put too fine a point on it, removed a killer feature from a flagship product. This doesn’t feel like a good idea.
I don’t really care that much about FireWire in particular, but with no eSATA and no USB target disk mode, something seems to be missing.
Dan Benjamin:
Inconsolata is my favorite monospaced font, and it’s free. Shortly after discovering it, it quickly supplanted Deja Vu Sans Mono as my go-to programming font. I use it everywhere, from Terminal windows to code editors. It has a certain sublime style that’s unique without being over the top, and it looks fantastic at both large and small sizes.
He has some nice samples of syntax-highlighted code. I’ve long preferred ProFont 9, without anti-aliasing. However, I’ve not been able to get it (or ProFontX) to work properly in Cocoa applications, so I’m currently using Monaco.
Benjamin’s top three are all pretty good. Deja Vu Sans Mono is nice except for the zeroes. Inconsolata looks great at larger sizes, but at smaller sizes it has a little too much personality and funny equals signs. If I were going to use an anti-aliased font, I’d probably choose Consolas or Monaco.
Apple has rejected Drivetrain, an iPhone app that controls Transmission. Steven Frank:
Turns out it’s not even because it requires a companion desktop app, which was previously used as grounds for rejection (despite the existence of Apple’s own “Remote”), but because “this category of applications” is frequently used for infringing copyright.
Of course, being a remote control, Drivetrain doesn’t itself transmit any possibly infringing content. Neven Mrgan says:
Here’s another application frequently used for infringing copyright: iPod.
Adobe’s John Nack responds to a code-comment rant by Dag Ågren:
Here’s what I think people want to know: Is Photoshop’s PSD format a goofy, antiquated piece of crap, and by extension is Photoshop slow, clumsy, and/or outdated?…No.
On the contrary, I think that’s simply the question that Nack wanted to answer. Ågren’s points seem to be legitimate, if indelicately expressed and not intended for wide distribution. Nack essentially concedes them, then tries to suggest that someone wanting to read existing PSD files should care about Adobe’s FXG file format. The takeaway: Adobe has no sense of humor and would rather attack the messenger than accept criticism gracefully.
Update (2009-05-06): Gus Mueller makes some good points in the comments.
Mark Alldritt:
My reasons for suspending FaceSpan development are many. Chief among them are that I keep missing every deadline I have set for myself. I am now over 2 years into this project and I cannot clearly see how to wrap development up so that I have a product to sell. I also am feeling that in the time it has taken me to do this work, the world has moved on and AppleScript-based UIs are not going to be relevant in the marketplace.
This is a shame because FaceSpan seemed much more approachable than AppleScript Studio, but it does seem like a challenging product to sell. Hopefully, this will leave Alldritt more time to work on his other products.
David McGavern:
On Friday, May 1st, I called Apple Developer Technical Support to find out what was going on with the review process, and to see if my earlier comments had been received. They then told me the shocking news that writing an iPhone app that requires a desktop “companion” app was prohibited.
Update (2009-05-07): The person in DTS who told him this was wrong.
Steven Frank:
This is impenetrable. It’s UI salad. I realize this is not (yet) shipping software, but my god. If you sat me down in front of this, I wouldn’t have the slightest idea where to begin.
Update (2009-04-30):
Jesper:
So in short, if Steven Frank wants to call the Ribbon “UI salad”, it is fine by me since I’ve found its use in its original habitat a very desirable and nutritious salad.
Steven Frank:
Part of the reason my reaction was so negative was that, in my mind, I was trying to walk through a phone conversation with a hypothetical family member who was struggling with that window.
Louis Gerbarg (via John Gruber):
If there was some way to make this solution work it would also mean there is a way to make it safe to randomly unplug hard drives. Trust me, if Apple knew how to do that it would be done, and the OS would not chastise you for doing something stupid when you unplug your USB pendrive without telling it first. Since they haven't figured out how to let you safely unplug USB drives unannounced it seems like a bad idea to base a backup solution on what is in essence a wireless USB cable that is phasing in and out of existence.
I have not been able to get a Time Capsule backup to last much more than a month (even with 10.5.6) before becoming corrupt, even when backing up over Ethernet. So I think there must be other problems besides the disconnection ones that Gerbarg mentions. Time Machine seems to work well over FireWire and USB, however.
Emily Steel:
Mr. Connare says he first realized that the tide had turned against Comic Sans in January 2003, while studying for his master’s degree in type design at the University of Reading in Berkshire, England. He got an email from Mr. Combs asking for permission to use his photo for stickers, T-shirts and coffee mugs to promote “typography awareness” for the movement to ban Comic Sans that he and his wife had founded. Busy and distracted, Mr. Connare said OK.
I don’t really understand the big deal with Comic Sans. If you’re going to hate a font, hate Arial.
I’ve been using Apple products since the mid-80s, and only very rarely have they needed repair. The Intel-based Macs, unfortunately, have been different. I bought an iMac Core Duo as soon as it became available in order to develop universal binary versions of my products. I did not buy AppleCare because, to that point, I had never needed it, and because I intended to replace the iMac with a notebook or tower when they became available. The iMac worked great for a little more than a year. Then, the warranty having expired, one day it would no longer turn on.
My first MacBook Pro, a 17-inch Core 2 Duo model, had a defective logic board so that after the first full day of use it wouldn’t turn on. Apple quickly repaired this, but I soon discovered that the hard drive was defective. I sent it in again, and Apple returned it without touching the hard drive. In the third mail-in repair, Apple replaced the hard drive, and it’s been working ever since.
My second MacBook Pro, a 15-inch unibody model, doesn’t work properly with external displays. There’s a problem using the Mini DisplayPort to Dual-Link DVI Adapter. I sent the computer to Apple, who determined that the hardware was working correctly and promised a fix via software update that—about six months after the unibody MacBook Pros were introduced—has yet to be released.
After about two months, the MacBook Pro developed a fan problem, which judging from Apple’s discussion boards is rather common. The fan under the keyboard made a rattling/clicking noise. It was constant but most pronounced at low RPMs when there was less other fan noise to drown it out.
On March 27, I sent the computer to Apple to have them fix it.
On April 2, I received it back from Apple. The fan had been fixed, but Apple’s repair crew had added a large scratch to the front of the case, near the Apple logo. Happy just to have my Mac back, I considered not doing anything. I didn’t really want to do another one-week repair for a cosmetic issue.
On April 3, I decided that (a) the scratch might hurt the resale value, and (b) I wanted Apple to know that it was their fault, so that if any other hardware problems developed they would fix the case at the same time. So I called Apple again. They confirmed from their repair center records that the case had been pristine when they had received the computer for the fan repair. They took responsibility and were very apologetic, saying they wanted my (still essentially brand-new) MacBook Pro to be in perfect condition. They would provide “white glove service” and get it fixed quickly. So I decided to do another mail-in repair.
On April 6, I sent the computer back to Apple.
On April 9, the repair status Web site said that the repair was “On hold - Need information.” I called Apple and, after 10 minutes on hold, was told that they were waiting on a “requote”; they would call later in the day with more information. A few hours later, I received a call saying that (contrary to their previous admission) Apple had not damaged the case. So I could pay $1,200 to have them fix it or else have them ship it back unrepaired.
I made a new call to Apple and eventually got to speak with a supervisor who said that Apple would honor their original promise to repair the MacBook Pro at no charge.
On April 10, the supervisor called to say that he estimated that the computer would be shipped back to me on April 13 or 14.
On April 15, the supervisor e-mailed me:
They are having some issues at the moment in getting the computer to pass testing. They have not sent it back yet and are working to get it up to manufacturing standards.
On April 16, FedEx delivered the computer. The entire outside of the case, as well as the palm rest, was grimy, although this was easy to clean. There was also a pinhole dent next to the speaker grille, which I’m choosing to ignore.
The repair notes showed that Apple had replaced the LCD, the bottom case, and the frame. They had also replaced (and, thus, erased) the hard drive, which I had not used, having immediately replaced it with a 500 GB one when I bought the computer. I have no idea how so many components failed. Everything had seemed normal while the computer was in my possession. Of course, I had taken good care of it. Due to the short ownership period, and the fact that it was out of my possession for almost a month of that time, I had never even travelled with it.
In any case, the computer now passes Apple Hardware Test, and everything seems to be working properly, except for the external display.
Here are some random notes about the repair process:
- Despite the above problems, I still prefer mail-in repairs to using my local (non-Apple) store. If you have a non-notebook Mac, Apple will not do mail-in repairs, even if the computer is covered by warranty or AppleCare.
- Perhaps I’ve just been unlucky, but Macs don’t seem to be as reliable as they once were. AppleCare is probably a good investment.
- Of course, I still recommend having a backup and a backup computer. You don’t know how long the repair will take.
- It’s fantastic that the unibody notebooks (and the plastic MacBooks) make it so easy to swap hard drives. This allows you to (a) not send your data to Apple, and (b) stick the drive into a BlacX or Voyager in order to keep using it as your boot drive. However, I doubt Apple will repair a Mac that doesn’t have a hard drive, so make sure that you have another drive to swap in.
- If you use Time Machine, it will see the backup computer as a separate Mac, even if you’re booting from the same hard drive. Thus, unless your backup drive has lots of free space, you’ll need a second backup drive to continue making Time Machine backups.
- Some applications require reauthorization when you switch Macs, even if you’re booting from the same hard drive. For me, these where: iTunes (which threatened to delete all the apps from my iPhone), Script Debugger, QuickBooks, and Aperture. OmniFocus does not need reauthorization, but it sees the backup Mac as a separate computer for syncing purposes. Going into the preferences and removing unused sync clients can really improve the syncing speed.
- Each time I switched back to the unibody MacBook Pro, Energy Saver had forgotten to use the “Higher performance” graphics setting.