FBI Told Cops to Recreate Evidence from Secret Cell-Phone Trackers - <AUTHOR> https://theintercept.com/2016/05/05/fbi-told-cops-to-recreate-evidence-from-secret-cell-phone-trackers/ <comment><USER2> Suggestion: stop calling this "parallel construction" and start calling it evidence laundering.

<comment><USER3> Why not just "fabricating evidence"?

<comment><USER4> It's called spoilation of evidence:

> The spoliation of evidence is the intentional, reckless, or negligent > withholding, hiding, altering, fabricating, or destroying of evidence > relevant to a legal proceeding.

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

And an illegitimate evidence chain is called "fruit of the poisonous tree."

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

That said, the proof of a "poisonous tree" is itself difficult/impossible to obtain through legal means. Generally the message they send to anyone attempting to reveal the illicit nature of the evidence is told "even if you try, your proof will guaranteed to be inadmissible."

<comment><USER5> Why would a judge throw out evidence of illicitly gained information? Doesn't that lead to exactly where we land here with this article?

Edit: thanks for the definitions, nonetheless!

<comment><USER6> Why throw out illegally gained evidence? Because it's pretty much the only censure a judge can do, and it's a damn powerful one. Yes, evidence laundering is a problem when it come to warrantless surveillance, but simply throwing up your hands and saying "Well, I guess anything taken from any method and without court approval is okay. I guess judicial oversight is an antiquated 18th century idea," isn't the answer.

<comment><USER5> I think you misread me. Parent to my original post said information indicating evidence was ill-gotten would be thrown out, not the evidence itself. That makes it impossible to argue the evidence was obtained illegally. As far as I can figure it would lead to what you're talking about, which is madness, so I was asking why a judge would not allow proof evidence was obtained illegally. (Basically, I totally agree with you and am confused as to why a judge would not be.)

<comment><USER7> I think what he meant was that proof that a particular piece of evidence was illegally obtained is likely to necessarily be illegally obtained as well. Thus it will be thrown out itself before it can used to get the original evidence thrown out.

Or at least that's my interpretation of the comment in question. I have no idea how true it is.

<comment><USER6> Yeahs don't understand what that means. Part of the introducing evidence into court is to describe its provenance. If the chain of custody breaks, then the defense can easily attack it as being tampered with.

The only way evidence of a coverup could be illegally obtained would be if the defense somehow placed an illegal wiretap on the police department or prosecutor's office, which seems really implausible.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> Why is this surprising to anyone?

It's time to realize that our own law enforcement is a greater threat to us than terrorists abroad. This behavior needs to be made illegal.

<comment><USER9> This comment is on every post where something like this is revealed.

Yes, we "all" have known that parallel reconstruction has been going on. Except for the skeptics who require hard evidence of its occurrence. Well, now we have evidence.

This isn't about the practice being surprising. It's about the practice finally being documented.

<comment><USER10> Yep.

"Why is this surprising?" There are reasons to discuss it other than surprise. Better evidence may allow for official reactions, inquiries, or prosecutions.

"Is anyone so naive that..." Yes, we weep for our lost innocence. Now we see that your jaded nihilism was justified all along. Forgive us.

"Of course, nobody really cares..." Back that up with stats. Are you _sure_ nobody cares? Are you sure that is a permanent state of affairs? If you're also asking "Why is anyone surprised?" that's acknowledging we've got a delta in collective interest here, so the complaint is self-canceling. And how many people's attention is needed? A very vocal and effective 5% of the population can get a lot done.

"Of course, nobody can do anything..." Despite various pronouncements of the end of history, things continue to happen.

<comment><USER5> Just to your last point, history ends for most of us when we expire. It is hard for me to see, possibly halfway through my life, when or how this course corrects, considering the current balance of money and power.

</comment></comment></comment></comment><comment><USER11> How far does the "fruit of the poisonous tree" doctrine go? If someone is caught using illegal evidence, and then let go because of that, can the police follow them around to see if they commit more crimes, or is that all poisoned (because if the original evidence hadn't been obtained, they would never have found this person to follow)? Would they need to wait until the person came up in an entirely unrelated lead? Would they be able to add the information "person was previously let go on technicality for crime X" to a database which generates leads when cross-referencing other data (e.g. people in proximity to a crime, which might be crossed with known criminals? (I don't know if this is actually done))

<comment><USER12> The doctrine is subject to four main exceptions. The tainted evidence is admissible if:

> the chain of causation between the illegal action and the tainted evidence > is too attenuated; or

<comment><USER11> What does that mean practically?

<comment><USER13> Whatever they want it to.

<comment><USER11> They is the courts, and the criteria sound like they come from precedent, so I want to know what cases created that precedent to know how it should be interpreted.

<comment><USER13> You're missing the point. "Too attenuated" presumably does have case law, as do things like "substantially related to a compelling government interest" or "probable cause". Those have magnificent, overflowing volumes of decisions enumerating whether they apply to particular circumstances. And yet, oddly enough, it works better to reason backwards from the desired conclusion in a particular case to the most convincing reasoning that could support it, than the reverse.

<comment><USER11> You're saying that cases are decided by the judges' views, a not uncommon position. However, there are limits to how far this goes: if a case is clearly against precedent and the judge is made aware of that, they'll usually not deviate.

If you disagree, feel free to present reasoning or evidence: mere assertion won't help.

<comment><USER13> Certainly, precedent helps. Who sets precedent? Higher courts. How do they decide how to rule? See parent. Who enforces their precedents against themselves? Well, no one.

A precedent goes against what you wish to conclude? Distinguish why it doesn't apply in these circumstances, depending on how much you fear being overruled. Keep doing that, until it swallows the rule, if you wish the rule to go away. In things like evidentiary rulings, you can _always_ distinguish the circumstances, until you go from "a man's home is his castle" to "I smelt marijuana & kicked the door down".

In practical & long terms, for issues of government power in particular, predicting how a court will rule is not best done by looking at plausibly applicable precedent.

<comment><USER11> Supreme court does overturn precedent occasionally, but this is extremely rare. Most of the time cases never get to the supreme court because they've already been ruled on in other cases.

Do you have any particular evidence that courts frequently ignore precedent in favor of their own wishes?

<comment><USER13> Look at the shift in law over time, which should be evidence enough. For instance, from Bowers v. Hardwick to Lawrence v. Texas, or Roe v Wade to Planned Parenthood v. Casey, in < 20 years.

As I said, it is usually the case that precedent is distinguished into oblivion rather than explicitly overruled. Only very limited technical issues are "settled law".

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> It talks about Kennard Walters as a success case in the link to the hemisphere program. I decided to look this up.

