Paradigm shifts for the decentralized Web - <AUTHOR> https://ruben.verborgh.org/blog/2017/12/20/paradigm-shifts-for-the-decentralized-web/ <comment><USER2> I'm surprised nobody mentioned self-sovereign identity and digital identity.

Here are some excellent links about the subjects:

[http://www.moxytongue.com/2016/02/self-sovereign- identity.ht...](http://www.moxytongue.com/2016/02/self-sovereign- identity.html) [http://www.lifewithalacrity.com/2016/04/the-path-to-self- sov...](http://www.lifewithalacrity.com/2016/04/the-path-to-self-soverereign- identity.html) [https://en.wikipedia.org/wiki/Digital_identity](https://en.wikipedia.org/wiki/Digital_identity) [https://blog.cryptographyengineering.com/2017/07/02/beyond-p...](https://blog.cryptographyengineering.com/2017/07/02/beyond- public-key-encryption/) [https://pages.nist.gov/800-63-3/](https://pages.nist.gov/800-63-3/) [https://www.forgerock.com/](https://www.forgerock.com/)

<comment><USER3> Yeah, identity is a very crucial and difficult topic, which I did ignore in that post. Reason being: in my experience, as soon as you start about identity, it takes up everything. So I have made a couple of assumptions about authentication and identity; this is what we could build on top of that.

</comment></comment><comment><USER4> The GPL was a massive legal jujitsu that changed software forever. We need the equivalent with a business model.

The biggest challenge isn't the technical plumbing, it's changing how companies operate and changing customers behavior.

What is the business model? Why would the next unicorn give up this advantage?

Business want data lock-in. They try to create "data moats" to protect their castles.

No product will win on security and privacy features alone. They are critical for a small segment of adoption, but sadly haven't been a factor for mass adoption.

<comment><USER5> i think these business models already exist.

you can find them in community startups that use decentralized technologies and semantic content to empower individuals to cooperate directly, create initiatives between parties without central authorities in control.

the technologies just need to mature further, gain more traction.. and applications need to be created outside of the academic sphere (especially true for semantic web apps).

i'd like to see true decentralized application frameworks that are semantic and truly decentralized.

solid ([https://github.com/solid/solid](https://github.com/solid/solid) ) is a great project for the semantic web, and so is [http://ld-r.org/](http://ld-r.org/)

then you also have ipfs.org, datproject.org, scuttlebot.io, mastodon social

but the semantic web projects are too content-oriented and the others are either file-exchange or (limited) social web interpretations.

afaik no truly decentralized messaging / application framework exists yet (though i have to investigate solid more thoroughly still)

<comment><USER6> I submit that we currently have a massively popular decentralized, federated, open standard messaging system. It goes by SMTP, and it's a cluster in many ways.

<comment><USER5> yeah, agree. but this is low-level protocol. many mail (email) applications, but event-based application messaging frameworks? i could find some that come close..

do you have some good pointers?

</comment></comment></comment></comment><comment><USER7> Wow, point for point this is what we've built at gun ( [https://github.com/amark/gun](https://github.com/amark/gun) ).

\- You only store the data you are subscribed to, which if it is your data, it is automatically stored in localStorage and if you run a Electron/React-Native app, is also backed up on your harddrive, and optionally you can have it backup to any server you run. This is particularly true with the P2P identity system: [https://hackernoon.com/so-you-want-to-build-a-p2p-twitter- wi...](https://hackernoon.com/so-you-want-to-build-a-p2p-twitter- with-e2e-encryption-f90505b2ff8)

\- This data can only be decrypted by the app if the user happens to use that app. The app doesn't have any special server, it is just some front-end logic, for instance, see this 4min interactive tutorial: [https://scrimba.com/c/c2gBgt4](https://scrimba.com/c/c2gBgt4)

\- The interface literally is just query, where that query is represented in HTML (or GraphQL at [https://github.com/brysgo/graphql- gun](https://github.com/brysgo/graphql-gun) ) with automatic 2-way binding based off of `name` attributes, like so: [https://github.com/amark/gun/blob/master/examples/contact/in...](https://github.com/amark/gun/blob/master/examples/contact/index.html#L111-L130)

Ruben, if you happen to see this shoot me an email (check my HN profile)! I also know Dmitri as well! Great article! :)

<comment><USER5> thx! i have been following gun for a while.. very interesting project!

but its decentralization features are not all too clear to me (have to dive deeper). things like peer discovery, nat traversal, gossiping, etc.

does that come with the package?

<comment><USER7> I'm honored!!! Thanks. Yes, the architecture is P2P/decentralized (see this talk [https://youtu.be/5fCPRY-9hkc](https://youtu.be/5fCPRY-9hkc) ), however:

\- NAT Traversal sucks and WebRTC is still very glitchy. To get around this, it is easier/better to just run gun on your machine directly (not via a browser) and connect directly to other gun peers with their IP addresses. Then browsers can connect via websocket fallback, but as WebRTC gets better that will work too.

\- Peer discovery is not built in by default, but should be trivial to do by starting with some bootstrapping peers, which as other peers connect to them everybody saves the new IP addresses to a common `gun.get('peers').set(IP)` table. So yes, it is easily possible, just not built in (I'm sure in the future we'll have a full fledged extension for it).

\- re:"gossip" GUN automatically daisy chains updates through peers of peers, in an ad-hoc mesh-network manner.

Would love to chat more! What is your email? Mine is mark [atatatat] gunDB [dotdotdot] io !

<comment><USER5> great! enlightening.. (a mail has been dispatched :)

</comment></comment></comment></comment><comment><USER8> What if all the super-advanced technology for consumer behavior tracking could be somehow judo-flipped into a new form of anonymous resource ownership? So instead of legitimate websites being forced to ask a tech giant for an identity token just to establish a session, while shady advertisers silently assemble vast shadow profiles of consumers' behavior using browser fingerprinting, legitimate companies could use browser fingerprinting to automatically create a persistent session, which the user can then voluntarily link to an identity, or leave anonymous if they so choose?

A person could potentially have a number of identities that are anonymous or pseudonymous, that are automatically created and detected whenever they use the internet. They could maybe view a dashboard of their identities on a secure device, link them by function and scope, expose personally identifiable information through them at will, and create policies to automate all this.

Eg. if I visit a site like HN more than twice, it could just create an anonymous account for me automatically through fingerprinting and log me in automatically. Then, if I want to link this account to other services or other devices, I could do that through some general purpose API on a secure device. This could potentially lead to a general purpose "consumer identity" system where a person's offline behaviors are brought in as well.

My point is there's no reason why the most advanced forms of tracking and identity management can't be brought under users' full control for our own benefit. Fingerprinting is treated like the internet's dirty secret, but it's a technology that could be used in different ways. I would prefer this to any of biometric authentication schemes that have been peddled as "passwordless."

<comment><USER9> > Fingerprinting is treated like the internet's dirty secret, but it's a > technology that could be used in different ways. I would prefer this to any > of biometric authentication schemes that have been peddled as > "passwordless."

Fingerprints (and other biometric data) is the analogue of a (public) username and not the analogue to passwords:

> [http://blog.dustinkirkland.com/2013/10/fingerprints-are- > user...](http://blog.dustinkirkland.com/2013/10/fingerprints-are-user-names- > not.html)

HN discussion:

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

So if you replace entering your username by a fingerprint, retinal scan, ... this is perfectly fine from a security perspective (though IMHO a really bad idea from a privacy perspective). On the other hand using biometric data as replacement for _passwords_ is from a security perspective an anti-pattern.

<comment><USER10> This reply seems to have missed the point of its parent and just picked up on the word _fingerprint_ in a different context.

I like the parent's overall point, but I suspect its business model is not viable.

Any service that helps the user against the publisher's interests will need to be funded through charging the consumer. Not easy these days.

<comment><USER8> Why assume it is against publishers' interests for people to control how they expose their own identity? Advertisers, sure, but publishers? I see privacy as being more orthogonal to their interests than directly against them.

Nevertheless, you're probably right about the business model. I was piggybacking on the idealism of the article we're commenting on. It's fun to just discuss possible futures without worrying about viability once in a while.

<comment><USER10> Agreed. I ought not to have assumed the status quo must prevail. Indeed, hopefully a viable solution to the Publisher's Dilemma will be found.

</comment></comment></comment></comment></comment><comment><USER11> I've built a new version of HTTP that lets you build apps from multiple websites, linking their internal state together as easily as we link pages together today.

I think this solves much of the difficulty in building the decentralized web vision described in this article. I'd love to get critique and feedback.

[https://stateb.us](https://stateb.us)

<comment><USER12> A few suggestions (from a backend developer, so not exactly your target audience):

\- Show the source (repository) of a real webapp built with Statebus. Citing Linus, "Talk is cheap. Show me the code." Make sure it includes examples of all the advantages cited, like "accessing another site's state".

\- Compare your solution with similar alternatives (e.g. my first thought was Meteor).

\- Add a public way of asking questions, like a forum or a subreddit. I'm more inclined to ask questions if the responses are public, and it might help you build a body of knowledge to spur the interest of visitors (and even improve your SEO).

As an aside, the svg is not rendering well on my machine (FF 58 on Ubuntu 16.04): [http://sufi.andreparames.com/screen_statebus.png](http://sufi.andreparames.com/screen_statebus.png)

<comment><USER11> Wow, thank you! This is great feedback!

</comment></comment></comment><comment><USER13> Grandiose visions and inspiring words doesn't change the fact that users don't care how the backend is implemented.

<comment><USER5> yes, that is exactly why almost no (end-user) product explains this on their landing page :)

but a user might see the merits of being in control of their own data, and knowing their privacy is not violated by some nefarious use of it..

with all the free-use software platforms nowadays the user is not even the customer.. the advertiser operating in the background is.

makes me feel bad, especially as the software providers are becoming absolute monopolists :)

</comment></comment><comment><USER14> I just got an error page...from cloudflare. Ironic, for a page that talks about decentralization.

<comment><USER3> As I say in the blog post, decentralization and replication go hand in hand :-) It's my own Web server, so decentralized. Cloudflare just replicates/caches it for faster access around the globe.</comment></comment>


WebXray - <AUTHOR> http://webxray.org/ <comment><USER2> Seems like a great opportunity to use SQLite, then folks could share around database files. Why the hell don't more people use SQLite for things like this?

<comment><USER3> The author ('tilbert) is hellbanned. You can see his comments when you turn on showdead in your profile.

Re SQLite, he replied: "@coleifer: there was a sqlite branch, but it doesn't scale well to many-million record sets which is what I have been doing. the design of the software allows drop-in db replacement, it just lacks the code. I can't decide to go back and sqlite or to just make a web front-end."

<comment><USER4> > The author is hellbanned

Comments by some (not all) new accounts are killed by default when they look like possible spam or troll activity. It's not a great solution because it leads to false positives like this one. On the other hand, doing nothing is worse. It's a hard problem, and it certainly doesn't mean that the user is banned.

We're about to release software to let the community unkill these, which we hope will be a much better solution.

</comment></comment></comment><comment><USER5> > The core of webXray is a python program which ingests addresses of webpages, > passes them to the headless web browser PhantomJS, and parses requests in > order to determine those which go to domains which are exogenous to the > primary (or first-party) domain of the site.

Naturally this means a different user agent and finger print which could ultimately mean the script is fed a different page altogether. The odds of that are probably low but still; someone could have a really shitty website that uses hundreds of trackers but could serve WebXray something completely without them.

I would like to see this type of stuff as web browser extensions. That way we can get the exact, most correct information possible. Also would simplify a semi-convoluted build process that seems to have tripped up a few readers.

<comment><USER6> The major ad blocking extensions could do this. They already know about the requests. It's also possible to change the user-agent (say, use the top 10) and quickly gather the data using a bunch of cloud servers.

<comment><USER7> also, the main extensions use black-lists, webXray grabs all the requests.

<comment><USER6> Yes, but they can figure out what on the blacklist was used for a given site. For example, Ghostery has Ghostrank which is pretty similar to this--it sends back to advertisers what stuff was blocked.

[https://www.ghostery.com/en/faq/how-does-ghostery-make- money...](https://www.ghostery.com/en/faq/how-does-ghostery-make-money-from- the-add-on/)

</comment></comment></comment></comment><comment><USER7> hey, the captcha system here is an f'n nightmare - anyway I wrote the software! happy to answer questions will try to do so below

since I am hell banned I can only edit this comment to reply.

as for video, I discuss research here: [https://www.youtube.com/watch?v=OqW8erWi1Wo](https://www.youtube.com/watch?v=OqW8erWi1Wo)

but if you mean screencast of the software I haven't had time.

\---

@coleifer: there was a sqlite branch, but it doesn't scale well to many- million record sets which is what I have been doing. the design of the software allows drop-in db replacement, it just lacks the code. I can't decide to go back and sqlite or to just make a web front-end.

\---

@captn3m0 I have an academic paper in revision that is an analysis of the alexa 1M list, I also have other projects i development.

\---

@snorrah: this was my first python project, so I went with the newest version. it's made a lot of things very difficult, especially porting to a web version.

\---

@linuxlizard: proxy is problem when you want to do a lot of concurrent tests, I usually load about 64 pages in tandem to get good speeds on large sets.

\---

@radmuzon: webdxray runs large batch jobs, so you can get lunch, and come back with all of pages analyzed. I know it does work on windows, and I apologize for not being able to provide directions...see comments above.

\---

@TeMPOraL: thanks!

\---

@pearjuice: yeah, I wish there was an easier way to get python3 to talk to mysql, that's the biggest PITA.

</comment><comment><USER8> At SpeedCurve we've built something similar for tracking and understanding the impact on website performance that third party requests can have. It's a big issue for websites when their user experience can be affected by resources that are not even under their control. We've seen websites where over 90% of the requests on a page are made to third parties.

Here's a dashboard showing third party usage for The Guardian over the last 30 days: [https://speedcurve.com/demo/thirdparty/1/1/chrome/1/30/39tfn...](https://speedcurve.com/demo/thirdparty/1/1/chrome/1/30/39tfnozeq94p1o0hndk1kpbg4vb7cg/)

Great to see an open source list of domains linked to organizations. We've built our own list as well and we'll look at contributing them to this project.

(Disclaimer: I'm the founder of SpeedCurve)

<comment><USER7> Would love help building the org_domain.json list, please get in touch!

</comment></comment><comment><USER9> I think this would be quite interesting integrated into a web proxy. Surf through the proxy, gathers all the nth party HTTP.

<comment><USER7> proxy is problem when you want to do a lot of concurrent tests, I usually load about 64 pages in tandem to get good speeds on large sets.

</comment></comment><comment><USER10> Here is the domain->org data [https://github.com/timlib/webXray/tree/master/webxray/resour...](https://github.com/timlib/webXray/tree/master/webxray/resources/org_domains). It is missing alot of mobile ads and tracking players. Anyone know how we can fix that?

<comment><USER7> constantly being updated, my hope with open-source is people will help add to it. if you want to help, I'd love that!

\---

I see the hell ban, I'm posting all my replies at the bottom in a comment I'm editing - could somebody note this above?

<comment><USER10> I'll see if I can make a contribution :)

Do you have a technique your using to match domains to organisations sometimes it can be hard to discover.

<comment><USER7> whois, detective work, crunchbase...also do work in china which is even tougher: [http://www.theguardian.com/technology/2015/sep/21/google- is-...](http://www.theguardian.com/technology/2015/sep/21/google-is-returning- to-china-it-never-really-left)

</comment></comment></comment></comment><comment><USER11> Since I am on Windows, it will take some time for me to set it up. Can someone please explain what extra information I get as compared to the Lightbeam extension (formerly Collusion) in Firefox?

<comment><USER7> webdxray runs large batch jobs, so you can get lunch, and come back with all of pages analyzed. I know it does work on windows, and I apologize for not being able to provide directions...see comments above.

</comment></comment><comment><USER12> I am pretty frustrated by build processes of modern day applications. Wanted to give this a quick spin, but looking at the installation instructions all I see is compilers, optimizers, minifiers, interpreters, package managers, package-package managers, dependency systems and then, maybe then, you pray to your configuration-God that everything clicks together and runs on your system.

I was about to ask why isn't there a simple, unified build tool for ANYTHING, but I think that is what got us here in the first place...

<comment><USER13> It's the technological singularity. Thanks to the various "code academy" initiatives going on around the world, there is a growing middle area--between software developers and users--of scripters, people who plug components together but don't do a lot of greenfield programming.

It used to be that being a scripter was a stepping stone on the way to developers, mostly because back then scripting could only get you so far. Now, you can apparently make an entire career being a scripter, if said code academies are correct in the promise that they can find you a job with the extremely shallow curriculum I've seen them provide.

This isn't a bad thing, it's pretty amazing that it doesn't take a decade of dedicated study to do so much anymore. It's just that in our current culture we lump them in with developers because they are clearly more than just users. We still expect a set of resources put into a Github repository to have a significant amount of new programming, rather than just being glue code between a few commonly available libraries. But that's more of a problem of our lack of ability to differentiate between large, greenfield projects and small, configuration-oriented projects at-a-glance than it is a problem of programming being "too easy".

Though, if we recast scripters as users instead of developers, then it's a terrible thing. It means that the real software developers of the world have written a bunch of software with a really, really shitty user interface.

Either way, it's not the scripter's fault.

<comment><USER7> I don't use any extra python libraries, it's all to get python3 to talk to mysql. (also I'm not a skiddie...)

</comment></comment></comment><comment><USER14> Pleasantly surprised to see something requiring Python 3!

<comment><USER7> this was my first python project, so I went with the newest version. it's made a lot of things very difficult, especially porting to a web version.

</comment></comment><comment><USER15> A great project on top of this would be to run this over the Alexa top 20k sites list to a depth of say 5-10 and see the results.

<comment><USER7> I have an academic paper in revision that is an analysis of the alexa 1M list, I also have other projects in development.

</comment></comment><comment><USER16> Funny how this uses all platform agnostic software and the Windows install instructions are to buy an ubuntu VPS.

<comment><USER17> Because then they can link to DigitalOcean with their referral code

<comment><USER18> Ha, they actually did. Tacky.

<comment><USER7> see comments below, I don't know windows so can't write directions. I'm poor so just wanted to cover my hosting, but I removed the referral regardless as I didn't realize I would be attacked for it.

<comment><USER19> Why are you hellbanned?

<comment><USER7> it thought I was spamming b/c replying quickly.

</comment></comment></comment></comment></comment></comment><comment><USER20> a screencast / video of an example would be completely helpful.

<comment><USER7> as for video, I discuss research here: [https://www.youtube.com/watch?v=OqW8erWi1Wo](https://www.youtube.com/watch?v=OqW8erWi1Wo) but if you mean screencast of the software I haven't had time.

<comment><USER20> I kind of meant screencast but saw from other comments you were kinda busy. Great project ;)

</comment></comment></comment><comment><USER21> Very nice, this could be the basis for some cool visualizations!

<comment><USER7> I have done a few, but it's not my forte. vice included some I made in an article they did about my work a few months back: [http://motherboard.vice.com/read/looking-up-symptoms- online-...](http://motherboard.vice.com/read/looking-up-symptoms-online-these- companies-are-collecting-your-data)

</comment></comment><comment><USER22> tilbert: you're hellbanned, apparently the system thought you were a spammer or troll, you should send an email to HN (firstname.lastname@example.com) asking them to un-ban you.

<comment><USER10> i am not tilbert...?

<comment><USER23> We are all tilbert.

<comment><USER7> I certainly am.

<comment><USER23> HA welcome back

</comment></comment></comment></comment></comment><comment><USER24> tlibert, you are hellbanned. Perhaps a moderator can help with that? I think you triggered spam detection by posting too fast.

<comment><USER25> tlibert should also note that although they're editing an existing comment, that comment is [dead] and so can only be seen by people who show dead comments (not many). I guess they need a new account or to contact admins.

</comment></comment><comment><USER26> Very confusing presentation here. For one thing, the author seems to be referring to links/anchors in a web page as "requests"!

A request is the dynamic, transient action which occurs when a client such as a browser initiates a connection to a server and presents a command like GET or POST.

I suggest an opening paragraph along the following lines:

 _" WebXray" is a sort of web crawler which analyzes a given cluster of pages for their relationships with each other, as well as external pages which they link to._

 _It provides information about pages which direct a user 's browser to various sites for the purposes of tracking, using tricks like hidden images._

(Do I have that approximately right?)

<comment><USER7> it monitors third-party HTTP requests, not links: "webXray is a tool for detecting third-party HTTP requests on large numbers of web pages and matching them to the companies which receive user data...The core of webXray is a python program which ingests addresses of webpages, passes them to the headless web browser PhantomJS, and parses requests in order to determine those which go to domains which are exogenous to the primary (or first-party) domain of the site. This data is then stored in MySQL for later analysis."

<comment><USER26> So in other words PhantomJS is used as an API to have some pages crawled, and the links emanating from those pages are captured.

<comment><USER7> sorry, it doesn't monitor links, it captures network-level requests, that's what I analyze.

</comment></comment></comment></comment><comment><USER13>
        Windows Specific Instructions

        Get a linux cloud server (which cost fractions of a cent per hour these days).
        Ubuntu is the easiest flavor of Linux to get started with and the directions
        above will serve you well. Seriously, this is your best option. You can do it.
        I'm both confident in your abilities and proud of you for taking this important
        step in life.

This is not a very helpful attitude. The only "UNIX-y" thing I see it's doing is forking for concurrency. I understand that Python's global interpreter lock limitation makes processes more desirable than threads for concurrency, and on UNIX-like systems this isn't a problem because starting new processes is very cheap. But that doesn't mean it wouldn't "work" on Windows, just be a little slow on starting each subprocess.

Or is it more about not wanting to track down how to install software on Windows?

(EDIT: and as others have pointed out, it's kind of cheesy to use the moment to plug your referral code for DigitalOcean)

<comment><USER27> I can't speak for getting a Linux cloud server, but I've seen plenty of recommendations to use a VM when trying to use some software on Windows. Unless you're specifically writing C# or using IIS or SQL Server I don't necessarily believe it's bad advice. In the coming years, with the way C# is changing, Linux/FreeBSD may become the desired platform to run C# code (just like it is for Java.)

<comment><USER28> >> I've seen plenty of recommendations to use a VM when trying to use some software on Windows...

Is that a sign that developers are starting to not care about Windows?</comment></comment></comment>


YC News is one of the best sites I have come across in a long time - <AUTHOR> <comment><AUTHOR> Paul, I would like to thank you for building this site. I realize that this site is vary good press/PR for YC, but the value that its providing to me personally is incredible and the interactivity has me hooked. This is the best site that I have come across in the past 2 years.

<comment><USER2> You should add yourself to the thank you list :)

</comment></comment><comment><USER3> YC news is really the best thing that has happened. You know when I got rejected from Y, I was upset. But learning from the rejection, I finally found a 'hacker' to add to the team and now we're brainstorming away.

So yes, the Y, its news and 'rejection' was a very good thing. Not to mention reading some really great comments from the community itself.

</comment><comment><USER4> I agree, I've learned at least 1 tip a week that has helped me get better at doing things in my life.

</comment><comment><USER5> This is really a good site to read. I hope it does not get spammed.

<comment><USER6> I really like it too. However, there are many people here who would love to get funding from YC one day and this probably influences the sorts of things that they talk about.

For example, you may find many posts on lisp but few on java. This is particularly strange given that Google's gwt is probably the best way to build ajax apps.

<comment><USER7> _This is particularly strange given that Google's gwt is probably the best way to build ajax apps._

Bold claim, amichail, bold claim.

[http://"onclick="alert('Doesnt-anyone-want-to-hack-javascript- anymore?')](http://)

<comment><USER6> Have you tried gwt under eclipse?

</comment></comment></comment></comment><comment><USER8> It's been great for me to meet other like-minded developers. Some of the guys I've met here I probably wouldn't have come across otherwise. That's been a huge value for me along with the shared knowledge on how to solve particular problems.

<comment><USER9> How do you meet people on here? Seriously I don't know.

<comment><USER8> Usually if a discussion gets interesting in the comments section, I or the other person will make direct contact so we can talk offline. Sometimes it's really more efficient to talk on the phone or in person when exchanging ideas - it's also just fun to make a personal connection with like-minded developers and talk shop.

I also happen to live in the bay area which makes it easy to meet people from news.yc in person at tech events.

Hope that helps ;)

</comment></comment></comment><comment><USER10> I suppose this really is the best alternative for someone so far from the valley or cambridge. Lots of nuggets in these archives. I hope everyone appreciates the power of what is happening here.

</comment><comment><USER11> Agreed, although I usually skip items with the word "startup" in them - I'm too old for that :) The rest is great.</comment>


Is this site hacked?  - <AUTHOR> http://javelinjs.com/

<comment><USER2> I doubt it. Facebook often describe their open-source projects in a jokey manner, for example, from <http://phabricator.org/>:

 _Facebook engineers rave about Phabricator, describing it with glowing terms like "okay" and "mandatory"._

</comment><comment><USER3> Javelin's site has been like that for over a year now: [http://webcache.googleusercontent.com/search?q=cache:Vw_w5lu...](http://webcache.googleusercontent.com/search?q=cache:Vw_w5luWGw8J:geekyroom.com/2011/11/04/facebooks- javelin-project-got-hacked/+&cd=7&hl=en&ct=clnk&gl=us)

Might I suggest _not_ linking directly to a site you think is hacked if you can help it?</comment>


Terminals Are Weird - <AUTHOR> http://catern.com/posts/terminal_quirks.html

<comment><USER2> This, like many things, is a case where many different problems get complected, because no one is able to step back and tweak every level of the stack to cleanly separate out the relevant models/abstractions.

Ideally, a computer keyboard would be able to directly send both an arbitrary number of named control functions, and arbitrary unicode text (either as full strings or as code units one by one). Instead though, keyboards (in every existing keyboard protocol) send a very limited number of scan codes, and what to do with those is left entirely up to the operating system. Thus the operating system can't just get a symbol from a foreign-language keyboard and know what to do with it, but needs to be put into a special mode depending on what keyboard is plugged in. If multiple keyboards are plugged in with different language layouts, too bad: at least one of them will not behave as expected.

Then at every level of the software stack, from the low-level device drivers, up through operating system services, to end user applications (e.g. browsers or terminals) and then on to custom behavior running on those applications/platforms (like a webapp or whatever), everyone gets to take a whack at the meaning of the keyboard code. At each level, there's logic which intercepts the keyboard signal coming in, digests it, and then excretes something different to the next layer.

As a result, it's almost impossible for application authors (much less web app / terminal app authors) to know precisely what the user intended by their keystrokes. And it's almost impossible for users to fully customize the keyboard behavior, because at several of the levels user access is impossible or difficult (especially in proprietary operating systems, or in locked-down keyboard firmware e.g.), and even where users do have access, it's very easy to make a minor change that totally screws something up at another level, because none of the relevant abstractions are clean.

Furthermore, custom user changes at any of these levels are almost never portable across applications, operating systems, or hardware devices. Every change is tied to the specific hacks developed in a particular little habitat.

Overall, a very disempowering and wasteful part of the computing stack.

<comment><USER3> Why do you want to put smart features into a keyboard if your PC is able to do that with around 0,0001% of cpu capacity? Smart keyboards would need special hardware and firmware updates, and this would make them more expensive.

Nobody is forced to use cryptic key combinations like the Emacs defaults. I use Emacs for about 30 years, and I figured out quickly how I can define my own keyboard mapping, even for function keys and other special keys. Emacs has always been more convenient to me than any other editor. The same counts for terminals. Keyboard macros or shell scripts are your friend if your desktop supports them.

If you know how to handle xmodmap then you can redefine even your whole keyboard which also affects every terminal. For instance I remapped the "/" key with xmodmap so that I don't have to use the shift key anymore, in any terminal. However I don't know if xmodmap is able to handle multiple key strokes. If not then this would be a nice to have feature for a coming release.

In my opinion terminals are still one of the most productive features of a computer. Usually we don't use multiple different terminals at the same time. Usually we have one favorite terminal, and that's why custom keyboard macros and mappings are (or should be) sufficient.

I think you actually don't want a smart keyboard. You want an intermediate layer that translates your special key mapping into control sequences of arbitrary terminals, don't you?

<comment><USER4> > _I think you actually don 't want a smart keyboard. You want an intermediate > layer that translates your special key mapping into control sequences of > arbitrary terminals, don't you?_

I'm not sure about him. But for my part, I would love not having to fidget with X configuration, or Windows keyboard layout dialogues to track down which is the right layout whenever I plug a USB French AZERTY keyboard into my laptop with a Canadian multilingual QWERTY builtin keyboard.

And it would be the best if I could use both keyboards at the same time, because unless I mess around manually with input device selectors everytime I plug a new keyboard, my hardware has no way to know its layout.

And that's when I plug a French _Mac_ AZERTY keyboard, and notice that some keys aren't at the same place and I once again need to find the appropriate layout.

Really, sending typed characters as UTF8 strings would be far preferable, and it _wouldn 't_ require processing power on the part of the keyboard (the keyboard would just send the strings, not parse them).

<comment><USER3> > Really, sending typed characters as UTF8 strings would be far preferable, > and it wouldn't require processing power on the part of the keyboard (the > keyboard would just send the strings, not parse them).

This is not a keyboard problem but simply a driver problem. Usually USB devices transmit a USB ID to the PC so that the PC can handle them appropriately. So if we simply had a customizable layer between USB keyboards and the application layer then your problem would be solved. If the layer knows the USB ID of your keyboard then it could choose the correct driver automatically so that you wouldn't have to worry about your french keyboard.

<comment><USER4> But why need such a layer when the keyboard could easily handle it itself? Each USB keyboard would need its own special driver to be installed on the system? Or would you have instead a large list of USB IDs and associated layouts? With some separate mechanism to allow custom layouts, or something.

What's the problem with the keyboard knowing its own keys and just telling the symbol of the key that is pressed? Sure, it would still need some sort of escape sequence, or a way to mark whether a key's string is literal like Ù or symbolic like AltGr, but that doesn't sound too difficult.

It would also make it less difficult to add a new symbol like € to keyboards.

<comment><USER5> > _What 's the problem with the keyboard knowing its own keys and just telling > the symbol of the key that is pressed?_

Physical position, for which key codes are mostly† correct. Think ZQSD vs WASD.

† for interesting definitions of "mostly"

</comment></comment></comment></comment></comment></comment><comment><USER6> Terminals aren't weird. It's just that they work by sending and receiving strictly characters. If you look into ASCII or Unicode, there is no Ctrl+Shift+I character, so such a thing cannot be transmitted.

That's not quite the end of the story because terminals can certainly generate special escape sequences for certain keys, depending on the terminal type. For example, although there is also no ASCII character corresponding to the arrow keys, VT-100 type terminals can transmit the arrow keys somehow, so you can use them in text editors and shells. This is because they send a special sequence instead of a single character. For instance, left arrow is actually the three characters ESC[D. You can easily see this at the Bash prompt in your xterm or Gnome terminal or whatever VT100-type console you're using. Type Ctrl-V, and then hit your left arrow key. You will see ^[[D.

In principle, your terminal could also turn Ctrl-Shift-I into some special escape sequence which an application could parse. Such a sequence just doesn't exist in the terminal protocol you are using, that is all.

Moreover, your terminal emulator application probably steals some of these combinations for itself. Shift+PgUp is commonly used for scroll back these days, and so won't be sent into the terminal session even if there exists a code for it.

The function keys have VT100 escape sequences, but some function keys are mapped already. In Gnome Terminal, F1 brings up help. But F2 sends the escape ESC[OQ escape sequence. If we go into Gnome Terminal "Edit/Keyboard Shortcuts" and remap help to some other key, we can then use F1 in the terminal: it sends the escape sequence: It is ESC[OP.

<comment><USER7> Terminals _are_ weird, but it's not because of the data stream.

The real mind-bending weirdness is in the kernel tty layer, for historical performance reasons. Userspace apps weren't able to keep up with typing in the early days, so the kernel is expected to handle stuff like simple editting (^H) and line buffering. And it has to handle baud rate and uart settings, of course. And it has to trap "special" keys like ^C so that hung applications can be reliably terminated via a signal. And it has to detect dropped lines to free up the terminal for other users.

And it still does all this nonsense even in a world where those use cases are all forgotten.

Terminals are weird.

(But no, there aren't any other good alternatives, so we just deal with it.)

<comment><USER6> The tty layer handles line editing so that programmers do not have to replicate this functionality.

If you write a simple program that obtains commands using "fgets", you automatically get simple editing, and that functionality goes away when the input is redirected from some other device or file.

The simple editing is consistent from program to program and maintains the user's preferences.

The tty input editing could be done in user space, like in the C library (and in POSIX implementations on non-Unix kernels like Cygwin and whatnot, that seems to be where it is).

The mind-boggling complexity is in sessions, controlling terminals, POSIX job control, foreground and background process groups and such.

Plus the quirks: like Ctrl-D just means "return now from the system call", so it only signals EOF when typed on an empty line due to read returning zero. And on TTY's it's a recoverable condition:

       cat /dev/tty /dev/tty
       a
       b
       c
       [Ctrl-D] # first "EOF"
       d
       e
       f
       [Ctrl-D] # second "EOF

<comment><USER7> Well, sure. But in a sane modern architecture that simple editor would be implemented in a userspace app (the terminal emulator would be an obvious candidate) and speak a sane protocol instead of the ioctl madness we have with termios.

But it doesn't and it won't, so we all deal with it. But it remains crazy.

<comment><USER6> Bill Joy's vi (1978) was implemented in user space; that counts as ancient, just a couple of years after the first Unix release. The ioctl madness just has to be applied twice: to change to raw mode input when starting the editor, and then to restore the original mode when exiting or jumping to the shell. The tcsetattr and tcgetattr functions are very easy to use: get the structure, tweak a few things, set the structure.

</comment></comment></comment></comment></comment><comment><USER8> ...and here is a good historical perspective on the whole subsystem, which could explain _why_ terminals are weird:

[http://www.linusakesson.net/programming/tty/](http://www.linusakesson.net/programming/tty/)

<comment><USER9> Not only why, but also how they work in some more detail. Only after reading this I understood, for example, why C-u works in the terminal even if right/left arrows do not in this particular moment (like after using read builtin or cat without arguments). Very good read.

</comment></comment><comment><USER10> "If you do still want or need to make a terminal application that is interactive rather than just being a command-line tool, what is the best way to go about it? You should write it inside Emacs, using Emacs Lisp, and run it as an application by invoking Emacs to run the function that is the entry point for your application. This way you can have legacy terminal support to make use of ssh and tmux, by running Emacs in a terminal, and modern graphical support to display fancy graphics and use more keybindings, by running Emacs in a graphical environment."

Though the latter point is interesting, I find the suggestion unexpected. Isn't curses-based applications a possibility for the author? Why would you limit your users to those that use Emacs, unless the application is just for you?

I'm working on a ClojureScript on Node.js (i.e. instant boot) functional UI library[1] and I find it pretty empowering. I also kept the Node.js touchpoints very separate so I can soon provide a JS Canvas implementation so the same UI code runs on terminal and browser for free. I was suprised how easy it was to implement vi/Emacs-like sequence keybinds, with prefixes and all that. I'm really liking the ability to easily whip up terminal user interfaces for various simple and complex applications.

1: [https://github.com/goldfeld/i9n](https://github.com/goldfeld/i9n)

</comment><comment><USER11> I totally don't buy the recommendation.

If you're going to do something new, you better stop worrying about backward compatibility. ssh and tmux won't work? big effin deal. Those projects would need to grow up in order to keep up with the times. You can't be conservative like that if the goal is to right the wrongs and learn from past mistakes. The road is going to be bumpy but the light at the tunnel would be worth the travel.

I say if the limited scancode thing is in the keyboard hardware then we need to fix the hardware itself as well. New keyboard standard that sends Ctrl/Shift/Alt as separate scancodes. Hell a completely programmable keyboard firmware sounds even better. Throw in some n-key rollover and now we're talking!

I would like to see some convergence of terminal and windowing-system happening. I initially dreamt of a graphical terminal but then I thought why not go one step further and make it the main interface (so something in the middle of a graphical terminal and a tiling window manager). However I still need to carve out the details.

<comment><USER12> > ssh and tmux won't work? big effin deal

So when I want to ssh into a remote machine, I don't use your new program, unless you've also written an ssh replacement. If I want virtual screens, I don't use your new program, unless you've also written a tmux (or screen) replacement. Et cetera.

Your new terminal program is useless till you've replaced or updated "all" the programs that depend on traditional terminal behavior. And "all", in this case, is reasonably close to being literal. If you get 80% of what I need, it's not enough. And the last 20% will likely differ from person to person.

And I'll need to replace my keyboard, too?

I totally don't buy that you're not being tongue-in-cheek.

</comment></comment><comment><USER13> Interesting that there was no mention anywhere of termcap/terminfo or curses. In making a new terminal standard, you need some way of doing what the old ones did (or refusing to), but if you support some basic set of primitives and provide a terminfo file, a lot of the tooling _should_ fall into place.

</comment><comment><USER14> The summary of this well written page is:

      If you do still want or need to make a terminal application
      that is interactive rather than just being a command-line
      tool, what is the best way to go about it? You should write
      it inside Emacs, using Emacs Lisp...

<comment><USER15> Wasn't there a time when actual, serious apps were written using XULRunner ? This is not that different of a suggestion.

<comment><USER16> > _Wasn 't there a time when actual, serious apps were written using > XULRunner?_

Not really. At least nothing to write home about.

But in general what you mean I guess is some kind of runtime environment. Sure there are lots, but not that many for the Terminal and Emacs is not really a lightweight and proper option.

</comment></comment></comment><comment><USER17> Weird is a matter of perspective. I started programming, on terminals (mostly, for class work - some Apple/Commodore twiddling aside), in the early 80s. Learning about scan codes on PCs in the later 80s seemed complicated to me, because it wasn't what I was used to at first.

If you are used to a remote device that sends and displays characters, then switch to local integrated devices which exchanges much lower level signals to be mapped in software, the new stuff seems strange. Whether or not it's better or worse depends, I guess.

</comment><comment><USER18> "Whether Alt+char is succesfully picked up by your terminal application is dependent on the quality of your connection."

This! The most annoying behavior in my daily terminal usage. Whenever I encounter this problem, I feel like "gosh, someone must reinvent the entire stack."

But I didn't know that mosh is able to process the sequence correctly. What a good boy. But doesn't this mean the official OpenSSH client is also capable of fixing the problem?

</comment><comment><USER19> I was just thinking about this the other day. To do it, you have to develop a new protocol in order to separate out the control and data planes.

I think it would be extremely useful and valuable to start on such a project, but I'm not sure how much interest such a thing would have.

I _certainly_ don't agree that Emacs Lisp is the appropriate development engine.

<comment><USER20> Couldn't that new protocol just be html subset?

<comment><USER19> No.

To clarify somewhat: html is a presentation language.

That's not appropriate for either control or data planes by default.

example- let's define the data plane as an associated list of byte-strings of u8 characters. This covers current common unix pipe usage on the terminal. If we include some lisp syntax for routing & choose to complect some control and data on the command line we then can compose:

`cat thing (. stdout) wc -l ( (. stdout cat) (. sterr echo "error!")`

But, fundamentally, the control plane needs to be asynchronous, so there needs to be a signal handler that a program can listen on that takes a stream of associated-lists with the rough form of:

`(((keys . (control alt del)) (duration . 1000)) ((keys . (alt tab)) (duration . 10)))`

the program listening needs to be able to register with its parent process that it gets a key stream.

anyway. we can work out this system in some level of detail with different representations. The key point is that this needs to be just data addressable easily, without significant difficulty parsing. It also needs to be lossless by default and not dependent upon hacks like timeouts as part of its interface to its consumers. (n.b., it should allow adding as many bucky bits as a keyboard developer wants).

now, if the terminal wants to formally specify as its interface that it takes all output streams keyed by "html-presentation" and render them as html, that seems like a very featureful possibility. I would not write that, but I could see others doing so.

</comment></comment></comment><comment><USER21> All the devices from pre 80s era are 'funny' because they conflate everything inside the implementation.

<comment><USER2> It's not like we're doing any better with the client-side web development stack (to take one example).

Building simple composable abstractions and systems is just really hard, and takes a lot of practice and refinement. Unfortunately, programmers don't necessarily get much practice before their designs become the foundation on which everyone else needs to work (for example, there is very little emphasis placed on designing effective software abstractions in academic computer science programs), and there's often no easy way to go fix the defects afterward.

<comment><USER22> This is the most perceptive comment in the thread, IMHO.

</comment></comment></comment><comment><USER13> Terminals _are_ weird. I welcome the various approaches to getting a shell homed somewhere else, though I've not yet found one I've really bought into.

</comment><comment><USER23> title reminds me of : [https://encrypted- tbn3.gstatic.com/images?q=tbn:ANd9GcRPuVje...](https://encrypted- tbn3.gstatic.com/images?q=tbn:ANd9GcRPuVjeyi- SqjN7QskPCV4UodQEEsA7kav7rw1hCGjmVV4HHZFbPA)

</comment><comment><USER24> your face is weird.</comment>


Argument against Meritocracy. Can equality and hierarchy coexist? [video] - <AUTHOR> https://iai.tv/video/against-meritocracy <comment><USER2> Would arguments against meritocracy apply to hospital surgeons?

</comment><comment> java-man let's have less competent make the decisions! what could go wrong?</comment>


Show HN: Live Twitter Sentiment Analysis for #GE2017 - <AUTHOR> http://xavkearney.com/sentiment <comment><USER2> > The results are only based on the tweets posted in the last few seconds, > hence the sometimes dramatic variation that you may see.

This thing is going to be wild to watch during the televised debates.

<comment><AUTHOR> That was the plan!</comment></comment>


What happened to studying? - <AUTHOR> http://www.boston.com/bostonglobe/ideas/articles/2010/07/04/what_happened_to_studying/ <comment><USER3> The ugly truth is that kids don't study because they aren't expected to.

Let's face it as long as their kid gets that perfect GPA and is obedient enough most parents don't give a damn that they actually learn something. To my peers it's just a ritual they need to complete in order to have a good "life" whatever that is.

In fact, my teachers have scolded me for trying to derive stuff on my own. It is quite obvious to them that I should be spending time practicing to get marks instead. Who cares if I actually know that electric flux is only the field lines that _penetrate_ the surface? As my teacher put it they'll check my mark sheet instead.

So, is it any shock that students don't study?

I know that I am learning the secrets of the universe in some ways, and what within my textbooks lie answers to questions that people have pondered over for centuries, but the truth is that no one else gives a damn. They know what a muon is because they need to know what a muon is. They can't see nature and they really don't care.

No one expects them to create things, that's left to _those_ nuts like me (someone said this to me point-blank). What is expected of them is status, prestige and a good paycheck with a stamp that they won the rat race of life. Nothing more. Nothing less. Oh and a big house in the suburbs to show that they have arrived won't be too bad either.

In the end, this is a problem that is core to us as a society. Most kids are a mirror of how they were brought up, and only if they are taught to see things differently can the status quo change, but as anyone may tell you it takes integrity and it is just too damn hard. (no one makes the case better than Al Pacino in scent of a woman <http://www.youtube.com/watch?v=nqsf0XynGz8>)

<comment><USER4> "No one expects them to create things, that's left to those nuts like me (someone said this to me point-blank)."

I distinguish the two types of students by whether or not they need calculus to proceed. The ones who don't are just serving time.

<comment><USER5> As a person of humanities background, I find that criterion questionable. :-)

<comment><USER4> How about we say the ones not studying calculus are 85% likely to be just serving time. ;-)

How _would_ you determine which university students are just there to get a degree, any degree?

</comment></comment></comment></comment><comment><USER6> This part made me cringe:

"Marks herself points out that employers don't generally care about the content of job applicants' classes; they're more interested in whether an applicant graduated, was able to meet deadlines, and work within a bureaucracy"

<comment><USER7> Sad, but probably true. One of the classes I remember the most was one that was set up to give engineering students an introduction to the workplace. So, you had business-like tasks (most of which were centered around Excel) and you were graded by whether you met, exceeded, or didn't meet expectations.

In one assignment, I made a really fancy Excel spreadsheet (it was a producer/consumer type problem, and my 1s for produced units actually moved across the page). But it had a bug, and the numbers it created were pure gibberish. I found the bug but had no time to fix it. I documented this fact somewhere in the fine print and talked about how I would fix it if I had more time.

It _looked_ cool though, even if it didn't work at all, so I got "exceeds expectations." I had known how demos work long before that, of course, but I think it was my first real demo.

As for studying, well, maybe they should ask what happens to it after college? I didn't think we were supposed to stop. Which reminds me, I should fire up Anki and review.

<comment><USER6> I agree that college should not be the end of learning. However, I wouldn't want to be taught by a professor that says "that employers don't generally care about the content of job applicants' classes; they're more interested in whether an applicant graduated, was able to meet deadlines, and work within a bureaucracy."

If they truly believe that, it will reflect in their courses. Instead of trying to teach their subject to the best of their ability, they'll might instead give many deadline oriented assignments that do not help learning of any kind. Instead of being accessible for students to ask questions, they might make it a more difficult process to get in touch with them, rationalizing that "they don't really care about the subject, all they care about is getting a good grade, and graduating so they can get a job in some bureaucratic workplace."

Professors with that attitude can turn students off to a subject that they would have otherwise enjoyed, and make it more difficult to learn.

<comment><USER8> Yeah, in this situation they are forgetting that not everyone in the class is doing it just to essentially check off a box in their degree process. Recently there was an email sent out that was basically like "do data mining, it's big in industry", giving that subject a miss because the lecturer is terrible but also because he's so industry focused.

I'm not planning on continuing in academia but I'm certainly not wanting to take classes that are just there to fulfil degree requirements without going deep into the subject and providing interesting and challenging content.

</comment></comment></comment></comment><comment><USER9> They just barely touch on the important part, which is whether or not students are achieving the same mastery of the subject matter. If professors are making courses too easy, that's the thing to fix. Butt-in-seat hours are only a symptom, and focusing on this (especially after acknowledging it's not the end goal!) is oddly Puritan.

<comment><USER10> Has the subject matter stayed the same over the past 3-5 decades that you can usefully compare "the same mastery of the subject matter"?

<comment><USER11> If your taking classes to learn latin or greek, it probably has not. That might be an example of a good subject matter to use as a benchmark.

</comment></comment></comment><comment><USER12> Single page:

[http://www.boston.com/bostonglobe/ideas/articles/2010/07/04/...](http://www.boston.com/bostonglobe/ideas/articles/2010/07/04/what_happened_to_studying/?page=full)

</comment><comment><USER13> College is simply another hoop to jump through for (an increasingly unlikely) shot at the middle class. The act of studying is useful for when you actually want to know something, but the commoditized studying colleges encourage of plowing hours into courses one cares very little about has very little purpose, and students know this. Just another notch on the "American education is an absurdity and a farce" stick.

<comment><USER14> I don't think you should throw out "increasingly unlikely" without some evidence. I do worry about our education system. But the idea that it's harder to attain a middle class standard of living then it was in the past is very dubious. And, it's a claim that's used to support a lot of bad policies.

<comment><USER13> For example: [http://www.mybudget360.com/does-a-college-degree-protect- you...](http://www.mybudget360.com/does-a-college-degree-protect-your-career- unemployment-rate-for-college-graduates-highest-on-record/)

</comment></comment></comment><comment><USER6> What do they consider studying though? Is paper writing counted as studying? Is online homework or problem sets counted as studying? Because I can tell you from personal experience that often those things take up much of my time, and tend to burn me out a bit so that when I have free time, I hang out with my friends and work on personal projects that I enjoy rather than studying the material I just did for homework. If I had more free time available, and less work to do, I would most likely read my book more thoroughly, especially in classes that I enjoy.

</comment><comment><USER15> 10 hour reduction in studying effort sounds about right given the incredible leaps in personal IT.

Lots of time spent studying is just finding the right damn information.

<comment><USER16> If you read the article it points out that the drop in time spent studying started before the major IT effects on colleges.

</comment></comment><comment><USER17> College is losing its romantic lustre. Students used to believe in education for itself, but now ambitious students just cram in more classes and activities to graduate faster or pad their grad school applications. Before, a student studying the American Revolution in class might go to the library and flip through the books in the professor's "suggested reading" section on the syllabus looking for a particularly interesting book to read thoroughly. And while he was there he would see other books in the stacks and end up reading for a couple of hours. Then he'd bring up what he learned in conversations with other engaged students.

Students would feel _good_ about studying like that. They were _learning_. It was making them better than they used to be. Not only that, going to college was what they were _supposed_ to do to succeed, and studying and discussing ideas was what you were _supposed_ to do in college, so reading books about the American Revolution, or Sartre, and talking about them with your friends was pretty closely linked with your future comfort, according to the rules of society.

Less capable students would study for three hours because it was the only way they could pass their classes. (The ones who were smart and ambitious but not academically engaged? They're busy puking with rich men's sons. They pull down the studying averages, but later they'll subsidize all that economically unproductive studying as generous alumni.)

So what happened? Three things.

First, not many people have to study that hard to pass their classes. Professors used to set challenges for students that would _force_ them to study, like difficult papers and exams. Now, that is seen as authoritarian and sadistic. You aren't allowed to test anybody just to make them study, because many people find studying difficult, even unpleasant, so it must be intrinsically bad for you. Studying has to be justified, on a minute, case-by- case basis, by concrete future benefit. This is slightly better than the attitude in some countries, especially in Asia, where forcing kids to study hard is the point of the whole system, and subjects like history and chemistry are just handy tools for what is essentially a benevolent society-wide hazing ritual. However, it's a step back from understanding that studying, like exercise, is actually good for you in certain quantities, and colleges are providing a service in forcing you to do it.

I know that sounds weird to some people, so I'll explain it in a way that hopefully everybody can relate to. Many people pay personal trainers to help them work out. Exercise instruction is usually just a pretext. The real purpose of the personal trainer is to provide social expectations, and sometimes actual social pressure, to force the client to do something beneficial they would not do in the absence of pressure: work hard in the gym.

Sometimes the pressure is merely having an hour-long appointment. Having made the appointment, the client would feel guilty about skipping or arriving late. The trainer also serves as an expert whose judgment about the nature and intensity of the workout is more credible than the client's, so the client would feel unjustified in substituting a lower standard. The trainer also provides helpful emotional support by providing emotional energy and even the threat (which must be real) of disapproval. Of course, this must be calibrated to the client, but if the client knows there is no shame in giving up and going home, then the personal trainer has failed in their job of providing social pressure to help the client succeed.

This explains why colleges used to make kids work hard. Of course, now they can't, because college is seen as compulsory for success, and success itself is compulsory, and nothing compulsory can be unpleasant unless it's exactly the same level of unpleasantness for everybody. It's basic fairness. So professors who make students study hard are assumed to be emotionally damaged reactionary sadists, unless they're charismatic enough to convince everyone that they're actually doing it "for the keeeds."

Second, a lot of middle class students now have the sense of safety and entitlement that used to be confined to the rich kids. So they're partying and assuming that as long as they don't flunk out, their future is assured.

Third, ironically, college itself is no longer guarantees admission to an economically stable middle class. Students who are worried about their future need to do something that distinguishes them. Something documented, something they can put on a grad school or job application. Grades mean nothing. Grade inflation has made it pointless to work hard in your classes and learn the subject better than anyone else, because you'll end up with nothing to show for it. Spending time in the stacks reading about the American Revolution doesn't make any sense to kids worried about their future; it's entitled self- indulgence. To them, it's the same as drinking and puking every day, just another form of entertainment that normal, economically insecure people can't afford.

So what kind of kids would spend their time actually _studying?_ Ones with old-fashioned, romantic ideas about college. Ones who aren't concerned about their future. Ones who believe they should improve their minds and let everything else take care of itself. Or ones who are lucky enough to inhabit a social milieu where studying is actually encouraged. Kids in software and engineering at least have open source and the "makers" social crowd to encourage them to work hard. Writers can write for their friends, maybe even try to get published. Kids in history and economics? They're stuck looking for an undergraduate project with an impressive-sounding title.

<comment><USER13> Nah, students never "cared" about learning. College started in the U.S. as a way for the upper classes to cavort under the ostentation of "learning about the world". It has always been a status signal. This is why the middle classes are willing to pay their left nut for a suitably prestigious degree - <USER2> signals to the middle classes are like honey to a bee (or something).

There are perhaps .5% of the population for whom college makes actual productive sense - those intelligent and driven enough to devote their life to producing original research. Colleges now fulfill sort of an odd intermesh in society: stamping the middle classes with seals of 'approval', and housing people who produce actual scholarship. There is really no logical connection between the two, and indeed most professors dislike 'teaching'.

College isn't necessarily 'bad', but is when it saddles people who will be earning 40-60k the rest of their lives with 200k loan debts.

<comment><USER11> You're saying 199 in 200 people should not go to college? I disagree.

A lot of people are going to state and community colleges and are not spending very much money to do so. There are _very few_ people who graduate with over $100k in debt. Most have much less, if any.

<comment><USER13> I am saying there is no productive value in them going relative to their financial burden. For the many who go for free/cheap thanks to state subsidy, that's great. But then we shouldn't worry that students aren't studying, since college doesn't really DO anything in regards to future productivity and the like.

Also, a lot of the "soft" factors people romanticize about college (spawning appreciation for the arts or some niche intellectual pursuit, civic/social development) have occurred for thousands of years by people just growing up.

</comment></comment></comment></comment><comment><USER18> I've always figured that if I had to study for a test, there was something wrong. A test should judge if you know the underlying concepts, not how many facts you've memorized.

<comment><USER19> Did you really never study a subject where at least part of what you needed to learn was facts? History? A foreign language (noun and verb forms, vocabulary, irregular noun and verb forms, genders, idioms)? Science? Computer science? Math? Literature? All of these subjects involve learning facts - at least some of the time.

Yes, ideas are important, but so are facts.

<comment><USER20> Having enough command of background facts to quickly figure things out is useful, but beyond that, knowing where to look up the facts seems like a perfectly fine substitute for memorizing them. The real problem is if you know so little that you don't even know how to figure out what you need.

<comment><USER21> _knowing where to look up the facts seems like a perfectly fine substitute for memorizing them_

I suspect that you might revise this statement if you applied the simple metacognitive strategy of thinking about this as if you were a software system: if you put all of your facts on the other side of a high-latency lookup system — as you are suggesting — you limit the size your brain's base of associative firings. The work that one does to bring facts into the brain instead of leaving them in external storage allows those concepts to be quickly brought into the short-term "working memory" system where they can take part in cognitive activities. Eschewing practice and memorization limits the rate and scope of your thoughts. Worse yet, you won't know what you're missing. (This is the basic reason that Paul Graham's Blub programmer doesn't know what he's missing.)

</comment></comment></comment></comment><comment><USER22> 1) People had fewer distractions earlier

2) Thanks to the Flynn effect, people are growing smarter, so need less time for the same content

3) Thanks to the internet, its a lot easier and faster to learn something than it was earlier (more cliffnotes type resources)

4)People today can probably make much better assessments to what things will actually help them in their professional lives, and what things are random rites of passage i.e. hoops they have to jump through to get their degree

</comment><comment><USER23> I wonder if this has been adjusted for the increase in dropout rates? I'm assuming that many of those dropping out did less studying for whatever reason, be it too busy working or just not having what it takes to do this sort of unsupervised work.

</comment><comment><USER24> I don't study nearly as much as I should if I was to follow the official recommendations, but the truth is that it just doesn't take that long to learn the basic ideas, and once you have those, it is pretty easy to build the concepts on top of those.

It would take far more time if I was studying for a degree in the humanities, simply because they don't have a solid foundation on which to build stuff.

</comment><comment><USER25> Sounds like the Japanese system. Work your ass off in high school and nighttime cram schools to get into the best colleges, then coast through college, partying, drinking, recuperating from a hellish youth that sucked up all your passion for learning, then graduate and get a job based on your top college's pedigree.

</comment><comment><USER26> I think education system should ideally create employers and not employees.

</comment><comment><USER27> So what are they doing instead?

<comment><USER27> I think it is a valid question, and maybe it would answer why they are not studying.

</comment></comment><comment><USER28> if you want students to study then you should eliminate grades. grades simply encourage them to game the system. of course, gaming the system is a very valuable real world skill.

<comment><USER29> "if you want students to study then you should eliminate grades. grades simply encourage them to game the system. of course, gaming the system is a very valuable real world skill."

Grades many times give you the push you need to succeed. Without them, many people wouldn't bother studying. A similar thing that happened recently in many public schools is the elimination of winners and losers in sports games (every game is a tie). Is this really going to prepare anybody for the real world?

The only people "gaming the system" aren't interested in learning and probably shouldn't be in college in the first place.

<comment><USER30> > Without them, many people wouldn't bother studying.

With them, many people don't bother studying.

<comment><USER29> "With them, many people don't bother studying."

Why? Because they are afraid of failing?

<comment><USER30> Who knows? But I guess you know (or have heard) of some people who do not bother studying attending institutions that issue grades.

(I do not want to claim that grades cause non-studying. Just that even with grades non-studying does occur--thus invalidating the grandfather-comment's argument.)

<comment><USER29> "Who knows? But I guess you know (or have heard) of some people who do not bother studying attending institutions that issue grades."

Some. But why cater to the minority? If the grade system wasn't working, we would see more problems in schools and universities. I also don't really know of a good alternative.

</comment></comment></comment></comment></comment></comment><comment><USER31> If I wanted to, I could probably learn more in a month or so of home schooling using the Internet that what I could in an entire semester at a traditional college. Roughly speaking, YMMV, etc. Could pick my own hours, topics, pace, no need to cram for tests, no worry about grades, spend a ton less money, etc.

</comment><comment><USER31> most of what they have most students "study" is academic trivia that (1) won't be retained for very long after exams are done anyway, and (2) doesn't have use after leaving college. Note I said 'most' and 'most'. The tech fields tend to have more stickability and usefulness in what is taught (though it's not perfect either). Most of the "studying" in college, from what I remember, was about doing short-term memorization cramming in the days or weeks, and very often just the night before or hours before a test of some kind.

Memorize, regurgitate/apply, purge and move on.

</comment><comment><USER32> University is not about studying entirely. You can freely study in your own as much as you like, simply buy the textbooks and read them. Indeed in such way one can in perhaps five years learn about all the major subjects, economics, physics, literature, et al.

The lectures are nothing more than a fanciful way of stating what is in the reading and if you have done the reading before hand you would be really bored and it is boring enough.

The seminars can be interesting and that is when everyone learns. You do need to do the reading before hand, but that takes no more than one hour. That is how long I used to study, one hour of reading before the class and I would be very well prepared. Then I was able to engage in the class discussions and engage in some real thinking.

That however does not include the assignments, especially in the final year, or the exams, where, at some point around February or March, you need to study almost all day and things can very easily get out of hand if you do not.

This is also where real knowledge is acquired. Not from the reading of the class book, but from the preparation of assignments, which requires a reading of some 20 journals, many cases - I did law and psychology - some books and then the actual writing of the paper itself. It is a very successful model of learning, that of learning by doing.

Now to go back to my point. University teaches you how to live independently for a start, to have the confidence to stand in front of your peers or argue with them, to manage and organise your time, but most important of all, to actually learn who you are and who you want to be.

The real story from this article is not that students are studying less, the reasons are obvious, we hardly need to take notes in class, we have power point presentations which we can read at any time which we do not because they are too condensed, everyone now has their own textbook which might not have been true 50 years ago, which are only little used because we can actually access real research which happens in pokets of the year rather than throughout.

Thus the questions for the researches of the polls and the like mentioned in the article are, when were the polls asked. From the article mentioning that number one is that the students do not know how to study I would probably think the polls were around October or November or maybe December time. This is the quietest time in university life. Even if the polls were asked at the same time each year since 1960s, there still have been many changes and things are very different. Thus, perhaps students are not really studying less. They might and probably do underestimate the time they spend studying also and perhaps some might not consider certain activities as studying at all such as researching for your assignment.

The real story from the article is that No 2 on the list is that the students are depressed. Why? Perhaps because they are disappointed and bored. It is too easy, you read the book, then you go to the lecture and are told what was in the book, then you go to the seminar and again are told what is in the book. Unless your memory is inferior, you will probably have a very good understanding of what is in the book by the end of it, until come February that is.

So why are the students depressed? Because they are disappointed and kind of angry. They want to be creative, opinionated, original, discover some ground breaking way of thinking, not rigid, objective, professional. They feel like they are a bit regimented.

However, perhaps and probably by the end they realise that their expectations were simply wrong and not very effective or useful when engaging with practice. They instead probably appreciate that they now have very good idea of the methods of operating within their field. If that is not success and if the system which achieves the goal of teaching the kids how to be men, then, what on earth is?

University works. Through the troubles and ordeals the adolescents are turned into adults. They are given the time to discover what they like, what they think, what are their principles, values, what are the principles and values of society, do they agree with them, would they like to change them, they are given the skills required to communicate effectively, find knowledge and synthesise it with the aim of coming to a conclusion on the entire matter etcetera.

I therefore disagree with the article that people are studying less. They are just studying differently. I also disagree with many commentators who suggest that our educational system is a shambles, especially at a university level. I think it is the best system humankind has found to a smooth transition from a confused adolescent to a very able adult.</comment>


Computer animation software from 1969 - GENESYS - <AUTHOR> http://www.youtube.com/watch?v=GYIPKLxoTcQ

<comment><AUTHOR> So amazing, I had no idea they were doing anything this advanced at that time.</comment>


A day is not 60*60*24 seconds long - <AUTHOR> http://swizec.com/blog/a-day-is-not-606024-seconds-long/swizec/6755 <comment><USER2> Time arithmetic is always fun. The original ANSI SQL standard had the intelligent distinction between year-month intervals and date-time intervals for just this reason - you have to watch for errors to choose how to hand out- of-bounds conditions (e.g. "myDate + 1 units year" when myDate == 2016/03/29).

</comment><comment><USER3> AZ is not in the Eastern Time Zone... And why are the links they're showing using the "tel:" attribute for a link address for a date? What is going on here?

<comment><AUTHOR> AZ is mentioned as either mountain time or pacific time in the post.

I didn't notice any tel: links. And that's not the point of the article.

I see you've mentioned your points with a comment on the post itself. No need to mention it here again.

<comment><USER4> But what if you're in Arizona? That state's on Eastern Time, and most of it doesn't observe daylight savings.

<comment><USER2> Mountain Standard time, year-round.

</comment></comment></comment></comment><comment><USER5> [http://www.joda.org/joda-time/](http://www.joda.org/joda-time/)</comment>


Ask HN: Favourite Long Form Blogs - <AUTHOR> Hi readers, I love long form blogs/online magazines, that go into some depth and provoke thoughts, and now we're working on a startup that we hope will improve the reading experience and boost the readership.
What are some of your favourites? Could be either magazines, like Nautilus (nautil.us), Quartz (qz.com) or Atlas Obscura (atlasobscura.com), or individual bloggers like https://www.scottaaronson.com/blog/, https://mondaynote.com/ or https://www.profgalloway.com/, technology or other subjects.
We're looking for as much material as possible to test our hypotheses, and to provide free trials to the best bloggers! <comment><USER2> There is a website called Longreads that features, you guessed it, long form essays and articles: [https://longreads.com](https://longreads.com)

<comment><AUTHOR> Thanks for the tip, now that you mention it I think I've seen that one a long time ago, thank you for reminding me. Looks very relevant!</comment></comment>


A Review of Soviet Celestial-Mechanics Literature - <AUTHOR> https://www.cia.gov/library/readingroom/document/cia-rdp81-01043r002000080002-5 <comment><USER2> "Declassified in Part"? That seems odd, considering that Soviet Celestial- Mechanics Literature shouldn't[1] be under copyright, especially not that published before 1958. Anyone find any interesting "sanitized" parts? I spot checked ~10 pages and didn't find anything beyond an ordinary, if long, review article.

[1] On the other hand, [http://diafilmy.su](http://diafilmy.su) is unexpectedly down. They used to have nice educational filmstrips for orbital mechanics, gratis.</comment>


Gitlab is not the only GitHub alternative - <AUTHOR> MovingToGitlab has become a buzzword after the Microsoft-GitHub deal announcement. Thanks to the Gitlab marketing team on playing the right game at the right time. The Gitlab imports are on the rise.
But, Gitlab is not the only good alternative to GitHub.
I know a few more alternatives like Bitbucket and Codegiant that are equally good and maybe even better in a few aspects.
If you know any good alternatives, do list them here. let's not fall prey to the Gitlab marketing movement without proper evaluation. <comment><USER2> If you've been keeping up with HN the past day or so there have been a bunch of great discussion around alternatives

[1] Kallithea [https://news.ycombinator.com/item?id=17246386](https://news.ycombinator.com/item?id=17246386)

[2] Phabricator [https://news.ycombinator.com/item?id=17245649](https://news.ycombinator.com/item?id=17245649)

[3] GitTorrent [https://news.ycombinator.com/item?id=17234498](https://news.ycombinator.com/item?id=17234498)

[4] GitHub Alternatives [https://news.ycombinator.com/item?id=17241487](https://news.ycombinator.com/item?id=17241487)

[5] Gitea [https://news.ycombinator.com/item?id=17245246](https://news.ycombinator.com/item?id=17245246)

[6] Pagure [https://pagure.io/pagure](https://pagure.io/pagure)

[7] ReviewBoard [https://www.reviewboard.org/](https://www.reviewboard.org/)

[8] GitBucket [https://gitbucket.github.io/](https://gitbucket.github.io/)

[9] Tuleap [https://www.tuleap.org/](https://www.tuleap.org/)

<comment><USER3> I haven't seen it here, but don't forget Gogs! Written in Go, super lightweight and pretty full-featured. [https://gogs.io/](https://gogs.io/)

<comment><USER4> Maybe because there is Gitea, a fork of Gogs which is AFAIK more active now.

</comment></comment></comment><comment><USER5> GitLab has taken a good amount of funding. Which means they will sell out eventually and the ones concerned about big brother taking over will be right back in this discussion again.

[https://www.crunchbase.com/organization/gitlab- com](https://www.crunchbase.com/organization/gitlab-com)

Some type of crowd funded federation needs to be created and owned by all of us if we truly want out from under this type of concern.

<comment><USER6> I caution the community against optimizing for continuity when there are so many other factors that come into play. Sure it sucks to change which tool you rely on every few years but that's bound to happen anyway for one reason or another.

I mean it's all Git so switching might take 20 mins a repo, but without some of the great features the most modern (often well funded) companies offer you might lose 10 mins or more a day.

It's all up to you but I don't value continuity as much I do productivity.

</comment></comment><comment><USER7> Likewise, Git isn't the only distributed source control solution... and probably not even the best, as detailed here:

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

<comment><USER8> I still mourn the passing of Bazaar (Canonical's CVS, developed in tandem with Git but abandoned some years back). It was a lot easier to learn and use than Git and had a beautifully clean Python codebase. Unfortunately, it was also slower than Git and not as powerful, and eventually just lost out in the survival of the fittest...

Though having said that, it's still alive in the Ubuntu universe, and there's a community effort underway to keep up maintenance and port it to Python3, under the new name of Breezy.

<comment><USER9> Don't forget "darcs". That had a lot of promise, but suffered from at least one exponential timing issue - where it would get into a state which took "forever" to resolve.

</comment></comment></comment><comment><USER10> I am a huge fan of Beanstalk. [https://beanstalkapp.com/](https://beanstalkapp.com/)

Pricing is good, service is excellent, code reviews are really very nice. I have found them excellent to work with.

They don't really do the pull request model (at least they didn't a year ago when I switched companies), but work great for feature branches.

</comment><comment><USER11> The world has changed a lot since the 90s. Microsoft is a pretty developer- centric company now. People should just chill out and see what happens.

<comment><USER12> ...said the frog in the kettle.

<comment><USER11> I don't get it. What is the downside to waiting to see what happens?

Surely people have local copies of their source code, right? I mean, you basically have to. That's how git works. So the worst case scenario is that Microsoft does something to piss people off and then they switch to another provider. That makes the worst case scenario exactly the same as what people are advocating doing now voluntarily. How, then, is it not more prudent to wait and see what happens?

</comment></comment></comment><comment><USER13> IMHO it is not a good time to move out of Github right now. I think Microsoft will offer a bundled developer ecosystem like Atlassian (bitbucket/trello/jira/confluence/pipelines), Amazon (Cloud9/Codecommit/codestar/chime).

I bet a bundle with something like skype / github / visual studio / linkedIn Learning... will come soon.

<comment><USER14> Agreed.

Jumping ship is a knee jerk reaction to news that hasn't impacted the platform at all yet.

I'm not against trying out other services and encouraging competition in this space, but people are over-reacting just a bit to the news.

<comment><USER15> Exactly, and with the "moving to Gitlab" comments of the past few days, the switching cost is (at present) still really low. Only once something changes will the need to move increase (if it ever does).

That being said, I've only ever put my repositories on Gitlab because of the free private ones, although the vast majority of libraries I used are on GH.

<comment><USER16> I don't have any hard evidence, but I suspect that the people who have already jumped ship from GH only did so with solo projects or with very small teams. The switching cost for those people/teams is always going to be pretty low.

</comment></comment></comment></comment><comment> wow-bot I've used Phabricator, BitBucket and GitLab and I still think GitLab suits me best. Upvote for choices though

<comment><USER8> I think I would really enjoy working with GitLab, but a while ago I tried to set up an instance on my own server and it was a real pain... Then, once I finally got it running, it turned out to hog incredible amounts of resources even when doing absolutely nothing. So I gave it the kick.

If I were the sysadmin for a large-ish organization and had a dedicated server for nothing but code hosting, I would definitely go with them. But for my own private purposes it wasn't the right choice.

</comment></comment><comment><USER17> There's an awesome list at [https://github.com/ianchanning/awesome-github- alternatives](https://github.com/ianchanning/awesome-github-alternatives)

</comment><comment> jonathan-kosgei No one has mentioned gogs yet [https://gogs.io/](https://gogs.io/)

<comment><USER18> Great product. We have been using it for years. I was expecting it to be first in the list.

</comment></comment><comment><USER19> I don't found reason to think that github is different after the deal with Microsoft. So for now I 'll keep trust in github... Otherwise I will use pre concept

</comment><comment><USER20> If you want to host your own, you can use cgit [https://git.zx2c4.com/cgit/about/](https://git.zx2c4.com/cgit/about/) and gitolite [https://github.com/sitaramc/gitolite](https://github.com/sitaramc/gitolite)

</comment><comment><USER21> I remember I used to run Indefero for a short while. It was nice, although it'd largely dead and buried now.

Sources seems to still be available though: [https://github.com/avit/indefero](https://github.com/avit/indefero)

</comment><comment><USER22> I personally prefer BitBucket, the best part about them is that they offer, unlimited private repos.

<comment><USER23> Absolutely, plus I find their UI to be way more usable

</comment></comment><comment><USER24> As a side discussion, it's a good time to push alternatives to git like fossil or mercurial.

<comment><USER25> Because...? As far as I can tell, they offer no significant technical advantages over Git. And it doesn't make sense to leave Git just for the sake of diversity, as it's just a tool, and the fact that most developer know its basics is very useful - you don't lose much time dealing with version control training for each new project.

</comment></comment><comment><USER26> [https://github.com/Kickball/awesome-selfhosted#project- manag...](https://github.com/Kickball/awesome-selfhosted#project-management)

I posted this before one of the GitHub acquisition threads.

</comment><comment><USER27> Codegiant I like me for small personal repositories without much importance, like mine. Is it based on gitlab? Tell me more about them. It looks nicer than gitlab.

</comment><comment><USER28> Bitbucket works but their web interface is slow as hell.

</comment><comment><USER29> The vast majority of comments that I've seen outside of HN have been pro Microsoft.

I guess HN is a Microsoft-free "safezone" for SV bubblers.

</comment><comment><USER30> Thing is ideally everyone will go to one place which appears to be GitLab.</comment>


Ask HN: With Windows 10's Linux-like feats, do we need native Linux anymore? - <AUTHOR> <comment><USER2> I guess it depends on what you're trying to accomplish. From my perspective, the question is, why do we need native Windows? Personally, I haven't needed Windows for anything since about 2000. Linux has been sufficient for me for the past 17 years.

I dunno... if you must run Windows for some reason, then having some linux- like features is nice I guess. Certainly it would be nice to have a proper shell. But why would you run Windows on a server or anything other than maybe a gaming rig, if you play games that only run on Windows?

</comment><comment><USER3> I fixed the typo in your question: "With Linux, do we really need windows anymore?"

</comment><comment><USER4> I look at it more from a "what's right" point of view. There is nothing "right" about rewarding Microsoft for offering Linux compatibility in Windows.

Microsoft has billions of dollars that it _could_ have invested into its own infrastructure all this time. Instead, they delivered essentially nothing: for YEARS, it has been a pain in the ass to transform any Windows installation into a barely-useful development machine. Oh, and even if you managed to do it, you still had to hope that you wouldn't encounter some OS-ruining problem that required a full reinstall in 5 months.

Instead of creating decent software all these years and building real value, now Microsoft is trying to shoehorn free software such as "bash" into Windows and calling it a feature. To hell with them: not good enough, damn it! Anyone who has been waiting for "bash" on Windows should have been investing in free software projects instead, sending the money where it deserved to go.

Think about this: if you've given less than $100 to open software projects over the past decade and you're planning to hand EVEN MORE MONEY to Microsoft over "bash", then you are rewarding the wrong people.

</comment><comment><USER5> Long time OpenSuSE, Debian, and Ubuntu user since '98 or so, but I still have two use cases for which Windows is the only choice:

1\. Toshiba portable document scanner - works beautifully in Windows, less nicely in MacOS, doesn't work at all in Linux

2\. RFID tag programmer - I need it for my work and the only stack that currently exists is the Eclipse JCOP debugger running in Windows. It's orphaned software. I wish wish wish I had a Linux (or even MacOS) driver.

3\. Outlook Mail - for work. It runs on a Dell laptop stored on a bookshelf that I occasionally access using VNC. Otherwise would have zero use for that brick.

When equipped with LibreOffice, Eclipse, Android Studio, x11vnc, Emacs, VirtualBox, Audacity, Gimp, and a few other niceties, Linux is virtually unstoppable.

I'm having trouble thinking of things that Windows 10 can provide that Linux doesn't already have in a lighter weight, easier to configure form. Perhaps others can chime in here?

<comment><USER6> Do you then use 2 devices, 1 with dual-boot, or 1 with VM running the alternate OS within VM?

<comment><USER5> several devices: MacOS, Linux, and an Intel NUC running Win7. Easier to just have dedicated hardware for each OS for my purposes.

</comment></comment></comment><comment><AUTHOR> This is from the point of view of usability, hardware support, etc - a purely technical angle.

I am not interested in philosophical implications (in this thread). Of course, I don't want to prevent you from commenting on this aspect, too, if you still feel this is the right place.

<comment><USER7> How did you even get to that question? In the first sentence, you're assuming that Linux is inferior regarding usability, hardware support, etc. That in its own can be heavily disputed.

How about - with recent versions of Wine, do we even need Windows anymore? (Most arguments will apply to both questions)</comment></comment>


Q&A: How to Survive a Plane Crash - <AUTHOR> http://www.time.com/time/nation/article/0,8599,1872154,00.html?cnn=yes <comment><USER2> According to the article, the average survivor is seated 5 rows from an exit. The author states that is a "cut off point", beyond that your chances drop dramatically. I think this might instead mean that there tends to be an exit every 10 rows, slightly more to account for small planes with fewer rows. For instance, the 737 I just pulled at random off google has exits at 0, 12, and 25+, The average distance to an exit is about 3.5 rows.

Oh, and if your skin is roughly the color of a paper grocery bag, do not ask aloud while on the airplane or you will not be able to run the experiment.

</comment><comment><USER3> This and the two linked articles really changed my perceptions about airline disasters. People tend to think that the safety lecture at the beginning of a flight is pointless, as you can't survive anyway. However, the article states that 80% of airplane accidents occur during takeoff or landing and most of these are survivable. Also, survival is not just a matter of luck, but often depends on your individual response to the situation. Most people tend to freeze up (not panic) in a crisis situation. If you know the emergency procedures and think in advance about what to do, you are more likely to overcome this instinct and act decisively.</comment>