How an undocumented immigrant from Mexico became a star at Goldman Sachs - <AUTHOR> https://www.bloomberg.com/news/articles/2015-02-25/how-an-undocumented-immigrant-from-mexico-became-a-star-at-goldman-sachs <comment><USER2> Congrats to her for making it in the US!

However, it would have been exceptionally easy to get the required visas. Once she was accepted into university, she can apply for an F student visa. It's practically guaranteed for this visa to be granted -- there's no limit to the number of admitted foreign students in the US.

Then, with good grades and an acceptance to Goldman Sachs (which she got), she would have had little trouble getting a work visa. I know plenty of people who have done that.

It's not necessary to go through the 10+ year process to become a _citizen_ in order to be able to study and work in the US. And getting the visas would have been far less stressful and allowed her to travel to see family in Mexico.

<comment><USER3> You are still bound to the 65,000 visa cap of H1B. Nothing to do with skills (sadly).

For any non immigration visa you have to prove you will leave the country after you finish school (= visa expires). If she is here illegally that's hard to prove. You also have to prove you can financially sustain yourself here.

</comment></comment><comment><USER4> She committed identity theft or fraud and this should be celebrated? "She bought fake papers."

That's a crime.

How is she get SEC licenses as someone who has admitted to fraud? Why would Goldman not catch her fraud during their due diligence when hiring her? She's being trusted with financial instruments as someone with a flagrant disregard for the law?

She should be deported. If she's any good, she can trade derivatives on Goldman's Mexico City desk.

For those here that would defend her -- are you suggesting we only follow laws we agree with?

<comment><USER5> > are you suggesting we only follow laws we agree with?

By blindly following all laws we would still have slavery; holocaust would have become acceptable; etc...

We should follow ethics, not some texts.

<comment><USER6> That is a dangerous attitude for a society. If we disagree with a law, we should change it. If we don't we breed a disregard for all laws, not just the ones we disagree with.

<comment><USER5> > If we disagree with a law, we should change it.

Agree, but that doesn't happen instantly. Changes come time by time, after occasional breaking unethical laws (while they are still active) - e.g. unlawful freeing of slaves, helping Jews during Nazi regime, etc... These are all examples of breaking unethical laws, which should happen and will happen.

</comment></comment></comment></comment><comment><USER7> An undocumented immigrant? So she was legally in the country, but with paperwork incomplete? Or a refugee?

Oh no, they mean illegal immigrant - in this case, someone who violated the law to make more money. Got it.

Every time I see the term "undocumented immigrant" I am horrified at how easily people will thoughtlessly toss away the rule of law to serve their own self-indulgent empathy.

Mexico today has more GDP/capita than New Zealand did in 1990. There's no justification for encouraging the human trafficking and dangerous cross-desert trips (often ending in death or rape or robbery) this way. Immigration should be orderly and safe.

If someone wants everybody on Earth to have free access to America, they should campaign to make that the law, and face the real consequences. This "let it be illegal but keep the border-jumpers as our empathy pets" stuff is self-indulgent and self-defeating on so many levels. Ugh.

<comment><USER8> The mood affiliation is strong here... do you feel as strongly about the rule of law when it comes to, I don't know, medical marihuana (the smoking of which is a federal crime, since it's a schedule I drug).

The analogy is not entirely facetious: immigration is--like pot--a crime with real economic benefit, and where any negative externalities are exacerbated by knee-jerk prohibition. Take as an example wage depression due to immigration. The less that undocumented immigrants can report unfair labor practices, the more they are likely to be exploited for extra-depressive wages.

The same dynamic is present, for example, when it comes to prostitution (also a crime). If you punish the prostitute instead of the john, prostitutes are more likely to be abused, exacerbating the negative consequences of prostitution.

(Again, the analogy goes deeper: the answer to immigration is the same as prostitution or drugs or whatever: _tax the externalities_. If you really think that some honduran woman scrubbing toilets for less than minimum wage at a motel 6 is "bad for america", then you should jus _tax her_).

One other comment: you seem quite upset about the use of the phrase "undocumented immigrant" instead of "illegal." There are Really Good reasons why the first term is preferred:

1\. Not all undocumented immigrants are criminals. The only _criminal_ act is crossing the border without permission. Overstaying a visa, or coming here as a child, is emphatically not _criminal_. Yes, it's a deportable condition, but not a criminal one. Undocumented seems to be a better description of that situation--and unless someone has been tried, how do you know? 2\. Semantics matter. Undocumented immigrants have rights, just like all people in America. To refer to a human as as being "illegal" anchors the situation in a way which makes it easier to treat them in a way where those rights are violated, and _no one cares_. For example, _alleged_ illegal immigrants are not offered counsel in immigration courts. Flagrant violation of their sixth amendment rights. It somehow seems to be ok in the public consciousness because they are "illegal."

I'm not advocating for open borders, or for amnesty or whatever. I'm just asking you to think, critically, about the situation, and leave your mood affiliation aside.

<comment><USER4> Someone working without a US social security number is working illegally. Someone failing to pay income taxes is committing a crime. Filing taxes under an incorrect social security number is also a crime.

Unless the "undocumented" are actually not doing anything, they are most likely committing many other crimes including tax fraud, identity theft, tax evasion.

"Undocumented" is a euphemism. Illegal alien is the correct legal term. And let's stop using "immigrant" to refer to illegal aliens. That is an insult to the thousands of legal immigrants.

Undocumented immigrant is like calling a drug dealer an unlicensed pharmacist. Let's not legitimize illegal immigration by wrapping it into benign terminology.

<comment><USER9> How do you figure that undocumented immigrants don't pay taxes? Since employers are required to withhold said taxes in paychecks.

In any case, let's use some of this energy to making immigration policy that works and we'll remove all the undocumented immigrants.

<comment><USER10> I agree wholeheartedly that we should reform immigration policy.

Personally I don't care if the undocumented immigrants are paying taxes or not. But as a former legal immigrant and now naturalized citizen, I would really appreciate the government and civil rights advocates to focus more on the legal immigrants and less on the undocumented.

I have a friend with PhD degree in biochemistry on F1 visa, and now on OPT. He's been here for probably 9 or 10 years, starting from undergraduate to PhD program. It's difficult to not view DACA with distain when he gets less protection and privileges than those that has not gone through the legal process. Especially with CA offering (not sure if still just talks) in-state tuition while he has to pay for full out-of-state, not allowed to work (with limited exception to working on campus), and only 1 year of OPT and playing the H1-B lottery for work authorization.

I would support DACA and similar programs iff all legal immigrants currently on the wait list gets precedence over undocumented immigrants. My simple proposal was to grant whatever privilege the undocumented were to receive to those on the wait list to empty it, and place the undocumented immigrants into the now empty waitlist, with the understanding that they star with blank slate to go through the legal way, but may not stay in the US if the legal immigration path they are seeking doesn't allow them to stay in the US while pursuing legal residence.</comment></comment></comment></comment></comment>


Ask HN: How do you teach kids the basic finance skills? - <AUTHOR> I have been wondering about this for a while. I grew up without any kind of financial education. To be honest, in my 20s, when I moved out of my parents' house, I didn't even know what exactly is necessary to pay the bills. So, what resources would you suggest to teach kids basic finance skills? I'm thinking about things like paying taxes/bills, a little bit about investing, how to not get screwed by student loans, and similar. <comment><USER2> Assuming you're now reasonably confident in your own financial literacy:

Talk to them. Give them chances to practice. Show them examples. Don't shelter them from the fact that you spend/save/invest money or from how you spend/save/invest.

Give them an allowance and a class of purchases that can be bought only with the allowance (Toys? Sweets?) Expand the allowance and the class of purchases as they get older and take responsibility for things like choosing their own clothing. Help them develop a budget for saving and spending.

Reward them for saving. Pay interest on their savings. When they're old enough, demonstrate the power of compound interest. Both working in their favor and working against them. (My parents once demonstrated this using cheerios instead of money.)

Have them sit with you as you pay your bills. Explain how they work, why you pay them on time, etc.

Invest a few hundred or a few thousand dollars into some savings bonds and index funds in their name. Let them monitor but not manage the money until they reach adulthood. Explain the investments to them and why you chose those particular ones.

If they're reasonably mature and reliable, get them a co-signed credit card at some point in high school, to be used for emergencies and pre-approved classes of purchases only. If you're concerned, ask the bank to put a low credit limit on it.

