Archive for November 14, 2015

Saturday, November 14, 2015

What Goes Up

John Gruber:

What I don’t get is why Apple gets singled out for its singular success, but other companies don’t. 92 percent of Google’s revenue last year came from online advertising. And more importantly, I don’t get why Apple’s non-iPhone businesses are so quickly written off only because they’re so much smaller than the iPhone.

Apple’s total revenue for last quarter was $51.5 billion. The iPhone accounted for $32.2 billion of that, which means Apple’s non-iPhone business generated about $19.3 billion in revenue. All of Microsoft in the same three months: around $21 billion. All of Google: $18.78 billion. Facebook: $4.5 billion. Take away every single iPhone sold — all of them — and Apple’s remaining business for the quarter was almost as big as Microsoft’s, bigger than Google’s, and more than four times the size of Facebook’s. And this is for the July-September quarter, not the October-December holiday quarter in which Apple is strongest.


Nothing in the world compares to Apple’s iPhone business, including anything else Apple makes. But a multi-billion-per-quarter business here (Mac), a multi-billion-per-quarter business there (iPad), a “Services” division that generates more revenue than Facebook, and an “Other” category (Watch, Apple TV, Beats, iPod) that booked $3 billion in a non-holiday quarter — and it’s clear that Apple’s non-iPhone businesses, combined, amount to a massive enterprise.


Update (2015-11-14): Landon Fuller:

It’s not like Apple’s non-iPhone segments are totally independent of changes in the iPhone market, though.

Where “where” May Be Used in Swift

Marcin Krzyżanowski:

The fact is you can use where keyword in a case label of a switch statement, a catch clause of a do statement, or in the case condition of an if, while, guard, for-in statement, or to define type constraints.

There are no Python-style list or dictionary comprehensions, though.

Swiping to Dismiss Safari View Controller

Juli Clover:

The first beta of iOS 9.2 introduced some changes for the Safari View Controller within apps, letting it work more like the standard Safari app with support for third-party Action Extensions and the ability to long tap on the Reload button to reload content without content blockers or request desktop site.

Much better.

Git Diff for Binary Property List Files

Christopher Bowns:

In the same vein as diffing UTF-16 .strings files in git:

It’s easy to set up git to show diffs for binary .plist files.

The commands are:

git config --global diff.plist.textconv "plutil -convert xml1 -o -"
echo "*.plist diff=plist" >> .gitattributes

The Depressing Effect of Bug Bounties

Jacob Torrey (via Gwynne Raskind):

By artificially deflating the cost of finding and fixing bugs in operation/shipped product through monopolistic means, bug bounties remove the economic incentive to develop better software by integrating security-aware architects into the SDLC. Bug bounties use their monopoly on setting prices (and preach the evils of selling exploits to other buyers on the market), usually after the vulnerability has been disclosed.

Gene Amdahl, RIP

Katie Hafnernov (via Slashdot, comments):

Dr. Amdahl rose from South Dakota farm country, where he attended a one-room school without electricity, to become the epitome of a generation of computer pioneers who combined intellectual brilliance, managerial skill and entrepreneurial vigor to fuel the early growth of the industry.

As a young computer scientist at International Business Machines Corporation in the early 1960s, he played a crucial role in the development of the System/360 series, the most successful line of mainframe computers in IBM’s history. Its architecture influenced computer design for years to come.

Computer History Museum (via Grady Booch):

In 1970, Amdahl left IBM for the second and final time to pursue his dream of building his own computers, founding Amdahl Corporation. His new company made mainframe computers that ran IBM software, but at lower cost. At its peak, it captured nearly one-fifth of the market.


FUD was first defined with its specific current meaning by Gene Amdahl the same year, 1975, after he left IBM to found his own company, Amdahl Corp.: “FUD is the fear, uncertainty, and doubt that IBM sales people instill in the minds of potential customers who might be considering Amdahl products.”

Chris Espinosa:

Gene Amdahl was the John DeLorean of mainframes (but without the cocaine). Invented, tried to out-compete, the IBM 360.


In computer architecture, Amdahl’s law (or Amdahl’s argument) gives the theoretical speedup in latency of the execution of a task at fixed workload that can be expected of a system whose resources are improved.


Amdahl’s law is often used in parallel computing to predict the theoretical speedup when using multiple processors. For example, if a program needs 20 hours using a single processor core, and a particular part of the program which takes one hour to execute cannot be parallelized, while the remaining 19 hours (p = 95%) of execution time can be parallelized, then regardless of how many processors are devoted to a parallelized execution of this program, the minimum execution time cannot be less than that critical one hour.

Update (2015-11-14): btilly:

The technical staff said that the operating system should run on microcode to abstract away the hardware. That way it would be easier for customers to migrate to new hardware as it became available. And they could easily add a new instruction if they needed to.

Gene said that it would be an order of magnitude faster if it ran directly on the hardware, and it wasn’t that hard to support that API going forward.

Both proved right. Gene built computers that were massively faster than IBM’s and perfectly compatible. IBM then added an instruction in micro-code and made all of their software use it. Gene’s installed base all crashed on IBM’s new code, while IBM’s was fine. The US government launched an anti-trust lawsuit, which wound up binding IBM’s hands for many years after.

IBM mainframes today still run on micro-code. And it still makes them massively slower than they need to be, but with better backwards compatibility. The mainframe world depends on a lot of programs from the 1960s and 1970s that runs, unchanged, today. Everyone else is using native instructions and runs faster.

John Dieffenbach:

“Because as soon as the IBM sales rep sees the Amdahl coffee cup on your desk, he’ll know I was here and he’ll drop his price by $1 million if you ask him to.”


Amdahl left his company in 1979 to set up Trilogy Systems, an organization aimed at designing an integrated chip for even cheaper mainframes. When the chip development failed within months of the company’s $60-million public offering, Trilogy focused on developing its VLSI technology, which also did not do well. In 1985 Trilogy was merged into microcomputer manufacturer Elxsi (now Tata Elxsi), but poor results there had Amdahl leaving in 1989 for a company he founded in 1987 to produce mid-sized mainframes, Andor International, which had been driven into bankruptcy by production problems and strong competition by 1995.


Said David Patterson, a professor of computer sciences at the University of California, Berkeley, and a computer pioneer in his own right, “The IBM System/360 was one of the greatest computer architectures of all time, being both a tremendous technical success and business success. It invented a computer family, which we would call binary compatibility today. When he left to form his own company, his mainframes were binary compatible with the System/360.”


In addition to Amdahl’s Law, Patterson said, "Less well-known are Amdahl’s rules of thumb for a balanced computer system," which include, "A system needs a bit of IO per second and one byte of main memory for each instruction per second."