Archive for December 24, 2012

Monday, December 24, 2012

The End of x86? An Update

Michael J. Fern (via Hacker News):

x86 shipments dropped by 9% in Q3 2012. Furthermore, the expected surge in PC sales (and x86 shipments) in Q4 due to the release of Windows 8 has failed to materialize. NPD data indicates that Windows PCs sales in U.S. retail stores fell a staggering 21% in the four-week period from October 21 to November 17, compared to the same period the previous year. In short, there is now falling demand for x86 processors. Computer buyers are shifting their spending from PCs to next generation computing devices, including smartphones and tablets.

It’s interesting to consider that Intel’s problem may be more with its business model than its technology. I think they’ll be able to make processors that are competitive in terms of performance and power, but what about in terms of dollars?

Meanwhile, Matt Mastracci has an interesting idea about how Apple might use ARM chips in Macs:

There is a fair bit of space on inside of a MacBook compared to an iPad or iPhone. Apple would use some of this space to drop one of the A5 chips on the motherboard next to the Intel chip, effectively [building] themselves a hybrid ARM/x64 system.

In other words, ARM can’t replace x86 on the desktop because it’s far too slow for certain tasks, particularly at running existing x86 software in emulation. But what if you could have an x86 that’s powered down most of the time? You could have a lot of battery life without sacrificing performance when the Mac is plugged in.

Setting Up a Secure, Resettable Password Database

Dan Wood:

Since reading online tales of some of the horrible things that crackers have been able to do to get to people's account information, I thought that this was a fascinating set of guidelines on building a database of users and passwords the right way.

The original article is worth a read, especially if you are working on any database of users, but it's a long read. Here is my brief summary for your convenience[…]

An Interactive Guide to the Fourier Transform

Kalid Azad:

The Fourier Transform changes our perspective from consumer to producer, turning “What did I see” into “How was it made?”.

In other words: given a smoothie, let’s find the recipe.

I’ve enjoyed his Better Explained articles. Even when the explanation isn’t necessarily any better, it’s nice to look at the concepts in different ways.

What Will Programming Look Like in 2020?

Lambda:

I thought it would be fun to gather a bunch of predictions if anyone is willing. […] Keep in mind that programming in 2012 mostly resembles programming in 2004, so could we even expect any significant changes 8 years from now in the programmer experience? Consider the entire programming stack of language, environment, process, libraries, search technology, and so on.

mainthreadonly Properties

Steven Fisher proposes a new Objective-C property attribute:

mainthreadonly would be like nonatomic. Compared to nonatomic, it also warns that the property can only be set from the main thread. @synthesize would generate a setter that is not onlynonatomic, but generates an exception if called from a thread other than the main thread.

Sounds good to me, although I see no reason why this sort of annotation should be limited to properties. Some other methods also must be called from the main thread.

Switching Back to iPhone

Rui Carmo:

Like many pointed out when the iPad came along, the iOS UI conventions need to be re-thought to stop using actionable items on the opposite ends of where your hands grip the device, period.

And he misses Android’s task switching, notifications, and intents:

I can probably live with their not exposing the filesystem if they fix iCloud and local storage to the point where any app can see each other’s (compatible) data, but effortless text input is a major aspect of the user experience that they’re simply not addressing.

Xcode and Newlines vs. Line Breaks

Bill Bumgarner:

Thus, if you are an emacs head and you commonly hit ctrl-e<return> to start a new line of code and you happen to hold down the return key just a tad too long, it causes the error shown (or a variant depending on where the insert happens).

Why does Xcode even have this default key binding?