4chan, a popular hub for offensive posts, shows signs of distress - <AUTHOR> http://money.cnn.com/2016/10/05/technology/4chan-shutting-down/index.html?iid=ob_homepage_tech_pool <comment><USER2> I don't think anyone involved in writing, or anyone mentioned in this article has any idea what 4chan actually represents, with the exception of Nisimura and Shkreli.

I think it's really dishonest to represent 4chan as "ground zero for orchestrated harassment" and "[a site where] some of its users created a set of code words to help users make racist and bigoted slurs".

It's like saying Earth is a place where people have their organs stolen and sold and where babies die. It is technically correct, of course, but it's very disingenuous to describe it that way to outsiders.

I would go on and talk about what I think 4chan really stands for, but I assume most people on HN are pretty familiar with the site, so just know that I am in the camp that likes how it is (or used to be?) a last bastion of freedom and anonymity (not Tor-like, but where the UX is designed to not have profiles and usernames) and free discourse on the internet.

The main thing I want to mention is that having money problems is absolutely nothing new to 4chan. Moot's comments have traditionally been along the lines of "4chan will always consume all available bandwidth". The nature of the site limits it to either leery advertisers, or people like JList (where 4channers are almost exactly their target audience). So advertising has always been hard for 4chan.

Personally, I think the 4chan pass is the key way to move forward for 4chan, or solicit donations more openly (perhaps a progress bar that shows % of monthly fees that have been paid?).

Funding 4chan is definitely a hard problem, but it has existed for more than a decade, and has been mostly well-handled for that entire period. Time will tell, though.

<comment><USER3> >I would go on and talk about what I think 4chan really stands for, but I assume most people on HN are pretty familiar with the site, so just know that I am in the camp that likes how it is (or used to be?) a last bastion of freedom and anonymity (not Tor-like, but where the UX is designed to not have profiles and usernames) and free discourse on the internet.

Well, noisy discourse, shitposting, and doubles threads. Actually, not really discourse at all. Mostly just heresy.

<comment><USER4> Yeah, but have you considered that there's a developmental benefit to having somewhere you can go and just say "vile" things?

I know having that kind of space online as I was coming-of-age was huge for me, it gave me somewhere to experiment with opinions without consequences. Somewhere to say truly, truly disgusting things. And I did, a lot. But over time, it became clear where I was just being offensive and experimenting with "naughty" ideas, where I was trolling, and where I genuinely disagreed with the norm.

That free experimentation with opinions and language is a lot harder to find these days, but it really shaped and honed my ability to even form arguments, my ability to explain my position to people who don't agree with me, and my ability to listen to positions I find offensive.

Not all discourse needs be Discourse, full of profundity and consequence; experimentation, freedom, and privacy are core to the human developmental and creative processes.

<comment><USER5> The problem is that some people never got the memo that says that chanspeak is not acceptable in polite conversation. So the chans end up being a continual generator of sexist, racist assholes who think that it's OK to be sexist, racist assholes. Lots (but not all) gamergaters fall into this basket of deplorables.

Which is not to say that your comment is not valid. Society needs a release valve where people can feel free to vent their creativity along with the darkness in their souls. Imageboards are really great for that, as the ephemeral anonymous nature lets the good ideas survive and the bad ideas fade forever into the aether. Without the fear of consequences or prejudice, the human spirit is unbound to create stuff. Naturally, 90% of everything created is crap.

It's just a terrible place to learn socialization. And a few too many do that.

<comment><USER4> > The problem is that some people never got the memo that says that chanspeak > is not acceptable in polite conversation. So the chans end up being a > continual generator of sexist, racist assholes who think that it's OK to be > sexist, racist assholes. Lots (but not all) gamergaters fall into this > basket of deplorables.

What you revile here with such colorful language is nothing but many developmentally delayed people you likely bully in real life (and certainly, if not you, others do) for not learning social graces and conforming to society at the rate you do forming a community and insisting that they be treated with rather than oppressed by society at large, or they'll tear the place down.

You don't like it, because you were on the oppressing side, and oppressing them is easier than dealing with their very real underlying issues and trying to meaningfully integrate them in to society.

So your suggestion is to eliminate a community that plays a healthy role for normally developing people and a meeting ground for them, presumably in hopes that they'll go back to quietly being oppressed.

> It's just a terrible place to learn socialization. And a few too many do > that.

Frankly, I doubt you offered them a better alternative.

<comment><USER5> Good lord dude, I don't know how you got from me stating a problem to me being a bully, an oppressor, and an attacker of the disabled. I also said that imageboards play an important social role, which is a long, long way from saying I want them eliminated.

I have offered an alternative wiki farm, and specifically a wiki about tropes in media. The last time we had to deal with a developmentally disabled person on there, we ended up calling his parents to ask for help. You know, so we could treat him like a real human being and not just a ban evader.

<comment><USER4> I quoted the part of your comment that exemplifies the behavior I was calling out.

Perhaps I read it wrong: feel free to provide another interpretation of the quoted text. I'd genuinely like to be wrong here, but it reads like you're engaged in culturally approved oppression of the invisibly disabled.

Ed: In particular, you identify a group of developmentally stalled people who didnt receive the help they needed to be properly socialized, and then immediately call them "deplorables" because they acted out.

I think that says it all: these are people you willingly other instead of embrace because they offend your cultured sebsibilities, and the culture you're in tells you to revile rather than help. That's the definition of culturally sanctioned oppression.