Is this the same case? [http://www.plainsite.org/dockets/10r51h1ls/california- southe...](http://www.plainsite.org/dockets/10r51h1ls/california-southern- district-court/usa-v-walters/)

I'm not versed well enough in these things to accurately describe, but it looks like there was a motion for discovery, and the case was effectively dropped a week later?

</comment><comment><USER15> Suppose that instead of the secret cell phone tracker evidence and the parallel construction, it was an undercover witness and a random bystander witness. Instead of having the undercover officer testify in court and thereby reveal themselves, the cops instead use the undercover witness's information to locate the bystander (e.g. the undercover witness remembered seeing the bystander and gave the police his description to help them find the bystander), and they have the bystander testify in court instead of the undercover witness, and they never say at the trial how they found this witness. Are the police allowed to do this? Should they be? If they are, is it any different from "parallel construction"starting from secret cell phone evidence instead of secret witness testimony? (I'm genuinely curious. I don't know the answers to any of these questions.)

Edit: I guess in order to make the analogy more accurate, I would have to specify that the undercover agent knows they did something illegal that would make their own testimony inadmissible as evidence, and this is the motivation for finding the bystander.

<comment><USER6> I guess you could do that. The key difference between this and the Stingray parallel construction is that the random bystander is a legitimate witness with no connection to the police. Now if the police called up some friend and said, "Hey, I meet me on the corner of blah and blah at noon tomorrow, knowing that a crime was going was going to take place there and then, then that's something else.

</comment></comment><comment><USER16> It's awesome to see an episode of 'The Wire' become an actual headline.

<comment><USER17> Many episodes of _The Wire_ were headlines. Or ought have been.

See David Simon's "Audacity of Hope" speech. One version of it at UC Berkeley on YouTube.

(Simon's a great writer and has wonderful ideas to express. He's an _abysmal_ public speaker. I actually edited out all the "ums" and "ers" from that, and cut it by 10 minutes (70 minute preso).

</comment></comment><comment><USER18> "Privacy advocates have long warned of "parallel construction," in which investigators cover up information obtained without a warrant by finding other ways to attribute it — never allowing the source of the original lead to be scrutinized or subject to judicial oversight."

Get used to it. Or fight it.

</comment><comment><USER19> Relevant: [http://www.wnyc.org/story/stingray-conspiracy-theory- daniel-...](http://www.wnyc.org/story/stingray-conspiracy-theory-daniel- rigmaiden-radiolab/)

</comment><comment><USER20> Like it feeeels wrong.. but I can never articulate what the problem is with parallel construction. Can someone give a quick explanation of why?

<comment><USER21> It short-circuits the fourth ammendment, which protects against unreasonable searches. The way this is enforced in the real world is that evidence is thrown out of court if it was obtained in an unlawful search. With parallel construction, you render useless the _only_ enforcement mechanism for the fourth ammendment.

Not to mention the deception. In order to use parallel construction, the police need to make up a story about why they began investigating. By definition, parallel construction means that they will lie in court about this.

The courts really need to wake up, or they will continue to be impotent lackeys of the executive branch.

<comment><USER20> Right but the "made up story" has to be legally sound. Like they have to put a police officer at the right place at the right time. How is that a bad thing?

Like you can still have information so private that you can't build a parallel construction - right?

<comment><USER6> They only put the cop at the right place and at the right time, because they chose the place and time ahead of time.

You will never have information that's so secret that you can't build a parallel construction, because you always create a parallel construction that gives the appearance of random chance. "Well, your honor, we decided to setup a traffic safety roadblock stopping every blue car, and when the defendants stopped they started acting suspicious, and then it just happened that a k9 unit that was returning from delivering coffee alerted on the car. At which I point I searched the car and found the evidence. Somedays, we just get lucky."

<comment><USER20> what...? Your example is a convoluted extension of the police-officer example except you added the dog element which I think most people agree is messed up... but that's a separate unrelated issue to address.

I'm saying if you have a private/secret meeting in your basement about how to overthrow the government there is no parallel construction you can make to intercept that. If you have secret files on your computer you can't have cops "accidentally" bump into them.

I'm really doubting "you will never have information that's so secret that you can't build a parallel construction"

<comment><USER21> > have a private/secret meeting in your basement

> have secret files on your computer

Do any of the participants have any mobile phones on them? Are there any windows in the basement? What do you mean by "secret files"? Do you mean encrypted? How do you know it's not a compromised service/protocol?

I think you underestimate what present-day technology is capable of.

<comment><USER20> Sorry if I wasn't clear enough. What I'm illustrating is that parallel construction doesn't allow the government to use it's full force to make an investigation. They can't "accidentally" search your computer or "accidentally" track you phone or "accidentally" monitor you traffic. That's fundamentally different from a police van "happening" to be at the bank that's about to be robbed or something b/c that could have happened anyway. Do you see the distinction?

</comment></comment></comment></comment></comment></comment></comment><comment><USER22> Part of Stallman's motivation for starting the free software movement was that your computer is an extension of your mind, and ubiquitous computer surveillance is basically the same as Orwell's thought police. The chilling effect is real, as demonstrated by a recent study that showed a drop off in terrorism related searches after the Snowden leaks. I freely research terrorism though, because I'm not "the type of person who would do something". So I basically rely on racial, ethnic, and economic discrimination to feel secure about what I search online. I just don't understand how James Comey and the FBI think that they can make us all safer by turning into criminals themselves.

<comment><USER5> When they think we're all criminals, it's just a matter of degrees and justifications.

<comment><USER17> Or who they want to catch.</comment></comment></comment>


You would be a bad millionaire - <AUTHOR> http://svedic.org/personal/you-would-be-a-bad-millionaire <comment><USER2> This person is not talking about people with serious ambitions; he's referring to the would-be near-idle or idle rich. Many of us would do a great many things:

\- become VCs/angels

\- build bigger, self-funded businesses

\- donate big money to charities, or start our own

\- do direct giving to those need (my preference to charity)

\- donate to institutions doing basic science, medical research, life extension, youth preservation research

\- pay to attend a prestigious university beyond our financial means and time budget

\- spend more time producing free software, music, art

\- go work somewhere just to work on interesting things / fun without fear of making the best choice earnings or reputation-wise, or just beyond one's current abilities due to lack of the proper background. Example: someone is very interested in working on robotics. They work "survival tech" jobs that they can't just quit to magically attend the MIT robotics program, which would lead to to work in the field. Their potential is wasted at present; if they had the money, they could contribute a whole lot more.

Some of us would make fantastic millionaires.

<comment><USER3> Exactly.

It's not about having enough money to do 'nothing' (although hey, if that's what you want).

It's about having enough money to have FREEDOM OF CHOICE.

To do whatever you choose, when you choose to (within legal/ethical reason, unless you're _really_ wealthy).

I also find it interesting that so many people know what would make me happy - if you're that sure, give me the money (1 million would do, but I'd accept more) and I promise I'll give it back in 6 months if I'm no happier then than I am now.

</comment></comment><comment><USER4> I'm desperate to "retire" by making enough of a nest egg to live off the returns. Some things I'd love to do if I had the time:

* Improve my culinary skills. Some recipes require all day to do "right", and I need to take short-cuts in order to use the 30 minutes - 1 hour I have per day.

* Recreational programming. Few people who are good at numeric programming also have the free time to just "play". Procedural generation, using the latest/greatest visual processing algorithms, automatically integrating real-time data feeds into a "game" of sorts. I hate that I'm using my creativity to generate excel reports that mostly get consumed by programs.

* Music theory. I'd love to know more here.

* Home improvement / homesteading. It would be great to have to time to make my living space better fit for my preferences.

* Volunteering and advocacy. There are a lot of low paying problems in the world that need good motivated minds working on them.

* Art projects. I loved art in college, but never had the time to pursue it in my professional life.

* Personal Health. I love to run and open water swim. Both of these require me to have good weather and be in the right physical state to make use of that weather. Having more free time maximizes my chance to exercise under optimal conditions.

I think it helps that most of these things are things I can do alone and do not necessarily require coordination with other people. The author seems to stress how lonely it is to not have enforced scheduled social time.</comment>


More Python 3.3 downloads than Python 2.7 for past 3 months - <AUTHOR> http://ianozsvald.com/2013/04/15/more-python-3-3-downloads-than-python-2-7-for-past-3-months/

<comment><USER2> That's a lot of lucky people, all getting the most excellent Python version ever released: <http://docs.python.org/3/whatsnew/3.3>. And this at no charge!</comment>


Ask HN: Get a Visa before apply for a job? - <AUTHOR>

I'm looking for opportunities in the USA: my goal is get a job oversea (I'm Italian) to move there for few years and engage an American girl I'm currently dating. I was wondering if it's better get a Visa, wherever possible, before apply for jobs or try to get one after found a concrete opportunity. I'm thinking that the second option will limit my chance since it will require effort from the company. So far the USA Visa process is not really clear to me, with so many different options, so any help is appreciate to understand which one to look for. The option to get a Visa via my girlfriend is not available now, hopefully it will be in three-four years. <comment><USER2> In order to get a working Visa you must have a letter of employment from the company that you will be working for. I've just gone through the same thing.</comment>


How Antivirus Companies Handle State-Sponsored Malware - <AUTHOR> https://www.schneier.com/blog/archives/2013/12/how_antivirus_c.html <comment><USER3> I remember the BMG Sony rootkit scandal vividly ([http://en.wikipedia.org/wiki/Sony_BMG_copy_protection_rootki...](http://en.wikipedia.org/wiki/Sony_BMG_copy_protection_rootkit_scandal))

Most of all I remember that the only company not willing to sit tight was FSecure. They contacted BMG Sony and where about to go public, when Mark Russinovich publicized this atrocity. At least that's how I recall it.

It's since then that I have zero faith in security software vendors.

</comment><comment><USER4> NSA doesn't need to ask anti-virus companies to ignore certain malware, as long as Microsoft is handing them lists of _fresh_ Windows vulnerabilities months before they even begin working on fixing them.

[http://www.bloomberg.com/news/2013-06-14/u-s-agencies- said-t...](http://www.bloomberg.com/news/2013-06-14/u-s-agencies-said-to-swap- data-with-thousands-of-firms.html)

Until that policy changes at Microsoft, at least 90 percent of the PC users will never be truly safe.

<comment><USER5> That program is MAPP (Microsoft Active Protections Program). [1] All governments (except Iran, Syria, etc.) are part of it, as well as hundreds of private companies internationally. Of course, vulnerabilities are routinely leaked. [2] Other programs include the SSI (Shared Source Initiative) [3] by which governments get access to the Windows source code, and the GSP (Government Security Program) [3] which helps governments find vulnerabilities in said source code.

Not to mention COFEE [4] -- I wonder how many antivirus detect that, especially since its source code was leaked...

[1] [http://technet.microsoft.com/en- us/security/dn467918](http://technet.microsoft.com/en-us/security/dn467918)

[2] [http://www.zdnet.com/blog/security/microsoft-kicks- chinese-c...](http://www.zdnet.com/blog/security/microsoft-kicks-chinese- company-out-of-vulnerability-sharing-program/11853)

[3] [https://www.microsoft.com/en- us/sharedsource/default.aspx](https://www.microsoft.com/en- us/sharedsource/default.aspx)

[4] [https://wikileaks.org/wiki/Microsoft_COFEE_(Computer_Online_...](https://wikileaks.org/wiki/Microsoft_COFEE_\(Computer_Online_Forensics_Evidence_Extractor\)_tool_and_documentation,_Sep_2009)

</comment></comment><comment><USER6> There are now some companies which provide non-signature based anti-virus detection to potentially detect zero-day malware. Most of them work by spinning up a vm, run or open the file to check, and verify any changes to the system. Check out [http://www.fireeye.com/](http://www.fireeye.com/) (funded by the CIA's startup incubator In-Q-Tel) [http://www.fidelissecurity.com/](http://www.fidelissecurity.com/) (from General Dynamics) and Northrop Grumman is releasing one soon too.

Not sure if I'd trust these companies more or less than the signature based companies.

<comment><USER7> I deployed Fireeye over a year ago, and can confirm it's very good a spotting malware that most AV vendors don't. I can't, however, confirm it doesn't have back doors so that three-letter agencies can't tell it not to detect something they don't want it to.

</comment></comment><comment><USER8> I bet that if you had asked AT&T and the like - before they got caught - <USER2> they gave the NSA warrant-less access to U.S. citizens' communications, they would have also said "no."

</comment><comment><USER5> I doubt the NSA needs to co-opt antivirus companies, they are already worthless. Besides, Kaspersky for one is lying. His company works closely with the FSB:

 _We have very good relations with both the FSB cybersecurity department and the Moscow police department. They know us. They know us as people who support them when they need it._

[http://www.wired.com/dangerroom/2012/07/ff_kaspersky/all/](http://www.wired.com/dangerroom/2012/07/ff_kaspersky/all/)

(edit:) and the FBI:

 _Даже США: мы периодически консультируем ФБР._

[http://www.rusrep.ru/2008/32/interview_kasperskiy](http://www.rusrep.ru/2008/32/interview_kasperskiy)

</comment><comment><USER9> I enjoyed the article, but explicitly asking anti-virus companies if they have complied with such a government request seems silly.

It's like asking a politician, "Have you ever been unfaithful to your wife?"

"What's that? No? Okay, well you heard the man. Time to move on."

<comment><USER10> Agreed. This sounds like a debate that could be settled by testing different antivirus products (and their old versions) against state-sponsored malware.

<comment><USER11> I'm not sure that's a good test; any publicly known example of state-sponsored is almost certainly in current antivirus software. Since they're publicly known, there's no advantage to continuing to be sneaky about it — it would certainly tip people off that the companies were under the thumb of a government. And testing older version probably won't help, because you can't prove that the company knew about them before the rest of us did.

</comment></comment></comment><comment><USER12> Isn't the more telling part the cos. that haven't responded till now? Notably US ones Symantec and McAfee.

</comment><comment><USER13> I always assumed the handled it through Accounts Receivable.

</comment><comment><USER14> >>ESET, F-Secure, Norman Shark, Kaspersky, Panda and Trend Micro confirmed the detection of state sponsored malware, e.g. R2D2 and FinFisher; they have never received a request to not detect malware. And if they were asked by any government to do so in the future, they said they would not comply.

Glad to here we're safe.

</comment><comment><USER15> >> _My reasoning is that antivirus is a very international industry, and while a government might get its own companies to play along, it would not be able to influence international companies._

this sounds more like an assumption than reasoning. given all we know to date about the operations of the NSA and the CIA (they collaborate closely at times), we should not be so hasty in dismissing such an important topic.

>> _Understanding that the companies could certainly lie, this is the response so far: no one has admitted to doing so._

well.. they wouldn't, would they.</comment>


Why Concatenative Programming Matters (2012) - <AUTHOR> http://evincarofautumn.blogspot.com/2012/02/why-concatenative-programming-matters.html <comment><USER3> > A concatenative programming language is a point-free programming language in > which all expressions denote functions and the juxtaposition of expressions > denotes function composition. The combination of a compositional semantics > with a syntax that mirrors such a semantics makes concatenative languages > highly amenable to algebraic manipulation.

This is the reason i hate so many (not all) wikipedia articles - <USER2> introduction is an exercise of code golf in human language.

This is devoid of the key quality most readers want from an encyclopedia (understanding from an ignorant viewpoint), intros should not be a puzzle for the reader which attempts to fit comprehensive technical description into a single useless sentence.

<comment><USER4> Lemme try in something closer to plain English:

In most programming languages, the way you compose functions is by creating some other function that takes whatever arguments are necessary, applies the first function to some subset of them, collects its result, and then applies the second function to some other subset of the arguments, plus the result of the first function.

IOW, while the syntax can be quite clean:

      let h(x) = f(g(x))

is doing quite a lot in the background. Moreso if some of the top-level arguments are to be passed to f and not g:

      let h(x, y) = f(g(x), y)

In a concatenative language, all you have to do to compose functions is place them one after the other. So those two compositions both become something more like

      let h = g f

One big difference here, and the main part of how most concatenative languages achieve this behavior, is that arguments are never stated or passed explicitly. Instead, inputs and outputs are typically retrieved from and placed onto some sort of stack.

(edit: Just realized never really said why they're called "concatenative". It's because, at least in a Forth-style concatenative language where the compiler isn't doing any fancy footwork, you can compose functions by literally just concatenating them. So that `let h = g f` is basically saying, "To execute H, first execute G and then immediately execute F.")

<comment><USER5> Most languages that aim to be minimal bake in a minimal syntax, but without implicit parameter passing, composability is not going to be extensible.

<comment><USER4> In a forth-like language, you can think of all functions as implicitly being unary: They take a stack, and return a stack.

I've never used any other kind of concatenative language, so I'm less able to speak to them, but I'm guessing some similar situation applies for those as well.

</comment></comment></comment></comment><comment><USER6> The truth is somewhere between Forth and Lisp if you ask me, I find dogmatic Forth too primitive and Lisp too clever.

The language I'm currently working on [0], aims to find the sweet spot starting from Lisp in Go.

[0] [https://github.com/codr7/g-fu](https://github.com/codr7/g-fu)

<comment><USER7> >starting from Lisp in Go

Interesting. Please state what is the License of g-fu, so people can contribute.

<comment><USER6> It's at the bottom of the readme, LGPL3; but I forgot the license file.

Thanks for bringing it to my attention.

</comment></comment></comment><comment><USER8> About a year ago, I decided that I'm going to learn Postscript for no other reason than to say that I know Postscript.

Coming from a functional background, the point-free nature of it wasn't too confusing, and I actually grew to really enjoy it.

I never got too far into that quest largely because I didn't have much of a practical need to be a Postscript expert, but it has since made me want to learn Forth, which I have been pushing off for months now.

<comment><AUTHOR> I too recently got the itch to learn Forth. So I went _forth_ and implemented a very simple interpreter for a small Forth dialect: [https://github.com/AZHenley/goforth](https://github.com/AZHenley/goforth)

It was quite fun but I still can't say that I know much about actually using Forth :)

<comment><USER9> > So I went and implemented a very simple interpreter for a small Forth > dialect:

You can't just write that. Chuck Moore, I assert with no evidence whatsoever, would require that you write "so I went _forth_ and implemented …."

<comment><AUTHOR> My apologies, I have corrected the mistake!

</comment></comment></comment></comment><comment><USER10> Oh awesome. I found concaternative languages when I was trying to learn Forth last year. Forth was almost scary with how little syntax there is. Not even Lisp really felt like that. Types felt a great thing to get a bit more stability into it all. Really love how concat langs feel like a mid point of performance - lisp - static types. Are still very new to them of course but will continue to try to learn about them.

I found Kitten then too. Didn't realized until the end of the article that this was it's creator. Really interesting post and glad to hear it might come more. Magnet sounds really interesting. Will certainly check it out.

<comment><USER10> Aww... Totally missed it was from 2012...

</comment></comment><comment><AUTHOR> Discussion from 7 years ago: [https://news.ycombinator.com/item?id=3582261](https://news.ycombinator.com/item?id=3582261)

Hopefully the state of concatenative programming has changed a little since then?

</comment><comment><USER11> In functional programming... Replace immuteable variables with no declared variables. None.

Like the immuteability rule in functional programming, if you follow this rule in any style of programming you will achieve concatenative programming.

<comment><USER12> It's technically possible to write in a concatenative style in a non- concatenative language, but in most cases, it's nowhere near idiomatic. How would you define a function that squares a number in a concatenative style in Javascript?

Here's the best I can come up with:

      function compose(...funcs) {
        return stack => funcs.reduce((acc, cur) => cur(acc), stack)
      }

      function dup(stack) {
        stack.push(...[,,].fill(stack.pop()))
        return stack;
      }

      function mul(stack) {
        stack.push(stack.pop() * stack.pop())
        return stack;
      }

      const square = () => compose(dup, mul)

      console.log(square()([4]))

Then again, this could be a trick question someday - if the pipeline proposal goes through, it'll be possible to write idiomatic concatenative Javascript. (If you want to play with the pipeline operator, see here: [https://defseg.io/etc/pipeline.html](https://defseg.io/etc/pipeline.html)) You'd still need to define all your functions as accepting a stack parameter, but you wouldn't need a compose function, so you could do something like this:

      function dup(stack) {
        stack.push(...[,,].fill(stack.pop()))
        return stack;
      }

      function mul(stack) {
        stack.push(stack.pop() * stack.pop())
        return stack;
      }

      const square = stack => stack |> dup |> mul

      console.log([4] |> square)
      console.log([2] |> square |> square)

Now to write an ECMA proposal for recursive combinators... /s

<comment><USER11> This is actually completely incorrect. Concatenative still retains immutability for parameters. It is a subset of functional programming.

You are using a stack which is not immutable.

A lot of javascript programmers think they are doing functional programming but they don't get the essence of it. Yes you know map, yes you know reduce. But you don't get it.

functional programming is in essence a mathematical function rather than a procedural function. If you can fit your entire program into a single expression or a single function without computational steps or procedures you have achieved functional programming.

Immutability is a side effect of converting everything into a single mathematical expression. Concatenative programming and functional programming are the same thing as imperative programming BUT with more restrictions so of course you can do concatenative programming in javascript AND you can be idiomatic.

You are overcomplicating the concept. Literally:

      function square(x){
           return x*x
      }

is still concatenative.

all concatenative programming is, is using the compose operator to compose your functions into a single function.

for the given:

      function a(x){
           return x*2
      }

      function b(x){
           return x*x
      }

if your goal is to compute (2x)^2

procedural is this:

      var y = 1;
      y = a(y);
      y = b(y);
      //literally a list of procedures mutating a value. Order matters.
      console.log(y);

functional (without concatenative):

      const x = 1;
      const y = a(x);
      const z = b(y);
      console.log(z);

Above, the functions are applied on defined immutable variables. Order doesn't matter as long as you keep all definitions the same. While order happens sort of as a consequence to this, the concept for functional programming is to get rid of procedures.

concatenative (still a valid functional program):

      const c = a |> b
      console.log(c(1));

In the above, a function application is only used here as the last step. The IO step where functional AND concatenative programming breaks down, but literally for concatenative programming your entire programming should be all made up of function definitions and composed functions and no declared variables and no applied functions. Just apply one function in the last step for IO and your program is concatenative.

Javascript has been giving bootcampers completely wrong ideas about functional programming and what it is. Learn a real functional programming lang to actually get it. Haskell is a good one.

Also your examples literally defeat the purpose of functional and concatenative programming. It makes the code worse. I would literally not think concatenative programming or functional programming is better if I saw that code for the first time. I would avoid functional programming like the plague if it caused your code to blow up into a mess like that. I'm not here to stretch my brain just to square a number.

<comment><USER12> >You are using a stack which is not immutable.

Yes, but that's beside the point. I said "style", not "paradigm". The basic structure, not the totality of the thing. I don't know what CS researchers would think of this distinction, but it seems convenient to have in practice.

You can use a functional style in Javascript without insisting on pure immutability throughout your entire project, and there are advantages to being able to do so. There are also advantages to being able to use a concatenative style, which is why the pipeline operator was proposed.

It would be possible to rewrite that code to use an immutable stack, but for the purpose of illustration - specifically, illustrating that there isn't currently a good way to write in a concatenative style in Javascript - I don't think it's necessary. You can use the style without the paradigm. (Besides, the reference implementation of Joy mutates the underlying stack variable, and if the way to get a concatenative paradigm in standards-compliant, runs-in-a- browser Javascript is to Greenspun's Tenth Law a concatenative language...)

The better option would've been not to use a stack at all, and illustrate it with integers, as you've done here. But you'd still need some way to manage multiple variables to use a concatenative idiom to compute 2x^y.

>Also your examples literally defeat the purpose of functional and concatenative programming. It makes the code worse.

Right. You _can_ follow the rules of the paradigm in Javascript, once you've written enough of an interpreter for a concatenative language to let you do so, but it'll make your code worse. But there are languages that are designed for the paradigm - and in them, you can write good code that follows the rules of it.

>Javascript has been giving bootcampers completely wrong ideas about functional programming and what it is. Learn a real functional programming lang to actually get it. Haskell is a good one.

Not a bootcamper - even worse, I work in a warehouse - but I might quit and become one once my stock options vest...

<comment><USER11> >Yes, but that's beside the point. I said "style", not "paradigm". The basic structure, not the totality of the thing. I don't know what CS researchers would think of this distinction, but it seems convenient to have in practice.

CS researchers would say you don't know what you're talking about. Your "style" actually made things worse. You can follow the paradigm IN javascript and make your code more concise and better. Your points are true about writing an interpreter but they are not applicable in the javascript case and most cases as well. The CS term you are looking for is "Sugar". There is no sugar in javascript for compose thus it it slightly more awkward to do functional or concatenative programming in javascript than say haskell.

The pipeline operator is sugar for something that is close to compose... However it is still very convenient to simply define a compose function even without sugar for concatenative programming in javascript.

>You can use a functional style in Javascript without insisting on pure immutability throughout your entire project

Functional programming IS immutable programming the two are one and the same. Where it gets a little iffy is "pure" functional programming and "impure" functional programming. That's usually just referring to IO. Again, you don't know what you're talking about.

When you use the map or reduce you are not doing functional programming as a paradigm nor as a style. You're simply using a function. Map exists in functional programming as a higher order function, it also exists in procedural programming as a higher order function because Map can be implemented with a for loop which is a procedural primitive.

>The better option would've been not to use a stack at all, and illustrate it with integers, as you've done here. But you'd still need some way to manage multiple variables to use a concatenative idiom to compute 2x^y.

A stack isn't even relevant. You did nothing by introducing it except introducing how to do things in a more complicated way.

Dual parameters are handled in lambda calculus through currying. It's even easier in javascript as javascript supports recursion. Again you don't know what you are talking about.

      function timesTwo(x){
           return x * 2;
      }

      function xToYPower(x){
           function result(y){
                return y === 0? 1 : x*result(y-1);
           }
           return result
      }

      // ex: 3^2 ===> xToYPower(3)(2)

      function compose2(g, h){
           return x => g(h(x));
      }

      const x = 3;
      const y = 5;
      console.log(compose2(times2, xToYPower(x))(y))
      //2*(3^5)

      // pipeline syntax shown below;
      //my mistake in the earlier comment, I thought pipeline was the
      // compose operator. It is not... it is actually the apply operator. Which with a
      //little modification can be used as compose or similarly to compose.

      console.log(y |> xToYPower(x) |> timesTwo);

See? Concatenative programming in javascript. And it's not less convenient.

Haskell is the idiomatic language for typed functional/concatenative programming. This is what it looks like:

      timesTwo :: Int -> Int
      timesTwo x = 2 * x

      xToTheY :: Int -> Int -> Int
      xToTheY _ 0 = 1
      xToTheY x y = x * (xToTheY (y - 1))

      result = let x = 3
                   y = 5
                 in (timesTwo . (xToTheY x))(y)

      main = println result

      // - the "." is the compose operator. It is this operator that spawns the name
      //     "point free programming" and is the main "sugar" feature used for
      //      concatenative programming
      // - haskell curries functions with multiple parameters automatically, hence
      //      (xToTheY x) returns a function that that accepts y and will apply y to x
      //      to get x^y.

which is essentially the same thing just with more "sugar" but you can see that it's not a huge step up from javascript.

> It would be possible to rewrite that code to use an immutable stack, but for > the purpose of illustration - specifically, illustrating that there isn't > currently a good way to write in a concatenative style in Javascript

There is a good way, like I just showed you above. It's not that far from haskell which is THE definitive language for these styles of programming.

I'm not even an advocate for javascript. (TBH I ate the language). So you can see here that what I'm saying is unbiased.

>Not a bootcamper - even worse, I work in a warehouse

Don't worry it's not worse. It's the same. Bootcamps literally teach you everything you can get off the internet in a very superficial way. Anyone can learn javascript bootcamp or not. Get better and get off javascript.

<comment><USER12> >Functional programming IS immutable programming the two are one and the same.

Yes, and many imperative languages allow you to use, in an idiomatic manner, a functional style that avoids mutable state, even though these languages aren't designed around the functional paradigm, and don't require you to adhere purely, in the colloquial sense that means "strictly" or "completely" but has fewer letters, to it. And the reason for this is that people have taken ideas from languages that were designed to be functional rather than imperative.

If you want to bring up map and reduce, what's their genealogy? Did the imperative world get the idea from ALGOL? Maybe they did, but I'd be surprised.

>See? Concatenative programming in javascript. And it's not less convenient.

It still isn't great. To avoid stepping outside the paradigm, you have to be willing to curry every function that needs multiple parameters. And I don't know what that recursion is doing there - presumably I don't know what I'm talking about again, but it seems to me that the entire body of `xToYPower` could be replaced with `return y => x __y`.

<comment><USER11> >If you want to bring up map and reduce, what's their genealogy? Did the imperative world get the idea from ALGOL? Maybe they did, but I'd be surprised.

Genealogy is that it's a pattern from the functional world. It's usually unused in procedural languages because they have special syntax for it like the for loop. However there is no restriction to implement map using a for loop. Therefore it is not part of the paradigm similar to how using functions in a procedural language does not mean you are doing functional programming from a stylistic perspective.

>To avoid stepping outside the paradigm, you have to be willing to curry every function that needs multiple parameters

For compose yes you are correct, it has to be done.

>And I don't know what that recursion is doing there

The recursion is doing x^y. That is the meaning of the function name.

      2^3 = 8
      3^2 = 9
      xToY(2)(3) = 8
      xToY(3)(2) = 9

>but it seems to me that the entire body of `xToYPower` could be replaced with `return y => x y`

x y with a space inbetween looks like a syntax error. I don't think it will even run.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> Another way to put it is a program with zero state or temporary state.</comment>


Ask YC: Accounting suggestions - how do you do it? - <AUTHOR>

If there is one thing that makes my blood boil, it's doing paperwork, especially taxes. I hate it. I hate keeping records, data entry, well, all of it. I've tried the accountant route, but it's expensive and I end up creating a spreadsheet to give to them that's nearly as annoying as doing it myself.<p>I'm hoping folks can share what they do tax-wise. Do you have any accounting hacks to make this less aggravating? What's your system and incorporation setup? <comment><USER2> I'm currently managing the accounting and taxes of my 4 startups and my personal taxes, which includes two schedule C businesses. Two of the startups are LLCs and two are S-corps, though before I've had two other C corps. I've used Peachtree, Quickbooks, Quickbooks Online, PayCycle, Turbotax Business, and good ol' Excel over the years.

I recommend Quickbooks (the desktop version) if you are doing it yourself and/or have multiple businesses. If you want your partner(s) and/or accountant(s) to have easy access, Quickbooks Online is good, though it has some limitations. I've always used TurboTax business without any problems (and TurboTax personal for that matter).

I always use the Desktop versions of TurboTax. I don't think there is an online business version, but if there is, don't use it. You want that CD so that if you need to amend 5 years from now, you can use it.

For Schedule C and supporting documentation for Quickbooks I use Excel. I don't put every transaction into Quickbooks because that is crazy. Every so often, depending on the business, I reconcile the spreadsheet with my bank accounts by exporting data from underlying billing systems or PayPal or whatever. Then I put the aggregate values into Quickbooks.

For Schedule C, I have a spreadsheet that I've tweaked over the years to make doing my taxes really easy. I can go into more detail if you want.

I have keep scanned and paper copies of everything. I know it is anal, but it makes me feel good and it is proved its weight in gold in several situations.

I also highly recommend PayCycle. It integrates right into QuickBooks and makes doing everything associated with employees super simple.

Btw, I have had my books professionally audited once, and there were no problems.

</comment><comment><USER3> Go for a hosted solution like quickbooks online or something like that. Why? Well, you can easily give access to your accountant or an investor (VC) and avoid all the paperwork that way... and you appear transparent to them. Now, that has some pros and cons but I think the pros overweigh the cons. You can then hire an accountant that's not even in your city and can save a lot of money that way. You also don't have to spend $500 right away since you'll be paying month-to-month.

[http://oe.quickbooks.com/product_info.cfm?sc=QBC-V51-HME- FAM...](http://oe.quickbooks.com/product_info.cfm?sc=QBC-V51-HME-FAMTXT- TSTA-060213)

<http://quickbooksgroup.com/webx?addPost@@.ef86087>

</comment><comment><USER4> Sounds like you haven't found the right accountant. For $300/month, we offload _everything_ to ours. We wrote more about it here: <http://dynamite.errfree.com/posts/72-accounting-the-books>

</comment><comment><USER5> I used a bookkeeper ($50/month) and tax accountant for taxes. He is a retired multi-millionaire, that wanted to see a smart young guy succeed. All expenses were via credit/debit card. All revenues were promptly deposited into the bank account, and reflected on bank statements.

A bookkeeper or accountant is useful once you start making money, because they help keep you objective and should be a useful resource.

</comment><comment><USER6> I use the quickbooks free starter edition plus Turbotax online. So far no problem and I got my refund right away (thank to free efile).

Once you start making money I think the best thing to do is hire an accounting firm or internal accountant/bookkeeper.

</comment><comment><USER7> I use FreshBooks (<http://www.freshbooks.com>) for invoicing. I'm probably going to explore Quickbooks.com (their online solution) also for the accounting side of things.

</comment><comment><USER8> I'm using GnuCash + an accountant. It works ok, but I share the paperwork frustration. I have an LLC.

<comment><USER9> Tell me more about your problem. Perhaps a software solution is in need.

<comment><USER8> I think it's more a hired-help solution, although having an on-line, web based accounting thing would probably not be a bad business for the right person.

</comment></comment></comment><comment><USER10> I use <http://www.freeagentcentral.com> to handle the lot (no US-specific tax support yet)

</comment><comment><USER11> Simply Accounting + Retired Accountant

</comment><comment><USER9> Turbo Tax

<comment><AUTHOR> Couple questions, if you don't mind. Are you incorporated? Is it a specific turbo tax variety? What's the process like, and do you do quarterly estimated tax and all that?

<comment><USER9> Intuit's Turbo Tax walks you through everything. If you have a personal business, it will step you through the filing. If you have capital gains, it will help you with that as well. I just finished my taxes with Turbo Tax and it only took me about 15 minutes. Yes, I could have done them by hand, but I absolutely hate doing taxes even though I only do them once a year. The government already gets enough of my money, they will not get too much of my time also.

<comment><AUTHOR> Sounds promising. I have a C corp. Does TurboTax cover something like that, or only sole proprietorships?

<comment><USER9> <http://turbotax.intuit.com/small-business-taxes/>

It lists C corp as an option, but I don't own a business, so I can't comment on what it can do for something like a C corp.

</comment></comment></comment></comment></comment><comment><USER12> bookkeeper + accountant</comment>


Why the Bitcoin halving should be a non-event - <AUTHOR> https://medium.com/@cyrilfievet/why-the-bitcoin-halving-should-be-a-non-event-82bf5dbd9363 <comment><USER2> From my understanding, halving will reduce the mining reward per block, which in turn can make it unprofitable for some miners, causing them to leave the network. Is the Bitcoin miner pool heterogeneous enough that centralization is not a risk?</comment>


Ask HN: Anybody else EC2 issues on us-east-1? - <AUTHOR> Originally just us-east-1d was not reacting well, but now most EC2 instances don't do much anymore. <comment><USER2> us-east-1 is the region that has most issues. Every time you hear about an AWS outage it's typically just us-east-1, and it brings down half the internet. It's really puzzling why everyone keeps hosting their projects in us-east-1.

The advantage of that region is that it tends to get new instance types and services first. And if you need to be on the bleeding edge, then you have to agree to deal with some risks. But for everyone else that doesn't need the bleeding edge, why not just run your instances in us-west-2 or us-east-2 for example? I've run services in us-west-2 for years and I've never had to deal with fallout from an AWS outage.

<comment><USER3> > It's really puzzling why everyone keeps hosting their projects in us-east-1.

I've been using Amazon for 4 years, and this is the first time I hear their us-east-1 is more "cutting edge" and less reliable than all the other zones. This isn't even listed on their page describing these zones: [http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using- reg...](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions- availability-zones.html)

<comment><USER4> It's pretty common knowledge that us-east-1 is the most unreliable region. Also the oldest which helps explain why.

<comment><USER5> I agree its "common knowledge" but is it true? Or is it just a case that because 80+% (made up) of everyone hosts in us-east-1, thats the only one we hear about in HN (and other sites) threads?

<comment><USER4> I go by the outage reports published by AWS. I haven't done an exhaustive analysis but there is a trend to support the common knowledge. I spend most of my time in us-west-1 and us-west-2 and very few if any outages over the past 3 years.

</comment></comment></comment></comment></comment><comment><USER6> check [https://phd.aws.amazon.com/phd/home?region=us- east-1#/event-...](https://phd.aws.amazon.com/phd/home?region=us- east-1#/event-log) when this happens...

As of now it says for me

"04:36 PM PDT We are investigating network connectivity issues for some instances in a single Availability Zone in the US-EAST-1 Region.

04:58 PM PDT We can confirm that some instances are unreachable and some EBS volumes are experiencing degraded performance in a single Availability Zone in the US-EAST-1 Region. Engineers are engaged and we are working to resolve the issue.

05:05 PM PDT We have identified the root cause and are beginning to see recovery for instances and EBS volumes in the affected Availability Zone in the US-EAST-1 Region. We continue to work toward full resolution.

"

<comment><USER7> Had a similar issue earlier today with Rackspace's version of EBS.

</comment></comment><comment><USER8> This is exactly why you should design your services to run in multiple availability zones to mitigate issues like this. We run our most critical services in at least 3 availability zones and we are moving the rest of our services soon as well. While these problems are unfortunate, it is part of relying on Amazon to manage resources.

Always plan for service degradation and look for ways to mitigate against issues like this.

<comment> tuna-piano Some services, like AWS Redshift do not allow multi-AZ deployments.

Not very helpful when Redshift didn't have a single note in their status page for 30+ minutes after it went down.

Any bets on whether the status page will show up as Red for EC2/Redshift tomorrow? I'll take 100 to 1 odds for $1 that it won't be red.

</comment></comment><comment><USER9> Yes: [https://status.aws.amazon.com/](https://status.aws.amazon.com/)

us-east-1b seems to be affected for me.

4:36 PM PDT We are investigating network connectivity issues for some instances in a single Availability Zone in the US-EAST-1 Region.

<comment><USER10> I'm having problems in us-east-1c

<comment><USER11> The AZ names are different for each account.

<comment><USER9> Wow, how did I not know this? Thanks for the info.

<comment><USER12> They randomise the AZ letters, because humans tend to shove things in 'a' before anywhere else - it's a psychological load-balancer.

If you want to figure out which of your AZs corresponds to another account's AZs, you can compare spot-prices, which are individual per AZ. Also, for some reason, my account doesn't have a 'b', just a-c-d-e. Weird.

<comment><USER11> They also introduced us-east-1f, and it's the same for everyone because it's new :).

<comment><USER11> Not sure why I was downvoted. This was mentioned in an issue of Last Week in AWS [0].

[0] [https://snarkive.lastweekinaws.com/issue_14-_US- East-1_Drops...](https://snarkive.lastweekinaws.com/issue_14-_US- East-1_Drops_An_F-Bomb.html)

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> Cronitor saw our customers first impacted at 4:29, largely recovered by 5:04.

Another interesting thing is that AZ identifiers are randomized from customer- to-customer so when people report their failures, like here in this thread, it can sometimes seem like a problem is region-wide when in fact it's isolated to an AZ.

<comment><USER4> I don't follow your point about randomized AZs. I agree they are randomized and have observed and correlated region letters across multiple customers/accounts. How does that make it seem like a problem is region wide though?

<comment><USER13> When several people report failures, each in their own AZ, if you don't realize they're randomized, you can assume many/all AZs are impacted.

<comment><USER4> Got your point now. Thanks for replying.

</comment></comment></comment></comment><comment><USER14> Yep, phone just exploded with alerts

</comment><comment><USER15> Amazon are starting to push 'new' features and services to Ohio pretty quickly if you still need a non-Virginia AWS East Coast location.

</comment><comment><USER16> us-east-1 is the most common region for failures.

It's literally a joke between me and my friend, when either of us are unavailable for social time.

</comment><comment><USER17> Is this related to the L3 fiber cut and related Comcast outages in the northeast?

</comment><comment><USER18> Yes, seeing issues with the autoscaling API for a single zone in us-east-1.

</comment><comment><USER19> Highly recommended switching to google cloud.

</comment><comment><USER20> always.

<comment> tj-teej lol

</comment></comment><comment><USER21> yes

</comment><comment><USER22> Yes

</comment><comment><USER23> yup</comment>


Curse of the crystal skulls and other vanishing area puzzles - <AUTHOR> http://www.marianotomatis.it/blog/research.php?url=20110707

<comment><USER2> I understand the missing square puzzle with the triangles (<https://en.wikipedia.org/wiki/Missing_square_puzzle>) but I'd be interested to see how Freer's puzzle works.

I'm having trouble finding Peter Tappan's "FuTILE Subtraction" from the citation

<comment><USER3> Look at the video after he's taken the pieces out of the frame and reassembled them on the table—say, at 1m20s (<http://youtu.be/_LY7mf49l5k?t=1m20s> or screen shot here: <http://imgur.com/GgxONLV>). He's kept the two reassembled halves separate.

Look at the diagonal edges of the halves. They don't match up! I've put them together in Photoshop to make it clear: <http://imgur.com/gsP6AxG> When you put the two halves together, you don't get full cells. You get a crazy mishmash, because the height of one of the halves has been increased by 3/7ths of a cell-height. He replaced some pieces when he flipped the frame over.

<comment><USER4> You can also see mismatches on the egg one. There's enough extra egg tacked on to each egg in the "hole" picture to allow another egg to be created.

</comment></comment></comment><comment><USER5> It must be that, once you re-arrange the pieces, you transform the rectangle with a hole into a shape that looks like a rectangle with no hole but is slightly caved in.</comment>


Newest app phenomenon: cheating on tests - <AUTHOR> http://forums.macrumors.com/showthread.php?t=763011 C'mon, you know that's what it's for. <comment><USER2> Flagged for misleading title.</comment>


NYU Neatly Embodies Everything Wrong With Higher Education in America - <AUTHOR> http://www.slate.com/blogs/browbeat/2013/06/18/nyu_loans_for_summer_homes_ny_times_story_about_university_pay_for_john.html

<comment><USER3> NYU is a school for rich kids. It's a vacation for students who want college fun, but prefer it to be in an urban setting like NYC (and the best part of NY, to be sure), rather than in a small college town with its frat parties and beer pong. IMO, it's not the ideal place to study at all. Too many distractions. If you're a liberal arts student you can probably take advantage of all the events, museums, intellectual stuff surrounding you, but there's no way I would want to study pre-med or engineering or the like there (even if disregarding the costs).

If you go to a $50,000 per _year_ university for four years in the most expensive area of the most expensive city in the country and come out surprised by all the student debt you have, then you're an idiot and your degree should be withdrawn.

Shame on the federal government for providing easy credit for those wanting a luxurious four year vacation.

<comment><USER4> Did you go to NYU, or are you just out to insult those who did?

I went to NYU. I credit it with developing a lot of the skills that have gotten me to where I am today. This comes with a very clear understanding that my degree, while not directly related to what I do for a living, is still hugely useful in my day-to-day life.

I have a substantial amount of debt; most college kids do, anyhow. I credit NYU with giving me the opportunity to leave rural Pennsylvania and helping me into a salary bracket five times higher than my parents ever were in. For me, the cost of 3 years (after scholarships) bought this opportunity.

NYU isn't a "luxurious four year vacation." It's one of the higher ranked schools in America. It has professors who are leaders in their fields. It is rigorous and challenging.

</comment></comment><comment><USER5> Any government backed student loan should have a simple repayment schedule -- a maximum of 15% of your earnings for 10 years following graduation. At the end of 10 years, the loan is considered fully paid and any balance, if remaining, forgiven. The _institution_ eats the cost of forgiving the balance.

So if you're an institution providing an expensive but worthless education, you aren't going to get paid for it.

Let's treat universities the same way we treat teachers -- let's assess the results.

<comment><USER6> Even simpler: Don't have the government involved in student loans at all, and let the market price loans for different degrees for different students freely. Those institutions that can convince lenders that graduates will be in a position to pay back the loans quickly will be able to offer lower rates to students, and thus attract more and better students.

Those out to study degrees that don't offer great employment opportunities will be offered more expensive loans which will curb demand for such degrees which will depress the cost of the degrees. It will also make sure that fewer people will go to a party college and study an easy degree (or, at least, that those that do aren't subsidised by tax-payer underwritten credit).

Extra bonus: All those companies that clamour for STEM grads have a very simple avenue for putting their money where their mouths are: Simply go out and underwrite some cheap loans. (And no, indentured servitude is still illegal - companies underwriting student debt shouldn't be allowed to change the terms of the loan if the student comes to work for them).

<comment><USER7> That's simpler, but worse. Education is a text-book example of a good with positive externalities and it's worth subsidizing, especially for poorer people.

<comment><USER6> To an extend yes. Absolutely true up to and including high school, but at some point diminishing returns kick in.

The idea that _all_ education at any cost carries positive externalities is exactly what got us into the mess that is education today.

Edited to add: Also, my proposal isn't incompatible with neither financial aid nor grants to institutions. But like underpriced mortgages caused a housing bubble, underpriced student loans is causing an education bubble.

<comment><USER8> I think it might be the time to buy CDS backed by securities on student loans[0]...

Time for me to find some investors and pull my own Kyle Bass :P

[0]: [http://m.washingtonpost.com/business/economy/sallie-mae- to-s...](http://m.washingtonpost.com/business/economy/sallie-mae-to-split- into-two-companies/2013/05/29/de0eb5c8-c88d-11e2-9f1a-1a7cdee20287_story.html)

</comment></comment></comment></comment></comment><comment><USER9> As a general rule, I think there is an counter-productive reaction among people to the idea of paying high salaries to people working in non-profits. At the end of the day, good people are willing to take a pay cut to work at an organization they perceive to be socially beneficial, but only so much of one. Their kids still have to go to college, after all. And if the organization can raise the money, why object to its paying what it needs to attract good people? After all, NYU is in a location where you just can't buy a reasonable apartment on a professor's salary. That's why it goes to such lengths to offer housing options to professors (it's the largest land owner in lower Manhattan, IIRC).

Now, the problem in this particular case, however, is that there is a massive market distortion in play: federal student loans. Because federal student loans are guaranteed up to the cost of attendance with almost no credit check, schools can raise prices to whatever they want with almost zero impact on demand. If students could only get loans based on parental credit, tuitions at places like NYU would collapse.

<comment><USER10> I'm not even sure parental credit would slow things down. That might send more of the less-privileged students to smaller universities and community colleges, but I'm not sure they constitute a large fraction of major university students in the first place.

And for those students whose parents credit _would_ justify a 60k loan, how many of those couldn't also get an 80k loan, on student loan terms (rates and repayment schedules)? I think all you'd do there is make it increasingly harder for parents of college-age children to get any further credit and draw down their consumption as college prices continued to grow. (Surely they'll rank co-signing Junior's college loans as more important than a cottage or condo in the sunshine belt.)

I think the bigger problem is that the degree and institution aren't considered in the loan process. I don't know how you'd even begin to structure an objective analysis, but it seems fundamentally wrong that the government will guarantee an 80k loan today for a degree that cost 60k yesterday, even though the market for that degree hasn't moved and the program itself is largely undifferentiated from what it was yesterday, let alone from competing universities charging 40k or less for substantially the same program.

<comment><USER11> I think it should be dependent on the credit of the _students_. And, yes, this is almost none.

Furthermore, make the students able to declare bankruptcy to escape student debt.

The reaction from the schools would be to make sure their students don't end up more than (very roughly) $10,000 in debt.

<comment><USER10> If they can discharge student debt on bankruptcy, wouldn't that just normalize the process of: 1. take on loans 2. go to college 3. declare bankruptcy 4. enter jobs market?

Or are we counting employers continuing/extending their discrimination against candidates with 'bad credit' ? And would that hold up in a tighter jobs market?

<comment><USER11> It would definitely limit the loan size. Someone with $50,000 in debt will default at the drop of a hat, and so they will never be extended $50,000 worth of debt, and so schools will need to charge less for their service.

Someone with $4,000 worth of debt probably will not default, because the hit to their credit isn't worth it.

</comment></comment></comment></comment></comment><comment><USER12> I'm not sure I agree with all the scandal. To me it's more a legal technicality.

Schools should be allowed to pay whatever market salaries they must to keep their heads. If students don't like it, they can choose to apply to other schools. If alums don't like it, they don't need to donate. If faculty are jealous, they can work elsewhere.

The argument only breaks down when these schools get non-profit benefits. So why not just be done with it and take away the non-profit status? And then perhaps spread the big research dollars to true non-profits. But - <USER2> the schools.

To me the bigger scandal is how much the head coaches get paid. That's truly the sign of a for-profit enterprise, and the athletes frequently are required to go to college to get to the pros.

<comment><USER13> The NCAA is pretty scummy: [http://www.theatlantic.com/magazine/archive/2011/10/the- sham...](http://www.theatlantic.com/magazine/archive/2011/10/the-shame-of- college-sports/308643/dmg) but what pro sport requires a college degree?

<comment><USER14> The NFL does not require a degree, but does have an age requirement which occasionally comes up as a hot debate point: "The NFL Eligibility Requirements NFL rule requires a player to either be out of high school for three years or have finished three college football seasons before joining the league. (Lupica, M. 2004) The NFL is the only major professional sport that prohibits the drafting of players who have not completed three college seasons or who are not three years removed from high school graduation (Gehring, 2004; Nieporent 2004). The NFL claims that this rule is in the athlete's best interest. The NFL argues that this rule protects player's physical safety. However, the NFL and the NCAA benefit by capitalizing on amateur athletes."

[http://www.thesportjournal.org/article/age-requirement- profe...](http://www.thesportjournal.org/article/age-requirement-professional- sport)

</comment></comment></comment><comment><USER15>
       > building itself less like a university and more like a for-profit corporation

This concept was discussed recently on the EconTalk podcast [http://www.econtalk.org/archives/2013/06/pallotta_on_cha.htm...](http://www.econtalk.org/archives/2013/06/pallotta_on_cha.html)

"The way we think about charity is dead wrong" [http://www.ted.com/talks/dan_pallotta_the_way_we_think_about...](http://www.ted.com/talks/dan_pallotta_the_way_we_think_about_charity_is_dead_wrong.html)

Uncharitable: How Restraints on Nonprofits Undermine Their Potential [http://www.amazon.com/dp/1584659556/](http://www.amazon.com/dp/1584659556/)

<comment><USER3> Charity is very profitable for many elites especially in places like NYC and DC. Just because they don't distribute dividends doesn't mean they don't distribute salaries. Most "connected" people here come out of school and get hired by their friends at non-profits. They sit around, raise money, and don't do much with it other than pay themselves.

<comment><USER5> Sadly, I have seen this myself. Expensive "gifts" for doing odd jobs for charities (that far exceed the value of the task), first-class travel plans and ludicrously expensive hotels...it's sad, really.

Of course this was a while ago. I don't know if the tax laws have changed to make these sorts of things more difficult to do.

</comment></comment></comment><comment><USER8> Interesting how this was flagged to death... Maybe comparible to the same sentiment that was present in the housing market in 2007: most dreaming of their "rainbows and unicorns" blind to the chains they just wrapped their necks...</comment>


Ask HN: What kind of IP agreement would make you uncomfortable as a contractor? - <AUTHOR> Obviously as a contractor I am building software for a client and I intend for the software I build to be the intellectual property of my client. What I am curious about is: in a consulting agreement provided by the client how do I recognize language that is overzealous and may be claiming intellectual property rights of other work that is outside the scope of the work commissioned by the client? (e.g. I have multiple clients and/or I have my own company and client work is a part of my revenue but I might work on my own products) <comment><USER2> Related to the issue of IP; I'd be wary of anything which aims to restrict your trade. The laws probably change state by state, and its possible for a contract to include terms which would never hold up if challenged.

Any restrictions on your ability to do work in the same industry or geography is an immediate warning for me. Its difficult to draw industry boundaries and a client could pick and choose adjunct industries at their discretion.

Anything bordering on a non-disclosure agreement is also a problem. If you are freelancing for multiple clients, the chance that you might work with a client with some overlapping concept or business model means that even being in the room might breach your contract. Large organisations might have related projects, that cause concern even if they aren't related to the work you are doing. Confidentiality agreements would be safer, I imagine.

I had an employment contract that gave the company rights to personally track or record me if required. I don't imagine they do so, and you can't relinquish your rights when violation of the law is involved. What it would allow though is the organisation to record my emails or phone history should I be breaching my independence or regulatory duties, which I feel makes sense and is a much different issue.

Either way, any alarming conditions are just something you should have them clarify in writing. I think most of the time these contracts are fairly pro- forma anyway. IANAL.

</comment><comment><USER3> We have a company policy against signing contracts. Keeps it simple.

Occassionally someone says they need us to sign something and we ask why. 99% of the time the actual fear is that we'll break the law. So i just point out that since doing "x" would be against the law, _they are no safer if we sign something_. What written agreements do is muddy the waters because now you have to have a judge determine what the agreement says according to the law.

</comment><comment><USER4> One way to manage this is to have your own contract serve as the basis for the agreement. The second part of that is to be willing to walk away from potential clients who insist on changing it in non-trivial ways.

Good luck.</comment>


Warren wing wants Clinton to crack down on Apple, Google and Amazon - <AUTHOR> http://www.politico.com/story/2016/10/warren-clinton-google-apple-amazon-230274 <comment><USER2> An email from Google's chairman to Clinton Campaign (I selected the most technical parts, which I believe will be most interesting to HN crowd, link to full email at the bottom):

\---

Here are some comments and observations based on what we saw in the 2012 campaign. If we get started soon, we will be in a very strong position to execute well for 2016.

\---

Key is the development of a single record for a voter that aggregates all that is known about them.

\---

For each voter, a score is computed ranking probability of the right vote. Analytics can model demographics, social factors and many other attributes of the needed voters. Modeling will tell us what who we need to turn out and why, and studies of effectiveness will let us know what approaches work well. Machine intelligence across the data should identify the most important factors for turnout, and preference.

It should be possible to link the voter records in Van with upcoming databases from companies like Comcast and others for media measurement purposes.

\---

Quite a bit of software is to be developed to match digital identities with the actual voter file with high confidence. The key unit of the campaign is a "voter", and each and every record is viewable and updatable by volunteers in search of more accurate information.

In the case where we can't identify the specific human, we can still have a partial digital voter id, for a person or "probable-person" with attributes that we can identify and use to target. As they respond we can eventually match to a registered voter in the main file. This digital key is eventually matched to a real person.

\---

[https://wikileaks.org/podesta- emails/emailid/37262#efmAC9AE0...](https://wikileaks.org/podesta- emails/emailid/37262#efmAC9AE0AZBAZdA3DA4n)

<comment><USER3> That's a nice find. It's worth skimming the full email for context. He's laying out the draft organizational plain for a modern campaign and it's about what you'd expect. The only interesting part is that it's actually public and, to me, how non-conspiratorial these emails have been. Clearly some people take a different view.

<comment><USER4> Can't read the email itself, but these excerpts almost seem to imply that they'd be using Google's data in order to construct this? Is this an incorrect read? Or is he just outlining how to build such a system in the abstract?

<comment><USER5> No - in the e-mail itself, he mentions that there's a mobile app field volunteers could use to update information on the voter in real-time, as they go door-to-door and canvas. Presumably it also hooks into poll databases, telephone surveys, previous voter rolls, and other data sources.

</comment></comment></comment></comment><comment><USER6> But.. Clinton is in cahoots with Google. We've all seen the articles documenting Eric Schmidt's relationship with the Clinton Campaign. This is absolute insanity.

<comment><USER5> ...and that's when you [metaphorical you, not you personally] learn that political parties are made of individuals, and the ally of your ally is not necessarily your friend.

</comment></comment><comment><USER7> As far as I know Clinton is both endorsed and funded by Jeff Bezos, Tim Cook, and Eric Schmidt.

In other words: this will never, ever happen.

</comment><comment><USER8> > Europeans may soon enjoy better protections than U.S. customers

Not sure if the "may soon" part even applies now.

</comment><comment><USER9> US Elections makes me realize that Brazil is not even close to americans in regard of corruption. You guys are pro!</comment>


I'm killing most of my email capture. Here's why. - <AUTHOR> http://www.nateliason.com/email-capture/ <comment><USER2> This is pretty low-value, as becomes obvious when he's plugging his sex advice "content".

\- E-Mails work because they work. It's pretty well tested. Without RSS, there's just no other push medium for semi-regular publishing.

\- Nate Whoever isn't NN Taleb.

</comment><comment><USER3> If you are a world renowned investor with fu money and don't particularly care about marketing, you don't need email capture.

But for the rest of you, email capture is valuable precisely because you own the delivery channel.

The author Nate says all his traffic is from search and social. Two platforms he doesn't own. An algorithm change or someone marking his link on spam on Facebook could be disastrous.

Having that email channel is crucial to any online business. And if your metrics stink, then you need to revisit how you're capturing emails and how you talk to your subscribers.

I've had lists with 5% opens and lists with 20% opens. The difference was how the list was built and how I positioned myself.</comment>


Ask HN: Haskell ARM Continuous Integration Service - <AUTHOR> Are there any Haskell CI services for the ARM architecture? <comment><USER2> I'm not aware of ARM architecture CI services for any language but I've seen people run tests in QEMU on travis-ci. It's not quite the real deal, but it's a whole lot better than nothing.

I'd imagine having real ARM hardware in a CI service would be a real pain in the ass compared to just getting CPU time from any cloud provider.

And ARM hardware is really diverse. There are a lot of variants of the CPU and most of the products are some kind of system-on-chips with a lot of device- specific software.

If you don't mind the manual maintenance, you can just get a Raspberry Pi or another ARM machine to run on. You can run a runner for a CI service on it to get the workflow automated.

<comment><USER3> Installing Haskell on a Raspberry Pi takes a while, building from source, but I agree with your answer. Are there prebuilt Haskell packages for the Pi now? When I looked I couldn't find any.

<comment><USER2> Cross compile or build dependencies once and install binary tarball for testing.

Compiling on embedded devices is horribly slow, cross compiling is a much better work flow.

</comment></comment></comment><comment><USER4> The closest thing I can think you can use is Gitlab CI and use your own runner in Scaleway. But I dont know an specific service for that.

</comment><comment><USER5> I have never heard of anything like this. Seems like using using QEMU in existing CI services would work but likely at the cost of long setup times.

[https://wiki.ubuntu.com/ARM64/QEMU](https://wiki.ubuntu.com/ARM64/QEMU)</comment>


Ways to be a Better Programmer in 2014 - <AUTHOR> http://programming.oreilly.com/2014/01/7-ways-to-be-a-better-programmer-in-2014.html <comment><USER2> One of the biggest ways I became a better programmer in 2013 was essentially the opposite of this advice from item 3: "Don't be afraid of your code. Who cares if something gets temporarily broken while you move things around? A paralyzing fear of change is what got your project into this state to begin with."

I was formerly working in an environment where no one was really responsible for making sure that features worked consistently or that new features didn't incidentally break old features, and the result was a huge amount of frustration and wasted time. Learning to spend some time and effort up front to make sure that new features and small-scale redesigns won't break old code has really clarified my thinking about system design. Taking it for granted that no one really cares if things are broken for a bit while you refactor really presumes a lot about the problem domain you're working in.

<comment><USER3> I think the idea of things being broken for a bit while you refactor implies that you haven't checked the code in, not that you don't care about breaking things in production.

I've been working with some pretty bad programmers lately, roughly sub- fizzbuzz or close to it, and one of the most stunning differences I've noticed is how terrified they are of their code. They program like they're building a house of cards. Once it seems to work, the idea of refactoring it for readability is completely foreign to them (of course, so is the idea of unit testing).

I think it's that kind of programmer this article is aimed at. Sure, you should make sure you don't break things, but you should also have some confidence in your code and be willing to constantly improve it.

<comment><USER4> _" I think the idea of things being broken for a bit while you refactor implies that you haven't checked the code in..."_

This makes me cringe. I think it means that the code hasn't been merged with the main branch, or to the release branch, or that the feature flags which turn on the new code haven't yet been set to turn it on by default yet.

</comment></comment></comment><comment><USER5> How about: Learn tools to make you more efficient? As technologies and stacks become more complicated -- and our brains retain the same capacity -- it's important to find ways to minimize the barriers to learning. It can be as simple as reducing small discomforts, which build up quickly in day-to-day- coding. I've found taking a few more minutes to pick a better color theme for my code editor can make syntax much easier to read through, especially when working with a new language.

<comment><USER6> I worry about concerns over efficiency. As much as I'd like for that to be a fairly objective word, I am forced to acknowledge it is anything but. Almost as bad as that wonderful word "quality."

For me, the challenge is to look at older technologies as often as newer ones. I don't quite believe that everything new was old at some point, but it is rather impressive to see the tricks and techniques that were used by folks years ago. To the point where I'm sometimes curious exactly what we have that is truly new. (I'm starting to learn just how powerful emacs can be, for example.)

</comment></comment><comment><USER6> I'm not so sure I would be so negative on the code in isolation. Yes, I think I would personally like to get my code out there more with/for others. _However_ , I see no real reason to think this should be a moral imperative that is given to others. To the point that, while I would love for it to happen, I more want to make sure I just write more programs. Even if they are of the "I ran them exactly once just to see if it worked" variety.

<comment><USER7> I've had to maintain some codebases where the previous developer was working alone for 6-30 months. They often share the same issue that bad practices get repeated over and over and over again, not knowing something turning into a habit because no one pointed out. Also, knowing that someone will go through gives some extra motivation and makes you think twice before doing something lazy or stupid.

Also, another person can recommend you a tool, library, etc which you wouldn't have thought of. For instance, at my early days as a developer I didn't know that things like SQL schema version control exists. I got introduced to liquibase which saved me from many many hours of work making sure all environments are using the same schema.

It all depends on who sees your code and the way they approach with comments, and how do you deal with criticism.

</comment></comment><comment><USER8> > 3\. Don't Be Afraid to Break Things

The last time I broke things, I got fired. Not gonna happen again.

<comment><USER9> Who is the boss ? :D

</comment></comment><comment><USER10> Looking back, the point at which I started writing better code came after I read "The Art of Unix Programing".

</comment><comment><USER11> UTF-8 Everywhere Manifesto [http://www.utf8everywhere.org/](http://www.utf8everywhere.org/)

</comment><comment><USER12> As a side note, I was very impressed with the ReadSpeaker solution they implemented when you select a paragraph of text. Didn't know that product/company.

</comment><comment><USER13> I work in an office with a hundred lawyers. They do NOT spend their own time staying current.</comment>


Palm opens up SDK and WebOS developer portal - <AUTHOR> http://developer.palm.com/index.php

<comment><USER2> I installed it and took it for a test run today. I like the idea of apps being being like mini web pages, being purely HTML + CSS + JavaScript.

The documentation is well written too. I liked the "Hello World" tutorial.

</comment><comment><AUTHOR> This is a few days old but I couldn't find it in SearchYC.</comment>


The Other Problem with Facebook Science (It's Not Science) - <AUTHOR> http://www.fastcolabs.com/3039236/facebook-science-has-another-problem-its-not-exactly-science

<comment><USER2> Yep. Learn statistics.</comment>


The Legacy of the Mississippi Delta Chinese - <AUTHOR> http://www.npr.org/2017/03/18/519017287/the-legacy-of-the-mississippi-delta-chinese <comment><USER2> I've been wanting to try Chinese-Mexican food ever since I learned about it. The US border patrol was originally created to keep the Chinese laborers from coming up through Mexico. As a result, many Chinese immigrants found themselves stuck in northern Mexico in the early 1900's, and some decided to open restaurants. Today, Mexicali alone has over 200 Chinese restaurants, many of which serve Chinese-Mexican fusion. Every combination I've heard of sounds amazing.

[https://www.npr.org/sections/thesalt/2015/04/16/399637724/th...](https://www.npr.org/sections/thesalt/2015/04/16/399637724/the- chinese-mexican-cuisine-born-of-u-s-prejudice)

<comment><USER3> NYC has fast food Tex Mex joints run by Chinese. It's not Chinese-Mexican fusion, but it is something. They even make their own tortillas fresh: [http://www.nytimes.com/1997/02/02/nyregion/where-east- meets-...](http://www.nytimes.com/1997/02/02/nyregion/where-east-meets-tex- mex.html)

<comment><USER4> its also common to see chinese-latin food, like cuban/chinese or trinidadian/chinese, especially in places like harlem and brooklyn.

</comment></comment></comment><comment><USER5> James Loewen wrote the definitive work on this subject for his Harvard doctoral thesis in 1971[1]. And although I've been an engineer for the last five years, I wrote my undergraduate history thesis on Delta immigrants (including Chinese, but also Lebanese, Jewish, and Italian -- all viewed as shades of non-white when they arrived)[2]. It has been fun to watch this thread today!

The journalist has made the same error I did as a young historian: I treated this diversity as a novelty, when anyone familiar with the history of the American South (or the American West) should find this unsurprising because these places developed in the 19th Century as part of an international economy. Fur traders in St. Louis had to know the price of pelts in faraway Paris to make profitable decisions; information (and people) circulated more widely than we usually appreciate. You will find strangers in strange lands around the world wherever there's money to be made.

[1] [https://books.google.com/books/about/The_Mississippi_Chinese...](https://books.google.com/books/about/The_Mississippi_Chinese.html?id=GMMrAAAAYAAJ)

[2] [https://www.dropbox.com/s/5b5leo4e41lqwul/Senior_Thesis.pdf?...](https://www.dropbox.com/s/5b5leo4e41lqwul/Senior_Thesis.pdf?dl=0)

<comment><USER4> I'm curious if you know if in the south there were tensions, or perhaps why there weren't as many, as say in the west coast like the 1886 Seattle Riot or the Rock Springs Massacre, beyond just the reaction from the exclusion act?

<comment><USER5> I believe Loewen's argument is that Chinese ran the grocery stores, and because whites viewed merchant labor as distasteful (they all wanted to be agrarian landowners, even poor whites) Chinese had extra leverage because they were the only group supplying necessary goods in these small rural towns.

A case that established Chinese exclusion from white schools (Lum v. Rice, 1924) came out of Rosedale, just north of the town of Greenville mentioned in the article, when a white public school did not permit a Chinese grocer's daughter to enroll. Interestingly, the lower county court _ruled against the school district_ and upheld the Chinese girl's right to attend the white school. The decision was subsequently overturned by the Mississippi Supreme Court and US Supreme Court in favor of the school district. It's telling that the court closest to the case ruled in favor of the Chinese: these merchant families had economic leverage in their communities because they filled a role that white planters needed but disdained for themselves. A town that treated its Chinese unfairly might soon find itself with no place to buy canned goods.

There is a similar story for Jewish immigrants, who ran (and in some cases whose decedents still run) the general/department stores in these Delta towns. The oldest synagogue in Mississippi is in -- you guessed it -- Greenville.

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

</comment></comment></comment><comment><USER6> Yeah, restaurants, grocery stores/convenience stores and laundry places are something that a lot of immigrants gravitate to.

You don't need much capital, your language skills can be subpar and your family can help out even at a very young age (6-7), sweeping up, making change, washing vegetables, and putting out stock and arranging things. Plus, in more rural places, you have enough space where you can live in the back of the store and run things in the front of the store. It's perfect for kids because they can study when the store is slow and help out when it gets busy.

</comment><comment><USER7> Reminded me of this short documentary about the development of Chinese cuisine in the US: [https://www.youtube.com/watch?v=2NMrqGHr5zE](https://www.youtube.com/watch?v=2NMrqGHr5zE)

</comment><comment><USER8> I went to Jamaica about 15 years ago and ran into some ethnically Chinese folks that were speaking Patois. I remember thinking how cool that was.

<comment><USER9> In this clip about the Mississippi Delta Chinese, you will hear ethnically Chinese folks not only speak with a heavy Southern accent, but also exhibit facial and behavioral tics that are typically associated with people who live in the deep south. It's fascinating.

Skip to 1:32

[https://www.youtube.com/watch?v=2NMrqGHr5zE](https://www.youtube.com/watch?v=2NMrqGHr5zE)

<comment> xkcd-sucks I totally agree, but can you describe the facial/behavioral stuff? All I get is "she looks like a typical southern lady" and am interested in why

<comment><USER9> There are many examples. Her expressiveness and how she slows down and emphasizes certain words (5:13), the way she talks with her hands (3:49), how she expresses disappointment and how she does closes her eyes (5:47), how she whispers (6:02).

These types of expressions are atypical of most Chinese people, and even of most Americans.

<comment><USER10> As a lifelong Mississippian, that was wonderful and charming to see and hear. I get so used to hearing those voices that it's not noticeable until someone points out the unusualness of our little part of the world.

</comment></comment></comment></comment></comment><comment><USER11> I've been eating Chinese at the same place in Greenwood, MS since I was a kid. Never thought anything about it. Good food.

</comment><comment><USER4> I was born in a small town on the border of Alabama, Mississippi, and Tennessee. I remember my parents telling me of the rare, old chinese immigrants there, but they only came there in the 80's to work as engineers in a glass manufacturing factory. They said they had to drive 1.5 hours to the closest chinese grocery store in Huntsville, AL.

Weirdly enough, I think this generation depicted in the article, and my parents, are among the last of the chinese-americans you'd find in Alabama, Iowa, or small town america. It seems more and more young chinese are opting to go back to China.

<comment><USER12> > "more and more young chinese are opting to go back to China"

This seems interesting. Do you have a source?

<comment><USER13> I don't have a source either, but this has been a concerning trend since around 9/11\. First, there is the perception that "things are improving" back in the motherland. The middle class is expanding, and the quality of life is improving. Second, it's hard to get work visas in the US, and there is the perception of hostility towards foreigners (Bush's wars, Trump's election, etc).

The "reverse braindrain" is a serious problem that the US is experiencing in recent years, because the educated foreigners have chosen to get the hell out or have been forced out.

I know a few Chinese with graduate degrees in engineering who are considering returning to China after banking a few more years of American wages. They are heading back to an environmental disaster, but oh well, "progress".</comment></comment></comment>


Facebook's free food banned - <AUTHOR> https://www.theguardian.com/technology/2018/jul/25/facebook-free-lunch-banned-silicon-valley-restaurants <comment><USER2> > The restriction was enforced after local restaurants complained that free > meals at Google, the city's largest employer, had damaged their business.

What a bunch of entitled pricks.

If nobody's going to your stinky restaurants and prefers the on-site cafeteria then there's a reason. Improve your services (or prices) so you can compete and if you still can't then move onto another business or market. The world doesn't owe you anything.

</comment><comment><USER3> The irony of this favoring non unionized workers in local businesses over the newly unionized Facebook foodworkers is palpable. Also, as a local, the businesses in that area are already plenty busy.</comment>