Have the kid pay off (with money you provide, if you're not comfortable giving them that much in allowance) or sit with you as you pay off the full bill every month. Show them how much more they would have to pay if they paid it late or paid only the minimum balance. This teaches them good habits; and having their name on the card helps them establish a credit score so they can get credit immediately upon reaching adulthood.

Show them the tax forms you send in for them every year. Explain what taxes are for and the basics of things like deductions, pre-tax expenses, tax free accounts, pre-tax and post-tax income, withholding, estimated taxes, and the like. If you file their taxes yourself instead of getting third party help, have them sit with you as you do it; later, have them do it themselves under your supervision.

Talk to them about the financial decisions you have to make (Car loans? Mortgages? Large purchases? Retirement savings?) and how you make them. Talk to them about the good and bad decisions other people make - show them news articles for examples.

Once the kid's savings reach a couple hundred dollars, get them a co-signed bank account. Have them do the math to balance the checkbook, old fashioned as that may be. When they reach adulthood, turn it over to them fully. Also help them choose and sign up for a credit card of their very own.

Show them examples of why they should never use a financial instrument they don't fully understand. Encourage them even as adults to turn to you if they have trouble understanding a financial instrument or making a financial decision.</comment>


Linking to text fragments in web pages - <AUTHOR> https://oleb.net/2020/text-fragments/ <comment><USER2> In a Chrome dominated browser market, how much choice do the other browsers have?</comment>


Aaron's Law Reintroduced: Computer Fraud and Abuse Act Didn't Fix Itself - <AUTHOR> https://www.eff.org/deeplinks/2015/04/aarons-law-reintroduced-cfaa-didnt-fix-itself

<comment><USER2> What part of this bill would have made it harder to put Swartz in the bind he ended up with? His offenses weren't committed for financial gain. The market value of the information he took --- easily established from JSTOR's fee structure --- exceeded $5000. The tweaks to the definition of "unauthorized access" seem almost shrink-wrapped around what Swartz was actually accused of doing. And "Aaron's Law" doesn't modify the Wire Fraud statute, which Swartz was also charged under.

There needs to be an "Aaron's Law", but it should actually fix the core problem with the CFAA, which is that sentences and offense severity are graded by imputed damages, rather than actual financial gain.

 _The text of "Aaron's Law", the CFAA, and the Swartz superseding indictment are here:_

[https://www.congress.gov/bill/113th-congress/house- bill/2454...](https://www.congress.gov/bill/113th-congress/house- bill/2454/text)

[https://www.law.cornell.edu/uscode/text/18/1030](https://www.law.cornell.edu/uscode/text/18/1030)

[http://ia600504.us.archive.org/29/items/gov.uscourts.mad.137...](http://ia600504.us.archive.org/29/items/gov.uscourts.mad.137971/gov.uscourts.mad.137971.53.0.pdf)

<comment><USER3> Why should sentences be graded by financial gain instead of damages? Wouldn't that lead to someone who wrecks a whole network just for kicks and notoriety to be less punished than someone who, say, earns a $50 credit by abusing a race condition on some HTTP server?

<comment><USER4> Because it's usually potential damage instead of actual damage.

<comment><USER5> Then let's focus on making it actual damage rather than potential damage. Whether financial gain is considered is a separate issue.

<comment><USER4> It would be great, but in most computer fraud cases, actual damage is almost impossible to quantify. (or you end up with stupidity like "$5 per song, so damages sum up to 2 millions"..)

</comment></comment></comment></comment></comment><comment><USER6> I'm cynical about it ever moving forward.

These acts often get introduced just so the sponsors can say they introduced a bill.

(This is why, for example, people introduce bills right before going home to stump, knowing it will achieve nothing, but enabling them to say "Because i care so much about you guys, i just introduced a bill in congress to fix this!")

<comment><USER7> Would you rather them not be introduced at all?

It's one thing to be cynical, and it's another to be apathetic. This bill has a low chance of passing, but it will get some people talking about the issue at hand. There's a slim possibility that if they keep going, future versions will see more support.

It's unlikely that positive change can be made without these initial small steps (or failures).

<comment><USER8> Introducing a bill that you have no intention of passing (or do not expect to pass) is like submitting a pull request that you know will get rejected.

It would be much better to do your job and, instead of submitting something that will get rejected for the sake of submitting it, spend the time to draft a solution that has a chance of passing.

<comment><USER9> Passing laws requires getting other people to vote on them, which in practice requires mobilizing groups interested in the topic, which in turn requires getting attention on the issue, which in turn is often served by introducing bills on the issue, even if those don't pass.

So, even if one views the job of a legislator as "passing laws", introducing bills that are not expected to pass as a means of raising awareness, in order that bills on the issue may be more viable to pass in the future, _is_ a legislator doing their job.

<comment><USER6> "Passing laws requires getting other people to vote on them, which in practice requires mobilizing groups interested in the topic, which in turn requires getting attention on the issue, which in turn is often served by introducing bills on the issue, even if those don't pass."

Actually, in practice, it happens exactly the other way around.

IE you get support first, then introduce the bill.

</comment></comment></comment></comment></comment><comment><USER10> Of course it didn't fix itself. "The only thing necessary for the triumph of evil is for good men to do nothing." -Edmund Burke

Too many of us are doing nothing. We need to do more. We should actively demand that our representatives fix this problem, or vote in people who will. I'm doing this. Please join me.

<comment><USER11> Because you vote for somebody who says he will fix something doesn't mean he will... they need to be held accountable somehow... Obama is an example of this.

<comment><USER12> Check out Demoex, [http://en.wikipedia.org/wiki/Demoex](http://en.wikipedia.org/wiki/Demoex), where each bill is voted on by all residents, the party's representatives must vote for the corresponding bill in the same proportion as the votes received for each bill. This is how you can sneak direct democracy into a representative democracy through the front door.

<comment><USER13> Purely direct democracy does not work. Representative democracy is needed because you can't possibly design a system where everyone has to be bothered to assess every new law proposal. Most of the bills are about subjects people know nothing about. It takes time to research the subject, gather expert opinion and then emit a well grounded vote. That's why you need to assign a group of people full-time to the task of assessing new bills, aka representative democracy.

In direct democracy, you either have populist votes or non-participation. It is inescapable.

The fact that the current system is broken is no excuse to move to one that is flawed from the start. We now have the technological means for an evolution of representative democracy: Liquid Democracy, or delegative democracy. It's representative democracy with "continuous elections". It might work (better).

<comment><USER12> You could use the same method as demoex to achieve that - take the idea of "proxies" from shareholder votes. Anyone and pick anyone as a proxy. Now all you've got to solve is the problem of cycles.</comment></comment></comment></comment></comment>


Ask HN: How do you read HN without "mark as read" extension? - <AUTHOR>

I've been using the Chrome extension to mark all entries on the news page "as read". This means no energy is wasted looking at the entire list of entries trying to find new ones.
This addon has stopped working a few days ago and I can't find a replacement.
How do you guys read Hackernews? Am I missing something? Do you "manually" scan the list for new entries every time you visit?
Thanks for your time. <comment><USER2> If I'm on the same machine - the links are gray so I just skip them.

Of course, coming home after work means I might just open same links I have opened at work.

Though, I'm not overcomplicating it all.

<comment><AUTHOR> So you open every single link? I read the headlines, open the ones I want to read and then pressing the "mark all as read" was a total blessing because next time I open the page I only look at the "non grey" links.

I guess I could just open all the links but it doesn't seem ideal.

<comment><USER3> I was having the same problem, so I just fixed it, and sent a pull request to the original author. In the meantime, if you don't want to wait for the author, you can just use the temporary extension I published:

[https://github.com/guiambros/HNMarkAllRead](https://github.com/guiambros/HNMarkAllRead)

[https://chrome.google.com/webstore/detail/hacker-news- mark-a...](https://chrome.google.com/webstore/detail/hacker-news-mark-all- read/fghfahcbhpdeeaaofcefaoodmfejieok?hl=en)

<comment><AUTHOR> I didn't even notice this. It works great and makes me a very happy camper :)

</comment></comment></comment></comment><comment><USER4> Do we know why the addon stopped working? It doesn't seem to be linked to a browser update.

On Firefox, I can middle-click on articles I don't want to read and delete all the tabs in a row. They appear in gray next time I visit HN. It works but it is cumbersome...

It may be possible to write a script to save the current page source code, extract all the links it contains, send a "GET" to them and hope they will appear in grey in HN, as if we actually clicked on them. I would like to be able to do it and share it.

(edit) just saw iisbum dit it ;)

</comment><comment><USER5> I just read it once a day — because I have shit to do. So revisiting old stories is rarely a problem.

</comment><comment><USER6> I wrote my own app for doing this, but not just for hacker news, also for designers news, product hunt and few other websites that provide an API.

</comment><comment><USER7> I did [http://www.appblit.com/hn](http://www.appblit.com/hn) but I usually read HN on my iphone using iHackerNews.com

</comment><comment><USER8> I read it primarily on my iPhone and the app has this built in.

<comment><USER9> Which app?</comment></comment>


Where the Maltese language comes from - <AUTHOR> http://www.economist.com/blogs/economist-explains/2015/11/economist-explains-16?fsrc=scn/tw/te/bl/ed/wherethemalteselanguagecomesfrom <comment><USER2> Maltese sounds like a pissed off Italian swearing at you in Arabic.

</comment><comment><USER3> IT MAY seem surprising that a language written in Cyrillic is an official language of the European Union.</comment>


Ask HN: Who is firing? (April 2017) - <AUTHOR> Question in the title.
Post any companies that are having layoffs, mass firings, unusual churn, etc. If possible, please identify the company or as much specifics so you can help others in the community.
Other valid discussions include: The Tech Bubble, people leaving Uber, H1B visas, and the SF housing crisis. <comment><USER2> Zozi laid off 40% of their staff of ~100 last week: [https://techcrunch.com/2017/04/01/zozis-ousted-ceo-sues- boar...](https://techcrunch.com/2017/04/01/zozis-ousted-ceo-sues-board- following-last-weeks-layoffs/)

</comment><comment><USER3> Probably not a good hacker news topic, but it would be nice to have a website that documented health of companies/industry. I know enough people who've been laid off from tech startups, and I think the general glow of them is fading with a lot of people who've worked hard the last five years without much to show for it except some good stories. It's be nice to honestly cover both sides of the growth/decline cycle.

</comment><comment><USER4> Durham's Windsor Circle cuts 46% of staff in strategy pivot... > [http://wraltechwire.com/windsor-circle-s-ceo-on-pivot- layoff...](http://wraltechwire.com/windsor-circle-s-ceo-on-pivot-layoffs-buck- stops-with-me-/16601424/)

</comment><comment><USER5> Akamai is firing people from all of its locations.

</comment><comment><USER6> Why are threads like this allowed on HN?

Surely joke threads like this, intending to rip-off and poke fun at "Who's Hiring" threads are against HN guidelines, no?

Does the community actually find these threads useful or are they mainly a way for people to collect upboats?

<comment><USER7> Honestly, I think something like this is a good idea.

The fact that it is even here and getting up votes should tell you how the members of HN are feeling about prospects right now.

To borrow from the magic 8ball some of us keep getting "outlook not good"</comment></comment>


Ask HN: Migrating a large codebase from JavaScript to TypeScript - <AUTHOR> We are planning to migrate a massive JavaScript codebase to TypeScript. I was wondering if anyone had done the same and had tips, experiences, lessons etc? <comment><USER2> I have written a few words about various strategies for migrating. Maybe it's helpful: [https://exploringjs.com/tackling-ts/ch_migrating-to- typescri...](https://exploringjs.com/tackling-ts/ch_migrating-to- typescript.html)

<comment><AUTHOR> That's incredibly helpful. Thank you Guillermo.</comment></comment>


Show HN: EmuCast – a perfect video meeting tool for remote and distributed teams - <AUTHOR> https://www.emucast.com <comment><AUTHOR> Hello HN - I'm Sean a co-founder at EmuCast.

Quick history: At my last company we would 'work from home' a few days a week and we realized legacy video meetings tools were still cumbersome to use and didn't cater for remote working.

As Dev's we thought that's not good enough. We wanted a lite-weight instant video meeting tool for our agile teams which didn't stop us from doing other tasks in parallel to having a meeting.

We decided to setup a new tech startup, and so EmuCast is born.

Hit me up with any questions or feedback. We have a FREE option to allow you to get started.</comment>


In memory of chicagocrime.org - <AUTHOR> http://www.holovaty.com/blog/archive/2008/01/31/0102 <comment><USER2> I have to wonder if it's not just a coincidence that he's not only shutting down chicagocrime.org at the same as he's launching his new, related company everyblock.com, but also redirecting all traffic to the new site...

Anyway, it was a cool site, and it inspired me to write something similar (though less elegant, and currently not updated) for my university during a 24 programming contest a couple years ago:

<http://toobs.tlrobinson.net/></comment>


New Research on Startup Growth - <AUTHOR> http://fivethirtyeight.com/features/the-next-amazon-or-apple-or-ge-is-probably-failing-right-now/ <comment><USER2> So the research seems to have identified:

(1) A set of behaviors which companies seeking high growth engage in, and which high growth tends not to occur without,

(2) The fact that even with fewer _total_ startups, more startups are engaging in these practices,

(3) The fact that startups that engage in these practices are growing less likely to actually achieve high growth.

(Given the actual behaviors identified, it seems to be the kind of thing that experienced and institutional investors will demand before investing, and its quite likely that what they've identified is that knowledge of these demands is better distributed and more businesses are engaging in them and seeking -- and receiving -- institutional investment, but that those behaviors, while they are still key filters/demands used by institutional investors, are -- perhaps because _everyone_ knows them now -- no longer particularly effective filters, they may still be useful and necessary, and there absence may still indicate failure, but their presence is getting weaker as a signal of potential success. Which isn't surprising, they are easy enough to do once you identify that people are looking at them as signals, so they are no longer indicators of particular sophistication on the part of founders.)

<comment><USER3> (I'm the author of the linked article.) At the margin, it's plausible that the effect you're describing is having an impact. But the real distinction the researchers are making is between companies that are looking to expand and those that were always intended to be small businesses. They intentionally avoided an overdetermined model ("Companies that rhyme with 'Gamma-zon' always grow huge!") and chose attributes that more generally signal the intention to grow.

<comment><USER4> Thanks for joining us. What reception has the research cited received among economists? Not being one myself, I'm not sure if I'm reading something widely accepted, an innovative new idea, something untested or even fringe. I lack the ability to distinguish between those things myself.

(Also, are you an economist? FiveThirtyEight's bio of you is pretty sparse.)

It's great to find some sophisticated analysis and content on the web, rather than more talking heads. Thanks for writing the article!

<comment><USER3> I'm a journalist, not an economist, although these days my role is probably a bit in between the two. (I have the luxury of digging a lot deeper than your typical online journalist.)

This research is still new, so there's no clear consensus yet. But so far the reception has been positive. The paper tries to get at a core question that's bedeviled economics recently: How is it possible that startups could be declining, given everything happening in SV? This is probably the most sophisticated answer so far. But it doesn't mean it's 100% correct.

</comment></comment></comment></comment><comment><USER5> We changed the linkbait title to something anodyne, but if anyone can suggests a more accurate and neutral title, we'd appreciate it.

<comment><USER6> Can you describe what the current policy on titles is? Are you pro-anodyne?

<comment><USER5> I meant "anodyne" not as a good thing but as "the best we can come up with for now", i.e. at least it wouldn't provoke a big argument about linkbait. That's why I asked readers to suggest something better. Nobody did, so maybe it was just hard.

What the HN guidelines say about titles has been the same for years:

      Please use the original title unless it is misleading or linkbait.

We deliberately avoid having detailed policies, but in this case we can derive a few corollaries. What we want is the opposite of what we don't want:

      1a. A good title is accurate and netural.

The reason for preferring the original title is to let the text speak for itself, so:

      1b. When changing a title, try to find representative language
          from the article, rather than making something up.

And since one big reason for the guideline is to minimize bikeshed-style complaining about titles:

      1c. The best way to comment that a title is bad is to suggest a better one.

</comment></comment></comment><comment><USER4> There's a narrative about new businesses and startups that politicians and pundits in the U.S. like to tell.

It's a magic wand that creates jobs and economic activity without any public policy or investment - it solves problems without any effort on anyone's part - heck, you don't even need to go to college, they'll tell you, so we can cut education funding too.

It's also appeals to the idea of rugged individualism.

Unfortunately, the world doesn't work that way. I'm willing to bet that the next big Silicon Valley success won't be founded by a minority person who grew up in poverty, but by a white male, probably college educated, from a middle- class or wealthier background. Most other people don't have access to these opportunities.

Also, the idea promotes the 'gig economy', an unstable, poor-paying alternative to real employment.</comment>


DevOps: From Unicorns to Horses - <AUTHOR> http://www.amplifypartners.com/interviews/devops-from-unicorns-to-horses/ <comment><USER2> So, I think that the article didn't strongly address what DevOps actually means. DevOps has come to mean a position on a team as opposed to an ideology like it is at the Google's of the world.

My team recently wrote a blog post about this: [https://medium.com/@mustwin/postops- devops-7e44d2262385](https://medium.com/@mustwin/postops-devops-7e44d2262385)

<comment><USER3> I find it a little strange that your blog post doesn't mention the term "continuous delivery". That's what many of us call what you call "devops". And yes, I and many others consider "devops" one of the key roles in a continuous delivery methodology.

<comment><USER2> I think we touched on that in "Automated Deployment" \-- I don't actually think that continuous delivery is core to the PostOps manifesto, but enabling it is part of the core manifesto. It's all about lowering the opportunity cost for development, and deployment -- whether engineers choose to leverage this is up to them.</comment></comment></comment>


Comprehensive Cheat Sheet for C Developers - <AUTHOR> http://www.cheatography.com/ashlyn-black/cheat-sheets/c/

<comment><USER2> This list really just scratches the surface of the standard C libraries and C syntax. You can't really call it comprehensive if it's missing something as fundamental as memcpy(). As a truly comprehensive reference for serious C programmers, I'd recommend this book:

 _C: A Reference Manual_ , by Harbison and Steele

[http://www.amazon.com/Reference-Manual-5th- Edition/dp/013089...](http://www.amazon.com/Reference-Manual-5th- Edition/dp/013089592X)

(That's the same Guy Steele who's known for his work on the Common Lisp specification. He's a man of many talents...)</comment>


If you split fundraising into 12 steps, development is step 7 - <AUTHOR> http://visual.ly/how-raise-money-your-startup

<comment><USER2> For most start-ups, much of this should apply if you are going for funding or not.</comment>


Show HN: 2020: New Ideas in Programming - <AUTHOR> This next Saturday (Dec 10) at 10am at HanaHaus in Palo Alto, we'll have a special meeting of 2020 with two presentations:
Andrey Fedorov: "A Small Matter of Programming: Then And Now"
David Broderick: "Text Is For Novels: Programming In Data, Not Text" <comment><AUTHOR> For more information: [http://2020salon.blogspot.com](http://2020salon.blogspot.com)

Or write to me (email in profile) if you want to join the Slack discussion.

I understand that this is SF-specific, so if you can't make it, let me know and I can try to get a video of the discussion to you.</comment>


Ask HN: Best SF Bay Area office for a startup? - <AUTHOR>

Planning to quit big co and start my own.
Which area is the true "hub" for startups? Near Stanford?
I saw Plug and Play Tech and 2 Regus offices - both quite expensive (3x the price of a similar room in Redwood City). Is there a better pick? Different area?
The startup is more like Intuit and we have the first customer who would pay once the app is working. There's a chance for investment in a few months. <comment><USER2> Mountain View is cheaper and has quite a lot of startups.

Palo Alto is a nicer area, still destraction free and full of great startups. (Flipboard, Quora, Pinterest, Stripe, Color, Shazam, etc).

You'll still be traveling to SF quite a lot most likely so The Mission and SoMa are places to look in that direction. A lot more startups are here.

</comment><comment><AUTHOR> For some reasons these questions don't attract much attention:

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

</comment><comment><USER3> Regus in Mountain View is nice -- many places nearby within walking distance.</comment>


Programming language expert != programming expert - <AUTHOR> http://shaungallagher.svbtle.com/programming-language-expert-programming-expert

<comment><USER2> The title is backwards (or has side effects). I was about to shudder when I saw the HN title!!!

Programming language expert != programming expert.

<comment><USER3> I was excited because I thought I was going to read a novel argument, but no, it's the same opinion everyone else holds. :)

<comment><USER4> I frequently find that the value I get from HN is from comments, rather than the actual posts.

</comment></comment></comment><comment><USER4> So William Safire != James Joyce.

There's some truth to this idea but it's much weaker in the proglang domain, I think. The problem is that, unlike innate faculties like natural language, in formalized systems like math, proglang proficiency _is_ highly correlated with being creative. The Faulkner-Hemingway example doesn't quite work in math (Leaving aside exceptional prodigies like Ramanujan).

As a side thought, can I add that I abasolutely detest Hemingway's bombastic, macho personality. His interaction with Fitzgerald was famously appalling, quite different from the Woody Allen's nostalgic characterization.

</comment><comment><USER5> I love the comment about RGB to grayscale... I don't have any experience in this type of work but it was pretty obvious to me that you can't divide by 3. That would mean it doesn't matter what value you give each color...Red would be the same as Green and Blue... Who would ever think this?

<comment><USER6> What he really means is take an average R=B=G=((R+B+G)/3), when you really need to convert it to YUV and use only the Y channel.</comment></comment>


Rr 4.4.0 Released - <AUTHOR> http://robert.ocallahan.org/2016/10/rr-440-released.html?m=1 <comment><USER2> rr is a lightweight tool for recording and replaying execution of applications (trees of processes and threads). More information about the project, including instructions on how to install, run, and build rr, is at [http://rr- project.org](http://rr-project.org).</comment>


Rethinking GPS: Engineering Next-Gen Location at Uber - <AUTHOR> https://eng.uber.com/rethinking-gps/ <comment><USER2> Previous discussion: [https://news.ycombinator.com/item?id=16887276](https://news.ycombinator.com/item?id=16887276)

</comment><comment><USER3> A big problem with Uber/Lyft is that drivers take all these fancy calculated positions and plug them into a standard navigation app, which can direct the driver to the completely wrong side of a large block. (Addresses are not very granular in a city.) It's interesting to me why Uber/Lyft allow this.

<comment><USER4> There's also the fact that Google Map data is just flat out wrong in many places in the middle of the country, it says my house is my neighbor's house and so on down the block, everyone is off by one.

I have tried to contact Google and get this fixed at least a dozen times over the past decade, always ignored. They used to have a whole community mapping thing where you could submit issues with the map, but those apparently are ignored.

It's a real nightmare trying to convince the insurance company and local government that google is wrong, love how that's my responsibility too.

<comment><USER5> It's funny, because out of the things that people complain about in modern navigation apps, "showing the right user location" is usually not that high on the list. There are so many other more pressing problems to solve. Map data is often inaccurate, bordering on unusable in less populated areas, and map data providers are colossally slow to update and correct their data. Navigation app UI is still surprisingly bad, even though this has been an area of fierce competition for at least a decade. Geocoding and reverse geocoding is still not perfect, but it's dependent on good map data. Accurate traffic is hard. Routing is pretty much solved but again, dependent on good map and traffic data, so it's perceived as needing improvement. Business search is hard because the underlying data changes so often, and for most nav system vendors, is not their core business so they ship something crappy. Most of these things are not improved by getting slightly better user position, so it's surprising Uber is investing so much into this research.

</comment></comment></comment><comment><USER6> > The use of particle filters necessitates a level of server affinity. Each > new request to our service must be routed to the same back-end server for > processing in order to update the correct particle filter.

Was implementing this on the client device considered? What were the motivations for this design?

<comment><USER5> My guess is a combination of the following:

1\. Building 3D data is too large or inconvenient to store on the device.

2\. Continuously downloading/caching small localized chunks of that data would result in unacceptable use of bandwidth for customers with limited data plans.

3\. Their implementation of the algorithm may be CPU inefficient and contribute to excessive battery drain.

4\. (cynical) This gives them yet another excuse to be sucking up and storing 1Hz precise user location data, potentially to use for other reasons...

</comment></comment><comment><USER7> Why do they need a 3d map to begin with?

Following their example of which side of the canyon the phone is, given the snr of sat b,c,d they can guess the side of the street.

If it's possible then being shadowed by an actual building, a construction site or a delivery truck amounts to the same result (but I guess the snr would vary between these 3 situations). Hence, why the need for the 3d model?

<comment><USER8> Long term thinking?

[https://www.wired.com/story/uber-unveils-flying- taxi/](https://www.wired.com/story/uber-unveils-flying-taxi/)

</comment></comment><comment><USER9> Any update on those new super-accurate GPS chips? [1]

1\. [https://news.ycombinator.com/item?id=15308771](https://news.ycombinator.com/item?id=15308771) Super-Accurate GPS Chips Coming to Smartphones in 2018 (ieee.org)

</comment><comment><USER10> Amusing that they don't mention that they're able to better predict your location because of your phone's Wi-Fi.

Tracking people is _necessary_ [0] as Uber needs to _provide better services_.

[0] [https://www.npr.org/sections/alltechconsidered/2016/12/01/50...](https://www.npr.org/sections/alltechconsidered/2016/12/01/503985473/uber- now-tracks-passengers-locations-even-after-theyre-dropped-off)

<comment><USER5> Any competent phone manufacturer is already using Wi-Fi (and other input signals) to assist GPS, and providing the improved output to apps. So, if Uber is collecting Wi-Fi data, I doubt it's for the purpose of improving location.

</comment></comment><comment><USER11> Is this why Uber frequently pins me as being pretty far off from my actual position, even when something like Google maps is showing the correct position?

I mostly use Lyft now because I was tired of fighting with the Uber app to get it to show my correct location

</comment><comment><USER12> I wonder why we don't have GPS transmitters installed at the top corners of every tall building. Seems to me like this would be a pretty straightforward solution in urban areas.

</comment><comment><USER13> tl;dr using 3D maps to build a model of GPS shadows for receiver and satellite locations, and using the relative signal strength for each satellite, plus that model, to come up with a more accurate receiver location.

Original UCSB site: [https://tia.ucsb.edu/about-tia/success- stories/shadowmaps/](https://tia.ucsb.edu/about-tia/success- stories/shadowmaps/)

A more detailed writeup by the original authors: [http://insidegnss.com/auto/sepoct15-MADHOW_0.pdf](http://insidegnss.com/auto/sepoct15-MADHOW_0.pdf)</comment>


Hashcat 6 with 8 x 2080ti cracks 8-character passwords in 2:30h on benchmarks - <AUTHOR> https://twitter.com/TinkerSec/status/1096046635593928704 <comment><USER2> Does it matter what encryption was used for the passwords? I'm really lacking on the subject. Impressive results nonetheless.

Also besides using a longer password, is there anything else that can be done to harden my passwords?

<comment><USER3> The tweet was about NTLM, so presumably MD4, but other common hash algorithms are likely only going to add a few hours to the result at this point. This wasn't some crazy amount of hardware either. A more modest single GPU setup could still crack the password in less than a day.

<comment><USER4> > other common hash algorithms are likely only going to add a few hours

Hash algorithms or password hash algorithms? Because if the former I'd completely disagree, it would be closer to hundreds of years with a modern algorithm like Argon or even old stalwarts like Bcrypt with higher cost parameters.

The twitter statement is ridiculous, password length isn't the problem here, it's poorly secured credentials, was under the impression that NTLM was deprecated anyway?

Edit: Going off this benchmark[0] of 19000 H/s for a single 2080 crunching bcrypt. The keyspace for alphanumeric(62) + password symbols(23) with 8 characters = 85^8 = 2.72 x 10^15

@19000 H/s it will take 143416065810 seconds to go through every permutation. So around 4547 years worst case scenario. Add 7 more GPU's like in the OP's rig and that's 568 years.

The birthday problem doesn't apply here to finding a _specific password_ so on average looking at 284 years with 8x 2080 GPU's.

All modern algo's from the last Password Hashing Competition were designed to be memory hard (or at least offer it as a parameter) to resist GPU attacks and would be pushing these numbers up a magnitude or two.

8 character passwords aren't dead.

[0] [https://gist.github.com/Chick3nman/d03c0d696699af2886c340425...](https://gist.github.com/Chick3nman/d03c0d696699af2886c3404256801a9e)

<comment><USER5> Back in the real world you don't get to choose any of these fancy hashes when implementing an Active Directory.

</comment></comment></comment></comment><comment><USER6> Just use that GPU power to generate rainbowtables once which then can use the space/time tradeoff to perpetually find passwords in seconds without a GPU. Bruteforcing one hash at a time is pointlessly wasteful if you have the storage.

<comment><AUTHOR> Except under standard industry practices each hashed password has a unique salt.

<comment><USER7> How much storage would hashing every combo with every salt take? Is it still possible?

<comment><AUTHOR> A rainbow table for 8 chars would be 50-100 TB. If you add a 8-byte salt to each password multiply that number with 256^8

<comment><USER6> NTLM doesn't use a salt. It's 128 bits. That's within the realm of nation states and there's at least one public sparse NTLM rainbow table. And I said, "if you have the storage," which you dishonestly ignored. Nice try, bucko. Got any more red herrings that aren't relevant?</comment></comment></comment></comment></comment>


Systems Languages: An Experience Report - <AUTHOR> https://blog.usejournal.com/systems-languages-an-experience-report-d008b2b12628 <comment><USER2> > _If the language has the problem that people are fighting with the language > in order to become productive with it, perhaps something is wrong with the > language, and not the programmers?_

If they stop fighting after they learn, then no, it's not a problem with the language. It's the very definition of learning.

Now, the language might be harder to learn than others, and that might be a problem in itself.

But not just because people have to struggle at first "in order to become productive with it". That's true for any language that brings anything new to the table.

> _The argument of pass by reference, or borrowing is that it's more > performant than cloning by default. In general, computers are getting > faster, but systems are getting more complex._

Rust was not created to piggyback on "computers getting faster".

It was created to be as fast as possible.

<comment><USER3> Good points. Performance not being a primary concern is a meme that really has grown beyond its place. Performance is absolutely a primary concern in very hot code, at execution scales where it means big differences in aggregate hardware/infrastructure cost, energy usage, and so on. Or in space, where transistors necessarily need to be "low tech" huge radiation resistant ones. There will never be a lack of applications for highly optimized software, no matter how small the niche gets. Computing power may be cheap but it is NOT free, nor infinite, nor universally portable.

<comment><USER4> One area we're seeing Rust get a lot of usage for isn't performance directly, but low memory usage. You can do a lot more with less.

</comment></comment></comment><comment><USER5> I think everyone agrees that "fighting" the borrow checker is annoying, however at the risk of sounding like a Rust apologist I find that a couple interesting things have happened over ~2 years with the language:

1\. The borrow checker usually kicks in when I want to take shortcuts that would bite me in the future. 90% of issues I hit with it can be solved with copy/clone.

2\. When I take the time to satisfy the borrow checker I find my _architecture_ is better. Usually I'm tripping the borrow checker because I don't have a clear single-owner or separation of concerns.

Also, if you're looking for an "easy" to program languages there's tons of them out there and it definitely doesn't make sense in my mind to use Rust where C#/Erlang/Java/etc fit the domain space better.

<comment><USER6> Rust seems so low level that I don't get why people flock to it when C# and Java would be much better fits? Is it just because they're bored of C# and Java and want to learn a new language? Even Erlang should scratch that itch! I would guess that only the Servo team really benefits from Rust, or maybe some wall street traders who need hyper speed! Every other app should work fine with something slower.

<comment><USER7> I don't understand why anyone would go for C# or Java.

If you want GC and/or fast dev speed, go for JavaScript. If you really need static typing, go for TypeScript. JS has one of the fastest VMs on the planet and virtually everywhere.

If you need speed and don't want to mess around with decades of C/C++ legacy quirks, go for Rust.

<comment><USER8> Java and the JVM are a fantastic platform to develop on. The development experience is great and the performance is excellent.

* Java code means what it says and is simple to reason about.

* Top-notch IDEs like Eclipse and IntelliJ IDEA. Great debugging and diagnostic support, both at development-time and in production (e.g., logging and instrumentation frameworks, crash reporting).

* Java is meaningfully cross-platform, though in practice this is mostly useful for portable development (as opposed to portable production deployment). I can develop my services on Windows or Mac, then deploy to Linux in production, with zero fuss. (Don't even need a container)

* Feature-rich standard library. Powerful concurrency primitives and data structures, async, and futures libraries built right into the Java runtime (java.util.concurrent). You can dip into frameworks like Akka for more sophisticated use-cases.

* _Huge_ open source community that's working on projects like Apache Hadoop, Hive, Spark, Avro, Cassandra, etc. Take a look at how many Apache Java projects there are, for example: [https://projects.apache.org/projects.html?language#Java](https://projects.apache.org/projects.html?language#Java) . Top-notch DI frameworks like Netty, Guice, Dagger, Spring. Top-notch REST and RPC programming frameworks like gRPC, Thrift, Cap'n Proto, JAX-RS/Jersey.

* Java code is extremely reliable. Java code cannot crash in complex ways. Try/catch covers the vast majority of concerns for practical error handling and recovery. Java code's consistent use of GC, exceptions, and treatment of sync/async means that all libraries are modular and can be meaningfully and safely composed with each other. For comparison see What Color Is Your Function: [http://journal.stuffwithstuff.com/2015/02/01/what-color-is-y...](http://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-function/)

* Multiple languages that can interoperate: Java, Groovy, Scala, Kotlin, Clojure. The GraalVM and GraalJIT show amazing potential: [https://www.graalvm.org/](https://www.graalvm.org/)

* Because Java is so widely used, many tools and client libraries and such support Java before other platforms.

* A large population of developers understand Java and will be productive immediately on the project (vs. obscure languages).

* Modern, concise syntax that supports anonymous classes and functions, Lambdas, streams, Optionals. Java continues to improve over time and pick up concepts from other languages.

        List<ProductDisplayInfo> getDisplayList(List<Product> products) {
    		return products.stream()
    			.filter(p -> p.getCategory() == 2
                                    || p.getCategory() == 5 && isProductUnderDiscount(p))
    			.map(ProductDisplayInfo::new)
    			.collect(Collectors.toList());
    	}

* Java has good support for generic programming, unlike some other modern languages (e.g. Go). Generic programming is efficient and doesn't typically have downsides that make people afraid to use it (like in e.g. C++).

* The JVM is a _very_ high performance implementation that can rival native programs on important benchmarks for many server use-cases. I've built a lot of software and have rarely, if ever, run into performance reasons to use a different language. (Usually a small native library with JNI bindings meets the need when that's the case.) Other platforms rarely achieve a fraction of the JVM's performance in server-side use-cases. See benchmarking results from a previous comment I wrote on this topic (internal citations removed):

> Folks might also be interested in the TechEmpower web framework benchmark. > The top Java entry ("rapidoid") is #2 on the benchmark and achieves 99.9% of > the performance of the #1 entry (ulib in C++). These frameworks both achieve > about 6.9 million requests per second. The top Java Netty server (widely > deployed async/NIO server) is about 50% of that, while the Java Jetty > server, which is regular synchronous socket code, clocks in at 10% of the > best or 710,000 R/s.

> NodeJS manages 320,000 R/s which is 4.6% of the best. In other words, > performance-focused async Java achieves 20x, regular asynchronous Java > achieves 10x, and boring old synchronous Jetty is still 2x better than > NodeJS throughput.

[https://news.ycombinator.com/item?id=14153879](https://news.ycombinator.com/item?id=14153879)

* I'm personally a fan of Rust and appreciate its concepts, but garbage collection suffices and is easier to work with for the majority of use-cases I encounter. C# and .NET also have many of the properties above, though not the large open source community.

People who are starting businesses and have a practical, get-the-job-done attitude would be wise to consider Java. It's versatile enough to do almost anything on the server-side.

<comment><USER9> Rapidoid <3

These are exactly the reasons why JVM is the primary platform for us and Clojure/Java are the primary languages to use. If you compare languages by performance, library availability and developer popularity it is extremely hard to beat Java/JVM

<comment><USER6> Why Clojure? It's slow and not type-safe. If you want something a little more dynamic than Java but without losing speed, did you check out Kotlin?

<comment><USER9> Slow??? Are you kidding?

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> I really hope he doesn't fall into the trap I did when starting out with rust. I came into it with the perspective of an application programmer and I quickly became salty when my knowledge didn't translate smoothly into rust code. "Fighting the borrow checker", for me, was simply a clash of philosophies. My way of thinking versus the rust way of thinking.

The central issue, for me, is that with rust you MUST understand the memory model completely in order to be productive. You cannot wing this, you cannot assume anything. I was not used to this being an application programmer and this lead to the root of all my suffering. Once I wrote down all the borrowing rules and deeply thought about it, I finally became productive in the language.

I see the author shows symptoms of not understanding the memory model. His code proves it. Instead of being angry, he should try to view rust with an open mind and ask "why did they design it this way?". Be curious, create experiments, probe the rust semantics, master the borrow checker. There are rewards to be had for those willing to push through the pain of integrating new knowledge.

<comment><USER11> Pretell, how does my code not show an understanding of the memory model? I understand how the memory model works, I just want the language to _do the easy thing_ (copy) in most scenarios, and make embedding (Cells, RCs) / unwrapping more straightforward.

</comment></comment><comment><USER12> > If the language has the problem that people are fighting with the language > in order to become productive with it, perhaps something is wrong with the > language, and not the programmers?

Or maybe writing correct (i.e. safe) code is more difficult then most programmers realize and they lack the humility to admit it.

<comment><USER13> That's true, but not what that quote is about.

<comment><USER12> There are two sides to any coin. The complexity of the language is a consequence of the complexity of the problem it is trying to solve and the constraints it is operating under.

The borrow checker is not just some crazy torture device that exists for no reason. Criticizing the difficulty of the borrow checker without considering why it exists in the first place is completely misguided.

<comment><USER13> False dichotomy -- there are always more than two sides to any issue. People find themselves fighting with the borrow checker because their mental model of what they're writing is not what Rust is interpreting. This is probably indicative of two things: (1) their mental model is incorrect in some ways, and (2) Rust's semantics _don 't_ map that well onto how we think about systems programming problems. If satisfying the borrow checker makes you think "whoops, that was dumb" then you're in category 1. If it makes you think "aargh, how do I express this in a way Rust will accept?!?" then you're in category 2. With an ideal language category 2 wouldn't exist.

<comment><USER14> Of course, it's very easy to think you're in category 2 when you're really in category 1 but don't see how you're wrong...

<comment><USER13> But are all instances of category 2 actually category 1? That's a strong claim.

<comment><USER14> It is, and it's a claim that I didn't make. But even if it were true, I think people won't believe that it's true, because there will be instances where they won't understand the borrow checker's reasoning.

<comment><USER13> I think you can understand what the borrow checker is doing and still think it is being too stringent.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> No mention of Ada at all. Very sad and disappointing - Rust basically has a carbon copy of all of its features. It deserves a fair shake..

<comment><USER16> Agreed. Whether rust has copied its features - I don't know, but I have re- implemented many of Ada's features for several projects in other languages (mostly C), so it seems there is an amount of basic features like storage pools/memory pools which are usually required for systems programming tasks.

Good for Rust then, I guess.

<comment><USER11> I tried Ada a while ago. It seems like a neat language. Maybe I'll do a blog post on it too, but it turned into a rabbit hole.

I think one of the problems was where can I go to ask Ada questions?

<comment><USER17> You could start here,

[https://www.reddit.com/r/ada/](https://www.reddit.com/r/ada/)

[https://stackoverflow.com/questions/tagged/ada](https://stackoverflow.com/questions/tagged/ada)

[http://www.ada-europe.org/auj/home](http://www.ada-europe.org/auj/home)

</comment></comment></comment></comment><comment><USER18> The author states:

>'Similarly, a Java programmer must understand the runtime behaviour of the JVM, but until OpenJDK, the implementation language was irrelevant."

Can someone say why did the implementation language become relevant with the arrival of OpenJDK? My java app should run on any JVM no? After all that was the raison d'être of Java no? Or is the author referring to something else?

<comment><USER11> How do you debug the Java runtime, or when you Java program does something other than desired?

</comment></comment><comment><USER19> > We have the Rust Evangelism Strikeforce nudging us towards rewriting > everything in Rust.

I really wish this would stop being repeated. At this point it's a meme that was rarely, if ever, actually accurate. People just repeat it because they've seen comments urging the use of Rust, and this leap is easy to make and justifies a bit more pushback.

It's not about "rewriting", it's about _new projects_. People are starting new projects that do the same thing as old ones _all the time_. What you actually see is a lot of Rust advocates trying to influence those people to use Rust instead of C or C++, so instead of yet another library implementation in C or C++, we have one in Rust.

If it's better than the prior implementation, it might be used. This part has nothing to do with language, and better implementations come along all the time and are adopted to some degree. For example, Nginx. I remember the days when your choice for an open source webserver that could scale was basically Apache (there were a few others, but generally weren't used for serious sites).

Misrepresenting this cycle is just spreading FUD that activates a constituency to circle wagons. It's not helping anyone (as we're seeing from _both_ sides of the political spectrum, which have gone all-in on this tactic lately).

<comment><USER20> _Misrepresenting this cycle is just using FUD to activate a constituency to circle wagons. It 's not helping anyone (as we're seeing from both sides of the political spectrum, which have gone all-in on this tactic lately)._

It's a offhand remark in a post that's not about any of this. You're going out of your way to interpret this small thing in the worst, flame-inviting way.

<comment><USER19> > You're going out of your way to interpret this small thing in the worst, > flame-inviting way.

Which supposes a different way to interpret this. Feel free to provide a different interpretation or this very short and straightforward sentence, and I'll definitely consider it.

Also, to be clear, I'm not positing that the author _intends_ to cause the stated effect, I'm stating that the meme does this by it's nature, and the meme is also self-propagating by its nature and this same effect. The wording I used (that you quote) can be interpreted assigning intent to the author, which was not my goal, so I've changed them slightly.

(I would note the change with a note on the original, but I think these comments are sufficient to document it).

<comment><USER20> _Feel free to provide a different interpretation_

I don't have to interpret it at all, it's not an important part of the post. And no interpretation requires some weird political swipe.

<comment><USER19> > it's not an important part of the post.

I feel any statement about about what a group of people are doing, especially when it can be taken derogatorily or dismissively, should be _accurate_ , or at least with some basis provided. It was in the article, in my eyes it's fair game for criticism, _even if the only criticism is that I wish people would pay attention to whether it 's true, as the criticism in this case is_.

If someone described C developers as "wild cards that think all our security concerns are overblown" I think a lot of C developers would feel _rightly_ misrepresented.

> And no interpretation requires some weird political swipe.

I compared how the meme works to how memes in politics are working to divide, as I think that's the most obvious parallel that is easily visible to most people. Notice how I didn't promote one side over the other, as it's a _common_ tactic in politics in general, but more visible at both extremes.

<comment><USER20> My point is, it's an absurd amount of verbiage and offtopic thread derailment and hot air over some dumb joke that is basically irrelevant. You've written some bizarre grumpy rustacean equivalent of 'this site doesn't scroll properly on Android'.

</comment></comment></comment></comment></comment></comment><comment><USER21> > "The thing that nobody told me is that OCaml's runtime cannot do two things > at once. It has a Python-style GIL."

That's the reason I kick-started a crowd sourcing effort to collect a table of such basic facts among compiled "systems" languages:

[https://docs.google.com/spreadsheets/d/1BAiJR026ih1U8HoRw__n...](https://docs.google.com/spreadsheets/d/1BAiJR026ih1U8HoRw__nzbCSFnnHicWrjxpW5l6-O3w/edit?usp=drivesdk)

(There's still a lot of gaps in there which you are welcome to help fill out)

</comment><comment><USER22> We discussed this article in the Nim forum recently: [https://forum.nim- lang.org/t/3922](https://forum.nim-lang.org/t/3922).

</comment><comment><USER23> I had a brief dalliance with pony last year, though I wasn't coming at it from a systems perspective. At the time, it was the "lowest level" programming language I had used.

Maybe the author's perspective is just that much different from mine (he's used to things like C++ and Rust), but "simple" is just about the last word I'd use to describe pony. Don't get me wrong: Pony is a pleasure to work with, and it is no more complicated than necessary for the problem it's trying to solve, but adding the capabilities layer to the normal type system makes for a language that has a lot going on. I'd expect that the amount of fighting newcomers do with the capabilities system is similar to how people fight Rust's borrow checker. Maybe the author just didn't have enough actors that wanted to share state/communicate where it wasn't an issue for him.

In any case, I highly recommend anyone thinking about picking up a new programming language to give pony a look, especially if problems you're trying to solve are amenable to high levels of concurrency and need to run fast. The pony capability system basically eliminates data race bugs (within pony), and also guarantees against runtime crashes. It's got a bit of a learning curve, and the package ecosystem around it isn't great yet, but it's doing unique things to solve problems many languages aren't attempting to address.

</comment><comment><USER24> Rust passing by value/reference:

NOTE: The following is my understanding, from discussions on IRC and reading articles. If I'm wrong, please, please, please correct me (and provide good backup to what you are saying), because this is fundamental, and for me is one of the biggest misunderstanding in Rust.

When deciding to use passing by value vs passing by reference, the only deciding factor should be ownership. If it makes sense to give ownership, pass by value, if it makes sense to retain ownership, pass by reference. This will NOT affect performance, the actual implementation of copying memory around vs reassigning which part of the program owned that piece of memory is an implementation detail and the rust compiler will try to do the right thing.

I stopped fighting the borrow checker once I stopped treating Rust references as if there were C pointers, using them to minimize memory copy instead of concerning myself with ownership. I find the book does a bad job of explaining this, I'd be happy to give a try to write a chapter about it, but need to first confirm that my understanding is correct.

</comment><comment><USER25> Would Swift qualify as one?

Also wondering if the author considered D.

<comment><USER26> I'm disappointed about the lack of D, too, since the author gave Nim a try. And it's definitely more mature than, say, Pony (which is an interesting language for other reasons). Also, you can get excellent performance in D, really close to what you will get with C, and that's very often the crucial factor in systems programming.</comment></comment>


Show HN: Minimalistic "Fork Me on GitHub." - <AUTHOR> https://github.com/muhammadmuzzammil1998/OctoCSS <comment><USER2> Here's another minimalistic approach:

        Fork me on GitHub

You can now use the  tag _anywhere_ in your code.

<comment><USER3> Unbelievable! It just works. </sarcasm>

<comment><USER4> It even works with fluid designs. We call it liquid courage

</comment></comment></comment><comment><USER5> [http://tholman.com/github-corners/](http://tholman.com/github-corners/) is another, which gives you straight SVG to inline. This one with a couple of minutes of minification and inlining comes to about 1 170 bytes (no gzip); that one after similar time comes to about 985 bytes and more accessible (see its aria-label/aria-hidden) if you remove the fancy animation which is a bonus.

(I confess I'm addicted to shaving bytes.)

<comment><USER6> Much better design too, regardless of size.

<comment><AUTHOR> Yup.

</comment></comment></comment><comment><USER7> FYI, the "original" ribbons are at

[https://github.com/blog/273-github- ribbons](https://github.com/blog/273-github-ribbons)

They use PNG images which are around 8kb. The SVG from this project (which lacks the text) is 1kb.

<comment><USER8> One of the annoying things about images of this kind is their bounding box is twice the size it should be.

</comment></comment><comment><USER9> On my screen I can see color difference between the Octocat and the background (on your demo website).

<comment><USER10> That's correct. The svg background-color should be changed to #F9F9F9.

<comment><AUTHOR> I'll fix that thanks.

</comment></comment></comment><comment><USER11> Design suggestion: increase the padding of the GitHub logo. It looks quite crowded.

<comment><AUTHOR> Please feel free to contribute.</comment></comment>


Battleshorts, exaptations, and the limits of STAMP - <AUTHOR> https://surfingcomplexity.blog/2020/08/16/battleshorts-exapting-and-the-limits-of-stamp/ <comment><USER2> I love when people use acronyms without explaining what they stand for.

> The hypothesis underlying the new model, called STAMP (Systems-Theoretic > Accident Model andProcesses) is that system theory is a useful way to > analyze accidents, particularly system accidents.In this conception of > safety, accidents occur when external disturbances, component failures, > ordysfunctional interactions among system components are not adequately > handled by the controlsystem, that is, they result from inadequate control > or enforcement of safety-related constraints onthe development, design, and > operation of the system[0]

[0] - [http://sunnyday.mit.edu/accidents/safetyscience- single.pdf](http://sunnyday.mit.edu/accidents/safetyscience-single.pdf)

<comment><USER3> Thank you, thank you, thank you. Saved me a bunch of frustrating searches.

</comment></comment><comment><USER4> > One of the central assumptions of STAMP is that it is possible to construct > an accurate enough control model of the system at the design stage to > identify _all_ of the hazards. [emphasis added]

I want to pick on this a bit. STAMP, or at least STPA which is the related method you'd use in the design stage, doesn't try to identify _all_ hazards (STAMP has the benefit of being conducted with hindsight, so it is likely to identify more hazards). When used during design, you run _multiple_ STPA analyses and may eventually identify all hazards, but there is no guarantee. Additionally, while you often have a singular STAMP instance (because it follows from an accident), STPA is run multiple times. There is no singular STPA analysis, but a collection of analyses.

Each analysis is performed on a model of the system which is, necessarily, a simplification. Some models will have details that others lack. This provides the team a better opportunity to focus on the hazards involved in that area. You will only achieve 100% hazard identification if the system is small, or you dedicate a probably unreasonable time to the analyses.

<comment><USER5> Are you confusing CAST and STAMP? (Or maybe I'm mis-reading.)

STAMP is about the underlying control model. STPA is focused on designing in safety up-front. CAST is focused on analyzing failures.

<comment><USER4> Yes I did, oops. Pro-tip: Expect memory lapses while on pain medications, and maybe don't type comments on HN.

<comment><USER5> Feel better. This was something I knew nothing about a few months back but I took a workshop on STAMP that went virtual earlier this summer.

<comment><USER4> Thanks. It was a fairly routine surgery (for the surgeon, not me) and all went well. I'm actually on my last day of pain meds so it's my last chance to use that excuse.

STAMP, and STPA in particular, is something I've been reading about, but failing to apply, for a few years now since my sister studied under Leveson at MIT. I wish I could sell it in my office. It's actually frustrating, a few of our partners are using it (or the ideas from it) to good effect but my own office is less than interested. Of course, my sister has encountered the same thing even though she's the one that brought it back to her office after returning from MIT. Their partners are using it after learning about it from her, but they still aren't (or are underutilizing it).

<comment><USER5> Yeah, this was Nancy Leveson's workshop. I was going to go in person but I was able to tune in for quite a bit of the virtual version. For anyone interested, there's quite a bit of material online with, I believe, additional videos coming: [http://psas.scripts.mit.edu/home/2020-stamp-workshop- agenda/](http://psas.scripts.mit.edu/home/2020-stamp-workshop-agenda/)

One of the interesting things to me was the range of industries represented. Definitely not just aerospace.

</comment></comment></comment></comment></comment></comment><comment><USER6> Can't help but think of Douglas Adams' masterpiece "The Restaurant at the End of the Universe": "A dreadful silence fell across the conference table as the commander of the Vl'hurgs, resplendent in his black jewelled battle shorts, gazed levelly at the G'Gugvuntt leader squatting opposite him in a cloud of green sweet-smelling steam"

<comment><USER7> I knew I'd heard "battle shorts" somewhere before, but I couldn't think of where. It's the wrong kind of "shorts" though -- and regarding the other kind:

> _What do you mean, "why has it got to be built?" It's a bypass! You've got > to build bypasses!_

</comment></comment><comment><USER8> I looked everywhere for a physical example of a Battleshort after that comment.

I guess I expected a solid fuse rather than a switch that just linked two wires?

But still, not a lot of info around. Mostly jokes and this one supplier - [https://www.oshkoshequipment.com/search?searchPhrase=Battle+...](https://www.oshkoshequipment.com/search?searchPhrase=Battle+Short&searchFor=0)

<comment><USER9> According to some friends, most new equipment (and not so new) provides it as a switch - but the original form was slapping bars in place of fuses.</comment></comment>


What Nothingness Feels Like: The Sensory Deprivation Tank - <AUTHOR> https://medium.com/unusual-adventures/fcbcac6436bf

<comment><USER2> Nice post! Good to see more people are discovering this kickass way to relax your mind and body. Isolation tanks have been around since the 50s, initially used for scientific research and today more for relaxation therapy.

I look at sensory deprivation using an isolation tank as a form of meditation accelerator. The tank removes (sensory deprivation) the distractions you normally get with standard sitting meditation. Therefore all that is left (feels like) is your mind floating in space. Usually after 3 sessions you should be able to go deep into theta state with visuals ;-)

Having floated on a regular basis I believe sensory depravation is a great tool for busy minds, like those of the software engineer. My recent blog post echoes this here: [http://www.theroadtosiliconvalley.com/local- california/float...](http://www.theroadtosiliconvalley.com/local- california/floatation-isolation-meditation-sensory-deprivation-tank/)

Happy floating!

</comment><comment><USER3> They can be a lot of fun. Great for lucid dreaming experiences as well. And don't worry, the chance of you transforming into something else[1] is vanishingly small.

[1] <http://www.imdb.com/title/tt0080360/>

</comment><comment><USER4> Tips:

      * Don't have any scratches on your skin, or the salty water
        will sting and distract you from the experience.

      * Empty your bladder before you enter the tank, so you
        don't feel the need to get out mid-way.

      * Shower before entering and after exiting the tank.

      * Some places can play your choice of music through the
        sound system in the tank, so you might want to bring
        some of your favorite music to experiment with,
        if you like.  If you prefer silence, you might
        want to bring earplugs to minimize outside noises.

</comment><comment><USER5> There's a new VICE documentary on it. [http://www.youtube.com/watch?v=yCYglCDgpu0&list=PLDbSvEZ...](http://www.youtube.com/watch?v=yCYglCDgpu0&list=PLDbSvEZka6GEIyRfhR61mjM5VSbjCLLLx)

I try to go to FloatLabs in Venice as often as I can, it's always been awesome. Don't eat before you go in, it just makes for a better experience. Sleeping in the tank is the best sleep I ever get.

</comment><comment><USER6> > _When time was up I got up to move and my body felt heavy. It took me two > tries to sit up and get out. I was in an extremely relaxed state, my mind > felt calm. But here's the cool part - I didn't feel tired, I actually felt > very very awake and full of energy_

From the description of the effects, it seems exactly like deep relaxation exercises from yoga.

</comment><comment><USER7> I have used a Samadhi Tank, and they are awesome beyond belief. Highly recommended.

</comment><comment><USER8> It is quite amazing. It compares favorably to some of the higher-level psychedelics, but unlike those, it's _safe_.

The only downside is that it's generally expensive (60-80/hour in the northeast) to find a tank if you aren't set up to install one in your house, and most apartments aren't.</comment>


Psilocybin caused large significant positive changes to life purpose and altruism - <AUTHOR> http://www.newswise.com/articles/johns-hopkins-study-probes-psilocybin-meditation-and-personality <comment><AUTHOR> > Altruism: Comparing LD-SS to HD-SS, the effect size was 1.36, which > statisticians consider "very large." Comparing LD-SS to HD-HS, the effect > size was 1.95, considered "very large," almost "huge."

This is interesting to me. I wonder what a world would look like if everyone had therapeutic access to a substance that had a 'very large' effect size on increasing altruism.

Full text: [http://journals.sagepub.com/doi/full/10.1177/026988111773127...](http://journals.sagepub.com/doi/full/10.1177/0269881117731279)

> Compared with low-dose, high-dose psilocybin produced greater acute and > persisting effects. At 6 months, compared with LD-SS, both high-dose groups > showed large significant positive changes on longitudinal measures of > interpersonal closeness, gratitude, life meaning/purpose, forgiveness, death > transcendence, daily spiritual experiences, religious faith and coping, and > community observer ratings. Determinants of enduring effects were > psilocybin-occasioned mystical-type experience and rates of > meditation/spiritual practices. Psilocybin can occasion enduring trait-level > increases in prosocial attitudes/behaviors and in healthy psychological > functioning.

</comment><comment><USER2> The science seems pretty clear by now: psilocybin can have dramatic positive effects. How much longer can people claim this stuff is banned because it's dangerous? Beer and cheeseburgers are probably worse.</comment>


Ask HN: Why Hacker News think I'm spamming them? - <AUTHOR>

Trying to submit this great LinkedIn youtube video: http://www.youtube.com/user/LinkedInTechTalks#p/u/0/QGnG68gCRIw<p>Leads to this insulting message:
"Stop spamming us. You're wasting your time." <comment><USER2> I just submitted it, and it worked under the share url youtube gives you.

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


Breakfast with the FT: Ray Kurzweil - <AUTHOR> http://www.ft.com/intl/cms/s/0/9ed80e14-dd11-11e4-a772-00144feab7de.html#axzz3WvRXBOaE

<comment><AUTHOR> If you don't have an FT subscription you might not be able to see more than the headline. In that case just google the title, "Breakfast with the FT: Ray Kurzweil", and click on the link, which will let you get around the paywall.</comment>