Modern yacht hacking - <AUTHOR> https://www.kaspersky.com/blog/yachts-vulnerabilities/21576/ <comment><USER2> _> One such option would be a device powered by our Kaspersky OS, which we are developing for car manufacturers. Thanks to our microkernel operating system, such protection can control all interactions between the hardware components inside an information system and prevent any deviations caused by internal errors or unauthorized access attempts. You can learn more about our operating system and its capabilities on the Kaspersky OS Web page._

I get that the whole blog post is an advertisement, but infotainment systems should be _physically isolated_ from control systems.

Furthermore, just using a microkernel doesn't actually provide any guarantees. It's a sound architecture choice, but that's all.

There are advanced control techniques that prevent replay, sensor spoofing, and other attacks specifically for control systems. But it doesn't look like this particular product implements those.

Correctly using a security-oriented microkernel only mitigates certain (really stupid) classes of attacks. These sorts of application domains deserve serious, in-house engineering effort aimed at very well understood risk/attacker models that are specific to the particular control problem.

Control systems need traditional pentesting/security types so that you're not broadcasting root credentials in plain text (... _jesus_ ). But a hardened system also needs input from controls/sensing people who understand security problems associated with particular application domains.

<comment><USER3> >I get that the whole blog post is an advertisement, but infotainment systems should be physically isolated from control systems.

But that costs money. It also would be a harder boundary to draw than you might think.

<comment><USER4> > It also would be a harder boundary to draw than you might think

As an example my 2010 Toyota has an automatic parking system[0], which connects the backup camera, infotainment system (for display and input), steering control and parking sensors.

[0] Which to be honest is basically pointless. It works, but takes a lot longer to setup and use than just parking yourself.

<comment><USER3> exactly.

or remote start, remote diagnostics, tire pressure monitoring systems, maintenance reminders, electronically controlled suspensions, many traction control systems, etc.

Not arguing those features should/need to exist but they are heavily dependent on UI/control system data exchange.

</comment></comment></comment></comment><comment><USER5> There are way more vectors than discussed here. In this environment you have limited drinking water, limited power, limited fuel, limited communications bandwidth, limited hardware replacements, limited crew skills, limited food, etc. It seems like DoS against critical resources in this environment could easily lead to death.

<comment><USER6> By the time you get to a vessel large enough to have any of these systems integrated they'll very likely have means at their disposal to seek immediate aid. That and systems such as this are often redundant and almost always have means to be operated manually. So, please, spare us the 'easily lead to death' fear mongering. That's just plain wrong.

<comment><USER7> Two is one and one is none. You'd be utterly foolish to go to sea without redundant navigation and communication equipment. A hacker might take out your navigation instruments, but so could a simple short circuit. Saltwater is brutal on electrical systems, so only a fool operates on the assumption that their primary nav system is absolutely reliable.

Even on a tiny inshore yacht, you'd want a handheld GPS, a handheld VHF radio and a stash of AA batteries in case your main electrical system fails. On a small coastal yacht, that stuff would be in your survival bag next to the liferaft. A large offshore yacht should have two fully independent nav stations on completely separate electrical systems. If all that fails, you should still have an EPIRB and a canister of flares; good bluewater sailors can happily complete a passage on sextant and compass.

Contingency planning is at the heart of seamanship. If you're placing total faith in your instruments, then you have bigger problems than the insecurity of the NMEA protocol.

</comment></comment></comment><comment><USER8> Guess this is well targeted at wealthy oligarchs.

