Why data scientists should start learning Swift - <AUTHOR> https://heartbeat.fritz.ai/why-data-scientists-should-start-learning-swift-66c3643e0d0d <comment><USER2> Why would you use Swift as your new data science language when Julia was made for that purpose and Swift was not? Julia's data structures, functions, syntax and libraries were all designed with scientific computing in mind. Swift was designed for general purpose app development.

<comment><USER3> > Julia's [was] designed with scientific computing in mind. Swift was designed > for general purpose app development.

 _General purpose_ always wins. Or _should_ always win. Because in reality nobody has any idea what "the purpose" is in the grand scheme of things.

Python succeeded because it was general-purpose enough. Javascript too. We _don 't_ want more _narrow purpose_ languages that force us to change the language every time we change the fragment of the stack we work on.

We _need_ an ultra-general purpose language with good support for both OOP and FP, non-retarded type-system, decent performance, and a good "compile to readable JS" story... to _unify_ this damn mess of "diversity" that forces us to over-specialize in narrow niches and drowns us in complexity.

(No, otoh, I don't think "general purpose" should mean "infinite power" or "maximum expressivity". There's are reason why we're not all using Common Lisp and Scala...)

<comment><USER4> You really should give Julia a go. It's as or more expressive in the general purpose sense of things as Python. It's the best of MATLAB and Python in one neat package.

Edit: Plus, you can pass your data structures out to Python or C for processing. And you can use a whole host of visualization tools.

<comment><USER3> I did. And it seems awesome.

I just dont see people with "software engineering" background taking any serious liking to it. So it creates DIVIDE between the "software engineering folks" (that want regular-looking-OOP-and-basic-FP architecting feature for APIs and stuff) and "data science folks" who just want to focus on the algorithms.

The litmus test for a "truly general purpose language" to me would be:

(1) write some algorithmic code in it (with not much concurrency and parallelism)

(2) write some (purposefully heavily overengineered) GUI or web-app (full- stack) code in it in a team of 3+ including at least one guy who's both _really junior_ and another guy who's _really sloppy_

(3) write something making heavy use of networking, concurrency and parallelism

If _all three_ feel _EQUALLY_ natural in a language, than you've got a _truly general purpose language_. If not, look for something else.

And I know, people _hate_ general purpose solutions just as much as they _hate_ "expert generalist" people, and they have good reasons too, as we've all (or most) been burnt bad by contact with both such "solutions" and with such self-labeled people in the past. But just because we generally suck at "general purpose" doesn't mean we should stop trying!

<comment><USER4> > Python succeeded because it was general-purpose enough.

> I just dont see people with "software engineering" background taking any > serious liking to it.

I guess my point is that if you found Python general purpose enough, you'd likely find Julia general purpose enough too. If people with "software engineering background" take a serious liking to Python but not to Julia, then the reason probably isn't the language itself, but a combination of lack of popularity and a pre-conceived notion that the language is meant to be "scientific" not "general-purpose", that there aren't enough libraries, that the language might not survive, etc.

</comment></comment></comment></comment></comment><comment><USER5> >engineers need a language that treats machine learning as a "first class citizen"

Machine/Deep Learning are not some novel application, we've been multiplying matrices since forever.

<comment><USER2> Like with Fortran, APL, J/K, R and for at least a decade, Numpy.

</comment></comment><comment><USER6> hm, no! data scientist are not using only Tensorflow... in the article libraries like Numpy, Scipy, Pandas are mentioned and swift does not have it or not in that maturity at all. It's not only about the beauty of a language, especially for data scientiest it's the variety and maturity of third party packages designed for data scientist and Tensorflow is only ONE part. Don't get me wrong... swift is beautiful and it is great to have Tensorflow natively running on it for certain scenarios but I don't see swift as a bright and good language outside the apple ecosystem (look at C#, great language, still mostly Windows).

If you are starting with Python definitely start with Python 3 and you are future safe...

</comment><comment><USER7> Just to give an example why a "domain specific" language like Julia is more appealing then a "general purpose" language like Swift: I would like to demonstrate this on the old and classy Fortran vs C++ discussion in numerical computing.

In Fortran, you can write linear algebra on n-dimensional arrays (similar as in numpy and julia) very compactly, i.e.

       d(i) = TRANSPOSE(MATMUL(B(i,:),c))

Writing something like this in C++ is absolutely possible and elegant with modern templates libraries such as `eigen`. However, the compilation will be slower, the compiler errors will be hard to read and it is hard to beat Fortrans runtime efficiency of such code.

But it get's more interesting. Think of tensor contractions. This is something where you probably want to implement your own algebra (say for relativistic quantum mechanics or for general relativity) -- or you just stick to the n-dimensional array again and use index-wise loops:

       DO i=1,4
       DO j=1,4
       DO k=1,4
       DO l=1,4
         A(i,j) = B(k,l)*C(i,k)*D(l,j)  ! note: compe up with better examples
       END DO
       END DO
       END DO
       END DO

I maintain a templated C++ library to write such expressions in one line instead of 4 loops. But contrary to this Fortran code, in order to understand my code, you first have to learn this library. Means you need to learn C++, then the library. In Fortran, it is just Fortran. Nothing more.

Believe it or not: Many scientists are no good programmers. Cut-down domain specific languages are perfect to avoid them to loose time on weird compiler features such as "const", templates and all that overhead which is hard to regain in time.

<comment><USER8> > But contrary to this Fortran code, in order to understand my code, you first > have to learn this library

Do you ? I've used Eigen and boost a lot of times and didn't ever need to "learn how the sausage is made", just looking at examples is enough to get stuff to work.

<comment><USER7> Whether you look up examples or a reference documentation does not change the fact that ontop of a given language, you learn new concepts of a library.

In contrast, domain specific languages have exclusive support for certain data types built right into the heart. There is a need for that.

<comment><USER8> I don't really understand the difference between reading three pages of documentation on a language website or two pages on a language website and one page on a library website.

</comment></comment></comment></comment><comment><USER9> Correct title: Why TensorFlow developers should start learning Swift

Why on earth should data scientists ditch the IPython/Jupyter/SciPy/etc. ecosystem?

<comment><USER10> I think there is a subtlety you missed in the article. He didn't say ditch Python, he said learn Swift. He simply states that 10 years from now people will be using Swift, not Python.

Obviously he may be wrong, but it's certainly reasonable prediction.

</comment></comment><comment><USER11> While the author says "Don't mistake Swift for TensorFlow as a simple wrapper around TensorFlow to make it easier to use on iOS devices." , the only thing Python is missing from his wishlislist of features is "6\. Native execution on mobile".

"7\. Performance closer to C" is a non-issue - all the parts where performance matters are going to run on CUDA anyway and there's no performance hit there, and very little computing time is spent in the actual python code.

<comment><USER12> Still an issue, just not where you think. For recent, more efficient CNN architectures _data augmentation_ is a bottleneck when done on a single thread. So Python has to resort to either queues and async (TF approach, worse perf than PyTorch in practice), or use multiprocessing (PyTorch approach, works better but ugly AF under the covers). I would absolutely love to use a multi core-capable language there. The machine does have several dozen cores after all.

</comment></comment><comment><USER13> Does Swift have the libraries that Python/Matlab has? My wife is doing some kind of fMRI analysis/research for her PhD and she's using Matlab. I'm an iOS developer, so I'd love it if I can get her to use Swift!

<comment><USER4> Not sure about Swift libraries, but you should definitely try Julia. It's incredibly easy to move from MATLAB to Julia.

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

</comment></comment><comment><USER14> Google just release tensorflow support javascript and swift. I don't understand why would somebody go with swift for this, if javascript is the language for the web. with javascript you could not just make a web app but also potentially like almost native app using frameworks. so, where is the use case for swift? probably running on IOT devices? or is swift is faster than javascript?

Javascript should just upgraded its syntax to be more swift syntax in the near future, that would be a game changer.

</comment><comment><USER15> I haven't followed the news about Chris Lattner. For those who like me who haven't seen that he's in Google now:

[http://nondot.org/sabre/](http://nondot.org/sabre/)

"I worked for Apple from July 2005 to January 2017, holding a number of different positions over the years" "This included managing the Developer Tools department, which was responsible for Swift Playgrounds for the iPad, Xcode, and Instruments, as well as compilers, debuggers, and related tools. In early 2017, I briefly ran the Tesla Autopilot team. We built a lot of great things, but Tesla wasn't the right fit for me."

Joined "Google Brain" in August 2017.

[https://techcrunch.com/2017/08/14/swift-creator-chris- lattne...](https://techcrunch.com/2017/08/14/swift-creator-chris-lattner- joins-google-brain-after-tesla-autopilot-stint/)

</comment><comment><USER16> The end to end application building aspect of python is not yet there with swift (swift for servers?). Also if folks keep sticking to tools well tuned for their jobs, maybe something like graalvm may provide enough interoperability and performance eventually ... in the "good enough is the competitor to the best" sense.

<comment><USER17> Swift runs on Linux and there are also plenty of web frameworks, so it's definitely possible to run on a server

</comment></comment><comment><USER18> >> A clean, automated way of compiling code for specialized hardware from TPUs to mobile chips

If it is so good at that, why are we waiting so long for expeditiousness on run-of-the-mill industry-standard non-specialized non-Apple linux machines?

</comment><comment><USER19> I hope swift gets serious about serving the needs of data scientists tool — it would not take that much work to improve swift playgrounds to the point to enable a far better dx than can be had with Jupyter notebooks or matlab ...

<comment><USER10> Agreed. I monitor this page [1].

So far, no Swift. :(

[1] [https://github.com/jupyter/jupyter/wiki/Jupyter- kernels](https://github.com/jupyter/jupyter/wiki/Jupyter-kernels)

<comment><USER10> Just found this. Not sure how good it is, but it's a start....

[https://repl.it/languages/swift](https://repl.it/languages/swift)

</comment></comment></comment><comment><USER20> I don't know anything about Swift, but I really wish ML had settled on a language with higher performance. Interpreter speed doesn't bottleneck vision stuff but reinforcement learning really suffers.

</comment><comment><USER21> Honest question: isn't python just glue over the well-performamt c++ tensorflow library? I thought it was, but given this article does python do more then? There wouldn't be much to gain by swappinge the wrapper.

</comment><comment><USER22> It may sound weird, but I believe if any data scientists switch to a 'nontypical' language for the domain, it should be JavaScript.

What's required for data science is a healthy ecosystem of scientific computing tools. While js obviously isn't as mature as python (anaconda stack + Jupiter, etc) or R (tidyverse etc) in this aspect, it has made great strides recently: \- tensorflow.js \- observable notebooks \- mathjs \- simple- statistics / jstat

Furthermore, with tools like d3 + leaflet, js has very little competition when it comes to data visualiation.

A big thing holding js back is a mature library for data manipulation, hopefully this changes in the future (anybody know of any potential fills for this gap?).

</comment><comment><USER23> Maybe you should use Kotlin instead. It runs native on IoS, on the server, and on Android as well.

</comment><comment><USER24> Honestly I don't even use Swift for serious iOS apps, just for 'throwaway' apps for lack of a better word. Swift would need to stabilize for at least 5-10 years before I would consider building anything with Swift as the foundation. I strongly believe in backwards compatibility, the Swift team does not.

<comment><USER25> Yes and no... They did a ton if work to be backwards compatible with ObjC, while making breaking changes to Swift syntax/libraries with each new release. Although it is stabilizing.

</comment></comment><comment><USER26> Swift? Um, okay... Good language, yes, but it's still very iOS-centric. I generally agree with the assessment of Python, but I'll stick with R for everything it can do. I use Python for everything else. If Swift breaks out of the iOS box then maybe I'll think about learning it.

</comment><comment><USER25> Python seems a lot more "fun" than Swift IMO

<comment><USER27> How do you mean?

I'm a big fan of Python, so I'm just curious what you mean here. Swift has a lot of great language features that Python lacks, in my opinion. (My first favorite: native option types. Second favorite: internal and external function parameter names. There are more, but these are my top two.)

<comment><USER25> i like Swift, i think, but prefer something more dynamically typed i guess. Swift gives me that "i'm using C++" feeling.

</comment></comment></comment><comment><USER28> Please stop balkanizing the scientific software development community. Python has excellent wrappers for many other excellent scientific libraries which in turn leverage C and Fortran for high performance computing.

<comment><USER29> When people say Python, I never know if they mean 2.7, 3.x, or both, or are unaware that there's a difference, or don't realize how much it matters in practice... so a language that has clear forward momentum, focuses on the latest version, and quickly deprecates old versions is pretty welcome.

<comment><USER30> It's a lot easy to "quickly deprecate" when the ecosystem is small and breakage is acceptable. Let's see how Swift handles the situation at a similar point in it's life cycle. Bear in mind that most criticisms of the Python2/3 situation came from people that wanted less breakage - not more.</comment></comment></comment>


Ask HN: How hard is it to admit that you are miserable? - <AUTHOR> Is it a taboo to admit that you are miserable? <comment><USER2> I feel miserable sometimes, other times I don't.

I've always wondered if poor whites vote Republican because they want to be on the side that's winning. That is, they can't accept the feelings that come with the belief that there are serious things wrong with our system.

<comment><AUTHOR> what's your opinion of this? [https://miserymate.com/](https://miserymate.com/)

</comment></comment><comment><AUTHOR> What do you think of the idea of getting people compete on who is more miserable?</comment>


Ask HN: Cryptocurrency without mining? - <AUTHOR> I can't say I am not intrigued by the popularity of cryptocurrencies and Bitcoin boom. However I would never buy Bitcoins as I consider the mining idea a very weak link of the Bitcoin.
Overall however I think cryptocurrencies can only be good for society, so I was trying to thing of an alternative. How can we have a cryptocurrency that doesn't generate coins out of thin air(or lot's of pointless calculations)?
The answer I came up with is by providing a service that people would find useful. One such service could be international money transfers.
So the idea I have is something along the lines of distributed ledger for facilitating international money transfers. If user A in US wants to transfer money to user B in Germany, they could find their local US exchange and buy $100 worth of FXCoins and send them to user B. User B then would go to his local Germany exchange and trade back the FXCoins for Euros.
That way the market would truly take care of pricing the FXCoin correctly and would not become a bubble. Also it will be more like a currency, a medium to transfer wealth, rather than an speculative investment.
However I have very little knowledge about the blockchain technology and wanted to ask HN folks if they see any technical difficulties in doing something like this?
For example, I was wondering if the blockchain can work without mining. Any feedback/problems/suggest solutions or alternatives would be appreciated. <comment><USER2> You're on the right track. Several coins are trying to do JUST that, most notably: Ripple.

[https://en.wikipedia.org/wiki/Ripple_(payment_protocol)](https://en.wikipedia.org/wiki/Ripple_\(payment_protocol\))

</comment><comment><USER3> Mining is what gives it intrinsic value. It's a data structure that took a large amount of electricity to generate. Think of it as a giant work of art.

All the other approaches suffer from weak subjectivity. But that doesn't mean they have no value.

What you are suggesting is basically a western union. How will wrapping it in a crypto currency make it better? I can square/Venmo/PayPal money around already.

</comment><comment><USER4> Yep, like hellojebus said, what you are describing sounds a lot like ripple. They use their own type of consensus algorithm described below.

[https://ripple.com/files/ripple_consensus_whitepaper.pdf](https://ripple.com/files/ripple_consensus_whitepaper.pdf)

There are also other coins without mining though.

In an abstract sense, mining is just a general term for weighting votes for what are and aren't valid transactions based on 'proof of work'. The required investment of processing power discourages attempts to validate invalidate transactions, since investing work on the wrong version of the chain will inevitably lead to you not getting a block reward unless 51% of the network is controlled by you or somehow decides to follow along in your fraud.

[https://en.wikipedia.org/wiki/Proof-of- work_system](https://en.wikipedia.org/wiki/Proof-of-work_system)

There are other mechanisms for reaching consensus though. One of the most established is proof of stake, in which validations are weighted based on the coins you own. Notably, Ethereum is working to implement this with Casper by requiring auditable byzantine fault tolerance (detection of both when bad actors are acting as well as who is responsible) and security deposits for each 'vote' to alleviate the 'nothing at stake' problem, punishing bad actors. With this system there will be no unnecessary computations/energy usage, and there's actually more resistance to 51% attacks, since an attackers coins can be burned when they try to attack, leading to an undefined amount of capital required to get 51% of the vote, whereas with proof of work there is a set amount of processing power you could by to take control of the network indefinitely.

[https://en.wikipedia.org/wiki/Proof-of- stake](https://en.wikipedia.org/wiki/Proof-of-stake)

There are also other systems like DAG distributed ledgers which combine small amounts of proof of work for spam resistance into the transaction process, eliminating the concept of mining and transaction fees all together. DAG ledgers aren't really blockchains at all, but a superset of blockchains, instead of just being a linked list they use an interwoven directed acyclic graph of transactions. Notable cryptocurrencies that use this type of ledger are Iota, RaiBlocks and Byteball Bytes.

</comment><comment><USER5> You would also have to watch out for regulators:

[https://www.ccn.com/money-transmitter-licenses/](https://www.ccn.com/money- transmitter-licenses/)</comment>


Free 1TB cloud storage from Baidu and Qihoo - <AUTHOR> http://thenextweb.com/asia/2013/08/28/think-dropbox-and-box-are-generous-chinas-baidu-and-qihoo-360-are-giving-away-1tb-of-free-storage/

<comment><USER2> "Baidu requires users to sign up for its in-house online payment platform and then pay 1RMB (about $0.15). But it's still a full terabyte of free space, all for a few clicks and email address submissions."

...so it's "all for a few clicks and email address submissions", with exception of money of course!

<comment><AUTHOR> The first 1TB is free, the next 1TB is 1RMB. At least from the comments, that's what I got.

</comment></comment><comment><AUTHOR> I was wondering if anybody in HN tried this.</comment>


Why Thinner People Are More Creative - <AUTHOR> http://dilbert.com/blog/entry/breakfast_is_overrated/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+typepad%2FihdT+%28The+Dilbert+Blog%29

<comment><USER2> A self confessed "crackpot theory" but I wonder if his hunch connects in with the, I believe, demonstrated findings that sleep deprivation can temporarily enhance creativity and reduce depression in some subjects.

(I've seen quite a few items on this over the years but for the sake of actually having a citation for once, here's the first thing I Googled ;-) [http://www.medhelp.org/user_journals/show/49769/How-Lack- of-...](http://www.medhelp.org/user_journals/show/49769/How-Lack-of-Sleep-Can- Make-You-More-Creative) )

<comment><USER3> I've just finished reading "Left in the Dark" <http://leftinthedark.org.uk/> Mind=Blown; much less crackpot than you'd think, and with a hypothesis that explains it.

</comment></comment><comment><USER4> Previous discussion: <http://news.ycombinator.com/item?id=1898600></comment>


The Linux Security Circus: On GUI isolation - <AUTHOR> http://theinvisiblethings.blogspot.com/2011/04/linux-security-circus-on-gui-isolation.html <comment><USER2> Qubes seems to be YASTVOS (Yet Another Security Through Virtualization OS). While I'm not going to disagree that Xen vms represent a smaller attack surface than most current installations, that doesn't mean there won't be bugs. If you shift everyone to a solution like this, guaranteed people will be breaking out of it. VMware has had a number of vm escapes.

The other problem is these OS's often don't seem to get very far. Seems like Qubes is launching beta 1. It's the kind of thing that one would expect needing a significant time to shake out.

Which isn't to say I wouldn't like to run a nicely implemented example of the concept. It certainly has the possibility of raising the bar significantly. Of course, it seems like no matter how far windows raises the bar people still keep on jumping it easily.

<comment><USER3> The state-of-the-art on attack surfaces and VMs right now is JRockit Virtual Edition, which runs the JVM directly on the hypervisor, no OS in the middle. Which makes all kinds of sense really - what's the point of running a VM inside a VM?

<comment><USER4> Similarly, but much less mature, Mirage runs the ocaml RTS directly on top of Xen: <http://openmirage.org/>

<comment><USER5> Or, for Haskell on Xen: <http://halvm.org/wiki/>

</comment></comment></comment></comment><comment><USER6> Does anybody know by any chance how does the Wayland server work in this regard?

<comment><USER6> Replying to myself. I just read the architecture document for Wayland, which can be found at:

<http://wayland.freedesktop.org/architecture.html>

The document explains that the Wayland compositor, when receiving an input event coming from the kernel input drivers, decides which window has to receive the event and sends it to the application.

If it really works that way, native Wayland clients could be isolated from other clients and they would not receive input events directed to another client. But, in practice, the Wayland server could have facilities for clients to register and receive all the events, so I'm not sure how all of this would turn out.

</comment></comment><comment><USER7> _Now, for the best, start another terminal window, and switch to root (e.g. using su, or sudo). Notice how the xinput running as user is able to sniff all your keystrokes, including root password (for su), and then all the keystrokes you enter in your root session. Start some GUI app as root, or as different user, again notice how your xinput can sniff all the keystrokes you enter to this other app!_

This is not the problem it's made out to be:

1\. An application running as a different user can only connect to the X server if it has access to the .Xauthority file. This means there's no risk of having another user connect to your X session and sniff keystrokes, unless you explicitly chmod o+r ~/.Xauthority.

2\. One should never run untrusted applications.

Now, I will grant that better GUI process isolation and/or granular X permissions would be useful, in that it would lay the groundwork for a safe way of allowing an untrusted remote (or local) process to display a GUI on the local X screen. I've also always wished window managers would highlight windows from a different user with a red border, mostly so I could tell which file browser window I'd started with sudo.

<comment><USER8> I believe the point is that users want to run firefox and openoffice at the same time, but they don't trust firefox to not have remotely exploitable bugs. So they run firefox as a different user, assuming that if it can't read their secret files or the memory of openoffice, they're safe. They are wrong.

This problem has in fact been solved by the X security extension. The problem is that nobody tests their programs as untrusted clients. GTK, for instance, will more or less immediately abort because its error checking consists of assert(trusted_only_operation()).

<comment><USER9> I think this is what android does, isn't it. Although android doesn't use x.

</comment></comment></comment><comment><USER10> Maybe I misunderstood this article. It seems to me there is a security issue in X Server, which gives out keyboard input info to all running X apps. That's fine. If that's X Server, just fix it then everyone will be happy. Why introduces all the Xen/VM stuffs into this problem. It is like you have a mosquito flying around, but you choose to kill it using a nuclear bomb.

<comment><USER2> I'm sure that they didn't set out to solve just this one problem. Rather there are a whole slew of problems that per process vm sandboxing could solve (and a number that it could create). They're just interested in advertising their newly beta OS, and they are pointing out an issue they see in the X architecture that their solution happens to mitigate.

</comment></comment><comment><USER11> I seem to recall the "Secure Keyboard Entry" option (in the application menu) in Terminal on OS X is supposed to stop the su/sudo problem on OS X at least for terminals.

<comment><USER12> xterm has a secure keyboard option from its menu (control+click) that is supposed to prevent other applications from being able to receive X11 events related to input.

the thing you are referring to on os x is similar, with a system-wide capability. when you enter passwords for keychain and similar things, these have secure input enabled by default. i think it's up to the application to enable it, but when it's enabled for a field, no other application can intercept those events.

<comment><USER13> xinput is still able to read all keys when xterm's secure keyboard is enabled.

<comment><USER12> right, because it's not operating on x11 events, it's just directly reading xinput data. there's not much xterm can do when the underlying server is giving away all of the raw input data.

</comment></comment></comment></comment><comment><USER14> I'd speculate that the browser is the biggest firehose through which the junk can come in.

<http://qubes-os.org/Screenshots.html> shows two browser windows, which is great. Now, what I do not see is the interaction from the HCI side.

Two browser windows - "secure" and "non-secure" are quite a pain to work with if one has to copy/paste links manually.

</comment><comment><USER15> Here's some related work from 2005: [http://www.google.co.uk/search?ie=UTF-8&q=%22A+Nitpicker...](http://www.google.co.uk/search?ie=UTF-8&q=%22A+Nitpickers+guide+to+a+minimal- complexity+secure+GUI%22)

</comment><comment><USER16> ssh with X11 forwarding (-X option) had this same problem. A privileged malicious user on the host you were ssh'ed into might be able to monitor the keystrokes of your whole X session.

<comment><USER8> Note that hasn't been true for years and years. -Y and -X are different.

<comment><USER17> [deleted former mummery after five-minute fact-check]

Unfortunately, the documentation on -X and -Y is awfully confusing. On a casual read, it looks like -Y is _less_ safe, since practically the only thing the docs for -Y say is that forwarded connections are "not subjected to X11 SECURITY extension controls"...

<comment><USER8> You were apparently more right the first time. -X establishes an untrusted connection, subject to limitations. -Y says "trust me, no limits". -Y is the less safe option.

</comment></comment></comment></comment><comment><USER18> Insecurity is an inherent part of the desktop metaphor.

</comment><comment><USER13> Currently the only secure way is to start a second X screen with another uid.

<comment><USER8> Or use the builtin X security extension.

<comment><USER13> No.

See: [http://theinvisiblethings.blogspot.com/2011/04/linux- securit...](http://theinvisiblethings.blogspot.com/2011/04/linux-security- circus-on-gui-isolation.html?showComment=1303633666563#c577377308571446544)

<comment><USER8> That comment is long on hype and short on details.

</comment></comment></comment></comment><comment><USER19> _The X server architecture, designed long time ago by some happy hippies who just thought all the people are good and non-malicious_

Oh noes!

I just found the following security vulnerability: someone could smash their way into my house, and then threaten to hit me with a large pipe unless I gave them my bank information. Damn those hippie system designers that didn't include an armored work area!!!

<comment><USER20> ...a major difference being there are not robots yet that can go around breaking into people's less-secure houses and torturing residents for information, all in an automated fashion.

<comment><USER21> Thankfully, there's Old Glory for protection against such things: <http://www.hulu.com/watch/2340/saturday-night-live-old-glory>

<comment><USER22> Old Glory is no protection at all - it's just there to compensate your loss in the even of a robotastrophe. Insurance.

</comment></comment></comment></comment><comment><USER23> This argument is nonsense. Any program you run can exec other programs and read files from your home directory. You can't simply run any program you feel like running. If it's not a well known and trusted program, then you'll need to look at the source.

Do people run root GUIs as a client? That seems silly to me. I don't have one single GUI program that I run as root unless I'm troubleshooting a permissions issue.

<comment><USER24> I don't think it's nonsense. I'm quite surprised that (say) my calculator app could control my password manager. My password manager encrypts file storage, and automatically locks itself after usage, but is likely vulnerable to this attack.

Even if you trust the programs you run, they can have their own unintended vulnerabilities.</comment></comment>


The Node Firm - <AUTHOR> http://thenodefirm.com/

<comment><USER2> Their design appears to be quite deliberately taken from UK IaaS company Brightbox: <http://brightbox.com/>

We've asked about it on twitter but no answers from them just yet.

I presume an outsourced design someone pinched without them knowing (or quite the coincidence).

(fulldisc: I'm a brightboxer).

</comment><comment><USER3> Some examples of typical service offerings you're planning / providing would be nice.

</comment><comment><USER4> Nice collection of folks but the page could use more meat on the how part.</comment>


What is the simplest way to explain Bitcoin? - <AUTHOR>

i understand the basics of Bitcoin (purely digital virtual coins with no middle man for exchange) but can someone explain some of the details like why only 21M cap and what mining vs buying entails (eg can anyone with right hardware mine?). Also what roll do the exchanges play and is there compatibility between different currencies on the Bitcoin protocol? Would love a simple primer on some of the nuances. <comment><USER2> 21M was built-in to the specification. I don't know the entirety of the reason, but presumably to help prevent decreasing the value of existing bitcoins for all time. (If you kept minting them, there'd always be new ones devaluing existing ones, like how the US gov't does with dollars).

Buying means you buy already-minted bitcoins. You can buy them privately or on exchanges. Then they're yours. The exchanges' role is to facilitate trading between users, and they operate at a profit (they charge you a % to buy). Basically, it'd be hard to sell your bitcoin if you didn't have exchanges. You'd be posting on craigslist or something. And people would be scamming you for the money. Stuff like that.

Anyone can mine on virtually any hardware, however due to competition, it's hard to mine profitably. You have to have specialty equipment that is both very good and very efficient (power-wise). You can mine on your own or as part of a pool, but you essentially have to 'get lucky' on your own, and it's very unlikely that'll happen. My advice is to not think about mining until you've done a lot of research and for some reason decide you want to do it. It's a bad idea for almost every non-expert at this point.

</comment><comment><USER3> Mining requires expending computing power to solve a puzzle. The puzzle is to get the hash of a bunch of transactions below a certain number. The first to solve it receives a number of bitcoins.

Mining is based on a network agreed difficulty level. So as more miners participate and get better hardware the difficulty of the puzzle increases (by lowering the bar).

Currently it requires dedicated custom-built hardware (built solely for mining bitcoins) to make any kind of money mining Bitcoin. Even then you have little chance of winning the reward - so you normally would join a mining pool to pool computing power and share rewards with other miners.

The mining acts as a proof of work. It helps solves the problem that in a peer-peer system you can't trust anyone, because in a democratic system an attacker can run up any number of nodes they like at little cost. However with mining this is not possible, such nodes will not be trusted.

This is a very simplified view of things and there are more complexities but it gives you an idea.

<comment><AUTHOR> This is really helpful - thanks. A follow up question about volatility - is it true that volatility only really exists when trying to convert to currencies like the dollar or pound but doesn't exist if you remain within Bitcoin? Wouldn't that imply that it's like gold where it's good to buy as much as you can when the price in dollars drops but that once you own Bitcoin the price of goods in Bitcoin would remain constant?

<comment><USER4> The BTC price of goods only remains constant if sellers decide so. And they generally have a supply chain and labor that is heavily impacted by exchange rates. Plus, neither consumers or producers are ignorant of exchange rates, so there aren't going to be products marked at 1 BTC forever if BTC appreciates/depreciates.

But there's nothing within BTC itself that's volatile. The currency is slowly being inflated to the target 21 MM coins.

</comment></comment></comment><comment> J-dawg To add to this question, I'd love a simple primer on how the blockchain works. I understand that mining Bitcoin is the process of bruteforcing a hash function which is derived from a previous part of the blockchain. To transfer ownership / spend Bitcoin I simply have to send this string to somebody. But how does this work with Bitcoin being de-centralised? What if two or more people mine the same Bitcoin (succeed in bruteforcing the hash function) at the same time. How do you decide who is the real owner with no central authority to confirm ownership?

<comment><USER4> This paper is worth a read: [https://bitcoin.org/bitcoin.pdf](https://bitcoin.org/bitcoin.pdf)

From page 3:

 _Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof-of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one._

</comment></comment><comment><USER5> Tulip bulbs less the nutritional content.</comment>


Show HN: Professional showcase for Students - <AUTHOR> http://getflaunt.com/

<comment><USER2> -For some reason it thinks I'm part of the University of Toronto. I'm in the UK!

\- It tells me to find people in order to add connections but there is no obvious way to do that.

\- Why can't I just add one line skills? Do I really need to describe what "responsive web design" entails?</comment>


Broken - A Short Movie (inspirational) - <AUTHOR> http://vimeo.com/34568740

<comment><USER2> No hook at the end, how is that inspirational? Just depressing

</comment><comment><AUTHOR> give it a try ;)</comment>


Spot, Boston Dynamic's Robot Dog, Is Finally Available for Sale - <AUTHOR> https://gizmodo.com/spot-boston-dynamics-robot-dog-is-finally-available-f-1838403372 <comment><USER2> Hopefully the tech spurs on competitors that can drive down the costs in the industry, so us peasants can afford these things. I'm surprised it has a programmable interface, I would have loved to try that out.</comment>


Ask HN: Whom to follow for the best advice? - <AUTHOR> From an idea to execution, from general advice to big decision...whom do you follow on the Internet or read about? In another word, whose advice you consider? <comment><USER2> I hate to sound like a sycophant here, but I rank pg up there pretty high in terms of people whose advice I value highly. I have found a lot of pg's essays to be very valuable.

Also, while he comes off as just another random "sale-ey / self-help guy", I have found value in following Grant Cardone. His Youtube videos and his books are all pretty good.

And while I'm not sure what I think of Peter Thiel as a person, I did get a lot from his book and I enjoy watching his various interviews and presentations online.

I also listen to what Elon Musk has to say, and I have a grudging respect for billg.

Richard Stallman is also an influence, even though I am more of an "open source" ideologue than a "free software" diehard.

HN's own patio11 is somebody else who doles out some good stuff.

Mark Cuban is somebody else that I respect, and whose thinking I pay attention to. Same for Richard Branson.

From the "people who are dead" category, I get value from reading works by, and about, both Nicola Tesla and Douglas Engelbart.

<comment><AUTHOR> Thanks. I follow most of them.</comment></comment>


Debugging a Docker Heisenbug in production - <AUTHOR> https://medium.com/@loginoff/debugging-a-docker-heisenbug-in-production-586ccb265f7c#.2aukp4th0 <comment><USER2> My favorite Heisenbug was a few years ago, at my current job with Silent Circle. There was a bug where, when a user tried to buy a new phone number, they would be shown around 12 messages saying "you can't change your number". I saw screenshots, but there was no way that the server would show more than one message, and there was no way to reproduce this reliably (or anywhere other than production).

I looked at the code, and it was straightforward: The "add number" view had a check for "ability to add number", and so did the homepage. The homepage would redirect you to the "add number" view if you could have a number but _didn 't_, and the "add number" view would redirect you to the homepage if you _couldn 't_ have a number, with the message "you can't change your number", but there was no way for this to happen more than once (the checks are complementary).

Because this is a privacy-focused service, logs were minimal, basically only the path of the request, the time and the backend that served it. We managed to at least see the path the bug took, and, indeed, it was bounced multiple times between the two pages.

There was no clue as to this anywhere, the pages used complementary checks from data on the session, the session was stored on a central redis cache, all workers were running the same code, everything.

The bug remained elusive, until I noticed that the requests would be served first by worker 1, then by worker 2, then by 1 again, etc, until the cycle broke when a request for page 1 was served by worker 2. This could only mean that the workers couldn't agree on the check, and, sure enough, the configuration on one of the hosts had, mistakenly, pointed the cache to local memory rather than redis.

That was a pretty interesting bug.

<comment><USER3> So basically both hosts (workers) were _supposed_ to be storing session data in a shared Redis cache, but one host was misconfigured and was storing (and/or retrieving) session data from local memory instead?

<comment><USER2> Yes, exactly.

</comment></comment></comment><comment><USER4> Awesome article and really well written. I am curious why people choose to go with overlay networking. To me, it seems like an extremely complex solution to a non-problem (source, I run a 700+ container cluster without any overlay networking).

<comment><AUTHOR> Are you exposing the necessary ports from these 700+ containers on the host in order to facilitate multi-host communication? How do you solve service discovery?

For us the main reason to go with overlay networking is that it basically solves service discovery (in our specific case) over the entire cluster out of the box (by using Docker internal DNS). No need to change anything in the services themselves, they just need to connect to each other using DNS names.

</comment></comment><comment><USER5> > Debugging this issue gave us a chance to understand some of the inner > workings and really appreciate all the little details that Docker manages > for us, in order to provide isolated networking between things that are > essentially glorified Linux processes.

Great report!

When I see debugging like that, I wonder how many people on the planet have the basic knowledge necessary to understand it (need: OS/process/kernel/networking/etc...)? And how many of them could have performed the debugging AND find the bug?

Then I realize that's the level we need to be able to operate the service and I'm like. Ouchhhhh.

</comment><comment><USER6> I love seeing detailed rundowns like this. Props to the team to have the forethought to track all of this information during the investigation or having the historical maturity to create a retrospective.

More of these, everyone!

</comment><comment><USER7> Very informative and well written post, thanks for sharing.

</comment><comment><USER8> tl;dr super hip docker overlay network cluster devopsifier learns to ARP cache after several days of intermittent service fail.

excuse my cynicism but this is why keeping up with the latest cool things doesn't necissarily mean a better sysadmin^W excuse me 'cloud devops engineer'

<comment><USER9> Docker allows a mere mortal like myself with only 20+ years of sw engineering experience and a physics PhD under my belt to run a setup in something that resembles production more than a few hosted boxed cobbled together do. I vaguely know about ARP and I can just about follow along this post. So what you seem to regard as just a toy is actually what makes my work possible and/or viable.

I find that pretty super hip.

<comment><USER10> Actually you still need to learn Docker and once you put your project into production you need to be able to debug it as described in the article.

<comment><USER9> Oh, for sure. Docker doesn't replace actually knowing what you're doing once your setup grows. But it gets you further with less upfront knowledge, especially as a lot of it is really good dev knowledge for setting up test infrastructure as well. (That's why I started using Docker.)</comment></comment></comment></comment>


Our YC application was turned down, and that's a good thing - <AUTHOR>

So, I get an email about an hour ago that our application for YC this year has been unsuccessful. It sure hurt but then again it was just the right motivation that I was looking for.
This is my reply to that email from YC:
"Thank you for writing in :) Although, it is a bummer that we didn't get in, I look forward to emailing you about all the amazing growth we'll soon have!
Thank you, from the bottom of my heart, for everything that you, Paul, Jessica and the entire YCombinator ecosystem is doing for entrepreneurs everywhere. It's given me so much hope to look beyond the prognostications laid down by trade pundits and do something amazing that my users truly want.
As Marianne Williamson said, "most of us are in the gutter, but some of us are looking up at the stars." We're looking up and look forward to meeting you all someday.
Warmest regards,
Bala"
I've decided to pack my bags and move to the Bay Area (California) and focus on two things on the product that one of the YC Alums has been telling me all along:
1) Listen to my users more through active feedback. 2) Focus on one metric that I wish to grow for the product and do EVERYTHING to grow that on the product.
Honestly, we've been too distracted by people telling us that we could give our product away for enterprise (and we did) when we haven't perfected out product yet.
This has opened my eyes to what I've been doing wrong and I sincerely thank the world for it.
I hope to be able to share the product with all very soon. <comment><USER2> _"...we haven't perfected out product yet."_

You're aware that that won't ever happen, right? Focus on making it useful, then focus on selling it to people.

<comment><AUTHOR> I just realised the irony in that sentence. You're right! What I meant was, we haven't really figured out a product for consumers, let alone the enterprise, for us to be able to go for it. Having said that, what we're now doing is that we have created a beta users group on Facebook and have added quite a bit of people to it (and still are...). What we will be doing is get feedback from them and mould the product exactly how these users sound off there.

Matt Schlicht (Hipset / Tracks.by, YC S'12) gave me the advice to do it and we're just doing that. Working now to roll it out to these users first and listen intently and give them exactly that.

</comment></comment><comment><USER3> What was your startup?

<comment><AUTHOR> Firstly, is* :-)

And, it's [http://tapbeyond.com](http://tapbeyond.com), a personalisation platform that lets people discover content and conversations around what interest them.

</comment></comment><comment><AUTHOR> our _</comment>


The Nobel Prize in Literature from an Alternative Universe - <AUTHOR> http://www.greatbooksguide.com/nobel2.html

<comment><USER2> I wonder what the odds are that the blogger has read the works of the laureates he would replace.

Funny that the ones he keeps the same are all the popular ones . . . Camus, Hemingway, Faulkner, Marquez.

And to suggest that JK Rowling should even be on his alternate universe list is just silly.</comment>


A minimal self-hosted js compiler in 1k lines - <AUTHOR> https://github.com/maierfelix/mini-js <comment><USER2> Interesting exercise/experiment. It parses JS into a syntax tree, then puts it back together to JS again. Not sure if that can be called a "compiler"?

Admirable effort to write the compiler in the language that it implements.

Perhaps it can be more compact if the tokens were organized as a dictionary (object with tokens as properties) instead of separate constants, so that they can be looked up simpler than a list of if statements.</comment>


Picasa introduces facial recognition to automatically tag photos of your friends - <AUTHOR> http://googlephotos.blogspot.com/2008/09/announcing-picasa-30-and-new-version-of.html <comment><AUTHOR> Looks like someone at google reads scott adams's blog, or news.yc:

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

<comment><USER2> It's not as if this idea was a particularly clever one -- many photo applications allow users to tag photos, tagging photos is hard work, and so it would be nice to have automatic tagging where the tags carry over from image to image.

The hard part is the computer vision aspect of it. This is an incredibly difficult problem, one into which millions of dollars were pumped in the 1990s, with not a huge amount of success. It'll be interesting to see how well it works on Picasa.

<comment><USER3> (1) Picasa data is almost a best case for face recognition. The "population" for a given user is fairly small (is a new person or one of the 1-20 people who you always take pictures of) and the images tend to be good (well lit, lots of pixels, face-on, complete).

(2) Errors will be amusing. Folks have been saying how Aunt Emma looks like cousin Fred for years, now we have a computer confusing them.

<comment><USER2> Why is Picasa data any better than Facebook (which can leverage the incredible knowledge of your social network as well as user-tags to make highly educated guesses)? or webshots (which is almost exclusively face photos)? or even flickr? or any of the other dozens of photo sites?</comment></comment></comment></comment>


Mathematical Ghosts of the 20th Century - <AUTHOR> http://ds.tl/1dUDS3R

<comment><USER2> "The absurdity of this style of learning math hit me squarely between the eyes in my post-secondary education. In a statistics class I once approached my professor, asking for help. "What sorts of practice problems should I be drilling?" I asked. She looked at me like I was from the moon. In her French education, she had (apparently) not learned math in this way. "Go somewhere, lie down, and daydream about it for a while" ended up being her advice."

So jealous of French education now.

<comment><USER3> This is the only part of the article which seemed odd. Surely you benefit from ability to make a bunch of transformations in your head, without having to go to a computer?

In other words, if computer in Distil does that kind of thinking which is necessary faster than the author - heck, if it can do that at all - I want to work in Distil. Still didn't get it? I'm definitely not talking about rot summation and multiplication.</comment></comment>


Rust-malloc: a pure Rust memory allocator - <AUTHOR> https://github.com/huonw/rust-malloc

<comment><AUTHOR> This is just a proof-of-concept, showing how it's possible to write standalone Rust programs that make syscalls directly. Be sure to heed the readme's warning: _Only useful for segfaulting and generally making programs incorrect._</comment>


'Lucky' Woman Who Won Lottery Four Times - <AUTHOR> http://www.businessinsider.com/4-time-lottery-winner-not-exactly-lucky-2011-8

<comment><USER2> Same story:

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

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

</comment><comment>==

Related - breaking the Massachusetts State Lottery:

<http://news.ycombinator.com/item?id=2828122> <\- lots of comments

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

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

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

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

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

</comment><comment>==

Also related, breaking the scratch card lottery:

<http://news.ycombinator.com/item?id=2166555> <\- This has lots of comments

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

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

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

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

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

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

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


Rush is a replacement for the Unix shell (bash, zsh, etc) which uses pure Ruby syntax - <AUTHOR> http://rush.heroku.com/

<comment><USER2> I think Rush is a bad way to interact with Unix.

Another comment already mentioned that there is presently no way to provide arguments to a command. That was the first thing I was looking for, myself. It did not even support the syntax Capistrano promotes by using an underscore, such as my_dir.ls_la, and that's a shame.

Of course, we could use #system to invoke a Bourne shell to run any command, but that's too much overhead for heavy use, so that option does not matter.

One of the most important things a shell does is piping. Rush does allow one to get away from needing to pipe through commands like grep, wc, awk, and sed, but you cannot get away from the fact that there are cases where you just have to pipe data between commands that have a complex relationship with that data that you would not want to recreate within Rush. For Rush to have a chance of being considered seriously, it also needs to address pipes and make them easy to invoke.

</comment><comment><USER3> This is just fantastic. How do you invoke arbitrary programs with option arguments? I saw you can use dir["file.txt"].vi, what if i want to run

      <someprog> <someoptions> <somefile>

    ?

<comment><USER4> It's not possible at the moment.

You can pass options to vi/textmate by passing a string to the respective method as an argument.

A generalisation should be possible by resolving the PATH and adding the various executables as methods to the appropriate classes. The metaprogramming abilities of Ruby should make this a breeze.

</comment></comment><comment><USER5> I hate to ask a stupid question because it's probably in your docs somewhere, but could you humor my laziness and tell me if it's easy/hard to extend this at will? I think if you had some way for people to easily add the ruby counterpart of a bash command and then share them with others, this could really be nice.

Beautiful idea either way. I like the idea of interacting with your OS the same way you would interact with irb or the lisp REPL.

</comment><comment><USER6> The first question that comes to mind is: "Are there any security issues with using this?"

<comment><USER3> Actually, that's the last question that would enter my mind. First, I want to USE it, see if I enjoy it and _then_ fix any likely security issues, if at all!

That's just me, though.

</comment></comment><comment><USER7> So is that pronounced _roosh_?</comment>


Friends to Gmail - <AUTHOR> http://www.friendstogmail.com/ <comment><USER2> Note that this does not import your friends' EMAIL ADDRESSES. Might be just be, but I find the pitch a little bit deceptive: to me, "Friends to Gmail" implies that you can subsequently email those friends.

<comment><USER3> I had the same (incorrect) assumption. Emails would definitely be more useful.

That said, via the Facebook API a user can give your app permission to access their own email, but they (thankfully) cannot give your app permission to access the emails of their friends. I'd guess that's why he wasn't able to include emails in the CSV.

<comment><USER4> Yep. That's the walled garden bit people are pissed off about.

You'd have to create a pretty nasty hack to get around it and you'd probably be shutdown anyway.

<comment><USER5> I think I recall someone using OCR for this a few years back. They were shut down, as you suspected.

</comment></comment></comment></comment><comment><USER6> If you want to import email addresses from Facebook to Gmail without using an app, try the following:

1\. Create a new Yahoo email account (using a browser other than Chrome/Chromium - possible bug). Even if you have an old Yahoo email, create a new one so that the address book starts out fresh.

2\. During the account creation process, click on the import contacts "Get Started" link and then choose Facebook as a source. Or visit <http://address.yahoo.com/?VPC=contact_import_landing> and do this.

3\. When the Facebook login and authorize popup appears, authorize Yahoo to receive your data. Yahoo imports the addresses.

4\. Now that your friends' addresses are in Yahoo Mail, click 'Tools' in Yahoo Mail and then 'Export'. CSV format is a good format for uploading to Gmail (or your local address book). Save the file to your computer.

5\. Sign in to Gmail. Click Contacts. From the 'More actions' dropdown menu, select 'Import...'. Click the 'Choose File' button. Select the Yahoo CSV you just saved and click the 'Import' button.

Source: <http://tcrn.ch/dgb7T3>

It's silly that Facebook allows Yahoo to access addresses and blocks Google but this roundabout method works.

</comment><comment><USER7> This is as minimum as an MVP can get. Why not spend some time with google api and import the email addresses directly? Here's one way to do it. [http://code.google.com/apis/contacts/docs/2.0/developers_gui...](http://code.google.com/apis/contacts/docs/2.0/developers_guide_protocol.html#Creating)

Saving the contacts as a csv file is an add-on feature.

<comment><USER8> Good call, I'll look into it.

</comment></comment><comment><USER9> I went to the site, but my spider sense immediately started tingling.

<comment><USER10> I had the same reaction.

A big recommendation would be to have the value stated up-front, alongside the big Connect to Facebook button. Like: put all of the /about/ content in a column next to that Facebook button.

<comment><USER11> A slight improvement would be if you can export to a file, which is importable via Gmail's own interface. I'd still be trusting you with my Facebook login, but I'd be keeping my Gmail login secret.

</comment></comment></comment><comment><USER12> It would really help the site if they actually had a privacy policy on their site.

<comment><USER13> All the processing is done client-side.

<comment><USER14> From a privacy standpoint, that doesn't mean anything since you're still granting the FB App permissions which, could then be used server side.

</comment></comment></comment><comment><USER15> Facebook Friend Exporter [https://chrome.google.com/webstore/detail/ficlccidpkaiepnnbo...](https://chrome.google.com/webstore/detail/ficlccidpkaiepnnboobcmafnnfoomga)

I've recently came across the problem of exporting friends to gmail and used this solution. There's a problem that phone numbers as well as other data will land in the description area when importing the csv, but at least I got my contacts outside of that walled garden, and it grabs the emails (if friend displays it publically).

The subject app seems like it's a similar approach (js) with one difference - it needs permissions, while the bookmarklet above works 100% client-side.

</comment><comment><USER16> All this does is just scrap off whatever public data is available on your friend's profile. It COULD NOT obtain your friend's email addresses.

What's the point of having your friend on gmail without their emails?

</comment><comment><USER17> Interesting...and similar thoughts to those below where the "Connect with Facebook" pushed me towards considering the site to be spam.

Is the end goal getting information centralized? Makes me think of Greplin, except rather than import all the data to a central 'store', they allow you to search it all from a central location.</comment>


Windows Phone Crosses 20,000 apps - <AUTHOR> http://www.wpcentral.com/windows-phone-marketplace-hits-20-000-apps

<comment><USER2> If developing the app doesn't cost much, having a port of your Android or iPhone app ready for when (and if) WP7 users arrive is a smart move. I am not surprised.</comment>


How to shoot yourself in the foot - <AUTHOR> http://www-users.cs.york.ac.uk/~susan/joke/foot.htm

<comment><USER2> Seems to be some missing entries...

Haskell: You create an elegant firearm, one Mikhail Kalashnikov or John Colt would recognize as the most concise embodiment of an optimal foot-shooting instrument. Unfortunately, it requires a PhD in set theory to load.

Python: You draw a Glock, take an isosceles stance aiming at your foot, and squeeze the trigger.

Ruby: You draw a Glock, attach a laser sight, silencer, and fixed stock, create a new stance designed to make foot-shooting feel idiomatic, then worry if you'll be able to handle larger calibre bullets.

<comment><USER3> Python: You just type "import shotfoot"

</comment></comment><comment><USER4> My favorite is the assembly language example: You try to shoot yourself in the foot only to discover you must first reinvent the gun, the bullet, and your foot.or The bullet travels to your foot instantly, but it took you three weeks to load the round and aim the gun.

</comment><comment><USER5> I having pain in my stomach laughing... where is PHP, Python and Ruby ? I loved the perl one "You stab yourself in the foot repeatedly with an incredibly large and very heavy Swiss Army knife."

</comment><comment><USER6> My face pains of laughing so hard ... Hilarious! Hope to revisit some day with a Ruby/Rails update...

</comment><comment><USER7> haskell is missing:

[http://www.haskell.org/haskellwiki/Shooting_your_self_in_the...](http://www.haskell.org/haskellwiki/Shooting_your_self_in_the_foot)

</comment><comment><USER8> They could at least have updated it to 2009</comment>


Text tools set – check and feedback - <AUTHOR> http://countwordsfree.com <comment><AUTHOR> Would appreciate any feedback and recommendation for improvements about this web site. Site contains free services to manipulate with text, xml and json as well as the tiny prototype for type speed checking. Thanx.</comment>


A startup is pitching a mind-uploading service that is "100 percent fatal" - <AUTHOR> https://www.technologyreview.com/s/610456/a-startup-is-pitching-a-mind-uploading-service-that-is-100-percent-fatal/ <comment><AUTHOR> Too bad they didn't get Steven Hawking to sign on :)</comment>


The Republic of Science: Its Political and Economic Theory (1962) [pdf] - <AUTHOR> http://sciencepolicy.colorado.edu/students/envs_5100/polanyi_1967.pdf <comment><USER2> Here's another copy of the essay with a little more context: [http://archive.cspo.org/projects/plausibility/files/read_Pol...](http://archive.cspo.org/projects/plausibility/files/read_Polanyi- The-Republic-of-Science.pdf)</comment>


Think better and faster - <AUTHOR> http://www.greatjuices.com/juice/head-banger/ If your head is tired after coding, try juicing for a change.  This juice will help you add more hours of coding. <comment><USER2> Spam.

<comment><USER3> Do not feed the trolls - flag it and move on.

<comment><AUTHOR> how do i remove my post? I don't want anybody talking bad about it. Although it is relevant and a good use to anyone that wants to be healthy. Juicing is better than taking aspirin or any other drug.

<comment><USER3>
      > Juicing is better than taking aspirin
      > or any other drug.

Is it? Do you have evidence? That just sounds like a personal opinion. Nothing wrong with that, but I get _really_ tired of people trotting out their limited personal opinions and claiming that they are Earth-shattering discoveries.

See my comment elsewhere in this thread: <https://news.ycombinator.com/item?id=5794961>

And these are all just my opinions, of course, but it seemed like you would value someone's experience and feedback. I speak only for myself.</comment></comment></comment></comment>


Ask HN: Do you run W3 Validator against your sites? - <AUTHOR> <comment><USER2> Always! W3 Validator and then Pagespeed Insights.

<comment><AUTHOR> Awesome! Do you run it against the homepage only or is there a way to automate the validation for all pages?</comment></comment>


Kremlin Cash Behind Billionaire's Twitter and Facebook Investments - <AUTHOR> https://www.nytimes.com/2017/11/05/world/yuri-milner-facebook-twitter-russia.html <comment><USER2> Comments moved to [https://news.ycombinator.com/item?id=15631084](https://news.ycombinator.com/item?id=15631084).</comment>


Amazon Simple Notification Service adds SMS Delivery - <AUTHOR> http://aws.amazon.com/sns/sms-help/ <comment><USER2> Amazon SNS now supports SMS in the USA. But what about the rest of the world? USA is around 5% of the world mobile market. We are happy to (re) announce that with Amazon SNS and Nexmo you can reach the remaining 95% without much change of your existing code! Using the Nexmo Amazon SDK, you can easily subscribe your mobile users to a given topic and they will be automatically notified via SMS when you will be publishing messages. Here is a detailed how- to: <http://www.nexmo.com/documentation/libs/index.html#sns>

What is also very cool is that you would benefit from Nexmo wholesale pricing and 1-hop model that cuts out the middle man, improves SMS deliverability and reduce latency.</comment>


Watch movies or listen to music from YouTube simultaneously with friends. - <AUTHOR> http://www.synchtube.com/

<comment><AUTHOR> Not mine, but it looked interesting.

From Reddit:

Hey guys. My friend and I built this app in our free time after school/work. It started off as a fun personal app to just watch movies together with, but now we have buttoned it up a bit, and hope other people can find it useful. One feature I wanted to point out was social playlists. You and your friends can join a room, simultaneously make a YouTube video playlist together then sit back, relax and watch/listen together. It basically does what it says, synchronize YouTube, and if you have a few minutes feel free to stop by and look around. All feedback is MUCH welcomed. Cheers</comment>


Innovation Is the Only Way to Counter China - <AUTHOR> https://www.foreignaffairs.com/articles/china/2019-09-12/counter-china-out-invent-it <comment><USER2> Hasn't worked, cause they take it without having to work. Fix the leaky bucket first

</comment><comment><USER3> By displaying awareness they deploy spiritual/ occult means NOT tech, but unadmitted "occult" things they pretend aren't possible.</comment>


A new weapon in arbitration: sheer volume - <AUTHOR> https://www.nytimes.com/2020/04/06/business/arbitration-overload.html <comment><USER3> Oh, it's even worse than that for companies. The 9th and 10th circuits have both agreed that if the defense refuses to pay for arbitration, plaintiff can go to court. They're no longer barred from suing at that point.

Incidentally, the AAA rules have some useful provisions in consumer disputes. Either party can request to transfer the case to small claims court. At least in California, that's not only cheaper, small claims courts tend to be pro- plaintiff. You get to be heard in person in your own county by a real judge.

[1] [https://www.adr.org/sites/default/files/Consumer_Rules_Web_0...](https://www.adr.org/sites/default/files/Consumer_Rules_Web_0.pdf)

<comment><USER4> Either way, they end up having to fight on a thousand little battlefields all over the place and likely do not have the interest or ability to fight each and every one. This is the sort of thing that can tie up legal teams for years and drain reserves in no time.

I was involved in a mass-arbitration last year. The NDA bars any details from being released for 2 years but in the meantime, we can say we reached "a resolution, not a settlement" in the dispute.

<comment><USER5> Generally speaking, what does "a resolution, not a settlement" mean? Or is that not a general legal term?

<comment><USER6> No idea if there's a legal distinction but a settlement usually makes it sound like one side admitted fault even if that isn't the case

<comment><USER7> Settlement is one type of resolution. A settlement is just an agreement for one party to drop claims against the other in exchange for something of value (usually money). Usually there is no admission of anything by any of the parties and the exact terms are confidential.

</comment></comment></comment></comment></comment><comment><USER8> Stack overflow's TOS has a binding arbitration clause, [1] despite overwhelming user feedback to the contrary. [2]

Y Combinator's TOS has an arbitration clause. [3] If you've created an account on HN, you've agreed to arbitration.

[1] [https://stackoverflow.com/legal/terms-of- service/public](https://stackoverflow.com/legal/terms-of-service/public)

[2] [https://meta.stackexchange.com/a/309756](https://meta.stackexchange.com/a/309756)

[3] [https://www.ycombinator.com/legal/](https://www.ycombinator.com/legal/)

<comment><USER9> The US stands alone in consumer arbitration.

In most countries consumer arbitration is either heavily regulated, or non binding. In EU pre-dispute binding consumer arbitration clauses are considered unfair terms.

American Exceptionalism in Consumer Arbitration [https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2265556](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2265556)

<comment><USER10> Thanks for this. I'm curious: I live in Germany. Is YC/HN's arbitration clause enforceable against me? Can I take them to court in Germany?

<comment><USER11> Not a lawyer but I suspect it would depend on the country.

As an example there are clauses written into ToS which don't allow refunds on digital purchases. These work fine in the US but are illegal in countries with stronger consumer protections like Australia. US companies do still have to obey local laws - at least when it comes to the sale of faulty goods.

</comment></comment></comment></comment><comment><USER12> This seems like fantastic news -- if class action suits aren't allowed, then technology now makes it easier to file "cookie cutter" arbitration suits at such low cost that it effectively acts like a small class-action suit anyways.

But I'm worried companies will be able to respond in a way that neutralizes it -- tweaking arbitration terms somehow. I hope not, though. It is absolutely necessary that we hold companies accountable for mass bad behavior, no matter if it's with their customers or employees.

<comment><USER13> It seems like an easy tweak to nullify this strategy is to invalidate automated arbitration claims.

Even without this tweak, if a company saw a huge increase in "cookie cutter" arbitration suits they could probably just not respond to these suits and hope that the majority of complainants aren't willing to go to court. A cookie cutter suit likely indicates a low-effort action, not likely to be followed up with a lawsuit. How many of the 6,000 DoorDash claims would have gone to court if DD just didn't respond? At $1,500 per claim even if dozens or a couple hundred went to court DoorDash may have still have saved money.

<comment><USER14> In court they can do a class action, so little reason not to.

<comment><USER15> In fact, the class action filing management could also be automated using the vendor's same system.

</comment></comment></comment></comment><comment><USER16> The article mentions 6,000 arbitration cases against DoorDash amounted to $9 million in fees from the American Arbitration Association. That's $1,500 a pop!

If you have a dispute with a company, and are bound by an arbitration clause, it seems like you have a $1,500 hammer to hit them with? (Assuming your agreement states that the company will front the fees).

What happens if the arbitrator decides the case against you? Do you owe that fee? Does this vary from one contract to another?

<comment><USER17> Does that mean that someone is getting $1500 because their pizza arrived cold? I hope not.

<comment><USER18> If the service's promise is to deliver warm pizza and they fail without compensating the customer (as these delivery services often do, essentially saying "tough luck" with fake, canned apologies and hoping you don't bother doing a chargeback) then I don't see why the customer _shouldn't_ be getting $1500.

<comment><USER19> The $1500 doesn't go to the customers, it goes to the courts. It's effectively a fine that a customer can arbitrarily impose on a company.

<comment><USER18> But the customer has to pay it back if the lose the lawsuit, correct? If so then it's absolutely fair.

</comment></comment></comment></comment></comment><comment> Paul-ish > The International Institute for Conflict Prevention & Resolution, or C.P.R., > was willing to allow DoorDash to arbitrate "test cases" and avoid having to > pay the fees all at once. C.P.R. also took feedback from Gibson Dunn on the > proposed new rules, though it did not consult with the dashers' lawyers.

DoorDash gets to try a few cases with this company to see if they like the results. That couldn't possibly create a conflict of interest.

</comment><comment><USER20> > DoorDash got the bill for the 6,000 claims — more than $9 million.

> DoorDash balked, arguing in court that it couldn't be sure that all of the > claimants were legitimate dashers. The American Arbitration Association said > the company had to pay anyway. It refused, and the claims were essentially > dead.

How is that legal for binding arbitration? Didn't both sides agree that disputes will be resolved by arbitration?

<comment><USER21> Many companies require you sign a contracting to use their service (or in this case to be employed by them) that says you agree to binding arbitration

<comment><USER22> No longer binding if the company breachs the arbitration clause. They're going to be sued if the issue is real.

<comment><USER23> It seems simple enough for a binding arbitration clause to simply require the plaintiff to pay, and to tack on additional clauses to indemnify the corporate party.

<comment><USER18> I would assume that these scum companies would've already done so long ago if this was possible.

</comment></comment></comment></comment></comment><comment><USER24> I wonder why the issue of being able to waive away your rights - <USER2> arbitration, non-competes, severance packages etc. never come up at the presidential campaign stage.

Seems like this is pervasive enough to affect pretty much everyone. Or am I misunderstanding something here ?

<comment><USER16> I think because the issue seems too theoretical to most people. I'm betting that most people have never felt a negative impact from forced arbitration clauses, or non-compete agreements. Anecdotally, I've never once felt the need to take a company to court, only to be stymied by an arbitration clause. Nor have I been prevented from getting hired due to a non-compete. And I don't think I know anyone who has.

I'm not saying these aren't valid and serious issues. Just that they're not day-to-day matters in the same way that healthcare, taxes, gas prices, or housing costs are. They're the type of issues that nobody thinks about until it bites them one day.

<comment><USER24> speaking from my personal experience, I've seen non-competes being pretty pervasive outside tech and some states like CA or MA, I've had competitors flat out refuse to proceed with an interview because I had a non-compete. whether it is enforceable is a different question but it does reduce opportunities.

Like you said, it's probably not what the majority of people are experiencing.

<comment><USER25> CA or MA? Noncompetes have historically been completely unenforceable in CA, whereas until recently MA had a pretty oppressive noncompete regime. That contrast is actually commonly credited with why Silicon Valley overtook Route 128 in technological innovation: [https://www.vox.com/2016/4/12/11349248/noncompetes- silicon-v...](https://www.vox.com/2016/4/12/11349248/noncompetes-silicon- valley-route-128)

<comment><USER24> thanks for the info, wasn't aware of the historical context.

</comment></comment></comment></comment></comment><comment><USER26> > But a federal judge in San Francisco wasn't willing to go along with it. The > judge, William Alsup, ordered DoorDash in February to proceed with the > American Arbitration Association cases and pay the fees.

Ah! Gotta love judge Alsup. Back in SCO vs Novell, and in Oracle vs Google.

> ... in a hearing, Judge Alsup questioned whether the company and its lawyers > really believed that.

> "Your law firm and all the defense law firms have tried for 30 years to keep > plaintiffs out of court," the judge told lawyers for Gibson Dunn late last > year. "And so finally someone says, 'OK, we'll take you to arbitration,' and > suddenly it's not in your interest anymore. Now you're wiggling around, > trying to find some way to squirm out of your agreement."

> "There is a lot of poetic justice here," the judge added.

<comment><USER27> What was his involvement in SCO vs Novell? He doesn't seem to be mentioned in [https://en.wikipedia.org/wiki/SCO_Group,_Inc._v._Novell,_Inc](https://en.wikipedia.org/wiki/SCO_Group,_Inc._v._Novell,_Inc).

<comment><USER28> SCO vs. Novell was in Utah, under Judge Kimball. But Alsup was impressive in Oracle vs. Google, noting that he had some familiarity with programming and calling out Math.max() as the kind of function where scènes à faire and merger probably apply.

<comment><USER29> > as the kind of function where scènes à faire and merger probably apply.

I had to look this up -

»Scène à faire (French for "scene to be made" or "scene that must be done"; plural: scènes à faire) is a scene in a book or film which is almost obligatory for a genre of its type. In the U.S. it also refers to a principle in copyright law in which certain elements of a creative work are held to be not protected when they are mandated by or customary to the genre.«

[https://en.wikipedia.org/wiki/Sc%C3%A8nes_%C3%A0_faire](https://en.wikipedia.org/wiki/Sc%C3%A8nes_%C3%A0_faire)

<comment><USER30> This was a holding argument in the CISCO v. ARISTA lawsuits. You can't trademark "show interface" for example.

</comment></comment></comment></comment></comment><comment><USER31> This is excellent. Forced arbitration clauses are fundamentally unfair to consumers. See this older article to understand why: [https://www.nytimes.com/2015/11/02/business/dealbook/in- arbi...](https://www.nytimes.com/2015/11/02/business/dealbook/in-arbitration- a-privatization-of-the-justice-system.html)

<comment><USER32> Like what the hell is even happening in the US? I understand that for the international stuff it's sometimes hard to use national courts, but what's wrong when dealing with the internal? Courts aren't good enough? So maybe fix them, no? Of course, easier to make your own court where you'll have an advantage...

</comment></comment><comment><USER13> This strategy does result in increased upfront costs for companies. But this sort pile-on strategy seems like it could be countered with arbitration agreements that aren't subject to any sort of timeline, or arbitration agreements that preclude use of automated complaint filing systems.

Fundamentally, this strategy of inundating the company with claims only works because it's more expensive for the company to respond to an arbitration dispute than it is for an employee or customer to file one. If that asymmetry goes away, this strategy no longer works. I could see a company witness a spike in complaints, especially if the complaints are filed from an automated system, and conclude that these complaints would likely not result in lawsuits if arbitration was rejected. Now the onus is back on the complainant to actually go forth with the lawsuit.

<comment><USER33> I think it remains to be seen if the courts will allow arbitration agreements that are completely one-sided. I mean, a big part of the original Supreme Court rulings was that the arbitration proceedings would be impartial. Having an arbitration agreement with no timeline seems like it would be more likely to be overturned.

<comment><USER23> >I think it remains to be seen if the courts will allow arbitration agreements that are completely one-sided.

One-sided bad faith terms of service have been enforced to great effect in recent years, so I can't see a one sided arbitration agreement getting any scorn or backlash from the current judicial makeup.

</comment></comment></comment><comment><USER34> DoorDash seems to have looked at Uber's many PR problems over the last many years and said, "Hold my beer".

</comment><comment><USER35> Is this current news? In trying to find non-pay-walled coverage (FU,NYT), I quickly found previous stories on this from February and in November.

The November 25 article[1] mentions the "squirming out" remark by the judge.

A WaPo article from February 16 [2] mentions that each of the 5000 Dashers who filed for arbitration had to put up $300.

[1] [https://www.courthousenews.com/judge-accuses-doordash-of- try...](https://www.courthousenews.com/judge-accuses-doordash-of-trying-to- squirm-out-of-arbitration/)

[2] [https://www.washingtonpost.com/opinions/2020/02/16/doordashs...](https://www.washingtonpost.com/opinions/2020/02/16/doordashs- multimillion-dollar-arbitration-mistake/)

<comment><USER36> Posted here a few months ago as well [1] when the judge's decision was given. This NYT article doesn't add anything new, and I suspect it's a result of the defense lawyers calling in favors order to put pressure on DoorDash which filed for it's IPO in February.

DoorDash is most likely going to use the surge in traffic because of the coronavirus to help push their IPO through sooner than later, taking advantage of the fact they're one of the few types of businesses benefitting from the lock down. If the defense can threaten that IPO, DoorDash might be more pliable to a deal...

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

</comment></comment><comment><USER37> [https://archive.md/tXRs6](https://archive.md/tXRs6)

</comment><comment><USER38> Good on Judge Alsup. This is the bed they asked for. They can sleep in it.

Not much gets me going more than someone making tons of demands and then backing out when they actually have to deal with the consequences associated with those demands.

Fuck 'em.

</comment><comment><USER39> As a European, reading these articles on arbitration, no-compete, required licenses, 'right-to-work', tipping, "gig work", firing over zoom, and so much more, it seems U.S. workers could really use some collective bargaining? Here unions are the obvious century-old solution to improve working conditions, why don't workers organize there? Are we just lucky here, like with universal health care?

<comment><USER40> Unions have suffered from a bad reputation in the United States over the past few decades.

Some of it is deserved BTW; some big unions were/are corrupted and some were connected with organized crime. Even more innocently, unions have been quite conservative; as jobs and technology changed some were very resistant and fought modernization (requiring people who were not needed to be around). But a lot of it also stems from corporate resistance to unionization and the high regard in which ordinary people hold the opinions of corporate managers in the USA.

All that being said, unions have been very good for labor, and when I've worked in union shops (not in a unionized role) they've been really great in terms of qualified people and high quality work. I built my house using union labor and I'm glad I did.

Europe is not immune to these diseases by the way. Certain French unions certainly negotiate against the greater interests of society. And in Germany my non-unionized brother in law (a mechanical engineer) was not allowed to work late at VW -- he was trying to finish a project one evening and a union guy came by and cut his PC's power cable while he was designing a part.

<comment><USER41> Most of the bad reputation is deserved. Most US unions are horrible organizations. There are still some good unions, just not many.

That doesn't make the concept of a union bad. They worked much better 50 years ago, even. It's a great concept, but the implementation got corrupted over the years.

I don't think we'll fix unions' reputations without first fixing unions. And we really need more unions and more credible unions.

As a footnote, in my local school district, under coronavirus school closures, the teacher's union negotiated that the teachers get paid, but they don't need to remotely teach students. Some teachers continue teaching for some amount of time, but essentially on a volunteer basis. Many teachers are just sitting at home, doing nothing except for collecting a pay check.

<comment><USER42> Are you sure it was the union which forced the district not to remote teach? I live in an area where teachers are not unionized and the teachers are still getting paid and not teaching. The school district has signed contracts with the teachers which doesn't have any terms which stop payment because the schools close during the year and the district is not requiring remote learning because of equal access issues.

<comment><USER43> > doesn't have any terms which stop payment because the schools close during > the year

And so they shouldn't! In many (most?) US states, the public schools are unconditionally funded by the state based on student enrollment figures. Cutting teacher pay during a closure under such a system would be a purely greedy move.

<comment><USER42> If my comment seemed to imply I thought they shouldn't I didn't mean to. I agree that they should get paid.

I don't know how it works in the majority of states but I know the model of mostly state funding based upon student enrollment is not universal. In my state the majority of funding is from local tax revenues. For example the budget for my local school district is approximately $1.3 billion. $370 million comes from the state and $30 million comes from the federal government. Another $40 million comes from "misc other sources" and $860 million comes from local tax revenue.

<comment><USER43> I hadn't considered the local tax aspect. I understand that many areas are projecting large shortfalls in the near future, so I suppose there could be some issues. I guess it would probably depend on how the education taxes were levied in a given jurisdiction (property, sales, or something else).

</comment></comment></comment></comment></comment></comment></comment><comment><USER44> Does any juristiction require all these unilateral (in any sense) TOS to be pre-reviewed and approved as "fair and clear" by a public autority? It feels so elementary to me that I'm really surprised why not everyone is demanding it as basic human right.

</comment><comment><USER45> The "reform" is to clog the system with a huge number of cases? I don't see the benefit here. A better solution would be for the American Arbitration Association to have a special system for class actions like government courts do.

<comment><USER46> The best solution would be for corporations to not get special treatment like fucking babies.

<comment><USER47> couldn't agree with this more!

</comment></comment></comment><comment><USER48> While I like the general idea, I still think we need a wider answer to the question of companies like doordash. Employees (or whatever they are) won't get what they want this way any more than they would previously...

</comment><comment><USER49> How come it seems like every time I hear Alsup's name in the news it's because he's telling a major corporation to stop being an asshole. It's refreshing to hear from a judge.

</comment><comment><USER50> I'm just wondering, could the plaintiffs in court now receive a higher settlement than they would have had their been no arbitration?

My thinking is basically they could argue that they agreed to the companies terms of arbitration and now the company refused to honour them requiring them to waste their time and money going to court?

</comment><comment><USER17> Basically, the strategy is "death by a thousand paper cuts." There may be legit cases for it, but in the end, it's a wrong solution. It could easily explode to be abused for minor complaints where a real class action lawsuit would be more proper. There should be a cost to a frivolous lawsuit. This seems to eliminate it.

</comment><comment><USER51> Would be poetic justice except: this is really just companies weaseling out of even THIS low level of social responsibility.

</comment><comment><USER52> Just a distributed denial of service attack.

It is amazing how so few systems are inherently robust to DDOS.

<comment><USER53> Globalised JIT economic systems and pandemics!

</comment></comment><comment><USER54> I think it's an excellent idea what FairShake.com is doing

</comment><comment><USER55> "You can't stop the bum-rush!" — Ice-T</comment>


The High Cost of College - Megan McArdle - <AUTHOR> http://www.theatlantic.com/business/archive/2010/09/the-high-cost-of-college/63445/

<comment><USER2> Megan McArdle misses the biggest reason why tuitions are sky-rocketing and that is because Government funding is disappearing.

Basically this is what happened: Before the Bush administration, the fed government would give out these huge grants to the states for education and other purposes. When Bush became president he had to figure out a way to cut taxes while drastically increasing spending at the same time (because he had to have his war). Borrowing was a big part of the answer but he also severely cut the grants to the states. Bush also transferred huge war costs to the states by requiring that the national guard take an unprecedented part in the war.

All of a sudden states budgets were trashed and the first thing they cut was education subsidies.

Of course there were other things that destroyed state budgets such as the slow economy, pension liabilities (which were caused by the slow economy), etc., but it all started with the war.

It was always the large high quality state schools that kept tuitions down. If you have the UC system (for example) that can take hundreds of thousands of students, provides excellent education and charges only $5k per year (as it did during the 90's), it is very difficult for other schools to raise tuition. Of course few schools that were clearly better than the UC system could raise tuition also few schools that specialised in serving rich kids, but most schools could not.

Now of course the state schools are losing their state funding, which means they must raise their tuition, which means that all other schools can raise theirs too.

Now mind you student loans are an issue as well, but one has to mention the disappearing state funding when discussing skyrocketing tuitions.

<comment><USER3> Would love to see numbers and citations or just a good article on this.

<comment><USER2> [http://www.cbpp.org/cms/index.cfm?fa=view&id=1554](http://www.cbpp.org/cms/index.cfm?fa=view&id=1554)

<http://www.americanprogress.org/issues/kfiles/b34039.html>

</comment></comment></comment><comment><USER4> Some of the discussion is reasonable, but I really dislike the reliance on "Figure 4: Expected Lifetime Earnings by Educational Attainment". Certainly there is a correlation here, but is there causation?

"But as you can see from the chart above, $1 million is close to the lifetime value of a college degree (it's actually about $1.4 million), and colleges are getting better at extracting quite a lot of that value for themselves."

To prove the point, you could make a parallel chart of "Lifetime Earnings by Car Driven", and I'm sure that the BMW owners would on average earn more over their lifetime than the Honda Civic drivers (like me). But this wouldn't imply this is a good pricing model for cars.

Obviously, the actual chart used is better than this hypothetical. But shouldn't one at least try to distinguish the value of the degree from the skills that the person already had going in?

<comment><USER5> _Some of the discussion is reasonable, but I really dislike the reliance on "Figure 4: Expected Lifetime Earnings by Educational Attainment". Certainly there is a correlation here, but is there causation?_

Not demonstrated, but certainly plausible, since the different education levels seem to point towards different career paths.

</comment></comment><comment><USER6> Repost here:

"But in 2005, during a major overhaul of the bankruptcy code, private student loans were given an elevated status and thus couldn't be discharged. This didn't make sense. If we are going to have a fair bankruptcy system, private education loans should be treated the same as other private consumer debt. That's the risk lenders take, similar to the risk borne by providers of loans for cars, homes or other consumer purchases." [1]

"Lenders receive a 97 percent guarantee against default losses, which removes almost all of the default risk of the loan to the lender. If a borrower does not repay his or her federal student loan, the government pays the lender 97 percent of the outstanding principal and all of the accrued unpaid interest. In other words, the lender assumes default risk for only 3 percent of the loan principal." [2]

[1] [http://edlabor.house.gov/edlabor_dem/mt- search.cgi?IncludeBl...](http://edlabor.house.gov/edlabor_dem/mt- search.cgi?IncludeBlogs=11&limit=20&tag=student%20loan)

[2] [http://febp.newamerica.net/background-analysis/federal- stude...](http://febp.newamerica.net/background-analysis/federal-student-loan- subsidies)

</comment><comment><USER7> Subsidized student loans have been available for a long time. Why are they so much more pernicious now? Are there solid numbers available for the growth of loans over the last 50 years?

<comment><USER8> It's because you didn't need a subsidized loan when you could afford to pay tuition yourself. Sure, they were available, but there were fewer people that would be unable to attend school without them. I have an old teacher who went to college in the seventies, and he says he didn't get a subsidized loan because he was too lazy to walk down the street and fill out an application.

<comment><USER7> Isn't that kind of a circular argument? Loans are more common now because tuition is more expensive because loans are more common?

<comment><USER9> It is temporally circular, not logically circular. It's a pernicious cycle. It has been headed for disaster for a while, but like a lot of economic trends that were (and are) obviously headed for disaster, people tended to think it could go for another ten or twenty years, a horizon that has really shrunk due to the fact that the economy has choked.

If the economy doesn't really pick up in the next year I think we're going to see some very shocking numbers come next fall admission.

</comment></comment></comment></comment><comment><USER5> _But beyond the high default rates, consider what a student loan does. In the past, college degrees conferred higher incomes on those who earned them. But almost all of that surplus went to the student rather than the college, because aside from a small number of extremely affluent families, the students were young and did not have that much cash. If colleges wanted to expand their market, college tuition was constrained to what an average student, or their family, could pay._

How far back do we have to go to get to a time when the "average [university] student" was from not an "extremely affluent" family, but still well above average?

</comment><comment><USER10> FTA:

 _To make this product work on a mass scale, you need the government guarantee --and the government's ability to shield those loans from bankruptcy. The default rate on student loans is 7%, not all that much lower than the current 8.8% default rate on credit card loans--even though student loans are not dischargeable in bankruptcy, are deferrable for hardship, and are supposed to be made to people who end up with higher than average earning power._

How does one actually default on the loan if you can't default? Do they just stop paying?

<comment><AUTHOR> The law is that student loans cannot be discharged through bankruptcy. There are several ways they can be legally defaulted on, for example if the person becomes disabled and begins receiving SSI. Plus, as you said they can simply not pay, but that completely and permanently trashes their credit, since it doesn't go away (or so I understand - I could be wrong about whether it eventually falls off their credit rating).

</comment></comment><comment><AUTHOR> Clearest discussion I have seen about why the cost has risen so much, and keeps rising, and probably will continue for a while yet.

</comment><comment><USER11> That is funny... I am not paying a single cent for college. Sucks to be everyone else.</comment>