Michael Loukides

photo_mikel_m.jpgMike Loukides is some sort of senior editor for O'Reilly Media, Inc. He's edited books on most technical subjects that don't involved Windows programming. He's particularly interested in programming languages, Unix and what passes for Unix these days, and system and network administration. He's the author of “System Performance Tuning”, and a coauthor of “Unix Power Tools.” Most recently, he's been fooling around with Haskell and social applications, and is particularly interested in the security and privacy issues that these applications raise.

Mike is also a pianist and a ham radio operator.

Mike Loukides是O'Reilly Media,Inc.的资深编辑。他编辑了很多技术主题的书,但不包括Windows编程方面的。他对编程语言、Unix以及近些年Unix相关的内容、系统和网络管理非常感兴趣。他是“System Performance Tuning”的作者,也是“Unix Power Tools”的作者之一。最近他混迹于Haskell语言和社交应用领域,尤其是对这些应用产生的安全和隐私问题感兴趣。

Mike也是一位钢琴家业余无线电爱好者

Google Fiber and the FCC National Broadband Plan

Mike Loukides @mikeloukides 2010-03-16

I've puzzled over Google's Fiber project ever since they announced it. It seemed too big, too hubristic (even for a company that's already big and has earned the right to hubris)--and also not a business Google would want to be in. Providing the "last mile" of Internet service is a high cost/low payoff business that I'm glad I escaped (a friend and I seriously considered starting an ISP back in '92, until we said "How would we deal with customers?").

But the FCC's announcement of their plans to widen broadband Internet access in the US (the "National Broadband Strategy") puts Google Fiber in a new context. The FCC's plans are cast in terms of upgrading and expanding the network infrastructure. That's a familiar debate, and Google is a familiar participant. This is really just an extension of the "network neutrality" debate that has been going on with fits and starts over the past few years.

Google has been outspoken in their support for the idea that network carriers shouldn't discriminate between different kinds of traffic. The established Internet carriers largely have opposed network neutrality, arguing that they can't afford to build the kind of high-bandwidth networks that are required for delivering video and other media. While the debate over network neutrality has quieted down recently, the issues are still floating out there, and no less important. Will the networks of the next few decades be able to handle whatever kinds of traffic we want to throw at it?

In the context of network neutrality, and in the context of the FCC's still unannounced (and certain to be controversial) plans, Google Fiber is the trump card. It's often been said that the Internet routes around damage. Censorship is one form of damage; non-neutral networks are another. Which network would you choose? One that can't carry the traffic you want, or one that will? Let's get concrete: if you want video, would you choose a network that only delivers real-time video from providers who have paid additional bandwidth charges to your carrier? Google's core business is predicated upon the availability of richer and richer content on the net. If they can ensure that all the traffic that people want can be carried, they win; if they can't, if the carriers mediate what can and can't be carried, they lose. But Google Fiber ensures that our future networks will indeed be able to "route around damage", and makes what the other carriers do irrelevant. Google Fiber essentially tells the carriers "If you don't build the network we need, we will; you will either move with the times, or you won't survive."

Looked at this way, non-network-neutrality requires a weird kind of collusion. Deregulating the carriers by allowing them to charge premium prices for high bandwidth services, only works as long as all the carriers play the same game, and all raise similar barriers against high-bandwidth traffic. As soon as one carrier says "Hey, we have a bigger vision; we're not going to put limits on what you want to do," the game is over. You'd be a fool not to use that carrier. You want live high-definition video conferencing? You got it. You want 3D video, requiring astronomical data rates? You want services we haven't imagined yet? You can get those too. AT&T and Verizon don't like it? Tough; it's a free market, and if you offer a non-competitive product, you lose. The problem with the entrenched carriers' vision is that, if you discriminate against high-bandwidth services, you'll kill those services off before they can even be invented.

The U.S. is facing huge problems with decaying infrastructure. At one time, we had the best highway system, the best phone system, the most reliable power grid; no longer. Public funding hasn't solved the problem; in these tea-party days, nobody's willing to pay the bills, and few people understand why the bills have to be as large as they are. (If you want some insight into the problems of decaying infrastructure, here's an op-ed piece on Pennsylvania's problems repairing its bridges.) Neither has the private sector, where short-term gain almost always wins over the long-term picture.

But decaying network infrastructure is a threat to Google's core business, and they aren't going to stand by idly. Even if they don't intend to become a carrier themselves, as Eric Schmidt has stated, they could easily change their minds if the other carriers don't keep up. There's nothing like competition (or even the threat of competition) to make the markets work.

We're looking at a rare conjunction. It's refreshing to see a large corporation talk about creating the infrastructure they need to prosper--even if that means getting into a new kind of business. To rewrite the FCC Chairman's metaphor, it's as if GM and Ford were making plans to upgrade the highway system so they could sell better cars. It's an approach that's uniquely Googley; it's the infrastructure analog to releasing plugins that "fix" Internet Explorer for HTML5. "If it's broken and you won't fix it, we will." That's a good message for the carriers to hear. Likewise, it's refreshing to see the FCC, which has usually been a dull and lackluster agency, taking the lead in such a critical area. An analyst quoted by the Times says "One again, the FCC is putting the service providers on the spot." As well they should. A first-class communications network for all citizens is essential if the U.S. is going to be competitive in the coming decades. It's no surprise that Google and the FCC understands this, but I'm excited by their commitment to building it.

Mathematics and Art

Mike Loukides @mikeloukides 2010-02-10

Nikki Graziano's intriguing integration of mathematical curves into her photography sparked a Radar discussion about the relationship between mathematics and the real world. Does her work give insight into the nature of mathematics? Or into the nature of the world? And if so, what kind of insight?


Mathematically, matching one curve to another isn't a big deal. Given N points, it's trivial to write an N+1 degree equation that passes through all of them. There are many more subtle ways of solving the same problem, with more aesthetically pleasing results: you can use sine functions, wavelets, square waves, whatever you want. Take out a ruler, measure some points, plug them into Mathematica, and in seconds you can generate as many curves as you like. So finding an equation that matches the curve of an artfully trimmed hedge is easy. The question is whether that curve tells us anything, or whether it's just another stupid math trick.


It's not a simple question. A few weeks ago, I came across a brilliant essay from 1960, The Unreasonable Effectiveness of Mathematics in the Natural Sciences. The point of the essay is that while mathematics is an incredibly abstract discipline, with no apparent contact to the real world, against all reasonable expectation mathematical results have proven to be invaluable in studying the physical world. Why should purely mathematical results be relevant in everything from population studies to quantum physics? Why do the Fibonacci series, fractals, and other abstract mathematical concepts show up in nature?


My favorite example is the square root of -1. In grade school, we're first told that there's no such thing. Then, sometime in high school, we're told "well we lied, but the square root of -1 is imaginary, call it i". Except it isn't imaginary. The square root of -1 makes a profound connection between the world of exponentials and the world of circles. And the world of circles is the basis for every every wave phenomenon we know about. Much of physics, and just about all of electrical engineering wouldn't exist without i--or would be so hampered by grossly complex mathematics that we couldn't explore it. But even though it's what makes the world go 'round, you can never point me to the square root of -1. It has extraordinary power, both mathematically and physically, but it's "imaginary."


So--back to the connection between art and math. Is she showing a deep connection between the objects she photographs and the mathematical world, or is it just a math trick? And is that deep connection necessary? A number of years ago, I went to a concert of the works of György Ligeti. Ligeti gave a talk in which he said the works were inspired by Benoit Mandelbrot's work--though he had not attempted to replicate Mandelbrot curves in the music itself. You didn't need to understand fractals to appreciate the music, and upon hearing the music you wouldn't say "damn, is that a fractal I just heard?" The music didn't attempt to represent the math, and the math doesn't define the music.


In Graziano's photography, as presented in Wired, I find the relationship more troubling. The math is imposed on (both in the sense of "superimposed" and in the sense of a power relationship) the natural scenes. Does the math inform the natural world? Or does it usurp it? I think this ambiguity is both healthy and intentional. But what's less healthy is that I don't find the math that convincing. In the first of the Wired pictures, the mathematical curve is (log(x)/2)^sin(x). (Or so I think. The equation is typeset poorly; this interpretation comes closes to matching the picture). It's difficult to believe that this log^sin relationship corresponds to nature. And it blows up outside of the domain used in the photograph--an almost certain sign of ham-fisted curve fitting run amok. The second photo, some clouds that match a Gaussian bell curve, is much more convincing: I can believe that there's a deep relationship between a Gaussian curve and cloud formation. I find the fifth and sixth photos particularly interesting. The fifth shows a canopy of vines, with a hyperbolic paraboloid mapped on top of it (z = y^2 -x^2). Wikipedia says that this curve is useful in the design of large roofs because it is inherently strong and allows the use of lightweight buildng materials. I'm more than willing to guess that a canopy of vines would take this form. The final picture in the series is similar: another vine or bush (right now, I wish I were better at horticulture), overlayed with a surface that looks like a paraboloid, but is really sin(3*y*x^2/4). An interesting choice, but it's hard for me to believe that there's any intrinsic relationship between this surface and the way plants grow. Ligeti's music was "inspired" by Mandelbrot; Mandelbrot didn't force his equations into an analysis of the score. In Graziano's case, the math frequently appears to be "inspired" by the photography in a way that feels false to me.


But ambiguities abound. Math has been "unreasonably effective" throughout history; could that be happening here? The first picture doesn't look like a wild scene; I think it's a garden, and that the plants were possibly pruned by a gardener. So this odd log/sine combination might not be a statement about how plants grow, but a statement about human aesthetics (like the Golden Ratio). And the final photograph--while I don't believe the sin(xy^2) relationship says much about how a tangle of vines hangs together, plant growth depends strongly on sunlight. The sun travels in a more-or-less circular path, and in a large, overgrown tangle, it's at least plausible (though I'm not convinced) that this curve says something about exposure to the sun, given the sun's path through the sky and the effects of shadows.


Are mathematical complex effects hiding in plain sight? In the curve trimmed by a careful gardener, or in the seemingly random growth of a tangled vine? Absolutely. I'm not convinced that these effects are always the ones Graziano is showing us. Is Graziano's math arising out of the natural world, or is it imposed upon it? I don't know whether she's doing something profound, or just being clever, and this ambiguity bothers me. But it has made me think, and that's certainly the function of art.

Wolfram|Alpha API to be released later today

Mike Loukides @mikeloukides 2009-10-15

We've just been told that the public API for Wolfram Alpha will be made available later today. The API documentation will be available at http://products.wolframalpha.com/api . As of noon, PDT, that page only redirects to the Alpha home page, but they've promised it will be available sometime this afternoon.

It's hard to write much about an API that hasn't appeared yet, but let me tell you why I think it's important. Lots of writers have compared Alpha to Google, but I think that's a mistake. it's a data source, not a search engine, and that's a significant difference. What matters with a data source is the ability to ask a question, get an answer back, and use it as easily as possible. An API minimizes the impedance mismatch: you can do computing directly with Alpha's curated data.

But there's another comparison that's even more relevant: Twitter. What has made Twitter success isn't so much the web application that lives at twitter.com. What has made Twitter valuable is the huge ecosystem that has grown up around that application: alternate clients for all sorts of platforms, web sites for searching, slicing, dicing, and remixing. Those have all been enabled by a simple and well-thought-out API for dealing with Twitter programmatically. The web isn't about web pages; it's about interactions between data sources.

Wolfram|Alpha gets this. The web site is just the down-payment; the real value is in the APis that will let developers build an application ecosystem around Alpha. As they put it: "The end-game [is] to drive new and innovative applications of our technology that we literally never could have imagined, driving computational knowledge into new domains." What will this look like? I don't know, but I can't wait to find out. I'm excited.

The King is Dead, Long Live the King

Mike Loukides @mikeloukides 2009-06-11

I've been resisting the temptation to write about Android. But after reading some of the blogs about Android netbooks, I can't keep quiet.

Aside from being a Really Cool Idea, I don't have a lot to say about netbooks themselves. I've got an Android phone (thanks, Google), and I like it, and it would be nice to see the operating system move from the cell phone world onto other hardware. Netbooks are a logical step. But what's the next step after netbooks? How long will it be before we see "big" computers--full sized laptops and desktops, developer machines for serious coding, video and audio production, even servers--run on Android?

What would have to happen for Android to become a developer operating system? Probably not as much as you think. We'd need the sorts of tools you expect on a desktop--but Google already has an office suite. We'd need developer tools, but I see no reason to believe that Eclipse couldn't be made to run well on Android. (Yes, you'd have to replace SWT with an Android UI.) And there's already Mozilla's bespin, which is looking more and more like a browser-based IDE every day.

A few other tools would be needed. Everybody Loves to Hate Java, so I have no illusions that developers will drop their favorite languages to write native applications. But that's not necessary on several levels. What would it take to get JRuby to run on Android? Not much, I bet. What about the other languages that run in the JVM? Again, not much. C and C++ might fade into the past (running C in a virtual machine just misses the point), but assuming other languages can be made to run on the Android VM, we wouldn't lose much else--not even Lisp.

Think about how that would change the game. We'd have a fourth major operating system to contend with--and two of the major operating systems would be open source, from the top down. Linux has a decent share of the server market, but has never thrived on the desktop. It would be great to see a new platform cause a big jump in open source's share of the end-user market. Do we really need another desktop/netbook option? I like chaos, and admit that I enjoy thinking about the creative forces that would be unleashed. We might indeed end up with the browser being the platform for the next generation of applications--and that might finally make operating systems irrelevant. That's something Sun promised, but never managed to deliver.

So--what does this have to do with royalty? In the past two weeks, there have been two conferences in Moscone Center: Google I/O (which I attended) and JavaOne (which I missed). While Larry Ellison's JavaOne keynote was described as a farewell party for the Sun execs, it struck me more as the captive nobility lead up on stage before having their heads put on pikes and paraded around Silicon Valley. I mean no disrespect to Mr. Ellison, but we're adults here--we know how this game is played. If it was a farewell party, where was the cake? Where were the gold watches?

For a long time, I thought that "The King is Dead, Long Live the King" was a funny bit of irony, or cool dadaist humor. But it really refers to the doctrine of the King's Two Bodies. A king is a mortal person: he's born, he lives, he dies. Nothing changes that. But the king is also the embodiment of the State, and when he dies, physically, the state lives on, embodied in the next king.

It's clear that Java's center of gravity has moved. Google I/O was filled with interesting developers doing interesting things and excited about the changes they were bringing to the industry--whether it's revolutionizing communications through Wave, bringing new applications to phones with Android, simplifying the deployment of JDK-based web applications with App Engine, or changing the way we generate applications with GWT. And, while I wasn't at JavaOne, and while many excellent developers were there, I haven't seen anything from JavaOne that I'd consider a major announcement or a new technology. Last year at JavaOne, developers were justifiably excited about the flowering of languages that run on the JDK. This year, the most important thing I've heard is that Oracle isn't ditching JavaFX. FX is interesting technology with some good potential, but not killing FX hardly makes you a; it's nice that Oracle isn't ditching JavaFX, but not killing FX hardly makes you a technology leader.

Google is exercising leadership and vision in the Java space in a way that reminds me of Sun in its best years. But there's a difference, and that difference is tilted decidedly in favor of Google. Sun has been good at coming up with great ideas, but abandoning them half-finished if the followers didn't show up. Think about Android again. Back in the early days, Sun used to talk about JavaOS, now a "legacy system", according to Wikipedia. But it took Google to build a true Java-based OS, and what's more, it took Google to make developers care about it. Think about GWT. GWT must be an acquired taste--I admit, I don't get it. But Google has been riding that horse for some time, and it's finally paying off for them. If it were Sun, it would be dead by the roadside, like JavaMedia.

Google is not exercising the other kinds of leadership that Sun has displayed during its tenure. On the whole, that's a good thing. Google have different goals, and their goals seem better aligned with what developers need now. I don't think Java needs more language pyrotechnics; is anyone really excited by the idea of Java 7? Not me. Java certainly doesn't need micromanagement of "official" libraries. While the JCP is less dysfunctional than most standards committees, it's riddled with politics, has made plenty of poor compromises for bad reasons, and at this point is holding things back rather than moving things forward. And while I appreciate the standardization of the JDK, Sun's position on compatibility (and compatibility testing) is unfair to non-corporate developers, and is one of the reasons that Sun remains the company people love to hate. The years in which Microsoft tried to "embreak and extend" Java are long past, and the paranoia that legitimately arose from that situation is no longer useful or appropriate.

Sun has accomplished great things, and I hope they continue to do so as part of Oracle. The JVM is wonderful technology, and "write once, run anywhere" really works: in the application I've developed and maintain, I never have to fix platform-specific bugs. But it's time to move on. Who is moving Java into new areas? Who is doing exciting work? Who is building the future?

The metaphysics of the two Moscone conferences are clear. Google is providing the idea leadership that the Java community needs.

Google I/O keynote, day 1

Mike Loukides @mikeloukides 2009-05-27

Just one very quick note:

When Apple released the iPhone, I said that they had changed the game. Not because they had created the coolest, prettiest phone in history, but because had a phone with a real browser that suppported real HTML with real JavaScript. You can write cool apps in Cocoa, sure. But what's more important is that you can write cool web apps that really, really work; and when you can do that, and have apps that are accessible from any platform, or (conceivably) any phone that's smart enough to realize that HTML and Javascript are the key, you've moved a light-year ahead. Cool as native iPhone apps, it's still very hard for me to get really excited about applications that only one on one particular platform--whether that's the iPhone, Windows, IE, Firefox, or whatever.

Google clearly gets this; they demo'd it, with apps running in browsers (including iPhone and Android browsers) that you'd never expect to see outside of a full-fledged desktop application. JavaScript is an enabling technology. I'm still a little wary of GWT, though the idea of JavaScript as the web's assembly language (my term, not theirs) is appealing. But it's clear: HTML 5 is an important enabling technology. Being able to embed 2- and 3-d graphics, geolocation, databases, and threading directly into a web application, where they're directly accessible to javascript--that's the end of one ballgame, and the start of a whole new one.

Wolfram Alpha a Google Killer? Not... Supposed... To... Be

Mike Loukides @mikeloukides 2009-05-20

I'm getting tired of reading about whether Alpha is a Google-killer. I've seen Stephen Wolfram's presentations a couple of times; he's quite careful to say that it isn't. There's a fundamental difference that many people out there are just missing. Google is a search engine. Alpha looks like a search engine, but it isn't; it's all about curated data, and the analysis of that data.

What's the difference? Look at one simple query: "earth circumference". Alpha gives you one result, translated into a couple of units, along with information about the exact data source. Google gives you "about 1,190,000" results. Some of the answer the question "what is the earth circumference"; some of them answer other questions, like "how did Fermi propose computing the Earth's circumference"; some are cute, maybe even useful, to a particular audience (I'm sure there are elementary school papers and science curriculum assignments buried in there); and some are probably just plain bogus (I bet you could find pages from the Flat Earth Society in those 1.2 million).

Asking which result is "right" misses the point. Google is a search engine; it did exactly what it's supposed to do. It isn't making any any assumptions about what you're looking for, and will give you everything the cat dragged in. If you're an elementary school teacher or a flat-earther, you can find the result you want somewhere in the big, messy pile. If you want accurate data from a known and reliable source, and you want to use that data in other computations, you don't want Google's answer; you want Alpha's. (BTW, the Earth's circumference is .1024 of the distance to the Moon.)

When is this important? Imagine we were asking a more politically charged question, like the correlation between childhood vaccinations and autism, or the number of civilians killed in the six-day war. Google will (and should) give you a wide range of answers, from every part of the spectrum. It's up to you to figure out whether the data actually came from, and whether you trust it. Alpha doesn't yet have this data, and even when it does, no one should blindly assume that all data that's "curated" is valid; but Wolfram does its homework, and when data like this is available, it will provide the source. Without knowing the source, you can't even ask the question.

Collecting and curating all the world's data is an insanely ambitious project, but that's only the start. The bigger problem is creating a common taxonomy that makes data useful. It was trivial to ask Alpha the ratio of the Earth's circumference to the Moon's, because the data is stored in a way that makes it easily accessible for computation. You can ask Google for web pages that the same data, and but before you can use the data, you'll have to do a lot of "screen scraping" that's much more difficult than getting the data in the first place. Again, this isn't to say that Google or Wolfram is right or wrong--it's just that they're answering different questions. I'm working with a couple of authors who've done some brilliant work with R that collects online foreclosure data and analyzes it. Most of the code, and certainly the most difficult code, is screen-scraping and data-scrubbing, not statistics or analysis. Search results, returned as a web page, and data that's compute-ready aren't the same thing.

Why would we care about making the world's data accessible to computation? At O'Reilly's FOO camps, we've been talking a lot about "citizen science"--for example, Cornell's many birding projects. But citizen science is usually about creating the data--counting the birds in your back yard, and so on. That's great, but the analysis is still done by professionals. Putting a computation engine together with a curated, structured data source takes citizen science a step further. With all the panic about Swine Flu, I've been thinking about data from the 1918 flu epidemic. With time sequence, location-specific data (how many people are sick at any given time in any given city), it would be fun to study how the flu spread. This particular data isn't yet available in Alpha (Stephen Wolfram, take note!), but when the data becomes available, creating an animation that shows the geographical distribution of flu cases over time should be easy; you could watch the flu move from city to city (or not). If Alpha's not up to the task, it can be done simply enough with a Mathematica/Alpha bridge. I'm not an epidemiologist, and I won't pretend that this animation would reveal anything fundamental, but I also believe that the world is full of under-analyzed data. Citizen data analysis? This is a New Kind of Science indeed.

Hacking Primes in Mathematica

Mike Loukides @mikeloukides 2009-05-10

If this is too esoteric, skip it. I couldn't figure out anywhere else to put it.

This morning, Tim Bray tweeted about a post on prime numbers and Benford's law. To cut the esoterica short, one of the big problems in prime numbers is that people don't know how they're distributed. This post suggests that Benford's Law describes the distribution of the first digit of prime numbers. One of the commenters asked an important question: is this really just an artifact of base 10? Math really doesn't "know anything" about bases, so if this idea doesn't generalize to bases other than 10, it doesn't mean much.

That challenge was a bit hard to ignore. A bit of futzing with Mathematica later, I got it. Here's a graph of the distribution of prime numbers in base 36, for primes less than 36^5 (about 60 million, 3.5 million primes): primes.tiff

Sal Mangano, who's writing our Mathematica Cookbook, says my approach is very inefficient, because it's using character matching to sort the primes. He's probably right; that's why he's writing the book. I'm still happy with it. Here's the code--only 7 very Lisp-like lines:

With[{base = 36, ades = 5, a = 1.1}, 
   nprimes := PrimePi[base^ades];  
   fcharnum[n_, b_] :=  First[Characters[ToString[BaseForm[n, b]]]]; 
   alpha := 1/(Log[base^ades] - a); 
   gbl[ d_] := ((d + 1)^(1 - alpha) - d^(1 - alpha))/(base^(1 - alpha) - 1);  
   ListPlot[{Table[100*gbl[digit], {digit, 1, base - 1}] ,
     (100/nprimes)*Sort[Tally[Table[ fcharnum[Prime[n], base], {n, nprimes}]]][[All, 2]]}] ]

This certainly isn't rigorous math, from the standpoint of proving anything about the distribution of prime numbers. Just some fun hacking--it's great to have a mathematical language in which you can say "Give me all the primes less than 32^5 and sort them by their first digits in base 36"--in about that much space.

You ain't gonna need what?

Mike Loukides 2009-04-07

One of the defining characteristics of the Rails movement has been its willingness to throw out the rules by which software developers and consultants have typically worked. Those rules typically produce big, overblown projects laden with features that no one ever uses--but which sounded good during the project specification phase. Build the simplest thing that could possibly work, and add features from there; say "You ain't gonna need it" when partway into the project, stakeholders come along with strange requirements based on what they think they might want.

This is fine, and has enabled Rails developers to deliver working applications quickly. But there's also been an overreaction.

What are all software projects gonna need?

  • Data integrity. There's not an application in the world that works with corrupted data. The good news is that corrupt data is avoidable.
  • Scalability, the ability to support more users. While you wouldn't start off building your project to support millions of users, you also don't want your project to die as your user base grows. I don't think anyone's out there saying "Hey, I'm glad we didn't waste time making that app scalable, because no one wanted it anyway." And as @al3x of Twitter said recently, "thousands of anything is not a whole lot."
  • Extendability, the ability to incorporate new features. While you don't want to abandon the YAGNI battle cry, you know that you're going to need to add features. A well-thought-out design makes that easier. The Portland Design Wiki has the best statement of the YAGNI principle--but it also says "This doesn't mean you should avoid building flexibility into your code."
If you're not designing for reliability, scalability, and extendability, you're designing for failure. One of the reasons I like Dan Chak's Enterprise Rails so much is that it's about how to design for success. As Dan says, "these topics are universal, and Rails does not give you license to do an end run around good architecture." It's time to bring software engineering back into the conversation.

When the head of sales comes into your office and tells you that sales reps need to be able to look up the complete sales and credit history of any customer in the field, you can tell him "you ain't gonna need it." But you will need to extend that application, you will need to support more users, and you'd better make sure that your data stays coherent. Laziness might be a virtue, but if all you're interested in is saving work, and not building something that is capable of succeeding--there are even more radical ways of doing less. exit(1).

The desktop 3D printer(桌面3D打印机)

Mike Loukides 2008-10-30

Yesterday, Andrew Sheppard pointed me at a desktop 3D printer for under $5000. That brought back some memories...

In the early 80s, I worked for Imagen, the company that made the first laser printer that sold for under $20,000, the first laser printer that sold for under $10,000, and the first laser printer that sold for under $7,000. We didn't make the first laser printer that sold for under $5,000. That was Apple's first LaserWriter, and although the company survived for a few years more, it's really what did us in.

$5000 is still pricey for a desktop product, but it's plausible for a shared office printer. If Desktop Factory can get a few more thousand off the price, they'll have a viable personal product.

Why couldn't Imagen get to $5000, when Apple could? The printers were really very similar: they used the same Canon marking engine (and hence, identical print speed, resolution, image quality, and reliability). Apple's was PostScript-based, but at the time there weren't any other PostScript printers. We had a clever architecture that used a lot less memory--and this was back when RAM was hundreds of dollars per megabyte wholesale. Most of the cost of a printer, once you paid for the mechanical parts, was in the memory.

But even with our memory-stingy printers, Apple had enough buying power to drive their costs below ours. We were selling a couple of hundred units a month; I don't know how many units Apple sold, but I'm sure they were buying the same memory for their Apple IIs, Lisas (remember those?) and early Macs. So we lost the battle to economies of scale, and that's a battle that's hard to win when you're playing against a company a hundred times your size.

It will be interesting to see how this plays out in the 3D printer market. Desktop Factory looks a lot like Imagen: an aggressive, focused startup built around one product. Desktop printers probably aren't built around commodity parts, like processors and memory (and, for that matter, the Canon marking engine); the commodity parts are now much cheaper (RAM is pennies a meg). But what happens when HP or Apple gets into the game? Will Desktop Factory be the first to sell a 3D printer for hobbyists, or will we have to wait for Apple?

The LaserWriter drove standardization on PostScript, which in turn drove a new generation of text editors and typesetting products. That work is continuing with products like InDesign. 3D CAD software strikes me as being roughly where text editing and page layout was in the 80s. Is Desktop Factory the company that will drive a renaissance in 3D design tools? Will their printer interface become a de-facto standard that allows others to play? That's what it will take for them to survive. These days, Imagen doesn't even merit an entry in Wikipedia.

翻译:xiaochong

昨天Andrew Sheppard告诉我一款低于5000美元的桌面3D打印机,这让我想起一些往事……

上世纪八十年代早期我在Imagen工作,当时这家公司推出了第一款低于20000美元的激光打印机,第一款低于10000美元的激光打印机,以及第一款低于7000美元的打印机。我们没能达到5000美元以下。Apple的第一款LaserWriter则做到了,尽管他们后来公司又发生很多事情,但5000美元以下的激光打印机足以将我们挤出市场。

5000美元作为一个桌面产品还是有点贵,但作为大家共享的办公室打印机没有问题。如果Desktop Factory能再降低几千美元就可以成为一个可行的个人产品了。

为什么Imagen做不到5000美元以下而Apple却做到了?打印机都差不多:Apple也用同样的佳能打印引擎(所以打印速度、分辨率、图片质量以及可靠性都一样)。Apple的打印机是PostScript打印机,那时候没有其他PostScript打印机。我们当时有一个非常好的架构,大量减少了使用的内存——要知道当时1M内存批发价要几百美元。打印机成本中一大部分不再是机械部分而是内存的成本了。

尽管我们的打印机节省内存,Apple还是有足够的购买力将成本控制得比我们低。我们一个月销售几百台;我不知道Apple的销售量,但我肯定他们为Apple II、Lisa(还记得吗?)和早期Mac以及激光打印机购入同样的内存。所以我们输给了规模经济,你很难赢得与比你大几百倍的公司的竞争。

关注一下3D打印机市场的突破会非常有趣。Desktop Factory和Imagen很相似:一个富于进取、围绕单一产品展开的创业公司。桌面打印机不是用商品化部件构建的,比如处理器和内存(以及佳能打印引擎);商品化部件现在可便宜多了。但是如果HP或Apple加入竞争会怎么样?Desktop Factory会第一个把3D打印机卖给爱好者?或者一定要等Apple?

LaserWrite推动了PostScript标准化,后者又推进了新一代的文本编辑器和排版系统,一直持续到现在像InDesign这样的产品。3D CAD软件在我看来大致相当于八十年代的文本编辑和排版软件的阶段。Desktop Factory会推进3D设计工具的复兴吗?其打印接口会成为大家都遵守的事实标准吗?这些都将使该公司得以存活下去。Imagen现在甚至在Wikipedia上都消失了。

The Corporation's Two Bodies(公司的两重性)

Mike Loukides 2008/05/05

The New York Times quotes Laura Martin of Soleil Securities, as saying "This is management putting its employees and its job security ahead of current Yahoo shareholders' interest." The sense of horror here--that management could actually put the interests of employees ahead of the interests of investors--is interesting, to say the least. It raises an important question that's really almost theological in nature. It is most certainly theological in, as Lawrence Ferlinghetti wrote, "the promised land where every coin is marked In God We Trust, but the dollar bills do not have it being gods unto themselves. ("Autobiography," A Coney Island of the Mind, 1958, New Directions)


Where did the notion arise that management's sole responsibility is to its funding sources? It's not surprising that someone who represents investors thinks that investors are the only people who count. There's certainly some legal precedent for that view--employees work at the will of their employer, and if you take the abstraction far enough, the employer is basically a pile of money, and the employees are abstract labor power. But while Marx's formulation for the age of the Industrial Revolution may be applicable to workers in sweatshops, it's certainly not an appropriate formulation for the creators of value at Yahoo. Where, ultimately, is Yahoo's value? After all, Yahoo's contribution to the technology of the Web is second only to Google's (and that not by much). Yahoo engineers are not merely interchangeable cogs in an industrial machine.

Behind the idea of a "corporation" is, of course, the notion that a business entity is a kind of mystical body and can be treated as a person. So, what is that mystical body? Is it the investors, who certainly enable that body's existence, or the developers who create the value that the investors are after? Do we give priority to the food, or to the processes that digest the food? To give priority to the food lands us in a "cult of the investor," where Dollars provide the divine spark that animates the body corporate. In this view of the world, the investors are, in fact, little divinities. But Yahoo's value certainly doesn't derive from the investors, but from the company's technical creativity--something for which the investors are not responsible, and that they ultimately have nothing to do with. Would those creators be equally creative as Microsoft employees? Would the culture still be productive? Maybe yes, maybe no; it seems to me that the history of corporate acquisitions is littered with takeovers in which the shareholders may have profited, but the corporation's life and creativity withered.

It's certainly an oversimplification to imply that all (or even most) Yahoo employees opposed the Microsoft deal. But it's likewise an oversimplification to imply that all investors approved it--after all, one imagines that Yahoo's board and senior management are significant investors. But whether Jerry Yang was thinking in these terms or not, I can only applaud the idea that his company's value has something to do with the people who make it creative, not just with passive investors who wouldn't know a line of Javascript if it bit them on the wallet.

翻译:xiaochong

纽约时报援引Soleil Securities的Laura Martin的话“管理层应该将雇员和他们工作的安全性置于当前Yahoo股东的利益之上。”这里的恐惧感——管理层真有可能将员工的利益置于投资人的利益之上——很有趣。这提出了一个重要问题有点像神学。就像Lawrence Ferlinghetti写的“应许之地每个硬币上都刻有我们相信上帝,但美国不是这样”(“Autobiography,” A Coney Island of the Mind, 1958, New Directions)。

管理层唯一需要向资金来源负责这个提法从何而来?代表投资人的那些人认为投资人是他们唯一应该关心的一点也不新鲜。也有一些法律先例体现了这种观点——雇员按照雇主的意愿工作,雇主可以抽象成一叠钱,雇员抽象成劳动力。马克思关于工业革命时代的理论也许可以适用于血汗工厂,但是肯定不适用于Yahoo那些价值创造者。那么Yahoo的价值在哪里?毕竟Yahoo对Web技术的贡献仅次于Google(其实也差不了太多)。Yahoo的工程师们绝不是产业机器上可随意更换的齿轮。

公司的提法之后是一个企业是一种神秘的主体的概念,企业就像人一样。那么什么是这个神秘的主体?是投资人?他们当然使这个主体存在,或者是那些开发人员?他们创造了投资人追逐的价值。我们更看重食物还是消化食物的过程?如果食物优先那就将我们置于“投资人崇拜”之中,美元成了带给企业主体生命的神圣火化。从这个观点看投资人实际上就有点神化了。然而Yahoo的价值当然不是从投资人那里来的,而是从公司的技术创造力来的——投资人不负责这部分,而且和他们没任何关系。这些创造者跟微软的雇员有相同的创造力吗?这种文化仍然有生产力吗?也许有,也许没有。就我而言公司收购的历史中很多收购股东可能获益了,但是公司的生命力和创造力就此会枯竭。

认为所有(或者大多数)Yahoo雇员都反对微软的收购肯定有些过于简单化。但是认为所有投资人都同意被收购也同样是过于简单化了——毕竟Yahoo董事会和资深管理人员也是投资人。但是Jerry yang是否也从这些角度去考虑问题?我只能赞同这样的想法——公司的价值是那些使之有创造力的人参与产生的,而不仅仅是那些被动的投资人,如果需要的话他们连一行JavaScript代码都读不了。

Building Better Silos(做了个好点的“黑洞”)

Mike Loukides 2008/04/10

It's been good to watch the use of OpenID spread. It's great to see that ma.gnolia.com has dropped “traditional login” in favor of OpenID. And I was encouraged to read about Yahoo's support of OpenID. Granted, it took me a while to get around to trying it.

But when I got around to trying it, Yahoo!ID was a disappointment. The promise of OpenID is to return ownership of ID to the users, and to eliminate identity silos, in which the big sites compete to own your identity and your data. If that's the goal, Yahoo!ID may not be a step backwards, but it's certainly not much of a step forwards.

Although Yahoo is talking the talk, it's still playing the same game. Today, I went to Yahoo to try to use my OpenID URL (from myOpenID). And I couldn't. I kept being asked if I wanted to create a new Yahoo!ID account.

That's precisely what I did not want to do. If I have to create a Yahoo OpenID for Yahoo sites, but that ID is different from the OpenID I already use for Ma.gnolia and other OpenID sites, what's the advantage? I could give in, create a Yahoo! OpenID and use it everywhere–but isn't that just giving in to the problem that OpenID was trying to solve? I don't want Yahoo! to be the data silo that owns my identity, any more than I want ma.gnolia or del.icio.us or twitter or Get Satisfaction or… you get the idea. Google support for OpenID would be nice, but if they implemented GoogleID and didn't accept IDs from Yahoo or any other ID-issuing organizations, we'd be right back where we started.

Yahoo's OpenID press release is dated January 17th. Internet time flows quickly. I could perhaps pardon a “yahoo-only not-quite-open ID” in a beta release, though not an “eternal beta”. But I still wonder–what's the deal? Three months is plenty of time to accept a standard that you already support.

OpenID is important because it places control back in the users' hands. A net where we didn't have dozens of accounts and passwords to remember is something we all want to see. But we won't get there by building even bigger and better identity silos. “We support OpenID–you can use our OpenIDs anywhere. But don't try using anyone else's here” just isn't an acceptable position.

看到OpenID传播开来,看到ma.gnolia.com为OpenID放弃了“传统的登录方式”,我也被鼓舞着读了一些Yahoo对OpenID支持的资料。着实花了一些时间来尝试一下。

试过之后Yahoo!ID让人失望。OpenID的目标是把ID的所有权还给用户并且消灭那些网络巨人们用以瓜分用户信息和数据的“身份黑洞”。如果用这个目标来衡量Yahoo!ID不是一种倒退但也绝对不是什么前进。

尽管Yahoo振振有词它实际上还是换汤不换药。今天我去Yahoo试着用我的OpenID URL(myOpenID的),结果不行。我不断地被提示要不要注册个新的Yahoo!ID帐号。

这绝不是我想要的。如果我一定要注册个Yahoo网站的Yahoo OpenID——它跟我在Ma.gnolia以及其他OpenID网站已经用的OpenID还不一样,那有什么用?我可以妥协——注册一个Yahoo!OpenID到处用——但是这难道不就是向OpenID要解决的问题妥协吗?我不希望Yahoo!变成个掌握比ma.gnolia、del.icio.us、twitter、Get Satisfaction更多我的信息的数据黑洞。Google对OpenID的支持应该非常好,但是如果Google也搞一个GoogleID然后不接受Yahoo或者其他ID发放组织的ID,最后还不是一场空。

Yahoo的OpenID发布是1月17日。Internet上日月如梭,我也许能原谅测试阶段的这个“Yahoo不完全Open ID”,但不能永远测试。我一直在想问题在哪里?三个月时间足够让他们接受他们支持的标准了。

OpenID把控制权还给了用户所以很重要。我们都希望见到一个每个人不再需要无数账户密码的网络世界。但是这样构建再大再好的身份黑洞我们也得不到那样一个网络。“我们支持OpenID——你可以到处用我们的OpenID但别在我这里用别人的”这不是一个可接受的姿态。

user/michael_loukides.txt · 最后更改: 2010/02/10 由 radarman
O'Reilly Home | O'Reilly Beijing | Ignite China(点燃之夜在中国) | Privacy Policy ©2005-2010, O'Reilly Media, Inc.
All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners.
京ICP备05003502号