</comment><comment><USER9> Url changed from [https://www.theverge.com/2018/3/16/17130602/modern-yacht- rou...](https://www.theverge.com/2018/3/16/17130602/modern-yacht-routers-root- access-vulnerable-hackers), which points to this.

</comment><comment><USER10> Anyone else think it's odd that a Moscow based cyber security company which has been associated with oligarchs is now investigating yacht vulnerabilities? I mean who investigated the vulnerabilities of yachts??

</comment><comment><USER11> Kaspersky? The people accused of espionage with their anti-virus software?

[http://www.bbc.com/news/uk-42202191](http://www.bbc.com/news/uk-42202191)

[https://www.nytimes.com/2017/10/10/technology/kaspersky- lab-...](https://www.nytimes.com/2017/10/10/technology/kaspersky-lab-israel- russia-hacking.html)

[https://www.bloomberg.com/news/articles/2017-07-11/kaspersky...](https://www.bloomberg.com/news/articles/2017-07-11/kaspersky- lab-has-been-working-with-russian-intelligence)

<comment><USER12> While watching my website code, seeing kaspersky is very scary. How the heck it managed to come inside, at first though it is virus and did long research.</comment></comment>


BitTorrent, Inc continues no-acknowledgement IPFS fork under branding "BTFS" - <AUTHOR> https://twitter.com/juanbenet/status/1250634833258143744 <comment><USER2> I doubt it without reading that click bait article forking it legally = acknowledgement. Guess the did not put in some big announcement headline.</comment>


Xoodoo cookbook [pdf] - <AUTHOR> https://eprint.iacr.org/2018/767.pdf <comment><USER2> Not much discussion :)

Three of the authors are part of the Keccak team [1], which won SHA-3. This paper presents a new pseudorandom function (PRF) called Xoodoo, which is based on the team's recently developed construction Farfalle [2]. Judging by the fact that the Xoodoo PRF suite has the same design goals as last year's Gimli permutation [3], this is intended to be an especially useful primitive for embedded and low power systems. This has been a push in the research community for the last few years.

The authors also introduce a "Doubly Extendable Cryptographic Keyed" function (a "Deck function") in this paper. This function incrementally computes a pseudorandom string from a sequence of input strings. It natively offers authenticated encryption in one primitive - that's not new for cryptography, but it's another large focus in the research community because it neatly handles confidentiality, integrity and authentication while tying off nonce misuse.

Deck-SANE (used in Xoofff-SANE, both introduced here) is the primitive providing authenticated encryption with an initial nonce. According to the authors it supersedes their previous attempt at session authenticated encryption in the Farfalle-SAE primitive, which was found to be vulnerable. Deck-SANSE (used in Xoofff-SANSE, again both introduced here) is like Deck- SANE, except it uses a _synthetic_ nonce for authenticated encryption. Practically this means users need to ensure a different key/nonce combination is used at the beginning of each session for Deck-SANE, whereas they need not for Deck-SANSE. This likewise supersedes the authors' previous work Farfalle- SIV for similar reasons.

From there the authors introduce new block-cipher specifications based on the Xoofff PRFs, called Xoofff-WBC and Xoofff-WBC-AE. As you could guess Xoofff- WBC-AE is the authenticated encryption cipher built over the vanilla Xoofff- WBC cipher.

____________________

1\. [https://keccak.team](https://keccak.team)

2\. [https://keccak.team/farfalle.html](https://keccak.team/farfalle.html)

3\. [https://gimli.cr.yp.to/gimli-20170627.pdf](https://gimli.cr.yp.to/gimli-20170627.pdf)</comment>


Who's Afraid of a Big Bad Hacking Story? - <AUTHOR> http://www.linuxinsider.com/story/Whos-Afraid-of-a-Big-Bad-Hacking-Story-75037.html

<comment><USER2> I used to buy copies of 2600 at B&N, they currently carry nook editions.

[http://www.barnesandnoble.com/w/2600-magazine-2600-magazine/...](http://www.barnesandnoble.com/w/2600-magazine-2600-magazine/1104039139)</comment>


Rate my mini-app: Tweetbow  - <AUTHOR> http://tweetbow.appspot.com/

<comment><AUTHOR> Yes, I know this is Yet Another Twitter App but I was just having some fun using the Twitter API with javascript and trying out Google App engine. However, I also do think it could be useful in discovering people you want to follow on Twitter. Any comments and suggestions would be appreciated.

</comment><comment><USER2> You have a small bug in your HTML: "<<title>" (double <<, oops)

It an interesting exercise, to see it implemented using only Javascript.

The main thing about Twitter is the actual _tweets_ , not just the faces of the people twittering. You should at least display some tweets.

<comment><AUTHOR> Oops...it's fixed now. Thanks! Well you know, I envisioned some people using Twitter more as a dating site might find this useful. Also scanning text takes much longer than images.</comment></comment>


Corona prediction from sewage sample [pdf] - <AUTHOR> https://www.medrxiv.org/content/10.1101/2020.05.19.20105999v1.full.pdf <comment><USER2> I could easily see this used to reliably decide the rate of opening / closing businesses and public places on a local scale if automated and implemented on a large scale. Thanks for sharing!</comment>


Tech Hiring Binge? - <AUTHOR> http://www.nytimes.com/external/gigaom/2010/04/16/16gigaom-will-startups-get-squeezed-by-a-tech-hiring-binge-72121.html

<comment><USER2> Posted earlier with good discussions: <http://news.ycombinator.com/item?id=1272458>

</comment><comment><USER3> Is this localized in the Silicon Valley area, or is it more widespread? I live in Michigan and haven't seen much of a difference lately.

<comment><USER4> My employer's been hiring tech aggressively for a while, and it's been getting harder and harder. We're NYC based.

</comment></comment><comment><USER5> The job market is like the ocean itself and there are obviously different wave conditions. In a good one, the waves will lift all sorts of vessels, but how you want to surf it is entirely upto you. I daresay with the advent of the YC era, I wouldn't be surprised if more grads interviewed at startups first.

</comment><comment><USER6> The market for experienced Java & .NET engineers in the Milwaukee area hasn't been this hot in many years. Finding top talent is proving to be a challenge and is affecting growth.

</comment><comment><USER7> Two things:

1- as someone who is more or less in the job/contract market in SV, I can confirm that the past two months have seen a dramatic rise in hiring. The past two weeks have especially intense compared to the past months.

2- startups may be somewhat squeezed, but an improved job market is really better for everyone. The right people will still prefer to work at startups over large corporations. Desperation over money is never a good driver for the job market.</comment>


Transparency is Bullshit; We Don't Want to See Everything - <AUTHOR> http://mightybrand.com/2010/01/transparency-is-bullshit-we-dont-want-to-see-everything/ <comment><USER2> It seems you've taken the term transparency, defined it in a way that's quite unlike what people generally mean when they speak of business transparency, then defined translucency in a way quite like what people generally mean when they speak of business transparency. Then you've triumphantly declared transparency bullshit. There's an expression for that kind of argument, haydog or grassgirl or something like that.

<comment><AUTHOR> That _should_ be the definition of transparency, but I wrote this blog post in response to this self-righteous tone that I see a lot of social media "gurus" taking lately where they seem to believe that it's their natural right to whatever information they want about a company or individual, and when the entity in question refuses, they start whining about "transparency".

A good example was the whole Tiger Woods fiasco. While it's true that he clearly had something to hide, I don't buy that because he's a brand, he's obligated to divulge everything about his personal life to the media and the public. But you should have heard the social media bloggers calling for his demise because he "owed" an explanation and they weren't getting it fast enough.

Perhaps I didn't adequately explain that I'm not anti-transparency, but more anti- towards the "entitled-to-transparency" attitude many social media bloggers are starting to exhibit.

<comment><USER2> I understand you were trying to comment on something specific, unfortunately it's hard to tease your points out of the confusion created by using a term in a way that differs from its common use in the context and then defining a new term. If you had examples (social media talking heads, Tiger Woods, particular companies, etc) writing about them concretely might make your argument clearer and invite responses more interesting that 'that makes no sense'. Perhaps a rule of thumb to consider is if you start a post with 'this is a rant and unoriginal', treat it as a draft and revise it until you can safely take that opening out. (Not that there's anything wrong with a rant but a good rant doesn't need to tell you it's a rant)

<comment><AUTHOR> That's a fair point. I shall endeavor to improve in my future postings :)

<comment><USER3> For what it is worth, I liked many of the points in your post, in spite of its shortcomings, particularly where you remind readers that some of the most spectacularly successful tech companies are very discrete in what they reveal to the world and when. That in itself should give less mature companies pause before starting to feel sanctimonious in having adopted a business idea that sees virtue in lunging violently in the other direction.

I find it jarring to hear young entrepreneurs touting their own virtues in relation to others and, if the basis upon which they do so is ultimately insupportable in a business sense, so much the better for causing them to examine themselves and their motives. I would personally elevate the tone a bit, but that is just me. In many ways, a stimulating post. Thanks.

</comment></comment></comment></comment></comment><comment><USER3> Not sure but I would think this treatment of "transparency" deals with recent trends among some closely-held startups to make gratuitous disclosure of their inside financial information, as discussed in this thread having to do with a post entitled "Disclosing Your Finances: Should you publicly publish your finances?": <http://news.ycombinator.com/item?id=1034911>.

I have a detailed post in that thread about how such disclosures may expose directors to claims of breach of fiduciary duty, among other things, and how they are therefore not generally a good idea. The related piece to which the thread is attached contains the counter-arguments, as do other posts in that thread.

<comment><AUTHOR> That's part of what I was referring to, though not in response to those specific companies, but more with regard to the expectation that companies _should_ do that, or that they're somehow more honest if they do.

</comment></comment><comment><USER4> Opaque: Translucent: Transparent.

All three define varying degrees of perception. Opaque and translucent are defined as being muddied or "clouded" by material that can distort the original image.

Could be paralleled with excessive/unnecessary legalese. The more unnecessary words a contract or legal agreement contains, the muddier it is. I like transparency where average Joe / average Jane can cut through the BS and say "so _this_ is what this is really all about: it appears to be X, but is actually Y".

There's nothing wrong with seeing everything clearly when clarity is the intention.

</comment><comment><USER5> This article is flamebait.

Transparency isn't good or bad.

Suppose a company released internal R&D documents to shareholders in the name of transparency... that would give the shareholders a better idea of the value of the stock, but it would also give competitors valuable information. This is why firms strike a balance between transparency and confidentiality.

</comment><comment><USER6> sometimes.</comment>


Dear iPhone users: Please don't forget that a green bubble is a person - <AUTHOR> https://www.androidauthority.com/green-bubble-phenomenon-1021350/ <comment><USER2> > Apple intentionally made the green bubble color as ugly as possible

A lot of the arguments in this article forget a single thing, which is that when the iPhone came out, everything was green as there was no iMessage. The blue bubble is the new kid on the block here.

<comment><USER3> I was also struck by this hyperbolic and flat out wrong talking point in the article.

</comment></comment><comment> matt-attack I kind of resent the notion that green = Android. The distinction is actually quite important. Green means it's an SMS message. Green May very well cost me money (I don't have unlimited SMS on my plan). Green means it's going through the phone company. Green means it shows up in your phone bill. Green means it's logged by the NSA.

These are the reasons I despise green messages. Has nothing to do with possibly being an "Android" phone. I could be a misconfigured iPhone for all I know, but the above are still true.

</comment><comment><USER4> I hardly think the behavior is as malicious as the author seems to suggest.

As an anecdote, I am an iPhone user with read receipts on. My phone tells those who send me messages both when I have received the message (Delivered), and the exact time that I opened the message. Even with read receipts turned off, other people KNOW that I at least got the message because of the Delivered flag.

For this reason, there is a dynamic that compels me to -- in my limited texting time -- respond to iPhone messages first, those people after all know that I at least received, if not opened, their message. I feel less guilty about putting the green messages at the back of my respond queue because at least there's not a "READ THREE HOURS AGO" message mocking the sender.

<comment><USER5> Actually, that's not what the "delivered" flag means. It actually means that the message has been delivered to your carrier, that's it.

In other words, it's just like the sound you hear when you've "sent" an e-mail message — the message in question has successfully left your system and is now somewhere in the aether. Oh, and it hopefully won't get lost.

<comment><USER6> "Delivered" means that at least one recipient's device has received the message. It won't show up as delivered if the devices are offline.

</comment></comment></comment><comment><USER7> "This attitude might seem childish but harmless at first glance, but is actually a real problem with real consequences. Young Android users, in particular, increasingly feel left out within their group of iPhone-using friends because of this green bubble phenomenon."

Who seriously want to be friend with such iPhone-using person? In this sense, I would be proud to be left out.

<comment><USER8> You might be forgetting what it is like to be a child

<comment><USER7> I am very sure to have excellent memories about my childhood and I believe that my comment reflects these memories well.

Or to put it into different words: if you are somewhat smart, you should see very fast that the only winning move is not to play.

<comment><USER9> Sometimes the choice is to play losing games or have no friends.

</comment></comment></comment></comment><comment><USER10> > The iPhone is more than just a phone. It's a status symbol not unlike a > designer handbag or a luxury car.

I got a good chuckle out of this. The number of people I used to see using iPhone with cracked screens was hilarious, they literally looked dirt poor and unable to afford to repair or replace their phone.

My G1 Pixel may not have a cool Apple logo to show off on the back, but you wouldn't see it anyway, since its safely ensconced in an after market leather case to protect it in case it gets dropped, since it's just a tool and not a status symbol. Several years old an no damage so far. Only reason I'll replace it soon is that the battery life is now very degraded.

</comment><comment><USER11> My family had to switch to Slack because of this. Some of the family are "Apple everything" people, while the rest are not and typically go with lower end Android phones (like the Moto G). It bothered some of the iPhone users so much to see "green bubbles" that they would routinely leave the green bubbles out of conversations. Well a a big family party came and nobody remembered to tell the Android users about it because they were so used to excluding them. There were some seriously hurt feelings. We basically had to move to Slack to save the family. Now that we do all the communication through Slack, all is well again.

</comment><comment><USER12> This is why I tell my Android friends to install Signal. It's close to the iMessage experience but multi-platform.

I don't like sending SMS because of reduced image quality among other features. However iMessage isn't the only way to remedy that.

</comment><comment><USER5> With respect, many times a green bubble is not actually a person.

Many times, it's an automated SMS notice. And maybe from a system I don't want to be notifying me.

Sometimes, it's even actual SMS spam — instead of being sent to me by e-mail, they use SMS now.

Sometimes a green bubble is actually a real person, and I do try to pay special attention to those.

But I would observe that I have never once gotten a spam message or unwanted automated notification through iMessage.this is a fact not at all lost on me.

</comment><comment><USER13> It's crazy to me that nearly every country globally has a preferred messaging app of choice, but America stays in the Apple ecosystem. Why aren't apps like Wechat Whatsapp and Line popular in the states?

<comment><USER14> In Australia, the closest we have is Messenger. Behind Messenger, you have iMessage. After that, you're dealing with SMS or Signal.

</comment></comment><comment><USER15> I got a BlackBerry in school for the exact same reason, I know how it feels. I think it's convenience above everything else.</comment>


Whois Google.com - <AUTHOR> https://gist.github.com/8fa4967b9a7b13e8140a

<comment><USER2> That's what happens when your DNS server get poisoned. Change your network configuration to use a better server.</comment>


Your Product Needs to be 10x Better than the Competition to Win - <AUTHOR> http://www.bothsidesofthetable.com/2011/03/11/your-product-needs-to-be-10x-better-than-the-competition-to-win-heres-why/

<comment><USER2> Because in reality it is only a three...

</comment><comment><USER3> or it could be 5x better and have superior marketing ; )

</comment><comment><USER4> Awesome,thank you.

</comment><comment><USER5> or its good idea

<comment><USER3> plenty of good ideas get left in the dust of buzz and marketing of competitors

</comment></comment><comment><USER6> It's a great interview. I really liked his thoughts on monetization. It's common sense of course, but it's a refreshing reminder on how we should approach business models.

QUOTE: You need to have a fundamental proposition that the people who are paying are dying to pay. You can't coax people to pay for something they don't want to pay for.</comment>


Update on Linux/Foxconn issue by Ubuntu dev. Matthew Garrett - <AUTHOR> http://mjg59.livejournal.com/94905.html

<comment><USER2> Doesn't it seem entirely wrong that the BIOS has any idea about O/S's to start with?

Completely the wrong way around.

<comment><USER3> Not only that, but to _specifically_ test for an OS that supposedly they don't care about and give it crap data?!

<comment><USER2> Sure. So it'd be like finding this in a Windows Vista system call...

if (appName.equals("firefox")) { sleep(60); addSomeBugs(); }

<comment><USER3> MS has a history of doing this sort of stuff. For example, they deliberately fed Opera browsers broken CSS files: <http://people.opera.com/howcome/2003/2/msn/>

_Therefore, MSN looks for "Opera" in the User-Agent string and purposely sends Opera7 a style sheet which distort pages._

<comment><USER4> They caused quite a stir when they broke kerberos too.

</comment></comment></comment></comment></comment><comment><USER5> I don't think Garrett works for/with ubuntu for some time. See even the tags in the blog.

</comment><comment><USER6> Finally, someone agrees with me:

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


Doomsday Clock: It is *still* 2 minutes to midnight - <AUTHOR> https://thebulletin.org/doomsday-clock/current-time/ <comment><USER2> That's because the calculation for the doomsday clock is purely subjective. Eventually they'll run out of minutes, subdividing more and more until the whole exercise becomes meaningless.

<comment><USER3> We are two picoseconds to midnight...

Honestly, I don't even know what the numbers are supposed to mean beyond smaller numbers are scarier, and there's no indication of what really goes in to changing that number. Yet it's mentioned quite a bit without any real justification.

Instead of that, how about a list of "clear and present dangers" with numbers based on real time where appropriate?

</comment></comment><comment><USER4> I'm not surprised. 7+ billion people on the planet and growing, some of whom enjoy the highest standard of living ever which requires more and more resources. Those not enjoying the high life want it. Climate change is and will continue to place ever increasing stresses on modern societies. From damage to coastal cities (where most humans live), problems growing crops due to weather changes, and water scarcity - the things we need to live in the manner we are accustomed to are becoming rarer as there are more and more of us living on the planet.

And then there are nuclear weapons. Nuclear proliferation is introducing new actors that must be accounted for when trying to prevent nuclear war. Existing actors can experience a significant change in leadership, policy, and direction - take a look at recent US politics as an example of this. You can imagine maintaining nuclear peace as a weighted graph, with every nuclear state as a node, with vertices to every other node. The graph will only continue to grow over time and the weights can change, sometimes drastically. It just becomes more unstable over time due to the strain of nationalism, climate change, and nuclear proliferation. Then throw in miscommunication and computer glitches into the nuclear mix - events like the Cuban Missile crisis and Vasili Arkhipov, Stanislav Petrov in the 1980s, Boris Yeltsin and the Norwegian Rocket Incident, and unfortunately many others. The risk of large scale nuclear conflict is only growing. Yes, I'm aware of MAD (Mutually Assured Destruction) and how as a policy it has helped us so far. But MAD is less effective for smaller nation states and rogue groups (who will more easily obtain materials and know-how over time), it works until it doesn't. And MAD does nothing for the miscommunication and computer glitch scenarios I have provided. It's not a magical blanket that will protect us from the consequences of having nuclear weapons.

Sorry for the rant. I think this will be our Great Filter. I hope I'm wrong.

\- Links:

[https://news.nationalgeographic.com/2016/03/you-and- almost-e...](https://news.nationalgeographic.com/2016/03/you-and-almost- everyone-you-know-owe-your-life-to-this-man/)

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

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

[https://en.wikipedia.org/wiki/List_of_military_nuclear_accid...](https://en.wikipedia.org/wiki/List_of_military_nuclear_accidents)

<comment><USER5> Don't be sorry for the rant: the current state of things seems dire, and your opinion is shared by some.

I have a friend that hopes there will be war, since we cannot sustain so many humans on the planet.. While I don't want this outcome for moral and idealist reasons, it does seem like a it will be a viable solution in the long run for the species.

I keep thinking about the paper on deep adaptation agenda from a researcher in sustainable development [1], saying climate change is already haywire, and that we will see a societal collapse. As a citizen, I don't even know where to begin with this information. I bet I'm not alone. Based on the premises the author makes, on the current situation on climate change and the lack of action to assess them, it seems the stress will be immense on our society, hence the collapse. I just hope we make it.

[1] www.lifeworth.com/deepadaptation.pdf

</comment></comment><comment><AUTHOR> I think it's super interesting to read the Timeline of Doomsday Clock changes from the bottom up.</comment>


Legally Speaking: The Dead Souls of the Google Booksearch Settlement - <AUTHOR> http://radar.oreilly.com/2009/04/legally-speaking-the-dead-soul.html <comment><USER2> _this agreement, which was negotiated in secret by Google and a few lawyers working for the Authors Guild and AAP (who will, by the way, get up to $45.5 million in fees for their work on the settlement—more than all of the authors combined!)_

Wow</comment>


Why most financial calculator apps suck? - <AUTHOR> Literally, so hard to visualize things. Difficult UX. If i was that kind of savant, I wouldn't need a calculator. <comment><USER2> Because the input variables are so different depending on your personal circumstances. Depending on how clever you accountant/tax professional is, you could be paying a very different amount in taxes/interest.

I might have misunderstood your question, as you didn't say which apps and how they suck. Then you start talking about UI and I get lost.

</comment><comment><USER3> I have tried to build something simplier at Goodly

www.goodlyapp.com/calculator

</comment><comment><USER4> What visualizations are not available?</comment>


What Snowden and Manning Don't Understand About Secrecy - <AUTHOR> http://www.theatlantic.com/politics/archive/2013/08/bowden-manning-snowden/278973/

<comment><USER2> > These are young people at war with the concept of secrecy itself, which is > just foolish. There are many legitimate reasons for governments to keep > secrets, among them the need to preserve the element of surprise in military > operations or criminal investigations, to permit leaders and diplomats to > bargain candidly, and to protect the identities of those we ask to perform > dangerous and difficult missions.

But apparently there is no reason for a person, company or group to keep a secret, hence mass surveillance.

Manning's leaks showed how often the _candid bargaining_ is done not to keep the US safe, but deliberately to harm other countries.

</comment><comment><USER3> THese were not against concept of secrecy. This guy is misrepresenting everything. The kind of videos and documents he shared from american wars showed the world how much morally corrupt America has become in these wars</comment>


Elliot Schrage on Definers - <AUTHOR> http://newsroom.fb.com/news/2018/11/elliot-schrage-on-definers/ <comment><USER2> I read more into this being a Thanksgiving news dump than any particularly scandalous details.

Facebook is embarrassed by what many orgs would consider routine corporate communications practices. This is positive that they care about their brand and reputation at a higher level than your local closely held global conglomerate.

<comment><USER3> No. Reputable corporations don't hire pr firms that claim the people against them are some kind of Jewish conspiracy. They might look for weaknesses in their competitors but that very different.

</comment></comment><comment><USER4> > This explanation serves to protect Zuckerberg and Sandberg from additional > blame, even as Sandberg strives to show she's not passing the buck by noting > "I want to be clear that I oversee our Comms team and take full > responsibility for their work and the PR firms who work with us."

> Schrage's defense of his bosses provides additional cover for Zuckerberg's > comments from a CNN interview that ran tonight in which he said he won't > step down as Facebook's chairman and hopes to continue working alongside > Sandberg for decades to come. The memo could have been aimed at quieting > internal unrest about Facebook's chief lobbyist Joel Kaplan. His ties to the > GOP, support for Supreme Court Justice Brett Kavanaugh and involvement with > Facebook's latest PR troubles had led some employees to question his > employment. Now Facebook has someone else to take the heat.

> Schrage is effectively jumping on the grenade here.

[https://techcrunch.com/2018/11/20/schrage- definers/](https://techcrunch.com/2018/11/20/schrage-definers/)

For those interested, I did my own reflection into Facebook.

Inside the Bubble at Facebook: [https://www.nemil.com/tdf/part1-employees.html](https://www.nemil.com/tdf/part1-employees.html)

<comment><USER5> I think the analogy of Schrage jumping on the grenade it apt. Here is the quote from the linked article where he explicitly takes all of the blame:

> Who knew about this work, and who signed off on it?

>> Responsibility for these decisions rests with leadership of the Communications team. That's me. Mark and Sheryl relied on me to manage this without controversy.

<comment><USER6> Like a pressure release valve for Mark and Sheryl. I do think the pressure for Mark to step aside will grow stronger in the coming year. Even though the class structure prevents a hostile removal, the social pressure will be substantial.

</comment></comment></comment><comment><USER7> Nothing says transparency like dumping a condemning press release before a national holiday

<comment><USER8> When would the most transparent time have been?

<comment><USER9> When the story broke? Instead Mark got on the phone and rambled about bad press and apologized...again.

For a company that boasts itself on moving fast doesn't really know what speed to operate at anymore

<comment><USER3> It was all a big unfair smear campaign, they said, of the NY times article. Oops, "we take it back" they say now.

</comment></comment></comment></comment><comment><USER10> > It's not about Definers. It is about us, not them.

Lol. I mean FB stopped working with them only after they were under scrutiny. Pure damage control

</comment><comment><USER11> The quantity of doublespeak is off the charts.

"Many of you have raised questions" (our employees are disgusted, ashamed, and close to open revolt)

"We've been looking into this" (as if nobody at FB knew what they'd done until the NYT story dropped)

"diversify our DC advisors after the election" (kowtow to the same ultra right wing forces who corrupted our platform to begin with)

"Like many companies" (everybody's doing it, deflect blame and accountability)

"want government to regulate us" (insist that FB clean up the catastrophe it created)

"became particularly acute in September 2017 after we released details of Russian interference" (after the public learned that we'd given our users data to Cambridge Analytica without consent)

And that's just the first six sentences.

Just more "Delay, Deny and Deflect" [https://www.nytimes.com/2018/11/14/technology/facebook- data-...](https://www.nytimes.com/2018/11/14/technology/facebook-data-russia- election-racism.html)

</comment><comment><USER12> For what it's worth, that tone ——rather formal, precise, factual and willing to address one's responsibility head-on, in this case, being fired, once the case has been made—— is the closest that I've seen publicly from many internal notes. I find it ironic because I've always assumed that Schrage was the one preventing those notes and their tone from being shared more publicly.

Mark's more recent note [1] too: the length, the speculative tone not precise in their detail, but clear in their vision, all that is quite representative of notes that comes out of certain key teams (typically Core Data science & Research). I'm happy those come out more. It's also ironic because you would typically be asked to summarize those for a notoriously attention-constrained executive.

[1]: [https://www.facebook.com/notes/mark- zuckerberg/a-blueprint-f...](https://www.facebook.com/notes/mark- zuckerberg/a-blueprint-for-content-governance-and- enforcement/10156443129621634/)

<comment><USER12> > Many people on the Communications team feel under attack from the press and > even from their colleagues. I'm deeply disappointed that so much internal > discussion and finger pointing has become public.

That's a clear internal reference: Friday's All Hands and comments on related posts. This and the comment from Sheryl (including the explicit "All Hands") make it sound like both were copy-pasted from the internal discussion forum (a.k.a. Workplace).

Those two sentences are text-book Schrage. Any other executive at the company would welcome the feedback; remind people that their colleagues are human and to stay civil; encourage people to keep pushing back, but remember that PR is hard for a reason. Schrage just… that.

Anyone else would also probably have edited that section to mention that it's good that the press keeps us honest, democracy needs uncomfortable conversation.

One thing that will never be excused though is "much internal discussion and finger pointing has become public". Everyone would agree this is not acceptable. Employees are welcome to (politely) rip a new one to any executive if they don't like something, but going to the press, no matter how small or how bad… I don't remember any quote in the NYTimes, but that person will have a very bad time, even if it is the last thing Schrage does.

> Mark and Sheryl have also asked Nick Clegg to review all our work with > communications consultants and propose principles and management processes > to guide the team's work going forward.

If this is an internal post, that sentence is very clearly missing a "and myself". This is clear shade, not surprising for Schrage internally, and uncharacteristic for the company. I'm not confident he's happy with Clegg.

<comment><USER13> Schrage was like that even at Google. I met him once. That day, he vented about Googlers leaking. Yep! I can understand that it made his job harder, but, as you mention, there's a way to say something and then there's the better way to do it. For a PR person, I was surprised how he usually went for the former.</comment></comment></comment>


Contentle: Social Bookmarking and Content Curation Tool - <AUTHOR> http://www.contentle.com/ <comment><USER2> how is this different(better/worse) than Pinterest?

<comment><AUTHOR> \- Each user can create his/her own classification to organize items \- All bookmarks have previews with page screenshots \- Users can collect not only bookmarks, videos or images but also text items i.e. quotes, articles, snippets \- GF-Markdown markup allowed in item descriptions \- Items can be shared by mail \- Internal RSS-reader</comment></comment>


Real-Time Collaborative Text Editor - <AUTHOR> http://www.stypi.com/

<comment><USER2> This is on the front page right now ...</comment>


Show HN: HTTP Status as a Service - <AUTHOR> https://status.icu/ <comment><USER2> > status.icu will return whatever https status code you want! Use a GET > request to any status.icu path to guarantee an HTTP status code.

        $ curl -I https://status.icu/418/
        HTTP/1.1 500 Internal Server Error

The Nginx configuration responsible for the service[1] just hardcodes a handful of common HTTP status codes. A Go version that supports any status code takes fewer lines than status.icu's nginx.conf, even after gofmt.[2] Not that I think anyone should be relying on a third-party service for "writing browser integration tests" OR "mocking API responses".

[1] [https://gist.github.com/geetotes/0ddc96f95eecab4e8aa8dd53bcc...](https://gist.github.com/geetotes/0ddc96f95eecab4e8aa8dd53bcc70661)

[2] [https://gist.github.com/wwalexander/febbc1ba76c8eafa9f94f5cb...](https://gist.github.com/wwalexander/febbc1ba76c8eafa9f94f5cb2573b34d)

<comment><USER3> Here's[1] a two-liner with Rack

[1] [https://gist.github.com/joshmn/66f715c65bc19784f95a0e2ce3c9d...](https://gist.github.com/joshmn/66f715c65bc19784f95a0e2ce3c9df93)

<comment><USER4> It's a bit disingenuous to call it that. 140 characters on one line that most people would format very differently.

<comment><USER5> I'd say this comment is a tad unfair.

Most "one liners" fall under the category "most people would format very differently"

And this one at only 140 chars (a classic tweet)

</comment></comment></comment></comment><comment><USER6>
        require("express")().get("/:status", (req, res) => res.status(req.params.status).end()).listen(80)

<comment><USER7> gotta add a NaN check in there or it'll hang

<comment><USER8>
            require("express")().get("/:status", (req, res) => res.status(+req.params.status || 400).end()).listen(80)

<comment><USER9> You just broke my HTTP status 0.

</comment></comment></comment></comment><comment><USER10> See also: httpbin, which comes with a ton of other handy features as well.

[http://httpbin.org/#/Status_codes](http://httpbin.org/#/Status_codes)

<comment><USER11> [https://httpbin.org/](https://httpbin.org/) Was exactly my first thought

</comment></comment><comment><USER12> There is an XSS vuln on the website. Try entering something like '<b>test</b>' or '<script>alert('test');</script>" into the text box.

<comment><USER13> That explains why it is blocked on my enterprise network.

<comment><USER14> But how would it know there's an XSS vuln?

</comment></comment></comment><comment><USER15> I built something similar about a year ago experimenting with AWS's API Gateway. [https://mock.codes/](https://mock.codes/) The landing page is an S3 file, and everything is just API Gateway configs.

There used to be a similar service hosted on the same domain that eventually went dead. I bought the domain and brought up this service again. It barely gets used (haven't checked usage in a while) but I've already paid for the domain and it costs me pennies to keep it up and running.

</comment><comment><USER16> I've used [https://httpstat.us/](https://httpstat.us/) which seems to offer the same features plus configurable delay, although when you hit it 3,000 times a second it doesn't necessarily respond with the code you ask for.

<comment><USER17> I think the proper term is "status code". Simply using the word "status" by itself is ambiguous and misleading. So any new entrants to this space could choose from a lot of domain suffixes: status.codes, statusco.de, statuscode.info, etc...

</comment></comment><comment><USER18> Also [https://http.cat](https://http.cat)

</comment><comment><USER19> Does not support IoT kettles. Fatal flaw.

(Response code 418.)

<comment><USER20> Heresy! A kettle is not a teapot.

</comment></comment><comment><USER21> Neat! I wrote a similar project for Drupal once - [https://www.drupal.org/project/generate_errors](https://www.drupal.org/project/generate_errors) \- I found it to be a good way to learn about HTTP status codes and their meanings. Currently, you've got a finite list of HTTP status codes and don't have definitions. You may want to consider grouping them and including labels. Or don't, I'm just some guy on the internet :-)

Cool project!

</comment><comment><USER22> [https://status.party/422/](https://status.party/422/) is NXDOMAIN, not sure that was the error you intended. ;-)

<comment><USER15> I think it might have been .party originally but was later changed to .icu

</comment></comment><comment><USER5> :-( No teapot support (418)

</comment><comment><USER23> Arbitrary status codes from your webserver is extremely useful for testing your nginx or other reverse-proxy configuration. If your webserver is returning 500s, does nginx retry in an infinite loop? Not good!

Better: if a query causes your webserver to crash, does nginx crash ALL of them while retrying that bad query? :-)

</comment><comment><USER24> No CORS support. That seems silly.

</comment><comment><USER25> why on earth would I want this instead of a local service if I absolutely need (which I don't with clean architecture and clean code)

</comment><comment><USER26> httpbin is way more powerful than this...

[https://httpbin.org/](https://httpbin.org/)

</comment><comment><USER27> Pretty useful. Was writing a script yesterday to log website availability including the HTTP status of the site.

This will be useful to make sure my script works correctly!

</comment><comment><USER28> Should add 204, useful for frame-busting busting: [https://blog.codinghorror.com/we-done-been- framed/](https://blog.codinghorror.com/we-done-been-framed/)

</comment><comment><USER29> wait, .icu is a tld??

<comment><USER30> [https://icannwiki.org/.icu](https://icannwiki.org/.icu) says "General Availability: 29 May 2018".

</comment></comment><comment><USER31> I wonder what is the incentive to keep it up and running

<comment><USER32> Doing something nice for other developers, I guess.

Unless you mean "what guarantees do I have that if I integrate this in my workflow it won't be gone tomorrow?". In which case, I agree.

</comment></comment><comment><USER33> For developers who never heard of httpbin.org

</comment><comment><USER34> Sounds exactly like httpstat.us</comment>


Scottish witchcraft book published online - <AUTHOR> http://www.bbc.com/news/uk-scotland-37789413 <comment><USER2> > "We're delighted to share this insight into the past with a wider audience."

No links to the book in the article. There's a branded link to Ancestry.com in the article, though. But no indication of where to go once you get there. Incredibly irritating when the headline of the article is about something being published online.

Eventually found it by looking on the Wellcome Library web site: [http://wellcomelibrary.org/item/b19111319#?c=0&m=0&s=0&cv=0&...](http://wellcomelibrary.org/item/b19111319#?c=0&m=0&s=0&cv=0&z=-0.4254%2C0%2C1.8508%2C1.1626)

<comment><USER3> Is the book loading for you? It just shows a spinning circle.

UDPATE: I found a working link in the source: [https://dlcs.io/pdf/wellcome/pdf- item/b19111319/0](https://dlcs.io/pdf/wellcome/pdf-item/b19111319/0)

Seems to be just a bunch of names. So "Scottish witchcraft book" is a pretty misleading title.

<comment><USER2> The linked page is loading for me, but if it's seeing a lot of traffic there may be a lot of factors involved.

</comment></comment></comment><comment><USER4> For those expecting a grimoire, nope, this is just a historical document of people accused of witchcraft and such.

</comment><comment><USER5> Great, now ancestry.com com can tell you when you are literally the spawn of an unholy love child?

</comment><comment><USER6> This is an ad for Ancestry.com. Why is this article here?

</comment><comment><USER7> \- Not very hackerish

\- May be disguised ad for ancestry.com

\- Comments here have gone very weird very fast

=> Flag and move on.

</comment><comment><USER8> is this because of that ridiculous spirit cooking rumor?

<comment><USER9> What do you mean, "ridiculous" "rumour"?

Do you not accept the authenticity of DKIM-authenticated Wikileaks e-mails? It is written there, black on white, byte for byte.

EDIT: Just to clarify. The e-mail in question specifically contains "spirit cooking" so it is in no way a rumour. What that means exactly - well, yes, that is open to your interpretation and imagination.

<comment><USER10> The authenticity of the emails is one thing. The _meaning_ of the authenticated words is quite another.

What is, apparently, authenticated is that John Podesta's brother invited him to a "Spirit Cooking dinner" (those are the relevant three words that are part of the authenticated email) hosted by a performance artist named Marina Abramovic. What is not authenticated at all is what "Spirit Cooking dinner" means. One possibility is that it is a Satanic orgy ritual. One possibility is that it is a perfectly normal dinner with normal human food, celebrating / related to a performance art project named Spirit Cooking (see, e.g., [https://www.moma.org/collection/works/143945](https://www.moma.org/collection/works/143945)). The email doesn't rule either of those possibilities out.

<comment><USER11> The Satanic Orgy suggestions are just crazy people crazying, aren't they? I mean there's no sensible reason to think it's anything more sinister than a slightly insalubrious performance art thing.

</comment></comment></comment></comment><comment><USER12> Powerful quote:

 _" It gives us a fleeting view of a world beyond orthodox medicine and expensively trained physicians, in which people in small towns and villages looked for their own routes to understanding the world and came into conflict with the state for doing it"_

It may be unpopular for me to say this, but I believe that the very same energy behind witchhunts is recapitulated today by overzealous "skeptics".

<comment><USER13> Well it's an interesting group to single out.

Speaking as a moderately zealous skeptic. Yeah, we can gang up on people, and sometimes talk down to them out of exasperation. And those are bad things.

But...

Unlike a lot of internet public shaming (and probably unlike these witchcraft cases), there's no sexual element or threats of violence.

Scientists don't blow up people for not believing in thermodynamics.

So, I'd say there are probably better candidates.

<comment><USER14> > Scientists don't blow up people for not believing in thermodynamics.

wrong example. you should be thinking about the way a certain particular faction ostracizes people for expressing views containing any content that might be considered "religion" or "spirituality".

<comment><USER15> No, for letting those views pollute otherwise scientific discussion.

If you say you know that sugar is bad for rats I expect you to have tested it, not prayed about it.

As for ostracizing, if you're on a medical review board you'd better believe I'd try to get you removed.

<comment><USER16> What constitutes non-scientific discussion?</comment></comment></comment></comment></comment>


These Are the World's Cheapest Places to Buy Drugs, Alcohol and Cigarettes - <AUTHOR> https://www.bloomberg.com/news/articles/2017-01-12/japan-australia-rank-among-most-expensive-places-for-sinful-habits <comment><USER2> How many media buys are done to get you to do something bad for yourself to profit some company some where. :(

This article just jumped on the pile and only got paid in clicks instead of revshare. I'm doing media buys for youtube videos I make that I think will make the world a better place. You should too.

If you don't advertise for a better world, who will? What a hilarious article to provide contrast.</comment>


Zed Shaw on C++ - <AUTHOR> http://librelist.com/browser//mongrel2/2010/7/15/c-verses-c++/#770d94bcfc6ddf1d8510199996b607dd <comment><USER2> I agree totally with Zed Shaw on this, but some quick observations:

* C++ circa 2000 (before mainline g++ could handle Alexandrescuisms) is significantly different from C++ circa 2010, albeit in ways that probably upset Shaw even more (the more central role boost has taken, the more "expressive" templates have gotten, don't call me on any of this stuff).

* C++ std::string is an abomination, but you can always just do what I've done and what lots of other C++ programmers whose code I've read have done: just use char* and a simple string library (or a custom string class).

* Ditto for stream IO, which is a huge C++ misfeature but which is also pretty much irrelevant (I know of no part of the standard C++ library outside of things that explicitly support stream I/O that rely on you using it).

* I don't get the POSIX argument at all; just call the POSIX functions, they work fine. Nobody mandates that you use (say) ACE_wrappers to do systems programming.

* const-correctness may be another misfeature (I know I make fun of it), but the point isn't hard to see: if you take the time to const-correct your code, the compiler will spit out errors that would have otherwise been runtime faults.

<comment><USER3> The problem with std::string is that when I type a quoted string in my code, it isn't natively a std::string, it's natively a char* and gets converted to strings. C++'s biggest mistake was not standardizing early on an official object-oriented string datatype. It should have been in the first version of C++, it should have been treated like a primitive type (even if it isn't), and they should have said "thou shalt use this type for your strings". It makes me sick every time I see some goofy custom string class.

One problem with const-correctness is C++ uses "const&" to mean two different things: it could mean either a reference to a persistent object you're not allowed to change, or it could refer to a temporary object which you're prevented from changing because the changes will disappear. The problem is it conflated _access control_ with _lifetime_. It would have been better if there were a "temp" keyword - although the last thing C++ needs is more combinatorics of type decorators.

On the subject of consts, though, C++ simply enforces const correctness more, but doesn't the same criticism of confusing const apply to pointers in C as well? You can just as easily declare a "const * const" in C as in C++. So I fail to see why Zed Shaw writing something in C gets him away from that "problem", unless he doesn't write const correct C.

<comment><USER4> The great thing about const is that if you don't like it you can pretty much ignore it. The only time it might be necessary to deal with it is if you are using a library that returns const objects.

If you do like const (which I do) then you can put it in pretty much everywhere, except if you are dealing with a library that isn't "const correct", but then a bit of type casting will save the day.

That's a big advantage of lots of the C++ features - if you don't like them you can often just ignore them.

<comment><USER5> "If you do like const (which I do) then you can put it in pretty much everywhere"

In retrospect, it might have been better to have a keyword for things that can change. This goes equally for Java and "final". Making immutability the default and mutability opt-in makes for fewer bugs and more reliable programs.

Arguably, this is what Clojure does where you have functional, immutable constructs by default with ways to declare things that can change (refs, etc.).

<comment><USER6> const by default may not be a bad idea, but immutability of structures/objects in C++ sounds like it would be a huge performance hit to me. I've used an image processing library (CIMG) which lets you do things like `img = img1 * 2 + img2 * 0.5`, instead of editing the image in-place. It's pretty, but with regular 800x600 images the performance was around 2 orders of magnitude below a simple for loop... it made a lot of extra copying and allocation instead of mutating the image.

The thing is, this kind of code isn't an exception in the C++ world. C++ is made for problems where performance matters: image processing, compilers, browsers... immutability works for Clojure, but Clojure is a lot slower than C++. It's more of an "enterprise software" language.

</comment></comment></comment></comment></comment><comment><USER7> There appear to be a lot of good rants _against_ C++. To name a few:

* Linus Torvalds : <http://lwn.net/Articles/249460/>

* C++ Frequently Questioned Answers : <http://yosefk.com/c++fqa/>

Are there any good passionate _pro_ C++ versus C arguments?

<comment><USER8> _"There appear to be a lot of good rants against C++....Are there any good passionate pro C++ versus C arguments?"_

By definition, the people who write the "entertaining" rants against C++ have an axe to grind. The people who like C++ just silently _use it_ , and feel no need to write advocacy blog posts for the language. Even if they were to blog about it, it would be about as compelling as someone advocating for their favorite brand of screwdriver. Like it or not, C++ is the incumbent, and it's neither interesting nor fun to read someone advocating for the status quo.

Whenever you find yourself arriving at an opinion about a programming language solely from rants that you read on some dude's blog, please keep in mind that you're probably being most heavily influenced by the very people _least qualified_ to teach you anything useful about the language. The internet is filled with useful articles about C++, but you don't remember _those_. You remember that Zed Shaw couldn't figure out how const works in C++, and once wrote a funny email about it.

<comment><USER9> Good advice generally, but what axes do Zed and Linus have to grind? Sounds like both just think C++ enables too much complexity to be worth the benefits.

<comment><USER10> It's actually possible to make C++ nice, the Grace library is wonderful. If I ever have to C++ again I'm totally grabbing it and using it. The Grace value types and type safe format operations are just the best thing ever.

My problem though is it's not the right tool for the job. Simply having access to C level APIs doesn't instantly mean your language is awesome at making servers and operating systems. Especially if that same language can't quite figure out what the hell really happens on a copy, or during an exception, or can't make decent strings and data buffers.

</comment></comment></comment></comment><comment><USER11> I'm going to keep saying this until I turn blue in the face. Perhaps if I stamp my feet it might get more attention (wink)

Please stop confusing the language with the APIs or the available libraries and features of the language.

This sounds simple, but it's profound: simply because you _can_ do something, that doesn't mean that you _have to_ do it that way.

To use Zed's example, let's say I'm hacking around a lot of strings. What's wrong with rolling a string class, adding a member or two? You only have to carry around a bunch of nonsense if you want to. If you don't want to use templates and strings and such, don't use them.

This is another in a long line of articles that go something like this: We did X in this certain way, and boy did it suck. Therefore all of X is the devil's work and will destroy civilization.

You can put about anything you want in for X. It's like a (oddly enough) template engine for writing blog entries.

You should go through stages in your career, with just about any X. Stage one is that you are ignorant. Stage two is that you've tried it. Stage 3 is expertise. Stage 4 is hate, and Stage 5 is grudging acknowledgement that parts of X are okay for certain situations. You realize that yes, X is done poorly maybe 99% of the time, but lots of smart people worked on it and there are some little gems in there that are useful from time to time.

Looks like Zed is stuck on Stage 4

Throw away the templates, throw away all the library stuff you don't like -- is there a reason to make a class and wrap some things? If so, you can do that in C++. You can't in C. It's a very simple question, and it has nothing to do with any of the things Shaw is going on about.

<comment><USER12> "What's wrong with rolling a string class, adding a member or two?"

The fact that it's 2010?

A language and its standard library are theoretically different things, but in any practical sense, the choice to use a language carries with it the choice to use its standard library. Additionally, the way the standard library is usually reflects constraints placed on it by its language. Java, for example, has a verbose and ceremonial standard library, and that's not a coincidence.

<comment><USER13> The C++ standard library and std::string implicitly have specific constraints and use cases, but they were imposed by the design process, not by the language.

C++ has many string types because each string type has its strengths and weaknesses. For instance, QString is a fully-featured and Unicode-aware string written in C++ that I use most of the time.

std::string is good for most things. What are your specific issues with it?

<comment><USER12> I don't write C++ and have no issue with std::string. I was taking general issue with the OP's general issue with criticizing a std library alongside a language.

</comment></comment></comment></comment><comment><USER3> I love C++, but I upvoted this because most C vs. C++ rants focus on things that are not actually C++'s biggest problems. This is one of the few C++ rants that actually brings up of legitimate points. They are not reasons that would stop me personally from preferring C++ over C, but they are valid criticisms.

P.S. On the subject of format strings vs. cout and the "<<" madness, C++0x's variadic templates will allow a type-safe printf. So hopefully in the future we WILL see C++ move back toward format strings, but without loosing the type safety. It also gives the possibility of instead of having to remember to use %d for ints and %f for floats, we could just use format strings that use {1}, {2}, etc. as format string placeholders, the way C# does. Freeing you from having to specify in the format string what the type is is something C++0x type-safe-printf would allow you to do that you could never do in C.

<comment><USER10> Actually, this is what I loved about Grace. It was like all the crap that pissed me off about C++'s design decisions just went away. It made C++ so nice to work with.

</comment></comment><comment><USER14> Call me unlucky, but I've never worked at a company that had a _high percentage_ of programmers (myself probably included) that could write solid C++ using anything more than the absolute basics, i.e. basically a C subset.

I'd pretty much agree with Zed's rant, that C++ often isn't worth the bother, _unless_ you have a project that specifically requires C++ features, _and_ you have a development team that can actually write solid C++.

Maybe I'll call this Jonathan's axiom, but if your team doesn't have enough experience to write in a Lisp-y (or any other genre such as ML-y) language, you probably shouldn't be messing with C++ either.

Not many people that say they can write C++, actually can.

<comment><USER10> I think this is a key point, the language doesn't matter as much as the capability and training the people using it have. This is why all these language arguments are rather irritating, because I'll typically use what works best. On some projects, C++ is great. On other projects C is best. Python is great for some things too.

</comment></comment><comment><USER15> I don't get these rants. Both C and C++ are such barebone languages that you can take or leave pretty much everything but the common syntax. Zed decides C's string functions are not up to scratch, and so uses bstring. Plenty feel the same about std::string, and will use bstring's CBString, Qt's QString, or some other class in their C++ code. Exceptions? Take them or leave them. setjmp/longjmp? Take them or leave them. Templates? Take them or leave them. Macros? Take them or leave them.

<comment> loup-vaillant The problem is, your co-workers will do the same with other features. Unless the project is under a strong dictatorship, you'll end up taking everything.

</comment></comment><comment><USER16> I agree with most of what he says but not with his memory management argument. In C++ you could do something like this:

      f() {
        LinkedList list;
        populate(list);
        use(list);
        //forget
      }

Freeing the list elements is done in one place only, in the destructor of LinkedList. In C, you have to call some kind of free function in every single place a LinkedList is used. The burden of managing memory is on the user of a library, not on its creator. I don't think this is enough to justify using C++ though.

<comment><USER17> Thank you for bringing that up. It's called RAII and it's one of my favorite features of C++. The fun thing about it is that it can also be used to manage other resources such as files, sockets, locks or what not.

</comment></comment><comment><USER18> I really dislike C++ but more to the point I really dislike other people's C++.

This is triple compounded when you only have to do C++ occasionally. I've never even got close to the point of looking at something like const *const char & and reading it like it was something normal like others seem to do.

<comment><USER19> _I really dislike C++ but more to the point I really dislike other people's C++._

That's right on the money. I can find a subset of C++ that I like and that I could program with, but that assumes that I'm not collaborating with someone and that I don't have to use C++ libraries (It's not just the code, it's the APIs, too). The latter is almost worse. I could imagine a company that has some rather strict standards, where the C++ development environment doesn't suck completely. Google's style guide seems to indicate that they might be one of those companies [1]. Much more likely you'd have to work with something like MFC, VLC or the complete boost hodgepodge.

And Zed is right when he's talking about the template meta-programming fad. I haven't seen any project where the pros outweighed the cons. And yes, I've read Alexandrescu.

People often say that you need all those features to build large applications. Which reminds me a lot of the "Doctor, it hurts when I do like this!" joke…

[1]: [http://google- styleguide.googlecode.com/svn/trunk/cppguide.x...](http://google- styleguide.googlecode.com/svn/trunk/cppguide.xml)

<comment><USER20> There are some very good template-based libraries. I think STL is mostly ok, but also libraries like Eigen are great, and avoid a lot of code duplication through templates.

<http://eigen.tuxfamily.org/index.php?title=Main_Page>

<comment><USER19> Templates as they were used/implemented in earlier days where quite okay, apart from having to use other people's libraries, I preferred to solve problems using generic programming than just building class hierarchies (which now nicely translates to functional programming).

Apart from very crappy compiler support (looking at you, Microsoft) I really liked the STL. It's simple enough (maybe a bit too simplistic).

Template meta-programming is a whole 'nother deal. It's like the rabid daughter of an unhappy marriage between Lisp's macros and Perl. From some angles, she looks rather enticing. Then she bites down on your crotch.

</comment></comment></comment></comment><comment><USER21> Exceptionally good critique. But there are exceptions: programming for Google's V8 in C++ is a pleasure. I've never seen any interpreter code so clean and easy to extend. Like a breath of fresh air.

<comment><USER10> Embed V8 into Python, then tell me how great C++ is.

In other words, C++ is great until something else has to call it. Then you're hosed and end up wrapping everything in C anyway.

<comment><USER3> That's what I've written a library to fix - it makes it quick and easy to bind C++ api's to make them callable from a dynamic language. Not only can you bind a C++ function with 1 line of code, but if that function returns an object, the returned object's member functions are callable on its scripted instance:

<http://github.com/dennisferron/LikeMagic>

Currently there is only an Io backend, but the library is designed so that the same C++ bindings can be used with multiple different backend languages. It's like Boost::Python on steroids.

<comment><USER22> I've seen you talk about this on the Io list for a while now, but you never seemed to have posted a link to it. Glad I can finally take a look at it :)

</comment></comment></comment></comment><comment><USER23> What would be better is if C and C++ divorced each other and people realized that they are two separate languages. All of Google's results for C questions end up linking to some "C/C++" forum, which is almost certainly not what I'm looking for. I'm sure the other way 'round is true too.

</comment><comment><USER24> _"If I wanted to fry my brain trying to figure out how to add two numbers with templates I'd go use LISP."_

Probably just a tongue in cheek comment, but I wonder what he meant.

<comment><USER25> Probably another run-of-the-mill confusion of macros for templates.

"LISP" is a convenient red-herring to throw into PL diatribes; it shows the speaker has some authority since he is "aware" of Lisp, and the glowing and mystical connotations that this, vague, awareness carries.

<comment><USER10> No, more a nod to Lisp getting "metaprogramming" right when C++ screwed them up. If I've gotta do it, I'd rather do it in a language where the turing completeness wasn't designed to be a tarpit.

<comment><USER25> And there goes my attempt to trick you into becoming a Lisper :-(

Learn CL inside and out, not because you want to be a better programmer, but penning "Lisp is a Ghetto", if you get it right, will guarantee your name echoes in the hallways of hacker heaven long after we're both gone.

</comment></comment></comment></comment><comment><USER26> I have to agree with the spirit of the article. In the late 80s and early 90s, much of my work was in C++, and I did some mentoring, wrote a bunch of C++ books, etc.

After my C++ _period_ , I did a major project for myself and just used C - like a breath of fresh air after C++

In all my years using C++, I think that the only good applications where C++ made sense was in Nintendo and PC game development at Angel Studios and some VR development for Disney and SAIC. Everything else that I did in C++ should have been done in different languages.

</comment><comment><USER27> The std::string example given by Zed shows that he didn't hack around C++/STL much.

There is a whole entry in Exceptional C++ Style (or another Herb's book) that says how much std::string sucks and how you can write an equivalent extremely quickly.

Anyway, don't like std::string ? You can use std::vector in place very easily, that's a well known trick (thanks to the guarantee that &v[0] returns a pointer to the data if v is a vector).

He talks about references but he seems to ignore the capability of C++ to offer perfect forwarding which enables you to greatly increase performance and memory usage and that's very difficult to mimic in pure C.

There's a lot to write about inaccuracies in this post actually, but what the point? People who hate C++ will discard them and people who love it already know it.

I tire of reading posts from people who didn't like a language for whatever reason and try to rationalize it.

</comment><comment><USER28> This is the first time I heard of Grace C++[1]. Looks very useful. I was looking for string that can be used for binary data. Looks like they support that too.

[1] <http://grace.openpanel.com/>

<comment><USER10> Grace is absolutely awesome. The value type and format syntax are exactly the way it should be done.

</comment></comment><comment><USER29> I like C or C++ for native but use C++ more because I write it with simplicity. Complex C++ like MFC, Windows API, template hell is disgusting and wrongly gave C++ a bad name.

C++ OO can be done to really abstract the application but still be very manageable and simple. Also C++ is a game industry cornerstone. I think game code in C is actually harder to consume that game code in C++.

</comment><comment><USER30> I always see streams brought up as a critique of C++, at least compared to how it is handled by C, and I agree that they are terrible. However, everyone else also agrees that they are terrible, and as an added bonus the C IO functions are still available.

C++ brings a lot of heavy-weight machinery to the table but the best part is that you don't have to use it. If you just want to write C but desire templates to reduce the amount of writing you need to do then so be it, write C-with-templates!

My big beef with the language is mostly due to the legacy crud it is saddled with in the C preprocessor. Many of the build time issues I find myself suffering with are because of people, for example, including Windows.h a) in the first place and b) not defining WIN32_LEAN_AND_MEAN. Junior (and senior, for that matter!) developers seldom know how to properly structure their code so that their iteration times don't plummet.

</comment><comment><AUTHOR> Pretty good rip on a few annoyances of C++ in Zed's fantastic ranting style.

<comment><USER31> Classic Zed. Nice, haven't heard from him in awhile.

</comment></comment><comment><USER32> I really do love a good C++ rant.

<comment><USER33> Thank you for this post. For the life of me I cannot explain why, but it delighted me immensely, and I am inexplicably incapable of reading it in my head without an exaggerated British accent.

<comment><USER32> Strangely enough, despite being thoroughly american, I am given to british spellings and mannerisms in my writing and speech. I think it has something to do with being really into british humor and fiction for most of my life. (british comedies, Terry Pratchett, Dr. Who...)

I constantly get teased by friends about my british spelling s of common words.

</comment></comment></comment><comment><USER34> Doesn't the D language fix a lot of the issues that Zed is complaining about? Constantly surprised that it's not more mainstream...

<comment><USER35> D could have saved us from the horrors of C++, but it dropped the ball.

<http://www.jfbillingsley.com/blog/?p=53>

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

</comment></comment><comment><USER36> The problem with const string& is that the resulting string is not interned - e.g. one copy in memory, which would later allow to save memory, compare by pointer equality (eq), etc.

I understand that the language cannot express it, and that's why other languages (such as lua) do it the right way - immutable strings all the way, or at least by default (NSString)

<comment><USER37> You can make a string class that interns strings. Language can express it, but std::string doesn't do it.

</comment></comment><comment><USER38> That was rather bogus. Sure, destructors are horribly complex in their interaction with all of the other horribly complex C++ features. But unless I'm reading it wrong, Aughey wasn't suggesting using all those other features.

If you have some reasonable self-control, it is quite reasonable to use C++ as a small superset of C.

</comment><comment><USER36> There are great C++ projects, but the big compile/link times they have are not a small deal. Also the compiled libraries take a lot of space. Examples:

Qt, wxWidgets, LLVM, boost

Hopefully we have IncrediBuild at work, and we don't have to deal all the time with such huge frameworks.

<comment><USER39> You don't have to build these libraries from scratch every time. You could store pre-compiled binaries in a shared drive for every possible configuration, and developers can simply copy them to their machine. Not that big a deal.

</comment></comment><comment><USER40> Just using constructors/destructors and class encapsulation makes code so much more readable.

And most exception problems are solved with RAII. If you're using RAII, then you won't have memory leaks when exceptions arise.

</comment><comment><USER41> I'd like to extend his position to the argument that the semantics of any language that isn't ML or Lisp are too complicated...

</comment><comment><USER42> Forgive me if this is a terrible question, but who is Zed Shaw, and why should I care about what he says about C++?

<comment><USER16> He is a guy who has written some great code (Mongrel) that is valued for being clean, correct and fast.

</comment></comment><comment><USER43> The problem with a lot of these posts on HN is that the audience seems to be rather biased towards low-performance app areas like web, and business apps.

Oh noes! I have to handle 10 requests a second!

Take a look at the SWENG-gamedev mailing list for some of the performance issues that people face in games and game tools.

/pissing-contest

Note: obviously this is not an argument _against C_ instead of C++. It's more to forestall the meta-discussion.

</comment><comment><USER44> I hoped it would be a blog post like "C++ is a ghetto"...

</comment><comment><USER45> I've seen this pattern a lot when it comes to the order of learning/mastering languages: C, then C++, then back to C

<comment><USER46> After getting use to the STL containers... I could never go back to pure C. I use C++ daily and love it. Nothing against C (if that's what you like) it's a great little language.

Why is it that C programmers bitch about C++, but C++ programmers don't bitch about C?

<comment><USER3> Because we're having too much fun writing cool things in C++ to bother to write rants.

<comment><USER47> Because you're too busy waiting for all that C++ code to compile before you can be too busy debugging it ..

FtFT! :)

</comment></comment></comment></comment><comment><USER48> The portable subset of C++ were around long before mozilla, webkit or chromium. Anyone can read mozilla's or google's guidelines about which subset of c++ is safe to use.

One of the best examples is Informix RDBMS which was acquired by IBM in 2000. And the second best is... JVM. ^_^

</comment><comment><USER48> Bunch of age-old banalities from a famous narcissist on top of front page.. Is there any HN 2.0?

<comment><USER10> 2.0? You really trotted out that cliche? Ok, I'll one-up you:

2005 called, they want their joke back.

<comment><USER48> Thank you for your reply! We all know you're very productive writer. ^_^

</comment></comment></comment><comment><USER49> The real problem with C++ is that there isn't a fucking split function in the standard library.

<comment><USER40> I donate you one:

       #include <vector>
       #include <string>
       #include <iostream>

       typedef std::vector<std::string> Strings_t;
       Strings_t split(const std::string& string, char onChar)
       {
          Strings_t splitted;
          size_t lastSplit = 0;
          for (size_t i = 0; i < string.size(); ++i) {
    	 if (string[i] == onChar) {
    	    if (lastSplit != i)
    	       splitted.push_back(std::string(string, lastSplit, i - lastSplit));

    	    lastSplit = i + 1;
    	 }
          }

          if (lastSplit != string.size())
    	 splitted.push_back(std::string(string, lastSplit, string.size() - lastSplit));

          return splitted;
       }

       int main()
       {
          Strings_t strs = split("$$qqqq$$$w$$$eee$$a$d$$$$$", '$');
          for (Strings_t::const_iterator s = strs.begin(); s != strs.end(); ++s)
    	 std::cout << *s << "\n";

          return 0;
       }

<comment><USER49> I never said I didn't know where to get one, or to actually write it. In fact, you can do it way simply with getline(). It just always pissed me off when I hack a little something and there is no split.. I then need to either include boost which is huuuuge compared to my 200 lines file.. code it myself, get a snippet from internet.

The point is: in C++, there are so much things.. It's like a fuckload of thousand of features to satisfy everyone. How the fuck can there be no split? Ruby, split, python, split, java, split, php, split, C# split, C++ -your-20-lines-function-which-only-support-splitting-on-a-char-but-not-on-a- string.

<comment><USER40> Well, all these languages are very stringy because they are very weby.

</comment></comment></comment></comment><comment><USER50> Zed is literally the Kimbo Slice of the technical community.

<comment><USER51> Wow, an MMA analogy on this site? Who are Seth Petruzelli, Roy Nelson, and Matt Mitrione then?

<comment><USER52> Donald Knuth is Hélio Gracie

Edsger Dijkstra is Masahiko Kimura

John McCarthy is Yip Man

Paul Graham is Bruce Lee

Steve Jobs is Fedor Emelianenko

Linus Torvalds is Mauricio Rua

Bill Gates is Brock Lesnar

Steve Ballmer is Eric Esch

David Heinemeier Hansson is Anderson Silva

Guido van Rossum is B.J. Penn

Sergey Brin is Antônio Rogério Nogueira

Lawrence Page is Antônio Rodrigo Nogueira

<comment><USER51> That's awesome! I laughed a lot at Steve "Butterbean" Ballmer and the Google brothers! I thought John McCarthy was going to be John McCarthy.

Yukihiro Matsumoto -> Kazushi Sakuraba

Dennis Ritchie, Ken Thompson, Rob Pike -> Royce, Rickson, Renzo Gracie

Joel Spolsky -> Tank Abbot

Bjarne Stroustrup -> Matt Hughes

RM Stallman -> Ken Shamrock

Steve Wozniak -> Mark Coleman

Rasmus Lerdorf -> Jon Fitch

Don Stewart -> Art Jimmerson

</comment></comment></comment></comment><comment><USER53> "They'd have been better off to just invent a new keyword: doesnotfuckingchange and stop there."

And now I have tea to clean off of my monitor and keyboard.</comment>


Show HN: open source congress tracking application - <AUTHOR> http://congresstrack.org/ It's basically a just a mailing list that subscribes you to the votes of your congress members. It's free to sign up and easy to unsubscribe.
I had initially written this as a script and decided to put it behind a web interface so others could use it.
Here is the repo:
https://github.com/bhelx/congress_track/
Needs a mobile responsive layout and will probably have bugs. <comment><USER2> Really cool app, but will it be around? Any plans to monetize it?

<comment><AUTHOR> Thank you. No plans to monetize it. It's been running for about a month and it's fairly low maintenance. I find it really useful myself so I have an incentive to keep it running.

I'm currently only spending a couple dollars a month on the heroku costs but wouldn't mind paying more if people actually found it useful. If the financial burden was ever enough I'd just take donations. I doubt it will get that far though.</comment></comment>


Show HN: IRC for GMail Apps - <AUTHOR> http://chat.alagu.net/

<comment><USER2> I think HipChat is hard to beat in this area. We've been testing it at work, and early thoughts are very positive. They have native (Adobe Air, but much better than what I'm used to), mobile and web clients covered, some IRC-like commands and a cool @mention notification system.

</comment><comment><USER3> It looks like this uses a chat server on alagu.net ([https://github.com/alagu/gmail- irc/blob/master/chrome_extens...](https://github.com/alagu/gmail- irc/blob/master/chrome_extension/script.js#L99)) but presumably you could run your own server as it appears to be a fork of <https://github.com/chrismatthieu/CHATS.iO>.

<comment><AUTHOR> Yes, it is just a modification of <http://chats.io/> running on my domain.

<comment><USER4> I would suggest making it clear to users that the chats run through an external server.

</comment></comment></comment><comment><USER5> > Your data on all websites > Your tabs and browsing activity

Why does the extension need this level of access in Chrome?

</comment><comment><USER6> "IRC" is a bit of a misnomer; it looks like it's web sockets connecting to a custom server, unless I missed something.

<comment><USER7> Sure it's not IRC per se, but it is persistent chat based on topic, much like IRC.

</comment></comment><comment><USER8> I'm not seeing much of a problem being solved here, but the implementation seems pretty nice.

<comment><AUTHOR> I wasn't able to find Skype/IRC like chat-room for my company (gmail) account. So I built this. Hipchat seems to be an option but it doesn't integrate with GMail.

</comment></comment><comment><USER9> I don't get it. What does this do other than move a tool from being a 1st class gui member to relegating it to inside of gmail?

<comment><AUTHOR> \- It saves the trouble of setting up your own irc server & asking your colleagues to log in to irc client everyday.

\- It is inside Gmail and the entire server is specific to your domain. So you could create permanent (or) throw away chat rooms of specific context ( #devteam, #ops, #qa, #yournewfeature)

\- GMail doesn't offer chats on email threads, this is an alternative to it.

<comment><USER9> >asking your colleagues to log in to irc client everyday

So I'll ask them to keep gmail open all the time instead? If only there were a single program that was unquestionably open all the time when they were using their computers that housed other programs. One that, like you do with gmail, could be set up to start a chat client when started. Oh well, I can always dream.

</comment></comment></comment><comment><USER10> I wish this wouldnt need a chrome extension, but otherwise its pretty sweet!

</comment><comment><USER11> With a few more features, that could be a great alternative to campfire.

</comment><comment><USER12> Chrome only? Why not Firefox?</comment>


Why do governments always get Internet policy wrong? - <AUTHOR> http://paulbernal.wordpress.com/2012/04/01/193/

<comment><USER2> Because their motivation is control and their major influence is moneyed lobbyists representing arbitrary interests.</comment>


Dato: Better menu bar clock with calendar and time zones - <AUTHOR> https://sindresorhus.com/dato <comment><USER2> why should i use this over itsycal?

</comment><comment><USER2> $ brew search dato

==> Formulae

mkvalidator

==> Casks

datovka</comment>


King Candy Crushes Developers, The Saga - <AUTHOR> http://www.gemfruit.com/articles/king-candy-crushes-developers-saga/# <comment><USER2> It's a pity King targets Stoic Studio. Their first title (The Banner Saga) is amazing. And I really hope that Stoic Studio will have the resources to finish the trilogy.

The statement by the developers:

"Two years ago, the three of us at Stoic set out to make an epic viking game: The Banner Saga. We did, and people loved it, so we're making another one. _We won't make a viking saga without the word Saga, and we don't appreciate anyone telling us we can't._

King.com claims they're not attempting to prevent us from using The Banner Saga, and yet their legal opposition to our trademark filing remains.

We're humbled by the outpouring of support and honored to have others stand with us for the right to their own Saga. _We just want to make great games._ "

[http://stoicstudio.com/the-banner-saga/](http://stoicstudio.com/the-banner- saga/)

<comment><USER3> The developers' statement is wrong. King is not preventing Stoic from using the name "The Banner Saga." That would be the case if King filed a trademark infringement suit. What they have filed is an opposition to Stoic's application. Thus, what they're doing is trying to keep Stoic from claiming exclusive use of the name "The Banner Saga" in the context of a casual online game.

<comment><USER4> Essentially King are telling Stoic they can use the name, but cannot own it, because it includes the single word "Saga." It's a little unsavory of King to claim ownership of that single word in such a broad context, and the particulars do not sensibly favour their cause.

<comment><USER5> According to grandparent, King is _not_ claiming ownership. They are claiming "those guys can't trademark _Saga_."

Their reasoning is "because we use it in our games and have been," but that's not claiming ownership. If I try to trademark "chicken" and McDonald's objects saying "we have been selling Chicken McNuggets for decades," that is not McDonald's saying "we own the trademark on _Chicken_."

<comment><USER6> So King is using the argument that everybody else is using against them? (saying that they cannot copyright "Candy" and "Saga" due to them already being in wildspread use)

</comment></comment></comment></comment></comment><comment><USER7> From King.com [1]:

"The debate here revolves around Pac-Avoid [...] The game strongly resembles another game called ScamperGhost. The details of the situation are complex, but the bottom line is that we should never have published Pac-Avoid. We have taken the game down from our site, and we apologise for having published it in the first place.

Let me be clear: _This unfortunate situation is an exception to the rule_. King does not clone games, and we do not want anyone cloning our games.

Before we launch any game, we do a thorough search of other games in the marketplace and review relevant trademark filings to ensure that we are not infringing anyone else's IP. We have launched hundreds of games. _Occasionally, we get things wrong_. When we do, we take appropriate action."

I'm pretty sure this is an admission that they cloned the game. We know it, they know it, they haven't outright said "we cloned the game", but this is as good as. Unless I'm misreading it, in which case they should correct that statement.

Given that, it would be interesting to know what legal avenues are open to the original developer now. If another party was willing to provide financial support for a lawsuit, surely it's a slam-dunk?

I think the whole issue of whether or not candy crush can be considered a clone is vastly different; obviously, the core mechanism is pretty much (or exactly) the same as in other games, but that mechanism is very straightforward. And I'm not sure the visuals are so blatantly a rip-off. Moreover, I'm unaware of any evidence from a third-party that has revealed King commissioned them to create a clone.

[1] [http://about.king.com/about/our-approach-to- ip](http://about.king.com/about/our-approach-to-ip)

<comment><USER8> One problem is that you can't really copyright game mechanics, at least in the United States. Games are still protected by IP laws in many ways but it's pretty easy to write a direct clone from scratch without infringing anything.

<comment><USER9> > One problem is that you can't really copyright game mechanics

You can actually _patent_ them[1]:

      A patent was granted to Wizards of the Coast in 1997 for "a novel method
      of game play and game components that in one embodiment are in the
      form of trading cards" that includes claims covering games whose rules
      include many of Magic's elements in combination, including concepts such
      as changing orientation of a game component to indicate use (referred to
      in the Magic and Vampire: The Eternal Struggle rules as "tapping") and
      constructing a deck by selecting cards from a larger pool.[9] The patent
      has aroused criticism from some observers, who believe some of its
      claims to be invalid.[10] In 2003, the patent was an element of a larger
      legal dispute between Wizards of the Coast and Nintendo, regarding trade
      secrets related to Nintendo's Pokémon Trading Card Game. The legal
      action was settled out of court, and its terms were not disclosed.[11]

[1] [http://en.wikipedia.org/wiki/Magic:_The_Gathering#History](http://en.wikipedia.org/wiki/Magic:_The_Gathering#History)

<comment><USER10> There was a period of time when the tap mechanic was used by nearly every collectible card game but they all had their own name for it. The mechanic was the same (rotating the card slightly to show it had been used that turn) which I would have thought was what a patent protected against, rather than protecting the name which would have been copyright.

</comment></comment></comment></comment><comment><USER11> Interesting that this is the same King I remember as King.com. Back in 2009 I was hanging out on the FlashGameLicense irc channel and watching the other dev's business deals.

I'm not sure if I ever met porter but I do remember spending a silly quantity of time talking with the other regulars.

Now one thing I do remember clear was how king.com was BIG. Not AdddictingArcade big but they had polish and felt like a real company. With the smaller flash sites you could tell it was all one person. King.com (Back then it was always .com) had people with job titles and pockets to back the biggest of games.

Now this is only a faint memory but I had the impression King.com was cutthroat. They were driven and were aggressive in games acquisition.

I might be biased, I might have known him, but I belief porter. Not even sure I blame him, there was a ton of cloning in the flash world back then and the flash portal relationships were always mysterious. It would be easy to fall for a kind guy from the portal spinning a story.

<comment><USER12> Yea I had a similar issue when I used to hang out in that IRC channel as well when I sold flash games.

I work AAA development now, but its weird to see porter and king talking about these things that went down back when this community was full of lovable little underdogs.

</comment></comment><comment><AUTHOR> Google cache: [http://webcache.googleusercontent.com/search?safe=off&hl=en&...](http://webcache.googleusercontent.com/search?safe=off&hl=en&sclient=psy- ab&q=cache%3Ahttp%3A%2F%2Fwww.gemfruit.com%2Farticles%2Fking-candy-crushes- developers-saga&oq=cache%3Ahttp%3A%2F%2Fwww.gemfruit.com%2Farticles%2Fking- candy-crushes-developers- saga&gs_l=serp.3...3385.5959.0.6188.8.131.52.0.0.0.74.5188.8.131.52....1...1c.1.32.psy- ab..12.0.0.wH9f0k6X2-E&pbx=1)

<comment><USER13> In related news, "Hacker News Crushes gemfruit.com, The Saga"

</comment></comment><comment><USER14> "This site is hosted by HostGator!

Build your website today and get 20% off! Coupon code: "PAGE500"

CLICK HERE TO GET STARTED"

....not likely haha!

edit: okay, I've read the article now and the whole thing sounds pretty shady, yeah. I think what they really need to take away from this is that they should tell the truth when someone calls them out, and not just lie. Because then... you'll get called out twice. Seriously, I can feel a PR carcrash coming on if they just keep telling lies (in broken english).

<comment><USER15> Tell the truth? What are they going to say, "Yes, we purposefully cloned this game."? Lying about it certainly isn't helping, but I don't think being truthful here would be help them.

<comment><USER7> Actually, if they owned up, explained how they would do things differently in future, and then followed through on that, I might be prepared to be a customer of theirs again in future.

</comment></comment></comment><comment><USER16> I am not knowledgeable on all of King's negative practices, but as ridiculous as their trademark pursuit of 'candy' and others sounds, the only question I think they are asking is, "How will it affect our sales?". Otherwise, why go through this fiasco by trying to bully the 'little guys'? In their mind all other developers and their sympathizers combined won't be a match to those facebook users who click and purchase 'Boosters'.

</comment><comment><USER17> What's next? Trademarking "Apple"?

<comment><USER18> [https://www.apple.com/legal/intellectual- property/trademark/...](https://www.apple.com/legal/intellectual- property/trademark/appletmlist.html)

Done.

<comment><USER19> I'm pretty sure the GP was tongue-in-cheek, but don't forget about this: [http://en.wikipedia.org/wiki/Apple_Corps_v_Apple_Computer](http://en.wikipedia.org/wiki/Apple_Corps_v_Apple_Computer)

</comment></comment></comment><comment><USER20> Error 505....

<comment><USER21> 505? That's exotic ..

<comment><USER22> Version not supported ^o</comment></comment></comment>


Appeals court keeps alive the never-ending Linux case, SCO v. IBM - <AUTHOR> https://arstechnica.com/tech-policy/2017/10/appeals-court-keeps-alive-the-never-ending-linux-case-sco-v-ibm/ <comment><USER2> For those who care, here's the actual ruling: [https://www.ca10.uscourts.gov/opinions/16/16-4040.pdf](https://www.ca10.uscourts.gov/opinions/16/16-4040.pdf) (Hat tip to swmech on GroktheLaw, who pointed me to this.)

As I read it (but IANAL), the ruling killed two things. SCO can't amend their complaint yet again. (Or, more precisely, the court ruled correctly in forbidding SCO permission to amend the complaint in October 2004.) And SCO's claim of IBM interfering with SCO's business relationships is also dead. (Or mostly so - the appeals court split 2 to 1 on that claim, so SCO _could_ decide to appeal it _en banc_ , that is, to the full appeals court rather than to a 3-judge panel.)

The claim that got kicked back to the district court was the claim of misappropriation of code. This is code that SCO (or the original Santa Cruz) wrote, not the original Unix code - Novell owns the copyright to that. Also, if I understand correctly, the claim is that this code wound up in AIX, _not_ in Linux. Linux is in the clear.

Note well that this does _not_ mean that SCO's claims have substance. It just means that this one claim has enough of a chance that it actually has to go to trial, not just be dismissed by summary judgment.

</comment><comment><USER3> SCO DELENDA EST.</comment>


TensorFlow as a Molecular Dynamics Engine - <AUTHOR> https://www.youtube.com/watch?v=Qn2lYP9aadg&feature=youtu.be <comment><USER2> I was just wondering how hard it would be to do this.</comment>