<comment><USER5> I really wish that I could flag replies to my own comments :[

Sorry to burst your bubble, but openly racist and sexist people are deplorable.

<comment><USER4> I'm not sure why you'd flag my reply for disagreeing with you sharply. I don't think I've done anything inappropriate, as opposed to discussing a sensitive topic and not agreeing with you. (The reason you can't is precisely that: because you'd flag appropriately expressed views that disagree with you in ways that make you feel uncomfortable.)

> openly racist and sexist people are deplorable

I mean, I obviously disagree. I think it matters a lot why they're doing those things, as opposed to that they're doing them. If it's because they're mentally disabled and we've failed to teach them socially appropriate behaviors as they matured, how is that their failing rather than ours?

Your lack of concern for that possibility -- that we're just discarding the disabled because they didn't develop under their own power in to normal adults -- is what troubles me about your stance.

<comment><USER5> No, I would flag you because of the personal attacks, which are a violation of board rules. I don't really care about your views now, because you're obviously a lost cause.

<comment><USER4> Which personal attacks would those be?

I've claimed that I think you're acting a certain way, but that's not a personal attack: it's a specific claim about how you're acting (and how it impacts others) based on specific and cited things you've said. Calling you out for your behavior isn't "attacking" you, even if it's uncomfortable for you or violates your social expectations.

> I don't really care about your views now, because you're obviously a lost > cause.

Yes, I suspected that you would refuse to engage with someone who disagreed with your view and called you out on your behavior, because it would force you to confront the reality of how your actions impact people rather than the social fable you tell yourself about them. Notice how you call me a "lost cause", but clearly never even talked _to_ me in this exchange. You just said the socially approved phrases _at_ me. I think the reason you haven't actually addressed my specific points is because at some level, you know you _can 't_. That what you're doing really is oppression targeted at a disabled group you've been socialized to find "deplorable" rather than "unfortunate".

It's just much easier to deny your bad behavior and fit in.

<comment><USER5> Nah, it's much easier to git commit something useful than try to argue against a strawman version of oneself constructed by an SJW.

<comment><USER4> Im sure you'll tell yourself you chose not to respond but could have.

But I sincerely hope you'll at least try for your own benefit. I think having to explain why poorly raised mentally disabled people saying racist things are deplorable rather than unfortunate, without merely assuming your conclusion is right would teach you a lot about yourself. You don't even have to show me: just spend 5 minutes typing it out for yourself. Why not be sure you're right instead of merely assuming Im wrong?

Good luck on your commit. (:

<comment><USER5> Not sure why I'd have to do so. I've never made any comment that referred to mentally disabled people. Unless you equate sexism to a mental disability? If that's so, like wow.

<comment><USER4> You did make such a comment, and I've already cited it for you. And explained why it was offensive.

That you're not even able to admit that much is telling, lol

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> >And the forum is pointed to as the origin of GamerGate, the controversial movement that views female gamers as ruining the gaming industry, leading to vitriolic online attacks on women.

Laughably biased and wrong. Not even close to attempting an accurate description the situation.

<comment><USER7> I'm not sure which of those you think is wrong, that excerpt seems pretty accurate to me.

<comment><USER8> Because the whole "gamergate" thing was not about attacking female gamers. If I recall correctly they were after people who were villainizing video games.

<comment> crooked-v You don't recall correctly. The whole thing started with false accusations of unethical conduct against a particular female game developer (Zoe Quinn), followed by harrassment campaigns and personal threats against that same person.

<comment><USER9> How is it false? Not trolling, just out of the loop for a while.

</comment></comment></comment></comment></comment><comment><USER10> > Some of it is benign, like cat memes and the site LOLCats. But much of it is > offensive.

:) It's clever sleight of mouth to counterpose "benign" with "offensive," implying that offensive isn't benign. Sticks and stones.

As a visitor for over a decade, I can say almost all of 4chan is benign as it's recipes, endless blather about anime and video games, fashion and music. Typical teenage stuff.

The big difference between 4chan and most other places is the threshold for banning. In most forums, e.g. HN, if you speak against the forum, you get banned. On 4chan, you just get ignored and people get exposed and steeled against your ignorant behavior.

It's really the logical conclusion of "not in my backyard" style management. If you keep pushing people out of your neighborhood, they'll end up somewhere and that place is 4chan. And typically people grow up and out of it.

This article is testing peoples' reactions to a possible "victory for cleanliness" in the HRC victory. I imagine the center-right (which call themselves Democrats) will enjoy a good bit of muscle-flexing and creative interpretation of "freedom of speech" in the next 4-8 years.

Finally, getting condemned by the Anti-Defamation League is not difficult. [http://en.metapedia.org/wiki/Anti- Defamation_League](http://en.metapedia.org/wiki/Anti-Defamation_League)

</comment><comment><USER11> I assume this article is designed to signal that the regime finds 4chan _most_ distasteful, and would prefer for it not to be purchased, if you want to remain on their good side.

Which makes total sense, since 4chan-derived memes have apparently broken into the mainstream against all odds, to the point where actual US presidential candidates (CNN's favored candidate, come to think of it) are declaring war on goddamn Pepe for excessively challenging their narrative control. The incredibly Darwinian environment is to memes what Chinese farms are for influenza, and we are beginning to see the real-world effects.

In any event a few entities at varying levels of seriousness have inquired about the possibility of purchasing 4chan and received no response, so it's unclear what's actually going on.

</comment><comment><USER12> I find 4chan valuable because it seems to give an insight to raw humanity without the self censoring common in normal human interaction. I would rather people tell me what they really think, and I hope that as humanity evolves, normal interaction will become more direct.

<comment><USER13> Yes. I think so too.

The post are all that count. You can't vote someone up or down, like on HN just because you agree or disagree. You don't have to think about your personal reputation when you post and how much upvotes you get.

Simply plain information.

Yes there is a whole bunch of BS going on, if you visit stuff like /r9k/ and /pol/, full of nazis who think hate-speach is the essence of free speach. But the topic boards like /fit/ or /fa/ or /ck/ have really good distilled informations.

<comment><USER12> I don't like the endless repetition by people trying to exploit flaws in the human brain for their own purposes, but if you are able to mentally filter the inanity, you can experience the rare patches of awe inspiring creativity, well, at least I have been able to on occasion, I don't go there often and not recently so don't know if this is still true.

As for the expression of unpopular opinion, I feel that a society that is able to handle it's members freely expressing the most offensive viewpoints is infinitely more robust than one where these things are left to simmer just below the surface.

</comment></comment></comment><comment><USER14> And nothing of value was lost. The center of the internet cesspool wandered away from 4chan at least 5 years ago. Eventually, the site will shut down after passing through six to ten more hands. This will not affect 8chan, 420chan, anonib, 7chan, or any of the other dozens of sites that have popped in and out of existence for nearly as long as 4chan has existed, a number of which that are still around being only a couple of years younger. There will for the forseeable future be a place to post what you'll do when the id of a reply ends in 7, Jennifer Lawrence's hacked nude selfies, or your deeply held and extensively researched views on issues involving ethics in video game journalism.

It's never going to be anyone's money factory, which I guess is what "CNN Money" would be concerned about.

</comment><comment><USER15> I understand that many on HN want to defend 4chan. While I am a firm believer in free speech what I find fascinating is that they paint offensive and disgusting content as humorous and worth debating.

That being said, the board disappearing or losing popularity to the point of unusability is significant in a couple of ways to me.

The first is that the wild west of the internet is coming to a close. Everything is being watched and "safe havens"/"rotting pools" are threats to an organized leadership.

The second is that these kinds of groups have staying power outside a name. Can they migrate to new ownership or will they stay? I personally believe that 4chan will slow to a crawl and eventually viewership will die out.

The third is about trust. 4chan is not anonymous unless you are behind trusted proxies and/or share ip addresses with harmless strangers. However, since the data is stored on the site, they have free reign over what they can do with your content. As a result, 4chan is only a "safe haven" because it is notoriously caustic.

A fourth thing I found interesting was that the solutions to the 4chan problem were financially motivated rather than technically. Selling passes or threatening slowdowns sounds like a bullying. Im confident there are ways to offload parts such as using torrents as the post/image/video database rather than keep it. Turning 4chan into a "protocol" rather than a "website".

But Im not suprised the site will be put in this position. Its basically a place for people to look im the mirror and wank off. It will probably not evolve to anything more than a place of contreversy because thats what makes it successful. Theres so much goo that can come out of free speech but the only things 4chan attracts are insecure rodents that want to pretend they are bigger than they are.

<comment><USER16> >While I am a firm believer in free speech what I find fascinating is that they paint offensive and disgusting content as humorous and worth debating.

plenty of people seem to believe in free speech until it's used in a manner they don't like, you have to take the good with the bad.

>A fourth thing I found interesting was that the solutions to the 4chan problem were financially motivated rather than technically.

hiroyuki has a history of proclaiming dire financials in order to scare users into giving him more money

it has long been alleged that he did similar with 2ch and niconico before selling the data of pass users, which is why he is no longer involved with either site.

[http://roninworksjapan.tumblr.com/post/151338674506/hiroykis...](http://roninworksjapan.tumblr.com/post/151338674506/hiroykis- same-old-trick)

i'd argue that 4chan hasn't been free speech friendly for a number of years and has been dying primarily from poor moderation.

<comment><USER15> I figured as much. This whole thing sounds very sketchy. Whats next is wether or not the users on 4chan will accept it. I imagine for how audacious they have been in the past that there will be some sort of push back. But I get the impression that a mass migration is inconvienient and with no leadership there wont be enough interest in new places

</comment></comment></comment><comment><USER17> I'm not certain, CNN, should I find 4chan offensive? Could you please hammer the answer into my head about a billion fucking times in one article

</comment><comment><USER8> What's with CNN attacking 4chan so much these days? Funny how a media channel that used to do actual reporting has gone down to this level. I bet 4chan and its users are really happy with the free publicity.

</comment><comment><USER18> Hopefully the final nail in the coffin of that vile site.

<comment><USER19> 4chan ran its course, and it's long overdue for disruption. Even moot had to run away because of how much trouble it had become.</comment></comment>


In defense of weapons carry on college campuses - <AUTHOR> https://blog.samwhited.com/2013/07/weapons-carry-on-college-campuses/

<comment><USER2> Did you contact the university's police department and ask them about creating/finding resources that are similar to your idea of keeping them locked away in the police department?

Is it the responsibility of a university to provide extra accommodations to students that choose to live off campus and in dangerous areas? Where should the line be drawn?

<comment><AUTHOR> > Did you contact the university's police department and ask them about > creating/finding resources that are similar to your idea of keeping them > locked away in the police department?

I actually tried this several years ago (when I was still a student) and got a very unenthusiastic response. I may call them up again though.

> Is it the responsibility of a university to provide extra accommodations to > students that choose to live off campus and in dangerous areas? Where should > the line be drawn?

Great point; personally, I feel that it isn't reasonable to assume they'll be around to protect students who are living off campus (most campus PD's probalby can't scale to cover the surrounding area as well) but that they shouldn't prevent the students from protecting themselves (when you're a student it's sometimes impossible to help leaving hte library in the middle of the night and shouldn't be prevented from being prepared and carrying for their defense).</comment></comment>


CLMapper Is A PadMapper Alternative that Can't Be Blocked by Craigslist - <AUTHOR> http://techcrunch.com/2012/08/01/clmapper-is-a-padmapper-alternative-that-cant-be-blocked-by-craigslist/

<comment><AUTHOR> Larger discussion: <http://news.ycombinator.com/item?id=4324884>

</comment><comment><USER2> Oh it can definitely be blocked. All CL has to do is change the HTML, and the parser will break. They can make it so complex and dynamic that parsing will become unrealistically hard.</comment>


Apple announces iTunes 10 with Ping Social Network - <AUTHOR> http://www.engadget.com/2010/09/01/apple-announces-itunes-10/ <comment><USER2> Can I please have an application that just does the one simple thing it's supposed to? I feel like soon both iTunes and GMail are going to try to order my groceries for me.

<comment><USER3> Not an Emacs user, I take it?

<comment><USER4> I consider emacs more of OS/environment rather than an application... but I've started to become an emacs addict over the past year.

<comment><USER5> "a great operating system, lacking only a decent editor"

</comment></comment></comment></comment><comment><USER3> This is the most highly monetized social network possible. Direct advertising to your friends, with a Buy button right there in your status.

<comment><USER6> Apple really is amazing. We keep thinking they are going to go after the usual suspects like Google, Microsoft, and RIM. Now they are aiming their guns at Facebook. Mark Zuckerberg must not be happy.

<comment><USER7> I would say Last.fm is closer to the centre of Apple's crosshairs

<comment><USER8> Also, Rdio

<comment><USER9> Huge gaps in the catalogue.

</comment></comment></comment></comment></comment><comment><USER10> Given how poorly iTunes 9 runs on my quad-core Win7 machine with gigs and gigs of ram, I'm not particularly excited by this news. Wake me up when they've completely rebuilt iTunes. The only reason I keep it around is for my iPhone - I've switched to Zune (of all things) as my music manager, and actually quite like most of how it organizes things.

On a less grumpy note, the $99 Apple TV they just launched is pretty smooth looking, the only thing I feel grumbly about regarding that is the absence of Hulu. But that's a topic for a different thread...

<comment><USER11> It's kind of amusing how bad iTunes is on Windows, all while Apple talks about how writing for a meta-platform produces lower quality software. It doesn't even _look_ good, IMO, at least not compared to running natively on OSX.

<comment><USER12> I think it proves their point pretty well. Cross-platform-kits equal sub-par experiences almost every time.

<comment><USER11> Well, iTunes isn't really built for a cross-platform kit, it is primarily built for OSX with a compatibility layer for Windows where needed (I think)... at least the shortcomings only really show up under Windows, under OSX it's a big app but generally runs well (speaking for myself here).

But, my point is that you'd think a company that knows how much ported/meta- platform apps suck would try to avoid it by making iTunes for Windows (along with QuickTime and Safari) look and feel less like OSX apps wedged into Windows and more like "good Windows citizens".

Granted, iTunes for Windows is pretty old, and it's possible Apple's struggles with it contributed to the decision to ban 3rd party toolkits from iOS.

(Or Apple just doesn't give a shit about Windows and is annoyed they have to cater to it at all, which is why all their Windows software kinda sucks.)

</comment></comment></comment></comment><comment><USER13> It's interesting that this is only for music. You can see this being just as applicable for movies and tv shows - and of course apps. Presumably this is a toe in the water and they'll extend it if it works. But this certainly has lots of potential for extension.

<comment><USER14> Absolutely. The choice of "Ping" for its name, rather than a more music- centric name might indicate they're keeping the door open to extend it to the whole store. (I'll add books to your list)

edit: one good reason I see to start off with music (besides the fact that it makes sense for iTunes) is that it's more common in the music industry to "follow" an artist, than it is for TV or movies. So, right from the start anybody will have people to follow while they're building their friends network.

<comment><USER7> " _I'll add books to your list_ "

I bet 'gifting' people in your Ping friends network with music (and apps, books later on) will be a profitable feature for Ping, when Apple implements it.

<comment><USER14> Funny because I meant that in the sense that simonsquiff didn't mention the books in his comment, but you're right.

When gifting right now, I don't think you have any way to know if the recipient has or not the song/app. I haven't gifted songs too much, so I'm not sure what happens in that case. Ping might be able to avoid this situation.

<comment><USER7> Gifting will do away with those Apple vouchers you can buy to the vale of 10 bucks or whatever for your friend. Instead, you can get them the song directly.

A ready-made social network, all the network infrastructure in place, users with credit cards at the ready, owned by a highly successful tech multinational....the recommendation on APPL is 'buy'!

</comment></comment></comment></comment></comment><comment><USER15> I think this will be the most monetarily successful social network yet. While Facebook has a huge mindshare I don't think they are very good at turning that mindshare into money in their own coffers.

Apple is really good at daring to ask for money for their services. While other companies often rely on ads or even more nebulous ways of making money, Apple just asks their users to pay money.

I really like this model of paying for what I get. I means that I am the customer, and not the product.

</comment><comment><USER16> One of these days I hope they'll add the ability for me to sync my iPhone to iTunes at home and listen to it on another PC (most specifically the office) from my iPhone via iTunes without some horrible hack and manually managing my music collection.

<comment><USER17> I was under the impression that this already worked.

You can't copy the files off (without some 3rd party software) but I thought you could browse and play via iTunes. I remember it being clunky enough that you might not want to do it regularly but I thought it worked for playing a couple of tunes.

<comment><USER16> I haven't been able to figure it out if you can. In order to see the music and actually play it (where it's not grayed out and unclickable) I have to set my music to be manually managed on my PC at home, then I need to get the iTunes library key from the file at home and inject it into the right spot in the same file on any other PC I want to listen to the music on.

I actually just stopped putting music on my iPhone because it was too much of a hassle to do every time that key changed. I just use Pandora or GrooveShark now instead.

</comment></comment></comment><comment><USER18> Its going to be interesting to see what effect this has on last.fm ...It doesnt have appear to have my favorite last.fm feature, scrobbling, but I admit I use last.fm little besides that. Particular, the fact that it ties in to iTunes purchases could be very popular.

<comment><USER19> LastFm allows me to listen to music I don't own.. legally.. Doesn't appear itunes does that.

</comment></comment><comment><USER20> This is how Apple rolls and I must say I am impressed although it was expected.

They have long been sitting on one of the strongest and certainly most profitable "social" networks.

Now they have used it to do one of the most classical goals in business. Profit maximization.

I don't even think this is something other companies can learn much from as most seem to be walking around like lemmings trying to incorporate features to grow their (non-paying) following.

Be patient for growth not for profit as Clayton Christensen says.

<comment><USER21> You say it was expected, yet I heard no one predict it.

<comment><USER20> Well I can't speak for everyone, but I certainly did.

It was also known that apple where buying into this space. Will see if I can find the reference.

And I will make another prediction. Apple will have to take on Spotify once they reach momentum in the US (and I think they will with time)

In other words iTunes music is going to turn into a streaming music service at some point.

<comment><USER22> > It was also known that apple where buying into this space. Will see if I can > find the reference.

You're thinking of the LaLa acquisition, maybe? [http://www.wired.com/epicenter/2010/04/apple-kills-lala- musi...](http://www.wired.com/epicenter/2010/04/apple-kills-lala-music- service/)

<comment><USER20> Yes but also this.

[http://www.wired.com/epicenter/2009/12/apples-reported- lala-...](http://www.wired.com/epicenter/2009/12/apples-reported-lala-talks- could-lead-to-cheaper-cloud-based-itunes/)

</comment></comment></comment></comment></comment><comment><USER23> Facebook must be crapping themselves a little - games, music, video and all the social aspects tied into a piece of software that's deeply integrated into a ton of people's lives.

<comment><USER24> But Facebook has a client accessible in every platform out there and it is even accessible by a common browser, whereas with Ping I will need iTunes or an Apple device/software to use, also it probably will not have an API.

I think Apple is just making things to profit more as a content distributor that it is becoming, Ping and the new AppleTV is just pointing in this direction, at least for me.

<comment><USER23> A lot of people already have iTunes ... not to mention with 230,000 new iOS activations a day they're coming pre-armed with massive traction.

They could take it in a whole lot of different directions _but_ nothing about iTunes is aimed at filling some tiny little niche. Why would they bother aiming so low now?

<comment><USER24> Sure there are ways to Apple amass a large user base with Ping, but I think it is hard to fight with the extensible, and relatively open, Facebook that can be accessed from any browser, I see no point for someone that does not use iTunes Store, an iOS device or iTunes installing iTunes only to use Ping.

I think that initially Apple does want to use it to profit more with areas that they already are strong and also gather some experience running a social network, and them expanding it, maybe with user media sharing and an API. I think games and apps will be a next focus areas for Ping.

<comment><USER23> Of course it'd be a hard fight. But that it'd be a fight at all makes them 1000x more dangerous than anything else in the last few years.

</comment></comment></comment></comment></comment><comment><USER25> It's funny to see them positioning it as "like Facebook and Twitter for music", as if MySpace never existed.

<comment><USER26> It really does look a lot more like Facebook than MySpace. You basically have a Facebook wall of all the people you follow, not some kind of customized site you can design from scratch, like the mess that was MySpace.

<comment><USER27> MySpace was created for and, early on, largely marketed to bands who wanted a simple page with a place to feature music. It only caught on with the public as a secondary.

Now, bands are pretty much the only people who still use the platform at all.

<comment><USER28> Where did you learn that MySpace was created for bands? Wikipedia states that they just explicitly copied the most popular features of friendster.

<http://en.wikipedia.org/wiki/MySpace#History>

</comment></comment></comment></comment><comment><USER29> I'm skeptical about Apple doing a social media platform, yet iTunes is a perfect trojan horse. It might not even have to be good to succeed.

<comment><USER26> Do people associate using iTunes with social networking, however? Are you going to fire up iTunes to socialize with your friends on your Ping wall? Are you even going to invite your friends to your Ping contacts? Or are you simply going to keep using Facebook to post about that new album you just got that you really like?

<comment><USER29> Existing association may not matter, though. Consider that iTunes began as an MP3 player app. Full stop. That's all it was. At some point they added support for loading your songs onto portable MP3 players, but I don't remember if that was in 1.0 (this was pre-iPod).

Then they added a store, which wasn't a huge leap, but there's a difference between listening to music and shopping for music, even though one can drive the other.

Then they added movie and TV purchases. Not a huge leap from buying music, but nothing at all to do with managing your MP3s.

Then they added syncing your iPhone, which has a multitude of features entirely unrelated anything anyone did in iTunes before. But, hey, you need to sync your music, too.

THEN, App syncing and purchase.

I'm sure I'm missing a feature or two in the chronology, but you get the point.

iTunes has a rich history of having seemingly unrelated shit jammed into it. Sometimes there are alternatives for what iTunes can offer (Netflix Watch Instantly, Amazon MP3 Store) and sometimes you're locked in (iOS device sync).

But either way, Apple seems to get away with it. The trojan horsiness of iTunes gives them leverage to accomplish things that would be much, much harder for other companies.

We'll see if that holds for Ping. I wouldn't bet against it, even if I wouldn't put much money on outrageous success, either.

Hopefully iTunes 10 will at least be more performant. All this cruft has come with a cost.

</comment></comment></comment><comment><USER30> Bah, they should get their ass together and release an update to their iPods so that you could manage your music without having to use their bloated crap.

You know, like the standards that apple talk about so much.

</comment><comment><USER31> Did Apple just shot Myspace in the face? execution style?

<comment><USER5> That was my first thought. Myspace Music is dead, it's not really about Facebook.

</comment></comment><comment> bjelkeman-again Ping, only accessible from within iTunes? Not a web interface at all? That is surprising to me. I can't participate unless I have an iPhone/iPod Touch/computer with my iTunes installed.

Also, he mentioned showing what my friends have purchased. I am more interested in what they are playing right now or are playing overall, regardless of where it came from. iTunes and iPods have been successful because it isn't restricted to only content purchased in the iTunes store, but now they are focusing hard on the iTunes store content only?

I can't see that this is going to be as successful as if they had a more open mind about it. What about the MP3s I buy from Amazon or CDs (or whatever) and load on my iTunes? Only tracking what comes from the iTunes store is like navel gazing. I think they miss the big picture that way.

Or maybe I am just old fashioned. :)

</comment><comment><USER32> Yay! More bloat!

</comment><comment><USER33> Is this available in all countries?

</comment><comment><USER34> I really enjoyed that "open standards" event, which was broadcast via HTML5 that only worked in Safari and on Mac.

<comment><USER35> Didn't they submit this format for standardization a year or so ago? If so, you can't blame Apple that others have not implemented it.

<comment><USER36> Is that also your stance towards OfficeXML?

<comment><USER37> In fairness, it's a lot easier to implement than OfficeXML - it's basically HTML + dynamic M3U playlists + MPEG. OfficeXML is more or less a core dump of Word/Excel/Whatever serialised as XML.</comment></comment></comment></comment>


Your VC Needs a Billion Dollar Exit. You Do Not - <AUTHOR> https://news.crunchbase.com/news/your-vc-needs-a-billion-dollar-exit-you-do-not/ <comment><USER2> I'm surprised that founders preferred stock classes aren't more common. They allow founders to sell a small percent of their stock to investors, enough that they don't have to worry about money, and start caring more about big exits. Aligning incentives is powerful.

Early employees probably need this too. If you really want smart talent (and you should, you really need it), you should stop trying to screw them. I think there might be vestiture reasons this might be difficult though (last I checked founders prefersed can't be subject to vesting).

<comment><USER3> > Early employees probably need this too. If you really want smart talent (and > you should, you really need it), you should stop trying to screw them.

More so than founders, since those employees, in general, have no say in what happens to the common stock, such as dilution into worthlessness.

It doesn't have to be (and probably shouldn't be) all-or-nothing, since the point would be to align incentives in both the ideal/IPO situation and the less than ideal M&A situation.

</comment></comment><comment><USER4> Your VC needs a billion dollar exit and would like you to be that exit but does not need you to be that exit.

</comment><comment><USER5> I've grown more and more disillusioned with VC over time. In my mind, there is a fundamental incentive misalignment between venture capitalists and founders.

As the article mentioned, the VC business model is to look for the 100x return, so they will encourage/force founders to make high-risk/high-reward decisions. However, a smaller exit could be life-changing for a founder.

While VCs have a portfolio of investments such that the big wins offset the losses, as a founder you only have one company and one life. You're not diversified, making the downside risk much higher, especially if you're spending 5+ years of your life working on a company that you're emotionally invested in.

John Mackey, founder of Whole Foods, has a great quote on this: "Venture capitalists are like hitchhikers with credit cards. As long as you take them where they want to go, they'll pay for the gas. If not, they take over the car and throw you out."

</comment><comment><USER6> _" At Founder Collective, we've invested in 270 companies, and only one has gone public so far. Of the rest, 30 have gone out of business, 60 have been acquired, with the remainder are still in operation. The reality is that when starting a company, the most likely outcomes are bankruptcy or acquisition."_

90/270 is not a majority. Sure, I get it that the fate of some of the remaining has yet to be determined but it doesn't seem like the "most likely" outcomes are bankruptcy or acquisition. If anything, sounds more like 50% chance you remain in business (after you account for the fate of the remaining companies).

<comment><USER7> Out of that 50%, how many are making any real money?</comment></comment>


Inside the Gigafactory That Will Decide Tesla's Fate - <AUTHOR> http://www.bloomberg.com/features/2016-inside-tesla-gigafactory/ <comment><USER2> Correct me if I'm wrong, but in this scale model, I think the part of the building marked with a black rectangle (upper left) is what is currently being built.

[https://www.bloomberg.com/features/2016-inside-tesla- gigafac...](https://www.bloomberg.com/features/2016-inside-tesla- gigafactory/img/gigafactorymodel_danab.jpg)

<comment><USER3> That is astounding if correct

</comment></comment><comment><USER4> The scale of it is mind boggling. Not that the end product really dictates the size of the production facility, but this place will be larger than where they build 747s and A380s.

[https://en.wikipedia.org/wiki/List_of_largest_buildings_in_t...](https://en.wikipedia.org/wiki/List_of_largest_buildings_in_the_world#Largest_footprint)

<comment><USER5> Note that the Tesla car factory in Fremont and the Tesla Gigafactory in Reno are different.

<comment><USER4> Noted, but I was more looking at the size of the Boeing and Airbus facilities. (Hoping my math is right) At 5.8 million sq ft it should have a footprint of 540,000 m^2, which would top that list.

</comment></comment></comment><comment><USER6> I really someone within the industry could tell us the secret source of Gigafactory. What EXACTLY is Tesla and Panasonic together doing that make battery cheaper possible?

All these battery are already heavy into bots and automation with laser thin margin. They are already large in their scale, although nowhere near as large as Gigafactory.

So how is it possible for company to squeeze even more efficiecy out of a well battled and automatize industry ?

<comment><USER7> You need less plastic to make one 64 ounce bottle than four 16 ounce bottles. You use one cap instead of four. And the overall surface area needed is less.

That's really all there is to volume production, except instead of bottles, it's machinery, deliveries, shipping containers, production lines, work shifts, etc.

Fewer machines per unit of product. Less surface area.

<comment><USER8> I read somewhere that a 2 liter soda bottle uses as much plastic as 20 ounce bottle, caps included on both, and the time and energy expenditure to actually manufacture then fill the bottle is the same on either.

<comment><USER9> This would be something specific to soda bottles, I would imagine: more (and thus more pressurized) CO2 gas will need thicker-walled bottles to hold it. I expect it's not true for other PET liquid containers, like for water/juice/etc.

</comment></comment></comment></comment><comment><USER10> >with capacity to produce 35 gigawatt-hours of battery cells and 50 gigawatt- hours of battery packs per year.

Edit: this post was a misunderstanding of the sentence. It's actually 35 GWh cells produced there, which are assembled, together with 15 GWh of external cells, into 50GWh of full battery packs.

Whoa I thought total capacity was only 35 GWh per year, not 85 GWh/year.

Massive amounts lithium ion batteries are even more feasible than I thought!

<comment><USER11> I think you're misunderstanding a bit.

The factory will produce 35 GWh in cells per year and also receive 15 GWh in cells shipped in from other suppliers like Panasonic. Thus it'll produce finished packs totaling 50 GWh / year.

In other words, total output of the factory is 50 GWh / year, 70% of which is vertically integrated.

<comment><USER10> Oh, yes I did misunderstand that! I thought the "batterypack" part was referring to the Powerpack product. Thanks for the clarification.

</comment></comment></comment><comment><USER12> Not so much "inside" as an overview. But the scale of the place is pretty impressive.

<comment><USER13> I had seen a few photos of it before, but I don't think I had fully grasped the scale until looking at these photos. I was always like: yeah that is pretty big. Then I realize those small things in the corner are semi trailers. And only 15% is done? That is crazy.

</comment></comment><comment><USER14> The entire scene - a gigantic white cuboid shape delicately placed between mountains and desert - is science fiction brought to life.

<comment><USER15> well, the factory seems to be a leading prong of industrial sprawl into the wilderness there

[https://firstname.lastname@example.com,-119.4610767,21248m/...](https://email@example.com,-119.4610767,21248m/data=!3m1!1e3)

With the Gigafactory being probably an "anchor" business in that area, those mountains and desert may be changed soon.

<comment><USER16> What are all those other buildings around it that look just as big, if not bigger?

<comment><USER17> If you look at the corners of the plot, you can see the short sides of the octagon that the completed building will eventually become.

Overlaid on the financial district of New York, for comparison: [http://mapfrappe.com/?show=39101](http://mapfrappe.com/?show=39101)

</comment></comment></comment></comment><comment><USER18> Just saying - the canonical Edifice Complex gaffe was the Rouge River plant built by Henry Ford.

(your humble narrator worked at a startup taken down by the Edifice Complex ) .

</comment><comment><USER19> "Outside" Giga factory

</comment><comment><USER20> If this works (disclosure: I think it will, and I've put money on it) then it will become a highly visible target, both literally and figuratively. If I were in charge, I would even make contingency plans for air defense.

<comment><USER21> > _it will become a highly visible target, both literally and figuratively. If > I were in charge, I would even make contingency plans for air defense._

You think that someone with the capability to attack the mainland US from the air is going to attack a factory of a private company that makes batteries?

I'm betting that's not their first target.

<comment><USER22> It depends on how many get purchased for military applications. That and a large amount of Li-ion batteries going _boom_ is quite a light show.

<comment><USER23> I'd imagine that many chemical plants and oil refineries have substantially worse failure modes.

I have no idea what measures are generally taken to safeguard them though. My understanding is that the greatest threats are accidents and fire, although it seems highly likely they will have contingency plans for various types of deliberate threats.</comment></comment></comment></comment>


A brief history of one line fixes - <AUTHOR> http://www.tedunangst.com/flak/post/a-brief-history-of-one-line-fixes <comment><USER3> > What do all these earlier mistakes have in common, apart from the obvious: > being exemplars of "catastrophic loss of structural integrity"? They all > date from before 2013. That's how we know the NSA wasn't involved.

I get that this is trying to make fun of the response to Apple's "goto fail;", but this logic ("These similar errors predate 2013 → Apple's similar error was not an NSA backdoor") seems rather faulty. There are a number of flaws with this line of reasoning. To name a few:

* The NSA could have been involved with backdoors before 2013 (unlikely in Debian, but mentioning 2013 is a bit of a red herring)

* Apple could have been encouraged to insert a backdoor and did so in a way that gave them plausible deniability (either because the NSA specified that, or because they wanted to cover their behinds)

Whether or not this incident was the result of the NSA's prompting is something we'll probably never know[0], but this article doesn't do much to argue one way or the other.

[0] The only way we could know is if someone literally came out and admitted it (or someone like Snowden were to leak it). It's possible to prove the existence of something (ie, a backdoor attempt), but impossible to prove the absence of something.

<comment><USER4> What you've argued is faulty logic was actually sarcasm. One major clue is that the previous paragraph also contained heavy sarcasm.

<comment><USER5> Uh yeah, you're right. I'm surprised that didn't jump off the page at me but hey, I read the comments first and then the article too, failing "like a good banker", meaning succeeding in not spotting the bullshit but not any worse than my fellow hn-ers who also upvoted it.

I amazed your at bottom of the comments. But then again I was silly enough to upvote the parent before I read the full text.

"A sound banker, alas, is not one who foresees danger and avoids it, but one who, when he is ruined, is ruined in a conventional and orthodox way with his fellows, so that no-one can really blame him" \- JM Keynes

</comment></comment></comment><comment><USER6> A favorite of mine, in C:

      ASSERT(apples = 1);
      VERIFY(oranges = 2);

(Note the '=' means assignment, not comparison.)

Both are assertion-testers resulting in a core dump if the test fails, but ASSERT is only defined for DEBUG builds.

Since the assignments are to nonzero (true) values, buggy values of 'apples' are silently corrected -- but only during test runs. Buggy values of 'oranges' are always silently corrected.

Hilarity ensued. Afterwards, 'gcc -Wparentheses' became mandatory.

<comment><USER7> One way to avoid this kind of mistakes is to use Yoda conditions [0]:

        ASSERTS(1 == apples);

If you forget one `=`, it doesn't compile.

[0]: [https://en.wikipedia.org/wiki/Yoda_conditions](https://en.wikipedia.org/wiki/Yoda_conditions)

<comment><USER8> I don't think learning this is worth it. Using this will not always warn you( complicated expression or variables ) and you still might miss something.

+EDIT: In those occasions when you actually compare to a integer, the expression is so simple that you immediately understand the whole line. In case of an actual typo the compiler will warn you, and the inversion is not needed. Nowadays, there is simply no excuse for a ignored or missed( bad compiler ) warning.

 _Assignment in an If statement must produce a warning!_

<comment><USER9> Don't understand? If the constant is on the left, then forgetting one of the equals signs will always be an error.

<comment><USER10> Yes but I think he is saying that if the left/what you compare to is not a constant then it will not warn you (if the type agrees, as it should anyway for a comparison).

<comment><USER11> If the left is a function call, it will still error out because you can't assign to it.

If you're doing

        if (var1 == var2)

then yoda expressions won't save you, however.

<comment><USER12> Also, in C++ you can assign to the return value of a function returning a reference.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> _Cough_ , there's one major thing all of these bugs have in common - they're all in C code.

This is mostly due to the volume and prominence of C. But a language with the same fundamental semantics of C but lacking the cleverbait syntax and weakened types would have prevented over half of these mistakes.

<comment><USER14> I would be more willing to blame C if these bugs were unsafe memory operations. Unused parameters, logic errors and assignment instead of comparison aren't unique to C and the language isn't without counter measures for them.

The X one is probably the only very C bug on the list and compiler warnings and/or a good static code checker would have found it.

<comment><USER13> I deliberately did not address unsafe memory operations, because the current widely-accepted state of the art for memory safety is garbage collection, which has significant overhead. I could have also tooted the horn for Rust (or Felix/BitC/Deca), but my goal was not to point out blank-slate solutions, but just how much of C itself could be trivially fixed.

<comment><USER14> Among others the Objective-C crowd might want to have a chat with you about it being the "widely-accepted state of the art." This is ignoring the fact that memory management does not really address C's ability to do unsafe memory operations as much as its just resource management.

<comment><USER13> I really should have said garbage collection + RAII. I'm not saying that GC is accepted by everyone, just among the people working in current memory-safe languages. (Or are you saying that ObjC does something even better that's yet to catch on?)

It's not so much about a language's ability to do unsafe memory operations, but the necessity of doing them to write useful code in the language.

</comment></comment></comment></comment></comment><comment><USER15> The commentary on last example from Tarsnap seems wrong. The error was that the nonce stopped being incremented (see the linked Tarsnap blog post), but the author suggests the issue there is the unbraced if. The unbraced if is still not great style, but it wasn't the cause of the security blunder.

<comment><USER16> It is kind of on purpose, that's the whole point of the writeup. It's taking a little jab at everyone who proclaims a "simple and obvious" way any given error could've been avoided. Fact is, making the programmer type more (braces or other stuff) doesn't save him from himself; the goto fail error could've been made with braces just as well as without.

The other examples are make the same point. There are ways to help catch specific bugs. But there is no magic "fix it" button. Consider static analysis for example: you actually have to run it and inspect the output. You have to interpret it right. You have to fix it right. And so on. Human error can ruin each step, as has happened.

</comment></comment><comment><USER17> I have done similar thing to myself in Python, sabotaging my own little project. The following is not a rare thing. Imagine this were initializing random key in TLS... But since Python syntax is arguably cleaner and more readable, it's easier to catch. But that's a bet we have to put up with...

        >>> def f(a,b=[]):
        ...     b.append(a)
        ...     return b
        ...
        >>> print f(1)
        [1]
        >>> print f(1)
        [1, 1]
        >>> print f(1)
        [1, 1, 1]

        >>> import random
        >>> def key():
        ...     return random.randint(1,10000)
        ...

        >>> def f2(a, b=key):
        ...     return b()
        ...
        >>> def f3(a, b=key()):
        ....    return b
        >>> f2(1)
        3974
        >>> f2(1)
        8684
        >>> f3(1)
        2867
        >>> f3(1)
        2867

<comment><USER18> Well, any Python developer worth his salt knows that initializing default parameters that way is a big no-no. I actually use code with those exact mistakes in interviews, as it is a good way to tell Python beginners from more enlightened users.

<comment><USER19> Correct

Unfortunately a lot of people still use it

(and it's actually correct, IF you don't modify it)

It's a risk not worth taking (to me, at least)

<comment><USER20> That's the only way of creating function with state without introducing closure or making an object with __call__. It's very handy for accumulators and other bits of state which are inherent to the function you write. It's essentially a `static` variable declared inside a function in C and believe it or not it has it's uses.

Depending on a problem it can be worthwhile to use other techniques of creating stateful callables, but that doesn't mean you should _never_ create a function with mutable default argument. It's there in the language - <USER2> about it, understand how it works and why it works like this, then understand where to use it and use it where it makes sense. That's a pretty generic advice, valid for almost any language feature.

<comment><USER21> > That's the only way of creating function with state without introducing > closure or making an object with __call__

What about this?

      def foo():
          if not hasattr(foo, 'static_list'):
              foo.static_list = []

At least it's a bit easier to see that something funky is going on.

</comment></comment></comment></comment></comment><comment><USER22> > How is this possible? Does nobody use a compiler that warns about > comparisons always being false?

External symbols are resolved at link time; as far as the compiler is concerned, setuid might be a symbol declared as __weak.

I don't particularly like the snide remarks towards the maintainers of these libraries.

<comment><USER23> I ran the following code through GCC:

        #include <stdio.h>
        #include <unistd.h>
        #include <sys/types.h>

        int main(void)
        {
          if (getuid() != 0 && geteuid == 0)
          {
            printf("only root\n");
            return 1;
          }
          printf("okay\n");
          return 0;
        }

With just a plain GCC (no options), the code compiled and exhibited the bug (it always printed "okay"). That's to be expected. What was not expected what when I compiled the code with "gcc -ansi -Wall -Wextra -pedantic". NOT ONE ERROR OR WARNING!

How is that happening?

Well, C allows function pointers. Also, in C, a value of 0 used in a pointer context is treated as a NULL pointer. So that one line is seen as:

        if (getuid() != 0 && geteuid == NULL)

Now, let's play compiler. geteuid() is a function and it's defined. So the compiler can generate:

        if (getuid() != 0 && false)

The result of this expression can never be true. But because the call to getuid() could cause side-effects (the prototype for getuid() does not include the GCC extension marking it as a "pure" function) the compiler _has_ to emit a call to the function, but otherwise, it ignores the result since it doesn't matter what the result is. The resultant code is:

        int main(void)
        {
          getuid();
          printf("okay\n");
          return 0;
        }

And thus, it's possible, even with the commonly used "-Wall -Wextra" options to GCC. To detect this, you will also need to add "-Wunreachable-code" (why that isn't included with '-Wall' is a good question).

<comment><USER24> > "gcc -ansi -Wall -Wextra -pedantic". NOT ONE ERROR OR WARNING!

      $ rpm -q gcc
      gcc-4.8.2-7.fc20.x86_64
      $ gcc -ansi -Wall -Wextra -pedantic test.c
      test.c: In function 'main':
      test.c:7:36: warning: the comparison will always evaluate as 'false' for the address of 'geteuid' will never be NULL [-Waddress]
             if (getuid() != 0 && geteuid == 0)
                                          ^

If fact, just -Wall is enough to enable that warning. Maybe the coverage of -Waddress has changed since your version?

<comment><USER23> Could very well be. I am using a slightly older version of GCC.

</comment></comment></comment></comment><comment><USER25> Regarding the Debian OpenSSL disaster, the question _was_ brought up on the OpenSSL mailing list (and read there); regarding the Tarsnap bug, it is not an unbraced if but a non-incremented nonce. If two of the five comments in an article are obviously wrong, how much trust should I possibly put into the remaining 60%?

<comment><USER26> It's sarcasm. You've missed the rhetorical point of the article.

(To be more clear, each comment mimics the comments made about the "goto fail" bug, and the crucial point is not pure mockery or a defence of Apple, but rather the final paragraph.)

<comment><USER27> The point is that because there are always mistakes in everything, that the NSA is never involved? Strange, because I'm sure they've been implicated more than zero times.

NOTE: I have no opinion on their involvement in the _goto fail;_

<comment><USER28> > The point is that because there are always mistakes in everything, that the > NSA is never involved?

I'm pretty sure he's being sarcastic.

</comment></comment></comment></comment><comment><USER29> Another thing they have in common is trying to reason about security of SSL certificate chains and other high abstraction concepts in terms of C pointers and function return values.

</comment><comment><USER30> Maybe that will be my new way to measure the effectiveness of my test suite.

"Imagine the NSA snuck a one line 'fix' into your software overnight. Do your tests quickly and accurately detect the problem and point to the code that is broken? If not, your unit tests are broken."

<comment><USER31> If, per se, the NSA has your codebase, surely they would be able to find _something_ you haven't tested. Your test cases should be extensive, but it's impossible to make them exhaustive.

<comment><USER32> And even if you do, now you have a large and probably-buggy test base.

</comment></comment></comment><comment><USER33> Lint tools exist.

My number one take away from this is that _we should all be using them more_.

<comment><USER34> And ignoring compiler warnings less.

<comment><USER35> I only recently learnt C, and -Wall -Wextra -Werror was drummed into me as being "the right way". It certainly does catch a lot of my idiotic mistakes.

<comment><USER36> Although be aware that -Wall and -Wextra activate different warnings on different compilers and even on different versions of the same compiler. E.g. gcc added lots of warnings to them in the last versions.

So your code might not compile anymore on newer compiler versions. This is not a problem as such but for example in combination with updates to your continuous integration environment, this might cause build fails.

<comment><USER37> Yeah warnings are out of control. New architectures and platforms bring up new things to be concerned about, thus new warnings. But old code quits working solely because of the build issue you mention.

Wonder what the solution would be.

<comment><USER33> Does C have the ability to locally silence warnings in particular sections of code?

<comment><USER38> Yes, but it's compiler dependent.

For GCC, see [http://gcc.gnu.org/onlinedocs/gcc/Diagnostic- Pragmas.html](http://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html)

<comment><USER37> Useful, but no solution to the issue of new warnings. You'd have to be able to say "I just want THESE warning" to guarantee code continues to compile.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER39> "This is an important lesson to learn: Mistakes can happen any time a piece of code is modified."

From [http://www.daemonology.net/blog/2011-01-18-tarsnap- critical-...](http://www.daemonology.net/blog/2011-01-18-tarsnap-critical- security-bug.html) regarding the Tarsnap bug.

Solution: write more unit tests.

<comment><USER40> Or use better abstractions / static analysis.

</comment></comment><comment><USER41> A lot of arguments center around "well, the compiler should have done X!"

I don't write a lot of C code, but when I did, and even more relevant - when I compile packages, the compiler tends to spit out chapters worth of warnings that I just ignore. How accepted is compiling C code in practice with Werror? Could it be the compiler did warn about goto fail, and the OP's error, but it was 1 warning out of a million? Really interested in an answer from those who work in C shops.

<comment><USER42> I write my code with -Wall, -Werror, -pedantic, and a standard specified. If my code does something questionable, I need to instruct the compiler that I _really_ mean for it to do that. Why tolerate unsafe and ambiguous behavior?

<comment><USER43> One problem is that -Wall doesn't actually enable all warnings. And that's nuts.

<comment><USER42> You can enable -Wextra as well, but there are still more warnings you have to enable manually. At that point though, you're looking at weird not- necessarily-bad and language-specific things.

</comment></comment></comment></comment><comment><USER44> 1\. Start writing tests. Tests will save your ass when you're merging a feature branch. Cause are you sure everything still behaves correctly after those ingenious refactorings?

2\. Use an IDE and/or compiler that actually warns you about common human errors like unused variables, unreachable statements, and dumb mistakes like a case-block with silent fallthrough to the next case-block.

3\. Acknowledge responsibility when writing security related code. Know that there's no room for mistakes.

</comment><comment><USER45> with the X bug, building X has always triggered tons of warnings, it's easy to see why they're overlooked [http://keithp.com/blogs/xserver- warnings/](http://keithp.com/blogs/xserver-warnings/)

</comment><comment><USER46> openBSD credo: security bugs are just bugs.

Mostly human, and avoidable but always present because people don't take the time to do it correctly. Quality, taking the time to make the things right, slowly, correctly, all that matters more than genius. Quality code at all level is the key to secure development. Every little things count.

I know a few openBSD developers, and their song about doing the right things, taking our times to do it correctly - simpler, with quality because it is the shortest path to correctness thus speed (what is the use of an incorrect program: none). This song is appealing. The fact they are strangely psychopathic paranoid nerds is not ;)

I think computer industry would be far better if we would slow down and focus on doing less software, but better built.

Less functionalities maybe, but the one that maybe more powerful. The stable foundation for sustainable progress.

And, if you like them -even though they are repulsing antipathic nerds- you can support them :)

<comment><USER47> careful there. we're not all the same -- some are MUCH more paranoid than others and I am yet to meet an antipathetic developer. ;)

But thanks to those who support what we do!

</comment></comment><comment><USER48> To those learning C programming "by reading other's code", following is an example of what not to do (either the subtracted or the added line).

[Now I wait for a deluge or replies about how it's "idiomatic" C. All I have to say to that is, s/ma// ]

      --- libc-a/memset.c
      +++ libc-b/memset.c
      @@ -1,6 +1,6 @@
      void *memset(void *_p, unsigned v, unsigned count)
       {
           unsigned char *p = _p;
      -    while(count-- > 0) *p++ = 0;
      +    while(count-- > 0) *p++ = v;
           return _p;
       }

[Edited later to use the code mode]

<comment><USER49> What is particularly bad? How would you have done it differently? I've not done much C, so I can't see the issue, although is it perhaps the types? Would count be modified by side-effect in the calling context also?

<comment><USER48> _" Would count be modified by side-effect in the calling context also?"_

Questions like this and others (eg., does the pointer deref operation applies to incremented or non-incremented value of p?) that you have to answer before you can make sense of the code. The cognitive overload on the reader's brain is at least part of the reason that a bug like that went past code-review in memset function on a major platform. MEMSET !! Was the needless cleverness and terseness of the code worth it?

P.S. The answer to your question is _No_. The variable _count_ as used in the body of this function is local to this function (it's passed by value... so it's a copy of what the caller passed).

<comment><USER49> Cheers mate, ah, so unless the function declares that it takes a pointer then it's pass-by-val?

<comment><USER50> Everything is pass by value in C, but pointers are values. Functions can't modify the value of a pointer, but they can modify whatever's in the memory pointed to by the pointer. To change the pointer itself, you'd have to pass a pointer to a pointer. Functions like asprintf do this.

C++ added pass by reference (&), which can be a handy bit of syntactic sugar.

</comment></comment></comment></comment></comment><comment><USER51> Actually, with the Debian SSL "fix" that removed entropy, the dev who made the change _did_ ask about it on IRC. Though a bad mistake, it's understandable how it happened.

</comment><comment><USER52> This one may not be as bad as the ones in the article, but it still gave us a few weeks of work upgrading kernels on a couple of thousand production servers: [http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.g...](http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=8176cced706b5e5d15887584150764894e94e02f)

</comment><comment><USER53> In the example of the Apple bug, I've read it took eighteen months (!!) to discover it after it has been committed in the source code base. As a consequence, I would be interested in knowing, for each bug, the time it took to discover them.

Also, I assume that once discovered, the time to fix it is usually negligible. Usually. And as long as you don't count the time for full deployment in production...

</comment><comment><USER54> i'm actually a little surprised about the openssl one. I always assumed it would be good practice to number error codes negatively. OTOH that's also kinda expected behavior for reverse engineers. if the return value is negative you can be almost certain it's an error code

i guess whoever wrote that line thought the same.

</comment><comment><USER55> I've come across a bug that was probably caused by a developer that held the Ctrl key while pressing the up arrow which caused the selected line to move above another.

It luckily only took me a full day to find within the codebase..

</comment><comment><USER56> "Never write your own security code, because you'll get it wrong. Leave it to the smart people."</comment>


Cultured or cell-based? The struggle to find the right name for lab-grown meat - <AUTHOR> https://qz.com/1767441/cultured-or-cell-based-the-struggle-to-name-lab-grown-meat/ <comment><USER2> Although it's not mentioned in the article, I quite like the term 'kill-free meat'[0], since it succinctly highlights the fact that live animal farming is required for historic meat products (leading to cruelty and environmental impacts).

Also from a 'word security' point of view it'd be tricky for entrenched historic meat producers to wriggle into that category without genuinely changing their practices.

It may not be completely 'comforting' as a term for consumers, but I think if the pricing of equivalent items were similar, it would be difficult to argue for non-kill-free meat during dinner table discussions, and it certainly highlights the difference in a way that any member of the family regardless of age or opinions can understand.

[0] - [https://christian-watson.com/kill-free-meat/](https://christian- watson.com/kill-free-meat/)

<comment><USER3> From an advertisement/brand point of view, "kill-free meat" is like calling your mineral water "non-sewage water" people will avoid it because even though there is a negation, you don't even want to have the association on your mind when picking a product.

<comment><USER2> In scenarios where the other water available for purchase has risk of being sewage-contaminated, that negative association might not exist.

</comment></comment></comment><comment><USER4> Traditionally, this sort of material has been referred to as "Animal 57": [http://kibo.com/exegesis/animal_57.shtml](http://kibo.com/exegesis/animal_57.shtml)</comment>


Analyse Asia 84: The Five Predictions on Asia in 2016 with Sameer Singh - <AUTHOR> https://analyse.asia/2016/01/01/episode-84-the-five-predictions-on-asia-in-2016-with-sameer-singh/ <comment><AUTHOR> Episode Synopsis: Starting the new year, Sameer Singh, author of Tech- Thoughts.net and our host Bernard Leong discussed the five predictions on Asia technology landscape 2016 in the second part of the two-episodes arc. Building on their earlier conversation on the five major events that rocked 2015, they forecast the events in 2016 which will shape the technology landscape of Asia as it is becoming the new battleground for the US companies as well as the homegrown Asian giants in the next few decades.</comment>


World Cup Curse of Maracona - <AUTHOR> http://www.nytimes.com/interactive/2014/06/08/magazine/world-cup-curse-of-maracana.html?hp&_r=0

<comment><USER2> The title in HN has a tipo, correct version "World Cup Curse of Maracana" (or "World Cup Curse of Maracanã")</comment>


The Intel 8086 processor's registers: from chip to transistors - <AUTHOR> http://www.righto.com/2020/07/the-intel-8086-processors-registers.html <comment><USER2> I'm really curious to know (as an amateur non-expert fan of chip hardware history, and local history) -- when Intel or Fairchild, etc. developed a new chip with whatever capabilities, how did they explain or get people to quickly understand what it could do?

I haven't yet found a good popular level explanation of this, such as from reading [https://en.wikipedia.org/wiki/Intel_8086](https://en.wikipedia.org/wiki/Intel_8086). I see the technical info, but have no idea how I would know whether this is fundamentally amazingly better than what I have now, if I were in 1978 for example.

How did they figure out who would be their customers? Did their customers have engineers who could look at a chip spec and see that it was 3x better on speed, power, etc? Did the chip designers have some use case in mind when designing, and those would be the first people sold to by the sales team?

Was there a big sales effort needed for such new chips? or did they basically sell themselves?

<comment><USER3> _How did they figure out who would be their customers?_

To some extent they didn't. They didn't think anyone would want the 4004, 8008, 8080 for computers. They started out marketing them for use in calculators. The personal computer market didn't exist yet. PCs were originally built by hackers, many of whom belonged to the homebrew computer club. The first one to go into production was the MITS Altair 8800, which used an Intel 8080, but when you bought it you got a bunch of chips you had to solder onto the board yourself, so only hackers had any interest in it.

If you're really interested in this stuff, I highly recommend the book _Hackers: Heroes of the Computer Revolution_ by Steven Levy [1]. The book traces the history of hackers from its beginnings at the tech model railroad club at MIT through the homebrew computer club at Stanford, and on into the beginnings of the computer game industry. It's a fantastic chronicle of some very interesting and entertaining characters, with some real pranksters in the bunch. A very fun read!

[1] [https://en.wikipedia.org/wiki/Hackers:_Heroes_of_the_Compute...](https://en.wikipedia.org/wiki/Hackers:_Heroes_of_the_Computer_Revolution)

<comment><USER4> >They didn't think anyone would want the 4004, 8008, 8080 for computers.

The Wikipedia page on the 8008 says Intel didn't _want_ to make CPUs at first, even though people were interested, because their business was mostly memory chips and they didn't want to compete with clients.

The 8008 was a commissioned project, and when the client decided to abandon it, they gave the IP to Intel in lieu of paying the bill. So Intel was like "what the heck, let's sell them at $120 apiece", in 1972.

I'm not that familiar with the history, although I did read Hackers a long time ago, but it sounds like CTC[1] may have largely designed what because the 8008 and gave rise to the 8080 and x86. Just looking at the Wikipedia pages for the 4004 and 8008, it seems like the latter generally resembles x86 and the former does not, so perhaps the whole dynasty is not exactly based on an Intel foundation. Reminds me of the way Microsoft got going with OSes.

[1][https://en.wikipedia.org/wiki/Datapoint](https://en.wikipedia.org/wiki/Datapoint)

<comment><USER5> That's basically correct. The 8008 was a single-chip version of the TTL processor in the Datapoint 2200 desktop computer / terminal. It is entirely unrelated to the 4004 except that many of the same Intel people worked on it. In other words, the view that the 4004 led to the 8008 is entirely fictional.

The Intel 8080 (used in the early Altair computer) was a slightly cleaned up version of the 8008, and the 8085 was a 5-volt version of the 8080. Intel's next processor was supposed to be the super-advanced 8800 with hardware support for objects and garbage collection. That chip fell behind schedule, so Intel threw together the 8086 as a stop-gap chip, a 16-bit processor somewhat compatible with the 8080. The 8800 was eventually released as the iAPX 432, which was a commercial failure but is definitely worth a look for its bizarre architecture -- a vision of what could have been.

I've written a detailed history of early microprocessors here: [https://spectrum.ieee.org/tech-history/silicon- revolution/th...](https://spectrum.ieee.org/tech-history/silicon- revolution/the-surprising-story-of-the-first-microprocessors)

</comment></comment></comment></comment><comment><USER6> For those interested in the number of physical registers on a modern CPU, Henry Wong and Travis Downs have done some great work deducing the physical implementation of recent Intel cores:

[https://travisdowns.github.io/blog/2019/06/11/speed- limits.h...](https://travisdowns.github.io/blog/2019/06/11/speed- limits.html#ooo-table)

[http://blog.stuffedcow.net/2013/05/measuring-rob- capacity/](http://blog.stuffedcow.net/2013/05/measuring-rob-capacity/)

[https://travisdowns.github.io/blog/2019/12/05/kreg- facts.htm...](https://travisdowns.github.io/blog/2019/12/05/kreg-facts.html)

[https://travisdowns.github.io/blog/2020/05/26/kreg2.html](https://travisdowns.github.io/blog/2020/05/26/kreg2.html)

</comment><comment><USER7> This was just before (1977) computers were used to design chips (Mead & Conway 1980). So you see some irregular hand drawn parts here. I did a fair amount of hand tape circuit design myself in the 1970s. Pre-computer designs were prone to current bottlenecks and dead end wire. A computer could greatly error.

By the mid 1980s computer designed CPUs were a work of art with their regular symmetric lattices. And shimmered with rainbow colors as circuit lines shrunk to wavelengths of visible light.

<comment><USER8> Though Mead & Conway students used CAD from the start, there is nothing in their method that would keep it from also being used in hand taped designs.

Current attempts to design CPUs with open source tools are not so nice since they tend to be one big standard cell blob. Adding some PLA and RAM generators would improve this.

</comment></comment><comment><USER9> This is extremely fascinating. (Incidentally, Feynman's description of this technology in his _Lectures on Computation_ is also well worth reading.)

</comment><comment><USER10> Interesting discoveries. Perhaps some of the multi-port features on registers were for some of the REP features (ie: REP STOSB/MOVSB which updated multiple register) or some of the more generic instruction like PUSH/POP?

<comment><USER11> The plumbing around the BX/BH-BL registers is something I'd love to look at. BX, BP, SI, and DI were the only registers available for indexable operations (think "MOV WORD PTR [BX+2], AX"), and I wonder if the genesis of this behavior sits at the register file, or further away. BX/BH-BL is the only register capable of being used for indexable operations that is also 8-bit addressable.

<comment><USER12> A byte addressable index register was required for 8080 assembly language compatibility to the H and L registers.

<comment><USER11> By "genesis of this behavior" I meant the implementation, not the reason (spec) for the behavior.

</comment></comment></comment></comment><comment><USER2> The other thing I'm interested to learn -- did the evolution of RAM proceed as kind of a "hand me down" technology from the CPU industry and basically tied to that?

In that, I imagine memory is just about cramming more and more into the same space, and doesn't require the same complexity of innovation as CPUs (maybe some new developments in addressing, bus, or whatever) -- mostly just increasing the density and getting more storage locations in the same area?

Or are there very interesting stories about RAM too? I do know some of the advances in hard disk magnetic breakthroughs, but silicon memory, not so much.

<comment><USER5> Don't get me started on RAM. There's a whole lot of history there especially core memory.

But to answer your specific question, Intel started off as a RAM company and their first product was a 64-bit (in total) RAM chip [1]. Processors were a sideline compared to the RAM market until the mid-1980s when Intel bailed out of DRAM as Japan took over.

When Intel created a new chip process back then (HMOS through HMOS-III), they would first build a static RAM chip with the process. Once that worked, they would then use the process for microprocessors like the 8086.

[1] [http://www.righto.com/2017/07/inside-intels-first- product-31...](http://www.righto.com/2017/07/inside-intels-first- product-3101-ram.html)

<comment><USER13> If you study to become MBA Intel memory business is its own separate case study

[https://www.gsb.stanford.edu/faculty-research/case- studies/i...](https://www.gsb.stanford.edu/faculty-research/case- studies/intel-corporation-dram-decision)

</comment></comment></comment><comment><USER14> Very interesting, I always wondered why it was called a register file, as if registers did not represent physical locations in hardware but some abstract file, so its good to know thats not the case.

</comment><comment><USER15> > The registers of the 8086 still exist in modern x86 computers, although the > registers are now 64 bits.

But they are logical (architectural) registers and are mapped at run time to one of the physical registers.

</comment><comment><USER16> The article is gold but the real gems are in the footnotes.

</comment><comment><USER17> Huh, it has 15 registers? AX, BX, CX, DX, SI, DI, BP, SP; CS, DS, ES, SS, IP, flags. What am I missing?

<comment><USER5> There are two internal registers (IND and OPR) that aren't visible to the programmer. See the block diagram at the bottom of the post. The flags are in the ALU, not in the register file.</comment></comment>


Product Building Principles - <AUTHOR> http://www.aswathkrishnan.com/2019/03/product-building-principles.html <comment><USER2> I just read this post and all of your other blog posts - really great stuff, thank you for posting :)

<comment><USER2> Also, some of your posts might be well received on /r/slatestarcodex

<comment><AUTHOR> Thank you so much! I just started this blog this week and your comment made my day :)</comment></comment></comment>


Return-Oriented Programming: Exploits Without Code Injection - <AUTHOR> http://cseweb.ucsd.edu/~hovav/talks/blackhat08.html

<comment><USER2> The interesting thing about return oriented programming is that it can even work on devices with harvard architecture, where code and user data are stored in completely separate memory areas (which was seen a a guarantee against code injection until quite recently) <http://arxiv.org/abs/0901.3482>

</comment><comment><USER3> A similar paper on this by USCD was also submitted recently if you are interested.

<http://news.ycombinator.com/item?id=1155954>

</comment><comment><USER4> What is insns?

<comment><USER5> Instructions.

<comment><USER4> Thanks.</comment></comment></comment>


Ask HN:I've been forced to move to the new gmail,is it really slow for you too? - <AUTHOR> <comment><USER2> Yeah, try to switch to classic.

Everything is too big. The typography fucking sucks. Google has no taste

<comment><USER3> What is more, I think it's buggy. It fails to load some icons when I run it from Firefox.

I'm annoyed at how irrational and badly managed some products of Google are. For example, they had a great standards-compliant chat, Google Talk, and they turned it into the mess Hangouts is. Not happy with that, they built the competing Duo and Allo.

</comment></comment><comment><USER4> Even when ignoring the clunky UI, asynchronous background calls are much slower than in the old version. In almost 80% of cases, I now get a browser alert ("Are you sure you want to navigate away? Changes will be lost") when trying to close the tab a few seconds after performing an action (e.g. starring a message, mark as read). This never happened before and it's super annoying.

<comment><USER5> Yeah, can confirm that

</comment></comment><comment><USER6> It infuriates me when they make me watch that little cartoon Gmail logo while I'm waiting for my inbox to appear...

</comment><comment><USER7> I was forced to go to the new UI, everything looked too big on my desktop monitor. There was an option in the settings to revert to classic so I picked that. Back to normal. No incentive for me to change it.

</comment><comment><USER8> It takes almost a minute to completely load in the latest Firefox Developer edition. Still very slow when done. In Chrome it works decently well, but still slower than Inbox and old Gmail.

I almost feel like I'm being forced to use Chrome if I wanted to see the new design.

</comment><comment><USER9> Super slow here too. switched back to classic until they force me too. Really can't understand google on this. They hurt the product so badly and it create an opportunity for customers to consider leaving.

<comment><AUTHOR> My original gmail was already slow, this is soo slow. How can I change back to the original one?

</comment></comment><comment><USER10> Yes, it's painfully slow.

Slow enough that it's making me think of just moving to a real client.

</comment><comment><USER5> If feels like molasses, not sure where was Google QA team.

</comment><comment><USER11> its super slow for the "Tasks" feature</comment>


PHP: So you'd like to migrate from MySQL to CouchDB? - Part I - <AUTHOR> http://till.klampaeckel.de/blog/archives/74-PHP-So-youd-like-to-migrate-from-MySQL-to-CouchDB-Part-I.html <comment><USER2> A very good introduction! I actually haven't looked much at CouchDB, how is it scalability wise? I first had a look at Cassandra, didn't completely like what I saw so I've been looking more into MongoDB.

<comment><USER3> Im exactly where you are at except I am also moving away from PHP to Python (the lang makes SO much sense) :)

<comment><USER2> Freaky - I've been thinking about doing that too, but I've completed so much already in PHP - maybe when I release a second version of my application. Maybe I should give Django a try.

</comment></comment></comment><comment><USER4> There's also part II and part III.

Thanks for sharing on here, guys!

<comment><USER5> It's a nice series. What I find hardest in CouchDB is dealing with eventual consistency and conflict resolution (instead of transactions). I wish there were more articles and literature about how to handle that stuff, in various kinds of application scenarios. (Not just documenting how _rev and _conflicts work etc.)

<comment><USER4> First off, thanks! And sorry I didn't catch your comment earlier.

I'll make sure I focus on that in a later part of the series! :)</comment></comment></comment>