I've noticed "Made In California" as well, and it's an interesting choice of words for Apple.
It brings to mind PG's counter-example of the iPod to the "Squalor of the man-made bits of America" (in his Made In USA essay). When I lived in Europe, I noticed that general stereotypes of the "USA" differed dramatically from impressions of "LA", "San Francisco", "New York", "California".
When you say "USA", people around the world often think of an economic and military juggernaut. If you say "California", they often think "surfers, technology, Ahnold, the Golden Gate Bridge," and so forth. Various cities in the US also have their own international reputations.
It's pretty clear that the rest of the world has very negative and very positive impressions of the United States, and these can be triggered by how you present yourself. Perhaps Apple is trying to grab a more positive reaction by claiming California rather than the USA? When Bush refused to ratify the Kyoto treaty, there was some talk in England about boycotting US products (pretty hopeless idea there, but it shows the anger). California did raise its international brand by bucking that trend.
I expect the US will regain some of its stature once the current administration is gone, but even if/when it does, I'd expect more local branding. Cities compete with each other more than countries do. What does it even mean to say it was "Made in the USA" anymore? If it's made in Seattle, Sydney, or Barcelona, it isn't made in San Francisco. We may be moving toward a world economy where that's the only thing that actually matters.
> When Bush refused to ratify the Kyoto treaty, there was some talk in England about boycotting US products (pretty hopeless idea there, but it shows the anger).
Actually, it shows ignorance. The US president doesn't ratify treaties, the Senate does. And, the Senate voted Kyoto down 95-0 during the Clinton years.
You got played by Clinton, but you can't object too much because you didn't bother to comply either.
You're absolutely right: that my use of the word "ratify" was incorrect. The senate does indeed ratify treaties. And the senate did reject Kyoto (which may have needed some work), as you have said.
But one debating tactic I've noticed in people with a weak argument: they go quickly to detail, identify flaws in phrasing, redefine words, argue over procedural details. Sometimes this is referred to as a "strawman argument", where you take your opponent's argument in its weakest form, and knock it down. I'd like to invite you to take the argument in its strongest form, and actually say something substantive.
So instead of "refused to ratify the Kyoto treaty," let's instead say "actively undermined efforts to take meaningful action against global warming." That would be taking the argument in a stronger form, and would give you an opportunity to explain how the Bush administration does not deserve a reputation for undermining efforts to combat global warming.
So... would you claim that George Bush has nothing to do with the America's rejection of the Kyoto treaty, or America's remarkable inaction on global warming in general? And would you disagree that his administration has repeatedly tried to undermine California's efforts to do something about it?
Before we start arguing about votes and procedures, I'd like to hear your big picture view on this issue.
Bush treats Kyoto as Clinton did. If Clinton made you feel better about that, well, they don't call him Slick Willy for nothing.
I'd argue that Bush is actually irrelevant to the US and the climate arguments. Since their rejection predates him, it's hard to argue that he's a cause. And, since no one else bothered, it's hard to argue that the US is especially wrong on this point. (Then again, since the best-case benefits of Kyoto are within the margin of error...)
And no, what I did is not a strawman. I took what you wrote at face value.
The strawman is Clinton. There's no reference whatsoever to Clinton in my original post. You claim that I'm elevating Clinton and the Senate to some high position, and then knock it down, when my post is about California's legislation.
My claim is that that California has made efforts that the United States have not made, and I do claim that the Bush administration has been actively undermining these efforts - both nationally and in California.
(edit - oh wait, I get it - I should have said "when the US failed to ratify Kyoto, rather than "when the Bush administration failed to ratify kyoto". I think Bush had a lot to do with it, but he wasn't the only one. If that's your position, fair enough).
The claim was that Euros were angry at Bush because of Kyoto. Since they weren't angry at Clinton and Clinton did the same things wrt Kyoto, the "because" is either wrong or shows that the Euros are ignorant.
And then there's the small matter that the Euros have done much the same wrt Kyoto and the fact that Kyoto doesn't do anything towards the stated goals and ....
I agree, the Europeans to some extent are piling on America, and Americans are piling on Bush, as a convenient way of blaming someone else without doing anything themselves.
That said, the Europeans were irritated with Clinton/Gore about this, and I thought it was somewhat unfair back then as well. When the Kyoto treaty failed the first time, it almost seemed that the Europeans had deliberately constructed a flawed treaty so they could blame us for failing to ratify it.
All the same, I think that Gore would have worked to overcome the negatives of this treaty and get a good agreement through. Whereas I think Bush used it to snuff out any action on Global warming.
California's actions can actually be used to refute some of this international criticism: California was willing to go against its own national government to get global warming legislation through - surely Australia, France, and Germancy can find a way to act without US leadership (or in spite of US opposition).
But my very first post was really about branding - that California may have a better international brand than the US does, partly because of this type of legislation. I really didn't want to spin off a long debate about global warming.
> Australia, France, and Germancy can find a way to act without US leadership (or in spite of US opposition)
Opposition? How is the US forcing anyone to burn hydrocarbons? (France is going nuke in a big way so Germany may end up dependent.)
Euros are constantly saying how they're the economic equal of the US. If that's true, "US leadership" isn't all that relevant. Moreover, if the claims about a carbon free economy are true, doing so would be incredibly lucrative.
When someone insists that something is incredibly profitable but they're not trying to get as much of that profit as possible, their actions refute their words.
California and the US are both brands whose impression, like many brands, often has nothing to do with reality. Suggesting otherwise, especially with bogus arguments, is foolish.
We've hijacked this thread enough by now. Time for us to make our closing arguments and move on. This will be my last post, though I'll read whatever you post in response.
Your last post seemed scattershot to me, but I do want to respond to what I think was a very peculiar argument in your first sentence.
The US isn't forcing anyone to burn hydrocarbons, of course. But a treaty is still important, because many smaller nations will conclude that if the huge emitters aren't going to change, there's no real point in sacrificing themselves (to some extent, this was Australia's rational for rejecting Kyoto).
There's an article in this week's economist about applying prisoner's dilemna to global warming action - where it pays to defect (let other people do the heavy lifting on reducing emissions). If the rest of the world gets it together on global warming, then you'll get a free ride. If the rest of the world doesn't - well then we're all going to hell in a bucket anyway, so why bother with sacrifices? But if everyone acts this way, we'll all be much worse off than if we had cooperated.
The economist article also points out that while defections pay off in single-run games, they don't necessarily pay in repeat games, where subsequent punishment for previous defections may cost more than the benefit of the original defection. In this context, the community of nations who do cooperate may be able to punish defectors severely enough that they prefer to come on board.
I suspect that California is trying to signal to the world that it is cooperating, not defecting, on global warming - by making a very big and public break with national policy. This, along with other policies, is part of the california "brand." While California needs to do more (and an editorial in the SF Chronicle comparing California's policy to New Zealand's shows that we are in no position to get smug), this is no bogus fabrication.
My first sentence is not odd at all if you take the low-carbon folks seriously.
> But a treaty is still important, because many smaller nations will conclude that if the huge emitters aren't going to change, there's no real point in sacrificing themselves (to some extent, this was Australia's rational for rejecting Kyoto).
What sacrifice? The low-carbon folks claim that it will be cheaper. If they're correct, how will hydrocarbons be an issue?
> If the rest of the world gets it together on global warming, then you'll get a free ride.
That's assuming that the IP rights are worthless. I'm prettty sure that they'll be worth quite a lot, arguably far more than the development costs, and a lot of that money will come from latecomers, or if you prefer, "evil deniers". The relevant metaphor is "land grab", not "free rider".
Of course, the low-carbon folks could be wrong, but if they're correct, they make huge amounts of money and do good. Why are they trying to avoid the former?
When people make claims and leave out few "minor" details or is missing some facts for the sake of hyperbole, it becomes less important to agree or disagree with them, rather you point out what's wrong. How can you argue against someone that doesn't present facts? That's not a strawman attack, that's just someone pointing out your mistakes.
As for your question: is Bush undermining the rejection of the Kyoto Protocol? I'll point this out: The US has neither ratified to nor withdrawn from the Kyoto Protocol. Maybe the question you should be asking is: why isn't the US ratifying to the Kyoto Protocol.
"... Yet another article from "Foo" that's a thinly-veiled ad for 'Bar' ..."
HackerNews is an ad for yc, pg's articles and talks are for publicising yc. I think the real difference b/w blatant advertising and the type Joel and pg (Buchheit, Greenspun, Yegge, maybe 37Sigs) is they impart knowledge, useful knowledge. If they did not entertain, inform and question readers wouldn't bother reading their pieces.
But I do understand the continuous 'Fogbugz' references. Maybe it's the geek in you rejecting someone telling you need something when you don't.
Having said that and re-read the article I couldn't be struck by the adverts (jobs & fogbugz) then the left hand sidebar and lots of black text and hard edged images (images of rego screens), squashed text (lots of spaces on LH & RH side).
Maybe nickb is right. The page design also sucks making it hard to read and possibly needs some attention?
When I first started reading PG's articles, I assumed he wrote them in order to prepare the ground for Arc. I still think it might have been partly true initially, and then his priorities changed.
Why is there so much hostility toward Joel here? He writes interesting and popular articles and half the comments just attack him for not being substantive or serious enough.
Joel have written some really insightful and influential pieces about software development and business strategy.
When he started blogging, almost every post were a classic.
Of course this were insights he had accumulated through many years, its hard to keep churning out great insights on a regular basis, so I think people just get disappointed.
Also, his insights are mostly related to business and high-level decisions. When he writes about coding, his opinions seem slightly curious: exceptions suck, Hungarian notation rules and so on.
Joel doesn't say that you should prefix integer variables with 'i' or use -1 as an error code (he prefers returning multiple values). He only says that every line of code should indicate as clearly as possible what it's doing so that you can still understand it six months later.
Exceptions eliminate one problem (a function can only return one value) but introduce another: it's impossible to tell by looking at a block of code where it will exit. If a series of statements might get interrupted halfway through, there needs to be an indication of this or else it's very easy to create bugs. I know this from experience.
Regarding Hungarian notation, it's really a kind of type system with explicit typing, except the type checking is done by the programmer reading the code rather than the compiler. Kind of the worst of the static and dynamic worlds combined.
He could solve the tainting problem by just wrapping the unsafe string in an object. This would be safer even in a dynamically typed language. His example is only relevant to very early versions of VBScript that didn't support classes.
Regarding exceptions, they are NOT supposed to be used for returning multiple values. They supposed to be used for exceptional results that cannot be handled locally. They don't have to be "invisible", e.g. in Java you have to either explicitly handle an exception or explicitly declare that you may propagate it. Using return values OTOH you may forget to handle a return value, and the compiler will not complain. His complaint is more valid wrt. C# where exceptions are indeed not checked by the compiler. But since he don't even seem to be aware of this difference, I'm pretty sure he knows about neither.
> They supposed to be used for exceptional results that cannot be handled locally.
The point is that there is no such thing. Exceptional situations should always be handled locally, and by locally I mean on the very next line. If they can't be, then the program should stop running.
Writing code with exceptions is very hard to get right. Not checking return values is just stupid.
Alway handle errors locally? That seem to break both modularity and abstraction.
Consider a module that does some IO. The module might be used in different kinds of apps, both GUI apps, services and command line apps. How should this module handle a "disk is full"-error? Should it show a dialog with a warning, or write the message to the console and die? The appropriate action would be completely different depending on the type of app and the context wherein the module is invoked.
Exceptions allows the module to delegate the error handling to the right level of abstraction.
Sigh... Obviously errors should be able to propagate up the call stack. But that propagation needs to be done explicitly. Simply tacking "throws IOException" onto your function header isn't enough; it's still too easy to mess up.
I can mess up anything, but I don't really see how it is easier to mess up exceptions than explicit propagation of special values.
You need to do the explicit propagation after every single line that might generate an error. That seems to me to lead to a lot of boilerplate code, and it would be easy to forget or mess up one of these lines.
I kind of see Joels point though, that if you write:
openFile();
doSomething();
closeFile();
Then it is not obvious by just looking at these lines in isolation, that the file may not be released. If you already have the throws clause in the signature for some other reason, you might miss this.
I don't think boilerplate error handling is the right solution for this though. Boilerplate just gives you boilerplate-blindness.
A language for programming nuclear devices like Joel hints at, might make the throws clause explicit on every method call:
(Don't know if any language has this syntax, but at least it makes the throw obvious in a much safer way.)
However I prefer something like the using pattern in C#:
using (file) {
doSomething();
}
(Same as "with" in python.)
I find this the ideal solution, since you don't have to worry about whether the method may throw exceptions at all, the file will always close correctly. And regardless of exceptions, the syntax guarantees that you don't forget to close the file.
Let me give you a real example from a program I worked on. I'll simplify the code.
Say you write a function that takes input given by the user, inserts it into a list, and then sends the action across the network. Every item has an ID, so when the function finishes, the current ID number needs to be incremented.
Do you see a problem with this code? No, you don't. You even run the program and try it out, and everything seems to work fine.
What if the function header had said "throws NetworkException"? You might have been more careful, but I wouldn't count on it. If the function were longer, which it would be in real life, you probably wouldn't catch your mistake.
On the other hand, what if the code looked like this?
Do you see the problem now? Of course. It's staring you in the face: current_id won't get updated if the network goes down. The result is that you could have two items in your list with the same ID.
This isn't "nuclear power plant" paranoia. What I'm describing is a real bug I had recently. It wasn't the first time that I've done something like this, either.
I like your idea of putting the throws clause next to the function call. I'd like to see something like that for checked exceptions, and eliminate unchecked exceptions completely.
OK, I think I get get it now. You (and Joel) are right.
By reading your comment I realized that I have a number of coding habits that (in most cases) prevents this sort of error from occurring. But that proves your point that exception-based code is harder to get right.
I still prefer to write exception-based code, but I understand how you could prefer to use return values.
>If a series of statements might get interrupted halfway through, there needs to be an indication of this or else it's very easy to create bugs.
You can mitigate this by relying more on return values and less on side-effects. If the higher-level code depends on some side-effect, why not place the side-effect in the higher-level code after the function returns?
Ok, so maybe it's an ad or maybe it's a little interesting post and an update on his FogBugz tour which he has been posting about for months. At least he is consistent. And what is so antiquated about FogBugz? Have you ever used the software? It actually works quite well.
Ugh, Im tired of Seattle stereotypes. Seattle is a well cultured city, and his generalizations are pretty weak to prove his point, not mention irrelevant. Sorry, I just have to stick up for my home town. BTW, it rains more in NY than Seattle.
It may rain more in other places - I'd bet that it rains more in Padova, Italy, than my own Northwest hometown of Eugene, Oregon - but the important thing is that it is gray in the NW. Often. It may rain a bunch in a day somewhere else, but in the NW, it will drizzle for a week.
For the one winter I lived in Seattle, we went for 4 months straight without sunshine. When a ray of light fell outside our office on the parking lot, we all ran out to revel in that one ray - I'll never forget how desperately we all missed and needed the sunlight.
Well, it's easy to see why Seattle has those stereotypes. The moment you get there, all of the generalizations are instantly confirmed. It's raining, there's a Starbucks on every corner, and there (used to be) an enormous Boeing factory nearby.
Perception matters more when we're talking about something that involves emotion. Sure, it rains more in inches in NY, but not in a depressing, all day, every day sorta way. Sorry, I just have to be annoyed at the Seattle rain.
California is a huge state with many different experiences - what city do you live in?
I lived in Pasadena for about a year. Between having to drive forever to get anywhere in dense traffic, the intense smog, and the lack of a cultural core - it made for a terrible experience.
San Francisco, on the other hand, is hard to beat.
After visiting Palo Alto for three months when I was five, I lived in Chile for fourteen years. I just got back to Palo Alto two weeks ago, and it's indescribably awesome.
He has a point. Sometimes you look at a product (including software) and you wonder what the certain buttons or phrases are for! Most companies simply do not put thought into their products. They just literally copy the feature with a color, shape, or phrasing change and stick it onto their copy-cat product. No thought is put into why the other company chose to do it and if there are better ways of solving the same problem. This is a great example of this.
It brings to mind PG's counter-example of the iPod to the "Squalor of the man-made bits of America" (in his Made In USA essay). When I lived in Europe, I noticed that general stereotypes of the "USA" differed dramatically from impressions of "LA", "San Francisco", "New York", "California".
When you say "USA", people around the world often think of an economic and military juggernaut. If you say "California", they often think "surfers, technology, Ahnold, the Golden Gate Bridge," and so forth. Various cities in the US also have their own international reputations.
It's pretty clear that the rest of the world has very negative and very positive impressions of the United States, and these can be triggered by how you present yourself. Perhaps Apple is trying to grab a more positive reaction by claiming California rather than the USA? When Bush refused to ratify the Kyoto treaty, there was some talk in England about boycotting US products (pretty hopeless idea there, but it shows the anger). California did raise its international brand by bucking that trend.
I expect the US will regain some of its stature once the current administration is gone, but even if/when it does, I'd expect more local branding. Cities compete with each other more than countries do. What does it even mean to say it was "Made in the USA" anymore? If it's made in Seattle, Sydney, or Barcelona, it isn't made in San Francisco. We may be moving toward a world economy where that's the only thing that actually matters.