Monsanto: All Your Seeds Are Belong to Us - <AUTHOR> http://www.motherjones.com/blue-marble/2013/02/scotus-hears-monsanto-soybean-case <comment><USER2> Are we really going to enter an era of "seed piracy"? And not because farmers everywhere would intentionally steal Monsanto's seeds, but because the laws would change in such a way that almost everyone else' seeds would be considered "pirated" versions of Monsanto's seeds.

Maybe we'll even get some kind of seed DMCA in the future. If Monsanto accuses someone of pirating, the government would just seize those crops. No trial necessary.

<comment><USER3> I don't know whether to laugh or cry. Your message seem like its coming from 15 minutes into the future.

</comment></comment><comment><USER4> This is exactly the reason why I strongly oppose GM food.

It's not that I'm scared about the consequences (the jury's still out on that).

But, do you really want to hand the keys for our nutrition to the likes of Monsanto, Syngenta and their ilk?

<comment><USER5> Why not? Their seeds and their competitors' are shown to be perfectly safe by the FDA, and the National Academy of Sciences and American Medical Association vouch for their seeds.

<comment><USER6> It's not about safety, it's about ownership. This quote from the Judge: "Why in the world would anybody spend any money to try to improve the seed if as soon as they sold the first one anybody could grow more and have as many of those seeds as they want?" - the part about "anyone could grow more and have as many seeds as they want" pretty much sums up farming as we've known it since agriculture began.

Edit: yes, I'm aware of that most farmers don't actually store their own seed for next year for efficiency of another farmer/company providing high-quality seeds yearly for them, however this is not justifying Monsanto's methods. There must be limits on food patents. I simply don't believe Monsanto cannot recover costs on the first-sale of seeds.

<comment><USER7> > Why in the world would anybody spend any money to try to improve the seed

There was a time when some people actually invented things to make the world a better place, or even to further their academic career. With the help of such judges, this era has apparently come to an end. We will never beat famine, we'll just help the plagued 3rd world become 100% dependent on the likes of Monsanto.

<comment><USER5> We've already beat famine. Aside rebel-controlled areas, can you name the last famine?

<comment><USER8> Using the UN's defintion of famine as "at least 20 per cent of households in an area face extreme food shortages with a limited ability to cope; acute malnutrition rates exceed 30 per cent; and the death rate exceeds two persons per day per 10,000 persons." [1]

Not including Somolia in 2011 (which the UN did declare a famine), "... famines have been declared previously in southern areas of Sudan in 2008; in Gode in the Somali region of Ethiopia in 2000; in the Democratic People's Republic of Korea (DPRK) in 1996; in Somalia in 1991-1992, and Ethiopia in 1984-1985." [1]

[http://www.un.org/apps/news/story.asp?NewsID=39113#.UWW2dKtA...](http://www.un.org/apps/news/story.asp?NewsID=39113#.UWW2dKtAT3I)

</comment></comment></comment></comment></comment></comment><comment><USER9> AVAAZ is hosting a petition against Monsanto's attempt to patent food in Europe right now: [http://www.avaaz.org/en/monsanto_vs_mother_earth_loc/?cwqgMd...](http://www.avaaz.org/en/monsanto_vs_mother_earth_loc/?cwqgMdb)

If you care about the health of everybody's food and the environment in general please sign it.

</comment><comment><USER10> Makes you wonder why Monsanto aren't considered the Worst Company in the United States. For my money, I find BP and oil companies as well as the banks incompetent but with a bit of malice.

Monsanto, on the other hand, are pure evil.

<comment><USER5> Helping farmers increase their yield, which makes food cheaper for the poor, is "pure evil"?

<comment><USER11> The argument "making food cheaper for the poor" doesn't give you a pass messing with nature and people's health. I can make food cheaper by killing half of the population since there's going to be more left for the rest of us! Does this justify my action?

Get real, food has grown and can grow naturally and there are natural ways to have healthy crops that don't need dangerous pesticides. Nature has been working in a balance since ever and they are messing with it. It's MY nature they are messing with. All they're doing is maximizing profits at the expense of everything and everybody else.

<comment><USER12> > food has grown and can grow naturally

It most certainly can, but it hasn't for tens of thousands of years. People have been genetically modifying food and growing it in non-natural ways for as long as we have had agriculture.

If we could somehow turn to clocks back to a pre-agriculture food supply, do you feel that it would be viable to keep the current human population alive? Keep in mind that the crops we grow today didn't even exist back then, and only came to exist through thousands of years of genetic modifications.

<comment><USER11> No they didn't. Genetic modification is not the same thing as crossbreeding. And what they did always happened with regards and love for the environment. They produced crops that brought balance and harmony in nature so they always had fresh and healthy food. They didn't use artificial fertilizers or pesticides nor they messed with the DNA sequence manually for shady purposes.

Have you seen a goat or sheep eating its way through a field of weed? They eat and poop at the same time as they move around. That's an example of a natural fertilizer, cleansing and ploughing tool.

It's the obsession of first-world countries wanting meat every day on the table. That is unnatural. That is disturbing harmony and that is why we need chemical pesticides and genetic modifications and that is why these countries have an excess rate of cancer in comparison to those that still grow food in their yards naturally.

So stop calling natural agriculture genetic modification. That's an argument Monsanto and the likes brought to the table to mess with your mind and justify their cause and is completely invalid.

<comment><USER12> Okay, let's put it another way. The Dekalb company is 100 years old. They are in the business of crossbreeding, attempting to produce better traits each year in the same way famers did thousands of years ago. Do you feel that they do so with love?

If you answer no, at what point did agriculture lose that love, if more than 100 years ago?

> Have you seen a goat or sheep eating its way through a field of weed?

I have never seen a field of weed with or without animals in it. Such a field would be illegal in my country. (Sorry, I couldn't resist)

</comment></comment></comment></comment></comment></comment><comment><USER13> At least the Supreme Court is hearing the case. Hope they take the right decision here.

I can't understand how Monsanto can make these claims with a straight face. The guys didn't license the seeds from them. If much, they could go after whoever sold the seeds to the grain elevator, but that's also quite a stretch.

Also, what happens if some other regular seed shipment is "contaminated" by Monsanto seeds in any way? Is a farmer/buyer supposed to have to pay them for not doing DNA analysis in all seeds? WTF?!

<comment><USER9> Not if Clarence Thomas has anything to say about it.

Monsanto and the FDA are a revolving door for each other and Clarence used to work for Monsanto.

</comment></comment><comment><USER14> That nature can be patented at all is a gross violation of human rights.

Nature and biology should not be restricted by anything. Ever.

</comment><comment><USER15> Monsanto made the roundup-ready soybeans, which took millions to develop. If the farmer doesn't want to be sued, he could use non-roundup-ready soybeans.

Or, presumably, he can wait till the original patent expires, then he can use the roundup-ready soybeans freely.

I'm all for calling out unethical companies and IP trolls, but unless companies get to protect real IP that they develop themselves, what's the point in developing anything.

<comment><USER4> > I'm all for calling out unethical companies and IP trolls

In terms of unethical Monsanto is in the absolute top league. This is a company, which positively can be described as evil.

I suggest you do some reading up about this company.

<comment><USER5> I love the claims for calling this company "evil" with absolutely no scientific proof given. I thought we were supposed to be believers in science and due process.

<comment><USER16> This is one example, taken from the Food, Inc. documentary.

The parent topic asks, _Monsanto made the roundup-ready soybeans, which took millions to develop. If the farmer doesn't want to be sued, he could use non- roundup-ready soybeans._

In the documentary, they profile a farmer who got sued by Monsanto for not paying their license. The farmer claimed he was _not_ using Monsanto seeds. However, Monsanto's argument amounted to "We are the largest seller of these seeds in the world, therefor, it must be our seed. Even though you can prove it isn't, you must have "washed" the seed to make it seem like it isn't ours, or maybe some of your neighbor's Monsanto seed blew into your land and you owe us for that too."

The judge sided with Monsanto.

Yes, this shows our legal system is evil for letting them get away with this, but the fact that Monsanto is driving around & actively looking for farmers who aren't using their seed, extorting them for not & dragging them into a court battle they know will bankrupt them is evil too.

For further viewing, check the Monsanto Food Inc. clips. They are on YouTube. Mansanto has also responded on their website.

</comment></comment></comment></comment><comment><USER17> I live in Vietnam and almost every day I see the heartbreaking consequences of Monsanto's involvement in the dioxin poisoning of this country. As far as I'm concerned this company should be liquidated and the proceeds distributed to the people still suffering every day as a result.

Putting the future of agriculture in the hands of a company this immoral is simply insane.

</comment><comment><USER18> If monsanto holds the patent on the pesticide, why do they need a patent on the seed as well? Isn't it in the best interest to proliferate the seed as much as possible to maximize the number of farmers who need the pesticide?

<comment><USER12> Patents expire. Companies need to continue to innovate if they want to stay relevant.

The last Roundup-related patent expired, according to Wikipedia, in 2000. Even the Roundup Ready 1 modified seed patent expires next year.

</comment></comment><comment><USER19> "It would be near impossible to recoup your investments with that first sale, and so the more likely consequence is that research dollars would be put elsewhere,"

Great! Fuck Monsanto's investments and their fucking poison.

<comment> Joe-Z I don't get this either. Also from the article:

"Why in the world would anybody spend any money to try to improve the seed if as soon as they sold the first one anybody could grow more and have as many of those seeds as they want?"

If the flaws in their business model are so obvious (i.e. farmers can reuse their product once they bought it), why don't they try to improve their business model instead of threatening farmers with lawsuits and trying to regulate the food industry?

</comment></comment><comment><USER11> Can we identify the products on the shelves that are of Monsanto origin and have a list posted somewhere so we can boycott them? I don't really feel like ever buying anything originated from that company.

<comment><USER20> This app makes it easy to do just that: <http://buycott.com/campaign/211/demand-gmo-labeling>

<comment><USER11> That's a good cause but will take ages before all nations adopt it, if they ever get everyone to agree. I was hoping for something I can start using right away.

<comment><USER20> You can use it right away. Download the iPhone app at [https://itunes.apple.com/us/app/buycott/id585933440?ls=1&...](https://itunes.apple.com/us/app/buycott/id585933440?ls=1&mt=8), join that campaign I linked to, and then use it to scan a barcode to find out if an item is owned by Monsanto.

By the way, I believe that US and Canada are the only developed nations that don't already require GMO labeling.

</comment></comment></comment></comment><comment><USER21> 2 pop ups in 3 seconds. Monsanto is evil everyone gets it. Not to mention the recent political scandal... but I'm not reading the article. Pop-ups are equally evil.

<comment><USER22> If the pop-ups infect your computer and write spurious code into all your saved work thereby taking ownership of them and then sue your sorry arse into the ground for theft.. then yes, pop-ups are equally evil.

<comment><USER21> If pop ups increased the amount of data my hard drive could store they'd be equally good... Monsanto is an evil corporation but GMOs are pretty much the only reason there's going to be enough food for "your sorry arse" to eat in 10 years. The farmers have to pay for the seeds, yes, but their yield is much higher than without them. Sounds like the guy knew what he was doing when he bought the second hand seeds. Why don't you spend billions of dollars on a piece of software, sell it to me cheap and allow me to sell knock offs for 1/2 your asking price; lets see how you feel about it then...

<comment><USER22> First, my comment was facetiously poking fun at the idea of some benign first- world annoyance being evil.. lighten up eh?

Second, the argument about GMO (or any other high-tech way to increase farming yields) being a 'solution' to food supply shortages is thrown around a lot without any evidence.. nor, as far as I can see, any actual basis in fact.

The drive to increase yields is a drive to increase profit / hectare, which has only resulted in actually driving other farmers out of the business which reduces food production stability, and ultimately overall yield. In every objective measure, this process also produces inferior product.

Monsanto has been profiting from the large-scale destruction of many decades of careful seed adaptation in regional areas. They have driven seed sellers and savers out of business in order to monopolise the markets. They sue / threaten / cajole farmers into using their product or effectively run them out of business.

Third, if I spent billions creating a piece of software whose sole purpose was to replicate its source code and upload it randomly to surrounding networks (along with some by-product) _and_ did this by only changing a couple of lines in an existing piece of open source code, so that no one could really tell the difference... and got pissed that people were using that code. Well, I would just be a bit of a dick now, wouldn't I.

Spending more money on something does not give you any more rights, just more risk.

</comment></comment></comment></comment><comment><USER23> Patents on seeds and breeds have been around for many decades before Monsanto came to the party. Farmers tend not to replant seeds for a very long time now, not only to avoid patent disputes but also to ensure consistency of crops. It's only become viable now to DNA test seeds and breeds to protect these patents.

</comment><comment><USER24> It is so profitable to be evil

</comment><comment><USER25> _"Monsanto: All Your Seeds Are Belong to Us"_

Mother Jones: All Articles Written by Us Are Belong to Us

I understand the impact on farmers and that Monsanto plays dirty, but this is their invention, you do not have to use their seeds. If you do, however, you must play by their rules. I understand that the lawsuit is different (planted someone else's seeds) but that person also violated his agreement.

 _"They want the farmers to take all the risks associated with farming, yet they want to control how they use those seeds all the way down the distribution chain,"_

So it's an unfair agreement. Don't enter it.

<comment><USER26> The point is that you do have to use their seeds. Previously you could get seeds from other sources or even replant your own seeds, but Monsanto have been suing seed cleaning firms and people who buy seeds elsewhere, which means that even if you don't want Roundup Ready seeds you have to buy them from Monsanto.

</comment></comment><comment><USER27> And people are happy when you pour more poison on plants and they are fine :D</comment>


Why Objective-C is Hard - <AUTHOR> http://ashfurrow.com/2012/03/why-objective-c-is-hard/ <comment><USER2> People fret over language syntax too much. In most sane languages including Objective-C you simply forget about the syntax after a few months. What's much more important is the conceptual complexity: the number of language features and the way they fit together. A second important thing is the standard library. Objective-C is a pleasant language by both these metrics, since there are just a few language constructs above the C level, they fit together well without creating dark corners, and Cocoa is a very mature and well thought-out framework. The iOS Objective-C ecosystem does take some time to master, but so does every modern SDK, since the libraries are always huge. Programming is hard and if somebody is scared by minus signs in front of method names, evil spirits will suck his soul out by the time he gets to thread synchronization.

<comment><USER3> I couldn't disagree more. Objective-C is a product of the 1980s, when it kind of made sense that your program would crash if you did this:

        [NSArray arrayWithObjects:@"Hello", @"World"];

Of course it crashes! You have to add a nil sentinel value to the end of your list of objects, silly. And of course it compiles with only a warning, just like when you leave out the @ that makes the difference between a C string literal and an NSString. Those errors will crash your program as soon as the code is run, but they compile as valid Objective-C. Things like that are just a nuisance if you tell the compiler to treat warnings as errors, though. If you really want to know why Objective-C is hard, why not trust the authorities on Objective-C, namely Apple?

Where Apple tells you _you will screw this up_ is memory management. To start with, there are four different memory management schemes: C memory management for C objects, manual reference counting, automatic reference counting, and garbage collection. You get to choose two, of which C will be one. Objective-C originated as enhancements on top of C, and Objective-C programmers writing Cocoa apps still have to rely on C APIs for some functionality, so you'd think by now they would have provided a better way of managing, say, the arrays of structs you sometimes have to pass to the low-level drawing functions. Nope; everyone still uses malloc and free. Failure to make malloc and free obsolete is hard to forgive.

From the other three memory management methods, pick one. (Different OS versions support different ones.) Automatic reference counting (ARC) is the latest and apparently the new standard, though manual reference counting is still supported, and GC is still supported on Mac OS. Reference counting requires a little bit more thinking than garbage collection. For example, since the Cocoa APIs were written with reference counting in mind, some objects, notably UI delegates, are held as weak references to avoid reference cycles. You basically have to manage those objects manually: create a strong reference to keep the object alive and then delete the strong reference when you decide it's okay for the object to be collected. (I'm not sure, but I think this is true even if you turn on GC, because delegate references remain weak.)

All reference-counting systems have that problem, but at least they have the benefit of determinism, right? When you pay that much attention to object lifetimes, you get to piggyback other resource management on top of memory management and kill two birds with one stone. (In C++ it's called RAII, and it's the saving grace of C++ that almost completely makes up for C++'s other warts.) However, according to Apple, this technique should not be used with Objective-C:

 _You should typically not manage scarce resources such as file descriptors, network connections, and buffers or caches in a dealloc method. In particular, you should not design classes so that dealloc will be invoked when you think it will be invoked._

Why not? Application tear-down is one issue, but that doesn't matter for resources that are recovered by the OS when a process terminates. "Bugs" are given as a reason, but I think they mean bugs in application code, not in the Objective-C runtime. The main reason, then, is that if your Objective-C programs leaked file descriptors and network connections as often as they leaked memory, the world would be in a sorry state:

 _Memory leaks are bugs that should be fixed, but...._

Remember the "I don't mean to be a ___, but..." discussion?

 _Memory leaks are bugs that should be fixed, but they are generally not immediately fatal. If scarce resources are not released when you expect them to be released, however, you may run into more serious problems._

In other words, if you really need something to work reliably, you had better use a different mechanism, because you don't want your management of other resources to be as unreliable as your management of memory. That's a pretty strong statement that you _will_ screw up memory management whatever your best efforts.

So apparently Objective-C memory management is hard. That's what Apple thinks, anyway.

The quotes are from the "Practical Memory Management" section of Apple's memory management programming guide: [https://developer.apple.com/library/mac/#documentation/cocoa...](https://developer.apple.com/library/mac/#documentation/cocoa/conceptual/memorymgmt/Articles/mmPractical.html#//apple_ref/doc/uid/TP40004447-SW1)

<comment><USER4> > You should typically not manage scarce resources such as file descriptors, > network connections, and buffers or caches in a dealloc method. In > particular, you should not design classes so that dealloc will be invoked > when you think it will be invoked.

Do they propose an alternative mechanism to handling resources other than reference counting? As you state, RAII breaths life into c++, given how well it works for all types of resources.

It sounds like the above statement is possibly being made in anticipation of the introduction of garbage collection, which would make piggybacking resource destruction non-deterministic. Whereas, it could also be interpreted as a very strong reason to favor manual (maybe automatic) reference counting, and eschew GC entirely. I don't know objective-c very well, but I wonder if the use of GC has generated these arguments against it from within the OSX developer community.

<comment><USER3> That's an interesting hypothesis, but I can't find any source to confirm or contradict it offhand. The part I took the quotes from only mentions that the order of dealloc'ing objects in a collectable object tree is undefined, as is the thread on which dealloc is called. Both of those are easy to keep in mind while implementing dealloc, though. If a resource has to be freed from a particular thread, then dealloc can schedule it to be released on the right thread using GCD. The non-deterministic order of dealloc'ing would rarely be a problem for releasing resources. After all, if a resource is only used via a particular object, and that object is dealloc'ed, then clearly it's okay to release that resource! Perhaps there are complicated cases where resources have to be released in a particular order, but that's no reason to give up RAII for simple cases.

</comment></comment></comment></comment><comment><USER5> I spend half my day in iOS development and the other half on a Java web stack. I love the RESULT of Obj-C+Cocoa Touch, you can achieve amazing user experience. But I'm reaching the point thinking: it's 2012, I'm an application developer, why am I spending half my time debugging memory leaks and concurrency issues? Java isn't much better either, why all this boiler plate, and still concurrency nightmares. I've done a handful of side projects with django and that's better, but I still think if I showed my teenage self what I'm programming in, he'd wonder if there was ever any real progress.

I guess what I'm saying is after all these years I want to work on a higher level, as a result I've started to play with Clojure and functional languages. Whether I'm idealizing functional/clojure life, I'll soon find out, but the appeal is very high to spend my time dealing with problem complexity, not language/framework ones.

<comment><USER6> _But I'm reaching the point thinking: it's 2012, I'm an application developer, why am I spending half my time debugging memory leaks and concurrency issues?_

Because Objective-C targets everyday desktop apps and mobile apps. In that space, manual memory management still wins the day.

For example, in Windows and Linux DESKTOP those kind of apps are ALSO made in C++ or C.

Java and C# are for the web server and the CORPORATE desktop (in-house apps).

Not many major end user apps outside the enterprise are made with either. Not any famous, widely used ones, anyway. Azureus, maybe, and a few dozen more.

<comment><USER7> There's also Minecraft, one of the best-selling videogames of 2011. :)

<comment><USER8> Nothing, not even a Flash video makes my MacBook Pro hotter than 5 minutes of Minecraft...

<comment><USER9> That's because your MacBook Pro is poorly designed. I had the same problem with mine. One reason I sold it - impossible to sit with it on my lap.

Another example: <http://www.youtube.com/watch?v=5AZzPZ0kjyk>

I now had a ThinkPad X220 which is roughly the same CPU as the MacBook Pro and has twice the memory and it never even gets warm.

</comment></comment></comment></comment></comment><comment><USER10> _Unless you've played with other languages that support these features, like Ruby or Lisp, then this feels really weird. Don't worry! Lots of great things feel really weird the first time you try them, like broccoli or sexual intercourse._

I find it really weird that there's no mention of Smalltalk, which is exactly where the weird syntax comes from. It's also where the notion of IntentionRevealingNames comes from, which the author wonders about.

<http://c2.com/cgi/wiki?IntentionRevealingNames>

(That's the Ur wiki, BTW.)

Thoughtful post but with less than stellar marks for research.

</comment><comment><USER11> Pretty great article. Though I wish someone could point to the paper or whatever that explains the philosophy of Objective-C having insanely verbose method and parameter names. Like, readable is one thing, but they always end up like stringFromAppendingThingToThingToNumberYieldingThingThx and it becomes unimaginable to use Objective-C without XCode to autocomplete the other 40 characters.

<comment><USER12> It's because Objective-C methods are named according to the nouns that they return rather than the verbs they perform. For example, "[input stringByAppendingThing:thing]" rather than "input.append(thing)".

Methods are actions, not objects, so the most concise description for a method is usually a verb. Describing it as a noun instead requires adding prepositions and turning verbs to the gerund '-ing' form.

I realized this because I write both Ruby and Objective-C, and sometimes write basically the same thing in idiomatic forms of both languages. In idiomatic Ruby method-chaining, your code is a series of verbs with the relations between the actions defined by the '.' or the '()' signs, rather than by words such as 'to', 'from', 'with', or 'by' present in the name of the method.

<comment><USER13> Eh, I think that's a little overbroad. The way it works is, methods whose purpose is returning something are named for what they return, while methods whose purpose is creating a side effect are named for what they do. So NSString has `stringByAppendingString:` because you're asking for a new string, while NSMutableString has `appendString:`, which is essentially the same as it would be in Ruby except with an allowance for Objective-C's static type system.

What really creates the impression that Objective-C speaks in terms of nouns is that Cocoa tends to promote immutable objects more than Ruby does (e.g. the only way to get an immutable string or array in Ruby is to freeze a mutable one, while you'll almost never get a mutable array in Cocoa unless you create one yourself), so you probably do spend more time asking your objects for other objects than you do in Ruby.

Although the verbosity can get overwhelming, I actually like this about Objective-C. In terser dynamic languages, I'm constantly having to confirm (either mentally or in the docs) which methods mutate and which return a new object. Cocoa's naming conventions mean I pretty much never have to do that.

<comment><USER14> The guidelines for Ruby are to add a bang (!) to any methods that mutate the object rather than returning a new one. That's not strictly followed, though, but for most of the commonly used standard library bits, you can be fairly certain that that is the case.

<comment><USER13> In practice, even in the standard library, this isn't followed often enough to rely on. Here's a (possibly incomplete, since I'm writing this on the fly) list of bangless mutating methods just from Array:

      pop
      push
      shift
      unshift
      <<
      clear
      replace
      delete (and friends)
      keep_if

As an even more extreme example, IO contains precisely one bang-method, despite the fact that probably 75% of IO's instance methods are destructive.

The general rule seems to be that if there's a mutating and non-mutating version of the same method, the mutating one will get a bang, but when there's a mutating method with no counterpart, it _might_ get a bang but probably won't.

<comment><USER15> The guideline is: if your method does something that the programmer should think twice about or shouldn't use without proper knowledge (e.g. didn't read the docs), use !. An incomplete case of usages:

      - There is a safer alternative (e.g. mutating vs. non-mutating or skipped validation)
      - It should only be called once in a process (e.g. Padrino.start!)
      - It is non-reversible (many statemachine libraries use action! as the way to invoke state transitions, which might not be reversible)

This doesn't mean that every method needs to be suffixed by ! if it does something destructive. `delete` in the context of an ORM is standard, so it doesn't have a bang. The whole point of `pop` is to manipulate the receiver: no point in warning about it. IO is always destructive, so ! doesn't make sense either.

</comment></comment></comment></comment></comment></comment><comment><USER16> I don't think Objective-C is hard at all. If you understand OO or come from a OO language you can pick it up pretty fast, like in a day or two.

Cocoa on the other hand requires much more learning curve. Also apple could improve their documentation.

I'm currently working on a OSX app, and Objective-C has been a breeze, with the new ARC is even more easy to work with.

<comment><USER17> Really? If you compare Apple's documentation to Android's...they're worlds apart. Here's a good example: I'm an iOS developer, and have been since pretty much day 1 of the platform. I recently actually started playing around with the Android SDK, and environment.

I followed Google's supplied tutorial for creating a tabbar app, and asked one of the Android devs who works with me to come take a look at the finished result.

"Oh", he said, "that's deprecated now. We don't do tab bars like that any more. We use fragments instead". And sure enough, when I looked closely, Eclipse was telling me what I'd done was, in fact, deprecated and Google recommended a different approach.

Except I'd followed their _main tutorial_ for Android, _step by step_. Compare this with Apple, who have _consistently_ updated their documentation for each API release. How Google could possibly think it's a good idea to deprecate a major platform feature for fragments (a good thing) and not update one of the most popular tutorials on their site to reflect this (the 'Hello Views' tutorial) is beyond me.

<comment><USER18> Why does a comment about Apple's documentation need to turn into a holy war versus Android? The parent said that Apple "could improve" their documentation, not that it was worse than Google/Microsoft/IBM/whomever.

<comment><USER19> _> The parent said that Apple "could improve" their documentation, not that it was worse than Google/Microsoft/IBM/whomever._

Do you have any examples of big libraries where "they could improve the documentation" is untrue? I can't think of any offhand.

(This is not snark. I'm honestly interested if you do.)

APIs are perpetually under-documented, in my experience, so the parent comment's observation is essentially an empty statement.

</comment></comment></comment></comment><comment><USER20> I'm going to disagree. Objective-C is an ASNI C derivative language. Programming for me at least isn't knowing the syntaxual elements of a language but leveraging paradigms I know to exist from one language to the next. Objective-C while looks different, is really no different than most languages. It definitely shouldn't be your first language, maybe not even your 2nd choice, but if you have a conceptional knowledge of programming languages and you're keen on diving into the deep end, there's enough resources out there you're not going to drown. I love Objective-C for many reasons, but then again I equate programmatic choice to personalities. If that makes sense. Point being, don't be deterred. iOS SDK is something else all together, but like anything worth learning, learn by doing.

What you should probably decide for yourself is if this article makes it seem harder than it is. His conclusion about Automatic Reference Counting is on the money, but that's about it.

"When learning Objective-C, it's not just a language or a framework or a runtime or a compiler, it's all of these things". No is not. These are different.

If anyone is considering learning this language, there's a bunch of unsolved problems that frequently include writing new libraries.

Cheers.

</comment><comment><USER21> I might be just me, but I've always found Objective-C's syntax very nice (compared to, say, C++).

It might be verbose, but you have a clear separation between C and Objetive-C. If it doesn't contain "[]" or "@", my brain can just parse it as C code.

</comment><comment><USER22> It's best to think of Obj-C method call syntax as a sentence, written in english, which happens to also be computer code. If you name your methods and variables succinctly and explicitly, the language is extremely readable and documents itself (assuming you know english).

Obj-C was the first language I learned after Python. I remember the 2nd month in, it went from being difficult to read, to extremely easy.

Obj-C code can be written terribly, like this:

        NSString *someString = @"hello what's up?";
        NSMutableString *anotherString = [NSMutableString stringWithString:@"I have more to say, don't I?"];
        NSArray *stringArray = [NSArray arrayWithObjects:someString, anotherString, nil];
        NSUInteger stringArraySize = [stringArray count];

Messy Obj-C code! Human eyes like simplicity, like right angles, and columns. Same code, more readable:

        NSString        *someString     = @"hello what's up?";
        NSMutableString *anotherString  = [NSMutableString stringWithString:@"I have more to say, don't I?"];
        NSArray         *stringArray    = [NSArray arrayWithObjects:someString, anotherString, nil];
        NSUInteger      stringArraySize = [stringArray count];

Takes an extra few seconds of typing, but goes miles.

<comment><USER23> If you use the new AppCode Obj-C IDE, you can get formatting like the latter for free.

</comment></comment><comment><USER24> Syntactic sugar (dynamic getter and setters using @synthesize, @property, allowing for dot syntax accessors) is not new. Nor is Garbage Collection. Garbage Collection is not available on iOS, but has been for a long time on OS X [edit: and as noted below, is actually being deprecated in favor of ARC]. Objective-c 2.0 came out in 2006. Blocks, at this point, are not really new either. So, I think it's incorrect to say that Apple is 'adding' these things.

If a newcomer checked out the online documentation for contentStretch they would find:

"Defines portions of the view as being stretchable. This behavior is typically used to implement buttons and other resizable views with sophisticated layout needs where redrawing the view every time would affect performance."

There's also a lot of good arguments as to why dot syntax is often NOT what you want to do.

For instance, a someCALayer.frame will give you the frame of that layer based on its anchor point, position and bounds. However, you can't do myLayer.frame = someRect [edit: as pointed out below, you can do this -- but the results may not be what you expect].

The introduction of the 'simpler' dot syntax, in that example actually makes things harder for a new programmer.

So, I don't agree that syntax is why Objective-C is hard. Intimidating because of syntax, perhaps. But, once someone begins coding (IMHO) it can be one of the easiest languages.

My school taught Pascal in the intro to comp sci class. I found it incredibly difficult (well, maybe dull is a better word). I then self-taught myself actionScript (late 1990's). I then self-taught myself Objective-C, and I have to say it really just took a Big Nerd Ranch guide and I was off and running. It takes years to become fluent, but I really think that when someone grasps the basics of Objective-C, over time it is one of the most intuitive languages.

<comment><AUTHOR> I'm not saying that the information isn't available - I'm only saying that to someone new to the framework, it's hard to know what you don't know yet.

As a concrete example, you actually _can_ do myLayer.frame = someRect. The results might not be what you expect, especially if the CALayer exists in a hierarchy already and if the anchor point isn't the centre of the layer, but how would you know that if you hadn't experimented already?

<comment><USER24> Right, it won't cause a crash -- just unpredictable results. My point was more that dot syntax doesn't always equate to easier coding;

In this particular case though, who would be playing with the CALayer class without ever having touched the documentation? The overview of view geometry (frame, anchor point, bounds, position) is second only after the Core Animation introduction in the docs. And it's pretty clear: when you get a frame from a layer, it is an implicit function of the anchor point, position and bounds -- but the frame itself is not stored (when you set it).

So, if you're using dot syntax to store properties throughout your code, and then you use it on the frame property, a casual reading of the code might lead someone to think that you could retrieve that value later and have it be the same.

(Here's what Joe Conway says about the dot-notation syntax: <http://weblog.bignerdranch.com/?p=83> )

<comment><AUTHOR> >> who would be playing with the CALayer class without ever having touched the documentation?

How many hackers out there always read the entire manual before playing around? I'd wager most.

I agree that Objective-C is slightly schizophrenic about the dot-syntax, but I would argue that dot-syntax for getters and setters is easier for a newcomers to learn.

<comment><USER24> I'm not saying one has to read the manual before playing around, but some things are simply not explorable with at least a little bit of introduction. You had to read _somewhere_ that [NSObject alloc]init] was how to create a new object; you didn't just guess at it. Similarly, how far would someone get creating a CALayer, and adding it to a view without ever looking at the docs?

If someone is having a hard time learning Objective-C, maybe the real suggestion is to start by reading at least a bit of the manual.

</comment></comment></comment></comment></comment><comment><USER25> The entire article is about how Smalltalk syntax is different from C syntax, something that any reasonably competent programmer gets over very quickly. And he gets it wrong.

The article is a complete waste of time.

</comment><comment><USER26> I think it's very largely a question of what you're used to. I don't know much about Objective C, but given my knowledge of Smalltalk, the use of keywords to identify arguments seems entirely natural.

But then I've never really understood why people think it's acceptable for languages to insist that you do this:

myfunction("First argument","Does this one really go second?","Is there even a third?")

</comment><comment><USER27> Anything you do not understand is inherently hard.

The only thing i would say is uniquely hard about Objective C is getting your head around some of the APIs, but then again that can apply to any language.

<comment><USER28> To me the hardest thing is the seemingly arbitrary CG functions in Quartz2D and why they're so interspersed throughout the code. If I'm writing within the UIKit most of the time, and then have to make my own UIView for some custom drawing, I have a hell of a time remembering how, and always have to reference my earlier code, which I usually find on StackOverflow or somewhere else.

Example, let's draw a line and an ellipse in drawRect:

CGContextRef ctx = UIGraphicsGetCurrentContext(); //CGMove the point somewhere? //CGLineTo something //CGDrawEllipseInRect or something //stroke or fill? CGFillSomething maybe? //do i need to end the context?

Maybe it's a mental block on my part, but I can _never_ remember how to do this and always have to look it up, probably because it's not part of the standard UIKit and not used on daily basis. I guess I would just like to see the Quartz stuff conform more to UIKit naming conventions (but because it's based in C, I understand why it's not)

</comment></comment><comment><USER29> Well, from my limited experience with Objective-C a few things made it hard.

The first is the traditional Cocoa pattern of a method that does useful things, which looks like this:

      - (void)beautifullyNamedMethodFor {
      	void* ugly_ptr_type; // and around 45 more
      	CFObscurePtrRef* .. = CFObscureObsoleteFunction(NULL, NULL,.....); // 56 arguments
      	// to the callback omitted for brevity
      	...*....(*foo)...->(*x++);
      	// and so one - with 45 lines of NULL ptrs passed as void* to CF calls
      	// juggled and incremented ad absurdum until your eyes bleed.
      }

So on the surface it's a beautiful Smalltalkish thing, while down below it's usually all hairy C, pointers and null-terminated strings and Core Foundation callbacks right out of MacOS 7 (especially if you want anything useful to be done that is not in Cocoa by default). This always seemed to me to be a deception in a way.

Another pet peeve of mine is the same agony of choice that is object variables (pointers versus values). When I want to return something or declare a variable, even when I am in the rose-tinted-glasses Cocoa world of beautifully-named methods, classes and keyword arguments I still have to put the dreaded death star in front of just the right things (and to remember NOT to put it in front of exactly proper other things).

So I guess for me the most problematic Objective-C part is the one that has to do with C (because it adds a level of complexities on top of C). The "Objective" part is actually very nice, once you get used to the call syntax and the brackets.

</comment><comment><USER30> Hard is OK. Over time, you become better at it, until it's no longer a problem -- it's a relative thing. Not saying easy is bad, but hard isn't _that_ big of a problem.

Example: I find Russian very hard to speak. That doesn't mean Russian IS hard, I just don't know russian. And some languages are harder (more stuff to learn) than others.

See <http://www.infoq.com/presentations/Simple-Made-Easy>

</comment><comment><USER31> Not looking for trouble here but writing an iPhone app should be no more difficult than creating a Keynote presentation, imho. If Apple is the leader in document development (Keynote, etc), why can't they do the same with writing apps. Look at what they've done with the complexities of video editing. Where is the consumer grade development app for iPhone?

</comment><comment> k-mcgrady I've only learnt 2 programming languages 'thoroughly'. Pascal and Objective-C. I find Objective-C a much simpler to understand language than Java for example. I have worked in Java (although not extensively) and it just seems messy to me. Objective-C is much more human readable and better structured in my opinion.

<comment><AUTHOR> Yeah, I agree. It's a beautiful and expressive language. I guess I should have called the article "Why Objective-C is Hard to Learn"

</comment></comment><comment><USER32> The only item I agree with is the last item: Objective-C is a nebulous term because it's so intrinsically tied to Apple and Cocoa/UIKit. The syntax? You pick it up within a week. Message passing versus method invocation? An important, but subtle distinction.

So what makes Obj-C hard? For me, it was Apple's gigantic MVC-style framework. Rewiring my brain to grok Obj-C was nothing compared to grokking Foundation Kit, UIKit and AppKit. Growing up with C++, C# and Java, you get used to a particular way of doing thing. APIs are designed and interacted with in a certain way. Apple's API feel completely different. From building strings and making network connections to working with images and animations. Apple's version just feels different.

</comment><comment><USER33> I know Objective C, C++, Java and have basic knowledge of C#. Of all these I'd rate Objective C as the easiest to learn and to handle. It's much more forgiving and easy on the programmer, and the syntax is trivial.

You seem to make a big case of the message passing syntax, but your example is very poorly chosen. Rather than 'performAction:withTwoParameters:' it should be 'performActionWithFirstParameter:andWithSecondParameter:' as are most Cocoa methods. Named parameters may seem verbose but they are much more readable than 'performAction(param1, param2)'.

If Objective C is a "large" language, I wonder what you'd call C++ or C#. Huge ? Humongous ? If you think Cocoa is large and complex, the C++ Standard Library or the Java library will make you weep.

<comment><USER23> The C++ standard library is actually quite small. Check Herb Sutter's keynote at Going Native 2012 for an entertaining visualization of its size compared to the Java or C# standard libraries: [http://channel9.msdn.com/Events/GoingNative/GoingNative-2012...](http://channel9.msdn.com/Events/GoingNative/GoingNative-2012/C-11-VC-11-and- Beyond)

<comment><USER33> Compared to the Java and C# libs, yes, the C++ std lib is small. In terms of complexity and ease of use, it's a different picture.

<comment><USER23> The IO libraries are kind of a mess but I don't find the algorithms and containers significantly more difficult to use than similar implementations in other languages.

</comment></comment></comment></comment><comment><USER34> I love the flexibility and breadth of things you can do with objective-c/c++. It's downsides mostly come from syntax, container class getting/setting is way too verbose, same with string operations. If there was a special syntax for just string and container classes, large swaths of my code would be smaller.

UIKit view controller classes are also not flexible enough, and crap out in a lot of custom multithreaded operations when they shouldn't. I could reproduce the same behavior with my own classes (animations, transitions, view control, etc) using just basic UIView classes and it would work significantly better.

<comment><USER35> Beta version of XCode has dict[@1] or dict[@"key"] for accessing members. Makes NSNumber and objectForKey old news. It's great. :)

</comment></comment><comment><USER36> I find Objective-C hard as well, but it has more to do with the nature of the message passing syntax that objective-c has.

For instance, for the life of me I CANNOT get calls to NSNotificationFactory right the first try, and there are no compiler hint to help you...it just doesn't work for some reason.

There are other items like that. Not much help when the app crashes, lack of Namespaces (class name collisions), etc.

Then throw in all the fun of submitting an app to the store. Working with iAds and In App Purchases will make you want to hurt something.

</comment><comment><USER37> I don't understand all these comments about Objective-C being hard.

Maybe it is because I am programming computers since the Z-80 days, or because like it is expected in my country I did a good earned CS degree.

If you think using a language like Objective-C is hard, maybe you should not be programming at all.

</comment><comment><USER38> Rather than performAction:firstParameter withTwoParameters:secondParameter which is kind of confusing. You should name it performActionWithTwoParametersFirst:firstParameter andSecond:secondParameter if you insist on calling your method performAction

</comment><comment><USER23> Really the only thing that makes Obj-C the _language_ hard is that the C layer pokes through often enough that you really do need to understand C as well and C presents a lot of pitfalls to a new programmer.

</comment><comment><USER39> Nah. Not hard. Different. People have a natural inclination to resist the new. My guess is that a competent programmer with OO experience should be comfortable with Objective-C within a week or two of study.

</comment><comment><USER40> I know this is a short article meant to explain the basics but I don't like how under the History section it makes no mention of NeXT or Stepstone which were the creators of ObjectiveC.

</comment><comment><USER41> Before I took the jump to learn Objective C and iPhone development, I dreaded the huge learning curve needed. Now that I'm on the other side, I LOVE the fact it intimidates people :)

</comment><comment><USER42> Objective C isn't hard. Ruby isn't hard.

Building a great app is hard. Building and running a great service is hard. Building and running a great company is hard.

Most commonly used programming languages aren't hard.

</comment><comment><USER43> Is MacRuby truly abandoned? If so, then I'm saddened. I just started experimenting with it recently and found it to be the answer to everything that frustrated me about obj c.

</comment><comment><USER44> For me the most annoying thing about learning xcode/objective-c is apple tries to force you into buying a Mac.

<comment><USER45> That's a deficiency of the iOS platform, not the ObjC language. It's just that ObjC is brittle and tricky enough that there's no longer much reason to learn it unless you're working on iOS (or possibly MacOS, if you think that'll stay relevant), though GNUstep is portable if you really want to.

</comment></comment><comment><USER46> Minor point that has always bugged me: why doesn't Cocoa have native implementations of tree data structures?

<comment><USER47> <http://ridiculousfish.com/blog/posts/array.html>

</comment></comment><comment><USER48> I personally love the syntax of Objective-C. I find it very readable. I wish I could use it more often.

</comment><comment><USER49> It's not that bad. A little verbose, but it's not like switching from C to Lisp or Prolog.

</comment><comment><USER50> You had met at "... like broccoli or sexual intercourse". Great read, well written.

</comment><comment><USER6> _Forget the fact that we're not even talking about methods, really, we're talking about messages (a distinction I'm not going to make) and you refer to selectors like the one above as performAction:withTwoParameters:. Most people don't care anymore._

Well, those people have fairly low expectations of themselves then. People say this bullshit about the supposedly strange Obj-C syntax, whereas the part that it's not C is basically 99% "Smalltalk in square brackets". Nobody complains that Smalltalk has a strange syntax, even small kids seem to use Squeak just fine.

[object performAction: param1 withTwoParameters: param2]

not that different to:

object.performAction(self, param1, withTwoParameters=param2)

in Python, or any language with named parameters. The syntactic differences are superficial. You don't even have to know about selectors and messages to understand the gist of what that invocation will do. "OMG, method parameters have a name" --well, big effin' deal.

Ever seen C++ (especially the recent standard)? Or the beast with 1000 features C# has become? Obj-C compared is leanness personified.

The ACTUAL source of complexity in programming in Objective-C is the huge Cocoa (et al) API. But a huge API, especially nicely documented as Cocoa is, and with such breadth and nice MVC design, is a GOOD THING.

 _This tightly-coupled codesign is unique to Objective-C. There are other languages that run on .Net, such as Iron Python. Lots of language use the JVM besides Java, like Clojure. Even Ruby and Rails are two distinct entities and projects. The only significant effort to use a different language with Cocoa/Cocoa Touch and the Objective-C runtime, Mac Ruby, was a project largely backed by Apple before they abandoned it._

Actually, there are several efforts besides MacRuby to use another language with the Objective-C runtime: Nu (Lisp like), F-script (Smalltalk like). But the main difference here is that the Objective-C runtime is a very simple runtime, not a full VM, so the comparison to CLR and Java is not that apt. For one, CLR was designed from the start to support multiple languages, and Java didn't have any major language targeting the VM until like 2004-5.

In general, not that good of an article...

<comment><USER51> withTwoParameters is actually part of the method signature. It's not a keyword identifier. So

        [object performAction: param1 withTwoParameters: param2]

is roughly equivalent to

        object.performActionwithTwoParameters(param1, param2)

<comment><USER6> _withTwoParameters is actually part of the method signature. It's not a keyword identifier._

Sure, but it's not like that distinction is really important for the programmer. For most intends and purposes, he can just think of those as keyword identifiers

\--or, better, as a kind of keyword identifiers that also have to be present whenever referring to the method.

Not that big of a deal.

<comment><USER51> > Sure, but it's not like that distinction is really important for the > programmer. For most intends and purposes, he can just think of those as > keyword identifiers

(I'll use lisp conventions, it's what I'm used to)

What you're saying is for coders, saying

        (doit x y :withFloat 5 :key "string")

has no important distinctions with

        [foo doit:x:y withFloat:5 key:"string"]

But keywords have defaults if they're missing. And furthermore you can have them in any order. So to implement the equivalent of the Lisp method above, I'd have to implement _all_ of the following methods in Objective-C

        doit::withFloat:key:
        doit::key:withFloat:
        doit::withFloat:
        doit::key:
        doit::

That's just for two keywords. What happens when you have ten?

</comment></comment></comment></comment><comment><USER52> You know what I really dislike about Objective-C is that is really inconsistent with properties and messages, at one point I said out loud: JUST PICK ONE! Coming from Python this is a big thing for me, I like when there's only one right way to do things.

P.S. My only experience with Objective-C is with the iOS SDK.

<comment><USER53> You may already know this, but properties are just sugar for messages and instance variables. Their only difference is a shorter syntax.

(...plus some extra runtime data, but you don't usually notice that.)

</comment></comment><comment><USER54> > _However, they're also adding to the language in ways that makes the code > expressed in Objective-C simpler:_

> _Synthesizing properties_

> _Dot-syntax for accessing getters/setters_

> _Garbage Collection_

> _Blocks (closures)_

> _Automatic Reference Counting_

> _Weak references_

Sorry, but _none_ of these things make the language any simpler — they all add yet another style of doing things that only raises the bar and the learning curve for new developers when reading existing code, in precisely the same way that C++ and Perl have done. And this is true even of garbage collection (which, by the way, is deprecated in 10.8), because it needs to coexist with other frameworks and code that might not be garbage-collected, and more importantly because all heap-allocated C buffers consequently require their own low-level wrappers (e.g., NSAllocateCollectable, objc_memmove_collectable, etc.).

</comment><comment><USER55> What lots of others have already mentioned.

Also be aware, there is something called "Objective-C++" which is a superset of C++.

The syntax is not "weird" unless you just don't know the language. Acclimation is part of the learning process.

In my opinion, the syntax/language is pretty great. I enjoy ObjC greatly. My main beef with it is that it's less than portable. ObjFW attempts to solve this, and is a phenomenal framework already.

</comment><comment><USER56> is it fair to TL;DR this as "Objective-C is only hard if you've never used Smalltalk"? or is that overly glib?</comment>


Ask HN: Why do websites have small fonts? - <AUTHOR> I haven't done any scientific measurements, but my experience with the sites which I visit and which are usually shared here is something like this:
* 80% have painfully small font-size: I need to view the site at 120%-140% zoom to be easily readable
* 15% have ok font-size: I can read it at 100% zoom, unless I'm tired (then 120% zoom will usually do the trick)
* 5% have large enough font-size which I can read regardless of my tiredness
Ok, some sites haven't changed their design in 10+ years, but I see the same when people here share posts from their personal sites, written recently. You would expect those people to "keep up with the technology" and care about readability.
How come the small font-sizes are so prevalent? Is there some reason I'm not aware of why people don't use larger font-sizes? <comment><USER2> You are not alone:

[https://eggplant.pro/blog/make-things-easier-to-read-with- ac...](https://eggplant.pro/blog/make-things-easier-to-read-with- accessibility-bookmarklets/)

The web is made by children hunched over macbooks in coffee shops and open offices.

If you can't read 8pt Helvetica, maybe it's time to give up the web and take up bridge.

</comment><comment><USER3> I have that problem on desktop but not on mobile for some reason. That said, I generally use my browser's reader mode in both contexts anyway because so many sites choose unergonomic font families.

Have you ever had a vision exam? My vision is good enough to get by without corrective lenses for almost any other activity, but they make a world of difference when reading on a screen all day, especially if you have even mild astigmatism.

<comment><AUTHOR> > _Have you ever had a vision exam?_

Hehe, I thought somebody might ask that.

Yes, I have astigmatism and I wear my glasses when working on a computer.

> _I generally use my browser's reader mode_

Reader mode is great but it can't be used on _all_ pages. Also, it cures the symptom, not the cause.

I'm really puzzled why improved readability is not a concern for content creators and it basically boils down (based on the answers I received so far) to: "well, you can zoom in or use reader mode, websites are ok the way they are currently".

</comment></comment><comment><USER4> My issue isn't with font size, it's with websites that are unnecessarily thin. For some reason, especially with blogs, there's a habit of reducing the width of the text to a quarter of the screen width.

<comment><AUTHOR> > _there 's a habit of reducing the width of the text to a quarter of the > screen width_

This I can understand and support.

\----

Intermezzo:

First off, if you're having your browser take your whole screen, "you're doing it wrong", aka here is my tip: Assuming 1920x1080px screen resolution, using 2/3 of its width (~1260px) should be enough for the most of the pages, and the remaining 1/3 of your screen you can use for other stuff you need (IRC, chat window, music player, etc.).

\----

Back to the original point:

The reason why this "small width" is happening is because of readability: extra long lines (anything over 100 characters) are hard to read.

But larger font-sizes would please both general-you (people who want larger width) and general-me (people who want larger font-sizes): I would be able to read the text without zooming in, and the same amount of characters per line would now make lines wider.

</comment></comment><comment><USER5> Isnt that issue totally fluid? I do not even know what zoom-level I am on.

<pressing Control-+ , Oh it says +175% >

There you have it. You have wrong browser if it does not allow zoomin in and out at will. This browser is Google Chrome.

<comment><AUTHOR> > _You have wrong browser if it does not allow zoomin in and out at will._

Yes, my browser allows zoomin in and out at will, but that's not the point.

My question was: why in the large majority of the cases I have to do that, why isn't "zoomed in" (by using larger font-size) by default?

Also, some sites don't change the width when I zoom in, so that basically means I can have either unreadable text or readable poetry (4-5 words per line).

<comment><USER5> In Chrome you can set minimum font size, I have 10, default is 7.

Also I have default font "Crete Round", which is particularly readable and visually pleasing. I read all my Ebooks in Crete Round too.</comment></comment></comment>


Rugged software - security's response to agile programming? - <AUTHOR> http://www.ruggedsoftware.org/ <comment><USER2> Having spent a lot of time and effort working to inject and enforce robustness in projects, I appreciate the sentiment. The list at the top did, however, remind me of this bit of humor:

<http://www.klingon.org/resources/klingon_code.html>

</comment><comment><AUTHOR> the manifesto is cool. this is a great way to market writing secure code.</comment>


4Chan launches embarrassing attack on devout Christians on Facebook - <AUTHOR> http://thenextweb.com/2009/08/22/4chan-launches-attack-christian-evangelists-facebook/ <comment><USER3> For those who haven't heard the story the details were pulled from a Christian dating site db.singles.org which had a query parameter injection vulnerability.

The vulnerability allowed you to navigate to a person's profile by entering the user id and skipping authentication.

Once you got there the change password form had the passwords in plain text. Someone wrote a scraper and now the entire database is on Mediafire and contains thousands of email/password combinations.

<comment> brown9-2 Thanks. Glad to see some actual info on the attack, as the real article and most comments in this thread are devoid of any.

</comment></comment><comment><USER4> Now we find out that HN is really full of the immature that think it's hilarious to break into peoples stuff and vandalise it, just to see if you can make them cry.

I genuinely thought people here would have more compassion and sense of decency than 4chan.

<comment><USER5> Human beings are a clannish people. Acting badly towards an unpopular group is seldom frowned upon. If the victims were some popular group, I am sure there would be outrage rather than lulz.

Two millenia later, Christians are the new Christians.

<comment><USER6> _"Acting badly towards an unpopular group is seldom frowned upon."_

Your argument is disingenuous. Some groups are unpopular for good reason - because they do bad things, or make society worse for everyone else. When these groups are treated in a negative manner by society, it is proper and healthy, as it helps to discourage the groups spreading.

If you were to hear someone at a party loudly proclaiming the inherent criminal nature of blacks, would you afford him the normal respect upon encountering him later? Would you be terribly upset if you later heard that his web page had been hacked? I think not. He's not from just another group, one which happens to be randomly unpopular. He's from an inferior, dangerous, poisonous group and the more society can do to make such groups feel uncomfortable continuing in their ways, the better.

Christians, I'm afraid, are one of these groups. Even today, in 2009, they are continuing in their insane anti-science, anti-education campaign to throw the world back to the dark ages. Attempting to delegitimise evolution. Denying the fossil record and the age of the world, and by proxy all of geology, astronomy, and many other sciences. Campaigning against equal rights for gays. Opposing important medical research. Trying to weaken the boundary between (their) church and state. Encroaching on free expression. The list goes on and on.

It benefits society for damaging groups such as this to be reduced and one day eliminated. One of the tools we have to do this is that of humour/humiliation - to turn the group into a laughing stock. 4chan are simply the volunteer actors in this instance. You might not approve of their specific methods, but it's a job which needs to be done one way or the other and anything is better than nothing.

 _"Two millenia later, Christians are the new Christians."_

Two millenia later, it's a disgrace upon humanity that there's still even such a thing as Christians. But yep - still whining.

<comment><USER7> > When these groups are treated in a negative manner by society, it is proper > and healthy, as it helps to discourage the groups spreading.

Can you back that up? My impressions is that mob persecution of unpopular groups typically only makes them stronger and more comitted (as long as you don't perform outright genocide against the group, of course).

Anyway, you jump from disagreement with a viewpoint (criminal nature of blacks, creationism) to the conclusion that a group is "poisonous" and deserves any kind of random harassment and persecution from the anonymous mob. I don't know what this line of thought is called in English, but I don't think it is something nice. If I happen to disagree with your line of thought (and indeed find it dangerous to society), would that make it okay for me to throw rocks through your windows in the middle of the night?

(Just read your profile: "Part of the cancer that is killing Hacker News". I suspect I have been trolled. This is why we cant have nice things.)

<comment><USER6> You haven't been trolled, I added that as a joke in response to previous accusations of trolling! That said, I was definitely in "devil's advocate" territory, I just didn't like the GP's attempt to blithely equate all possible groups.

 _"mob persecution of unpopular groups typically only makes them stronger "_

"Mob persecution" is going way too far. I meant general disapproval, not rocks through windows. And I disagree it makes them stronger. The example I am thinking of is unemployment, which is pretty looked-down-upon in most western cultures. You're not going to be lynched for being unemployed, but do you proudly admit it at parties? No. That is the kind of "soft pressure" I advocate being placed on the religious, not outright oppression.

 _"you jump from disagreement [..] to the conclusion that a group is "poisonous" and deserves any kind of random harassment and persecution from the anonymous mob"_

Again overstating my claims. Not "any kind of random harrassment and persecution", of course. Instead, fairly mild teasing and a general air of disapproval.

<comment><USER4> You say he is "overstating [your] claims" yet you wish the death of all religious people? You flame and then smother so that you can flame once more it seems.

<comment><USER6> Hm, rereading it now, I admit I could have put that better. I didn't mean the elimination of all religious people, ie. by death, I meant the elimination of religion. Just like when people say they want to eliminate poverty, they don't mean they want to kill all the poor people.

However it was poorly put, so apologies for the confusion.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Another solid reason why you should never use the same password for multiple sites. To do so, you are effectively trusting every single site in the chain.

I read enough HN and Codinghorror to know that many sites have no clue how to handle passwords in a secure fashion.

<comment><USER9> I stupidly got caught out a few years ago when Reddit left all their passwords in plain text, and then got hacked. I was dumb enough to have been using the same password on Paypal at the time, not quite understanding how Paypal was linked to my bank account.

</comment></comment><comment><USER10> Will 4Chan someday evolve into Vinge's 'Friends of Privacy', filling the net with lies to create doubt about all the revelations available online? (Personal info chaff, of a sort.)

('Friends of Privacy' is a anonymous mass group in Vinge's _Rainbow's End_.)

<comment><USER11> No, if anything they'd become the opposite of the 'Friends of Privacy'. I've browsed /b/ a bit; they like few things better than exposing the personal information on some personal vendetta or merely 'for the lulz'. I like lulz as much as the next guy, but phone harassment and impersonation are not so much lulz as simply criminal.

</comment></comment><comment><USER12> 4Chan, you will never find a more wretched hive of scum and villainy.

(to borrow from Obi-Wan)

<comment><USER13> Yes, mocking people on the internet and making dirty jokes is certainly the pinnacle of human depravity. The KKK? Neo Nazi's? No, the most wretched people are giggling undergrads, sitting in dorms, trying to gross each other out.

And quoting Star Wars? \- Go outside. \- Walk to the library. \- Read a book.

Repeat until you stop day dreaming about owning a light saber or riding shotgun with Han Solo.

<comment><USER12> As gloob figured out, it was primarily a joke, though I find your vehement disgust with my use of a Star Wars quote to be a bit disturbing. Besides, sci- fi nerds generally read a lot so the library bit doesn't even make sense... and who wouldn't want to own a light saber (though I can't say it's something I actively daydream about)?

However, in defense of my statement, 4chan is the only place I've ever seen photos of a nude, decapitated woman posed in sexually suggestive positions, and it would probably take you 5 minutes of browsing /b/ to find drawings of girls under the age of 10 having sex.

(edit: typo)

<comment><USER14> But they didn't take those pictures, or kill the woman. They didn't even know them, or much about them probably. They found a picture on the internet, and they posted that same picture to another part of the internet. Truly moral outrage should ensue.

Since you are a sci-fi fan, here is a sci-fi reference.

Neo takes the blue pill. He finds out what the 'real' reality is, behind the bullshit fabricated reality. The stuff about the dead lady? That actually happened. Stuff far worse happens every day. If that makes you uncomfortable, or outraged, or whatever negative emotion you are expressing, you are just angry at reality. Don't blame 4chan.

<comment><USER15> I'm reasonably sure you are the person closest to being outraged about anything in this discussion, heh. He was being funny, not raving about how 4chan is the root cause of all evil. And in any case, the fact that actively evil people exist independent of 4chan is orthogonal to whether the site is legitimately "a hive of scum and villainy."

</comment></comment></comment></comment></comment><comment><USER16> this is simultaneously awful and hilarious.

<comment><USER5> I don't understand how it is hilarious, though I've been told my sense of humor is a bit odd.

Inflicting pain and embarrassment on complete strangers by stealing their log in information and violating their privacy - is that your idea of a good time?

Empathy pro-tip: ignore who the target was, and pretend the attack happened to someone close to you. How does that make you feel?

<comment><USER17> _How does that make you feel?_

If my friend had a fake message posted under his or her account, I would probably not feel all that bad. The issue of password reuse aside, it is really not a big deal. "Haha, my account got hacked, I didn't actually have sex with him!" and that's the end of it.

Some people try to add wayyy too much meaning to their lives...

<comment><USER18> _Some people try to add wayyy too much meaning to their lives..._

Yeah, those people who have some kind of standards and live their life for some higher purpose, they're really taking this entire living thing way too seriously. They should just laugh it off when somebody takes their identity and has them say things they never would.

Did I get that right? Is that what you're saying?

<comment><USER6> You sound like you're trying to be sarcastic, but read plainly that sounds pretty reasonable. Especially since $DEITY would, being omniscient, know all about the deception and not dock them any Heaven Points.

Hell, isn't being oppressed what religious people like? They should welcome this as an opportunity to show their unconcern with worldly things. $DEITY will be most impressed. In fact, I wouldn't be surprised if this is one of his tests.

<comment><USER18> Sorry -- you're spinning off into religion-land. That's not what I'm saying at all.

I'm saying that the entire purpose of a life, any life, is what value you give it. If you like trees, or unicorns, or puppies, or whatever -- that's really all you have: your definition of yourself. For somebody to assume your identity and make statements that go against everything you stand for -- whatever your value system -- that's about the worse thing you can do to a person, save actually physically harming them.

This has nothing to do with religion or Christianity, except, I guess, that people think it's funny to pick on Christians in a way that would be reprehensible if done against any other group. Would you like to imagine what kinds of jokes we can make against ethnic groups? Minorities? People who are retarded?

It's obvious that these "jokes" wouldn't be funny at all. Why the brain freeze when it's done against Christians?

<comment><USER6> You can't separate the religion out of it. This kind of joke wouldn't work against anyone else. It's only because of their bullshit "hard line on (something allegedly bad)" or from making a big deal about their piety and "clean lifestyle", that they're susceptible to such pranks in the first place. Reasonable people unconcerned with maintaining a squeaky clean image would indeed just laugh it off.

I think it's fine to mock stupidity in all its forms, so the archaic superstition of religious belief is fair game. I'd be equally fine with mocking racism, homophobia, any other religion, etc - all of which, you'll note, would also be susceptible to this kind of attack. Coincidence?

Anyway I think you're well aware of my views from other discussions so I won't repeat myself.

 _what kinds of jokes we can make against ethnic groups? Minorities? People who are retarded?"_

Christianity is a choice, unlike membership in the other groups you've mentioned. That changes everything.

<comment><USER18> You said you wouldn't repeat yourself yet you can't seem to help it, eh?

Let's say I choose to believe in the Great Pumpkin. I mean I really believe in him. I've got the wall stickers, posters, the book of the great pumpkin -- everything. Now -- aside from your predilection for belittling people who don't live up to your intellectual expectations, do you think it's right for you to take over my FaceBook account and start a long diatribe about how the Great Pumpkin sucks?

Don't you see how that's worse than just being an asshole? You're taking over somebody's persona on the net and making them trash their own value system.

That's not civil conversation. That's not even mocking people you think are stupid. It's a whole other level of nastiness altogether.

<comment><USER6> _"do you think it's right for you to take over my FaceBook account and start a long diatribe about how the Great Pumpkin sucks?"_

I can't believe I'm hearing this. Yes? Of course? I mean, I don't condone people hacking FB accounts, of course. But why do you think a belief as ridiculous as that deserves any protection whatsoever?

I'm not really singling out Christianity, either. If someone hacked a known homophobe's Facebook account and posted photoshopped pictures of them sucking cock, or got into a racist's account and started talking about their black girlfriend, I'd applaud, and couldn't give a damn about "making them trash their own value system".

And the funny thing is, if the opposite occurred and, say, a right wing nutcase hacked my FB account and could say whatever they wanted - <USER2> couldn't really do any damage, because my entire self-image isn't founded on maintaining some ridiculous social façade. It would be an embarrassing security lapse, possibly provoke some mild teasing from friends and family, and life would go on.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment>=

UPDATE: Man, I am a really bad debater. I'm coming across pro-vandalism and anti-peaceful-tolerance here. Despite my views on religion that's not what I wanted to say; my argumentative position is drifting towards the extreme to oppose Mr. Markham. If I were a better debater, I'd be able to resist that - we're well into "devil's advocate" territory for me by now.

I do not condone these attacks. I wanted to make the point that I don't consider these attacks to be particularly hurtful or serious, and that anyone who is seriously upset "when somebody takes their identity and has them say things they never would" should lighten up.

I got a little too far into "asshole mode" above too. I won't change it now but actually, I wouldn't support defacement of this Great Pumpkin believer's page. Why? Because my whole _actable_ complaint against religion is that it's intolerant. I strongly oppose religious superstition, of course, but that's not a legitimate reason to take action against them. Simply being stupid is not evil, in and of itself. Intolerance, however, is the actable offence and that's what legitimises attacks upon religion. Now if the Followers of the Great Pumpkin had a political agenda against other segments of the worlds' population, that would be a _casus belli_.

I would like to say, though, that if you hold beliefs that seem to make you a favourite "lulz target" then you should probably re-examine them.

<comment><USER19> "I would like to say, though, that if you hold beliefs that seem to make you a favourite "lulz target" then you should probably re-examine them"

The only way to not be a target is to believe in "nothing". He who stands for nothing will fall for anything. That's not a good way to live.

<comment><USER6> Hm, I don't think so. For example, if someone strongly believe in freedom of speech, I can't see how that would be an easy target for the kind of mockery seen in today's pranks.

The whole idea of (today's) "lulz" is to make people who are defensive about something react in a completely over the top manner. Rational people are rarely defensive and don't tend to overreact, so they are rarely targeted, and it would be a failure if they were. Hence, if you have a belief that tends to make you overreact defensively when teased about it, it is probably flawed. That was my point.

</comment></comment></comment><comment><USER18> One of those jokes that's really funny -- as long as you're not the one getting trashed in public.

<comment><USER20> If you wouldn't laugh at getting hacked like this yourself, then you really need to get a life.

</comment></comment><comment><USER21> As painful this might be for the victims, I enjoy when online social networks "explode" into people's faces like this.

</comment><comment><USER22> If you read the replies on the screenshot, you notice the OP's sister posts a message (granted, we don't know if it's for sure the OP's sister, but it is implied). The interesting part is that the last name of the "sister" is not blurred, whereas the OP's is. Maybe she's married and has a different last name though.

</comment><comment><USER23> God bless those little /b/tards.

<comment><USER24> Your comment is childish, unnecessary and is liable to start flame wars.

<comment><USER25> /b/tards is what 4channers call themselves

</comment></comment></comment><comment><USER26> Come on guys (and girls). 4Chan pranks on HN? Leave it for reddit.

</comment><comment><USER27> The evidence of 4chan's involvement here is kind of shaky.

<comment><USER28> Christ NO, are you kidding? I was browsing 4chan when threads about this shit started going up. They are pretty clearly behind it.

I was just wondering when it would hit the MSM and then HN.

Not very long, it turns out.

<comment><USER29> 4chan is just a message board. A forum if you will. Unless you're saying that the administrators had a hand in this, then '4chan' isn't behind it.

That's like saying that 'Hacker News' is behind something just because a bunch of Hacker News users used a thread to coordinate some sort of attack. 'Hacker News' isn't behind anything unless pg/ycombinator/etc somehow had a hand in it.

4chan is nothing but a medium for information shared between people. And to try and group the entire 4chan userbase under the term '4chan' is an effort in futility. There is a very wide and varied group of people that frequent 4chan. Keep in mind that many people visit 4chan _without_ ever visiting /b/ or /r9k/.

<comment><USER28> A good point, and I can't understand why you're being modded down for it.

But that said, it's generally understood when someone says "4chan did it", it's shorthand for "dickhead Anons on 4chan's /b/ did it."

<comment><USER29> The problem is that when these stories reach the mainstream media, '4chan did it' leads to the assumption that everyone associated with 4chan had some hand in this attack. If these things reach the mainstream media enough, then it will just be a rally cry to 'take down 4chan' without anyone putting much _actual_ thought behind it (much like the people whose only argument against government healthcare is "but it's socialism... I don't want no socialism in my guberment" while those same people will violently oppose getting rid of welfare payments/social security/medicare -- which are all 'socialist' programs).

Not trying to be some sort of grammar nazi or something about this, but I don't want stories like this getting to the mainstream media just to turn people against places like 4chan based on reporting that is lacking in the specificity to tell people that only _part_ of the 4chan userbase is responsible for these attacks.

</comment></comment></comment></comment></comment><comment><USER17> There is another thread in this article asking how I would feel if this happened to a friend. The answer is "I don't care". I thought a bit about how this would make me feel if it happened to me, and the answer is "I don't care, because I don't use Facebook".

I then thought about what would upset me, and I realized that I would be upset if someone edited my blog and added random technical inaccuracies.

Then I realized that I digitally sign all of my blog posts, so this is mathematically infeasible.

(Example post: <http://blog.jrock.us/articles/App::Persistent.pod/raw>)

<comment><USER30> Unless you accidentally publish your private key online (longshot, but still).

</comment></comment><comment><USER31> This is the typical way to 'use' 4chan. One of the few guys there with a bit of knowledge breaks into something, gets a list and then his job is done. Post the list to 4chan and have that community wreak havok with it. 4Chan is a semi-intelligent botnet.</comment>


Advising Students for Success - <AUTHOR> http://cacm.acm.org/magazines/2009/3/21781-advising-students-for-success/fulltext

<comment><USER2> The structure of phd programs highly discourages doing important research. Important problems carry high risk of getting scooped, but do not offer proportionally higher upside. The rational course of action is to choose the most irrelevant and obscure topic possible so as to protect your 5+ year investment. Real research is the job of tenured professors.

<comment><USER3> Do you have any links/advice regarding how to avoid being scooped?

<comment><USER4> Would it help to be entirely open about it? What would happen if you published every small piece of research that journals would accept, and blogged or self published the rest?

You might not be the first one to publish results, but you could reasonably claim that anybody that scooped you would be basing their experiment almost entirely off of yours, so it would be somewhat of a derivative work. And if you released a details on your experimental plan, I think that a scientist would have to design a new experiment if he wanted to say that he wasn't just testing your hypothesis.

And I think that even if someone did try to scoop you, you would have claim to enough original research to get a phd.

This strategy might cause you to change your thesis some. But if you are worried about getting scooped, it might be beneficial to release as quickly as possible to lay claim to as much research as possible.

I'm just comparing it to the patent system. Companies don't want their ip infringed, so they file as many patents as possible to get legal rights to their ip.</comment></comment></comment>


Fibonacci Flim-Flam - <AUTHOR> http://www.lhup.edu/~dsimanek/pseudo/fibonacc.htm

<comment><USER2> That was a nice thrashing of some of the silly numerology that seems to collect around the Fibonacci sequence/golden ratio.

I do wonder why phi gets so much attention (pi as well), but e doesn't? My suspicion is that it's because logarithms are "harder" to understand...

<comment><USER3> Chaitin's constant is also quite underappreciated.

<comment><USER4> Chaitin's constant has the problem that unlike pi, no one can memorize its first n digits.

</comment></comment></comment><comment><USER5> Nice as a continued fraction:

phi = 1 + 1/(1+1/(1+1/(1+...)))

</comment><comment><USER6> Great great article.

As far as my memory serves my I do though think that the article is making one claim that is wrong.

It was Bach and not Mozart who was obsessed with numbers and not phi or fibonacci.

Harmony in western music is based on phi subdivisions of the octave.

Fibonacci is used in design and art quite a lot. the A paper format (A0, A1, A2, A3, A4 etc.) is based on it.

When you see a website that is "pleasing to the eye" that is often (but far from always) based on some interpretation of Fibonacci sequence.

Most probably it's the consistency in proportional difference that is pleasing and not phi in it self.

Phi and f are retrospectively pleasing because they are culturally imposed on us. If you divide an octave in ten (instead of 12) then you get a different division of the octave but it wont feel pleasing to the ear.

Just as the Arabic division of the octave is quite different and doesn't really allow for harmony.

So I think it's premature to just throw it all out and say nonsense. Neither Fiboncci nor Phi are some natural constant but they might be a cultural constant for the west.

Or as Wittgenstein said:

"The faculty of taste cannot create a new structure, it can only make adjustments to one that already exists"

<comment><USER6> Why the downvote?

<comment><USER7> I've not voted on your comment, but here are a couple of reasons I'm leaving it at zero:

* Grammar in the first sentence, the "As far as my" line, is quite garbled for an into to a reasonably long comment.

* I can't verify your other claims, but I _know_ A series paper is based on the 1:sqrt(2) ratio, not 1:phi, so I suspect you're falling for the same trap that the article warns against, 0.62 is _almost_ 0.71 right?

<comment><USER6> Yeah you are right. My bad.

Perhaps the confusion comes from how you would normally try and structure your grid.

I am not sure though if 0.71 is too far from 0.62 to be considered close enough.

Regarding grammar I unfortunately I can't edit it sorry.

</comment></comment></comment></comment><comment><USER8> Speaking of Fibionacci, I was browsing through my old Data Structures and Algorithms lecture notes the other day for nostalgia and discovered that Fibionacci(n) can be computed in O(log N) time, at least in theory. I have completely forgotten about that fact.

<comment><USER9> Only if you ignore the cost of multiplication or the size of the numbers involved. The length of the answer is proportional to N, so you end up with N log N time with the typical exponentiating algorithm, and there's no way you'll beat linear time. The regular old additive for loop takes N^2 time, though.

<comment><USER2> A closed-form solution exists, so if you pretend that arithmetic is free, it's O(1)!

Bignum multiplication is significantly slower than bignum addition; if memory serves me it ends up coming out that you're essentially stuck with O(n^2) no matter what you do.

Fun fact: The naive, unmemoized recursive Fibonacci function has time complexity of precisely O(fib(n)). Scary!

<comment><USER9> Oh, I'm sorry, I was under the impression that there existed O(N log N) multiplication algorithms, but apparently that's just conjectured. Right now the best seems to be O(N log(N) 2^(log*(N))) ( <http://en.wikipedia.org/wiki/Fürers_algorithm> ), which is slightly better than O(N log N log log N). Okay then.

Also, the closed form solution would still be O(log N), since I don't think anybody yet considers exponentiation to be free :-)

</comment></comment></comment></comment><comment><USER10> I remember being surprised by this back in '07: <http://akkartik.name/blog/10476036>

</comment><comment><USER11> Ah phi, the most irrational number.

<comment><USER12> It's not even transcendental!</comment></comment>


SRE: The Biggest Lie Since Kanban - <AUTHOR> https://theagileadmin.com/2018/10/02/sre-the-biggest-lie-since-kanban/ <comment><USER2> Google-style SRE has three critical elements:

1\. SRE is involved in the design of the system from a very early stage, oftentimes before any code is written.

2\. SRE has veto power over deployment.

3\. SRE is an engineering position, focused on automating everything possible to achieve greater reliability.

Facebook is the only organization besides Google that I know of that actually follows this. Most people I know who hire SREs do indeed just hire a glorified ops team, but they're kinda missing the point.

<comment><USER3> I wouldn't say so much that SRE has veto power. You call your Ops team an SRE team and tell them they have veto power with few other changes, and either the CEO is going to end the SRE experiment in a week when Dev and SRE are yelling at each other about getting product out the door, or the company will implode rather quickly from being dysfunctionally unable to ship.

Rather, there is an error budget and if Dev violates the error budget then Dev has to go back to being responsible for Ops until they fix whatever was causing the product to go over its error budget. Without the ops- responsibility handoff between Dev and SRE, you just have an Ops team.

This requires the org to both a) have shared language for defining errors and error budgets b) have some way of transferring control from SRE to Dev securely, without incurring additional downtime. That's more difficult than it sounds - going from Dev not having production credentials, to having production credentials, to losing them again when SRE takes the service back, all the while often using similar infrastructure e.g. managed databases which are backed up without Dev intervention etc.

What most organizations get wrong is that SRE is a higher level of efficiency, not a foundational practice. It requires building out infrastructure to support the model. If you don't have it yet then you can't force it by slapping a label on it.

</comment></comment><comment><USER4> Everything "agile" when forced from the top, becomes a lie. I'm talking about big orgs and teams.

You throw methodologies around; you create and change names and labels all the time. It makes no difference. It is only when people self-adopt the philosophy behind 'being agile', and when the 'leaders lead', it makes a difference for everyone.

</comment><comment><USER5> I like Spotify's organizational structure. In addition to product groups and tribes, there are cross concern practices that anyone can join. For example: UX, TDD, and SRE can be engineering disciplines that bring their voice across product groups.

And I totally agree, reliability engineering starts in the beginning with dev. I see this mindset happen more with Elixir/Erlanf devs than Rails devs. (I do both). The whole focus on "developer experience" tends to bias concerns for reliability engineering as if that will magically go away.

</comment><comment><USER6> This paragraph:

>Second of all – I don't want to make an enemy of all the lovely Google engineers out there, but is your experience with Google services that they evolve quickly and get better once they go to wide release? It's not mine. They rot. Have you used Google Hangouts lately without it ending up with cursing and moving off to someone's Zoom? That kind of specialization still has its downsides in terms of hindering your feedback loops that let you improve (the Second Way). Is SRE just Google-ese for "sustaining?"

Makes me think the author of this blog post doesn't have a clear understanding of what SRE does. Product rot and feedback has nothing to do with reliability.

It theoretically possible to have a product with no product engineering team because there are no new features, and still require an SRE team since, well, people use it.

I'm not sure how the author managed to conflate product managers and SREs, but it appears that they did?

</comment><comment><USER7> > That's why SRE is a Big Lie – because it enables people to say they're doing > a thing that could help their organization succeed, and their dev and ops > engineers to have a better career and life while doing so – but not really > do it.

People doing things wrong doesn't make the thing they're trying to do a lie. If you ask an organization enough questions before you take a job there, you can quickly tell if they're spinning their wheels or if they're serious. Most medium to large size companies are not serious about this stuff unless they're one of a handful of multi-billion-dollar tech startups.

If a company hasn't hired another company to teach them how to implement these new kinds of teams, they're probably not serious about it.

</comment><comment><USER8> > There's the super well-known ones like Bitcoin and Ethereum of course, and > also a myriad of other technologies and ecosystems: Mastodon, ActivityPub, > Perkeep, Scuttlebutt, Dweb, Solid...

P2P technology is at least a decade older than blockchain - it's peak was in the early 2000's with Napster & co.

</comment><comment><USER9> SRE being Site Reliability Engineering - it is there in the text but easy to miss.

Shameless plug: I wrote 'Kanban from the Inside'

</comment><comment><USER10> Article could start with a definition of SRE.</comment>