Extracting tabular data from U.S. Senators' scanned-in personal finance reports - <AUTHOR> https://github.com/dannguyen/abbyy-finereader-ocr-senate <comment><USER2> Very neat project. Tesseract seems to be a lot of projects default go to now on OCR. I had not heard of FineReader until now.

My question is why is it still acceptable for them to submit via paper? Who determines the submission requirements? I am assuming it is the Houses themselves - I mean what body within those houses determines the requirements?

edit: Seems Secretary of Senate keeps up with and enforces - I wonder if also makes or if it quite literally takes "an act of Congress" to alter requirements. [https://efdsearch.senate.gov/search/home/](https://efdsearch.senate.gov/search/home/)

<comment><USER3> Tesseract is popular because it is open source, in my opinion. I've had a great deal of frustration using it, but to be honest I think OCR falls into the same valley as trying to implement an office suite, or reimplement the Windows api - high expectations and only so many spare cycles to work on it.

I also have FineReader for Mac but I've had contact with some of Abbyy's more expensive stuff and it's really incredible. I wouldn't recommend any other system, if asked.

</comment></comment><comment><USER4> Using non-free software, i.e. ABBYY Finereader, is a privacy mistake, if this is to be used on personal data. On publicly available data, using a commercial non-free software isn't even close to being innovative; iow I don't see a value addition to using this program as opposed to using the batch scanning features of the software directly. What is the point of this project?

<comment><AUTHOR> Hmmm...not sure where the difference in understanding is here. You're asking if this could be a privacy violation? Is it not clear that the U.S. Congress is required to post these forms on us.gov websites, making them accessible to all? Are you unaware of the difference between a digital image and digital text, that you don't understand how one is profoundly different than the other? Help me out here</comment></comment>


Go Web Examples - <AUTHOR> https://gowebexamples.github.io/ <comment><USER2> It seems like there are three classes of "web problems" to solve:

(1) The absolute basic "hello world" stuff at the outset. How to route URL's to their handlers, how to render dynamic templates, how to map data structures to and from JSON, etc.

(2) The problems that are one level up in sophistication, but still common to nearly all web apps. How to handle authentication (username/pass, OAuth/JWT, etc), how to manage session state or the lack thereof, juggling synchronous blocking operations with async background ones, etc.

(3) Really advanced issues that are probably specific to your industry domain or specific application, and aren't necessarily common to others (e.g. how to isolate this medical data for HIPPA compliance).

I don't want to poo-poo this website, it's nice. But in my mind, the world is already flooded with Category #1 examples. At the same time, Category #3 doesn't really lend itself to this sort of thing at all. So what the world really needs is more Category #2 stuff.

Example: What are the patterns available for authentication, including their advantages and drawbacks?

If you do your own authentication with usernames and passwords... then you have to either have to pass them every time and re-auth every request, or else store a session cookie on the client side and find some way share it across all your server-side instances (or use a load balancer with sticky sessions). That's material for 3 or 4 patterns right there!

If you use OAuth with JWT tokens, then you can (maybe) avoid the need to store any session state on the server side. But how do you explicitly "logout" prior to the JWT expiration? Another 3 or 4 patterns down this route!

Category #1 is fun and easy to write about, and a lot af that material comes from newbies who are writing in order to teach themselves. But Category #2 is the brick wall that people always run into in the real world... and because you need a lot of real experience to write about that class of problems, there's a vacuum of available material out there.

<comment><USER3> Apart from the JWT thing (please avoid JWT if possible), I agree with this comment 100%. Things I'd like to see in a Go web app example site:

1\. Examples of using context values to pass things selectively to handlers.

2\. An arbitrary trivial middleware example, like a specialized request logger, just to demonstrate Go middleware.

3\. A Rails/Django-style session token done in the same middleware style.

4\. Giving requests a notion of "current user".

5\. Simplified user-visible vs. developer-visible error handling.

It's too much to ask for ORM-style database query examples, I know, but that too would be nice.

<comment><USER2> > please avoid JWT if possible

That's why this Category #2 stuff is so important. People can agree without much controversy what "best practice" is for the Category #1 stuff, but at the next level it's just blog posts and discussion thread comments passionately arguing opposite statements.

I'm curious... if not JWT, then how would you approach the problem of authenticated sessions without server-side state? (assuming you aren't rejecting the overall premise entirely)

If you track authentication with a server-side session, then you have to either:

(1) Setup a backing store for your session state (e.g. Redis, relational database, proprietary app server solution, etc). Share the backing store across all instance nodes in your server-side cluster. Tune the inevitable performance issues and point-of-failure risks, and expect the worst if you're using a proprietary thing (they're all terrible).

(2) Use a hardware solution. Have the load balancer always route a given client's requests to the same server-side instance. Deal with failover scenarios when that instance goes down, have to drain traffic every time you want to do a deployment, etc.

JWT's ugly, but no uglier than either of those! Always on the lookout for other recipes...

<comment><USER3> The choice isn't "JWT" or "server-side sessions". It's client-side sessions versus server-side sessions, and JWT is just one (bad) option among many for client-side sessions.

'lvh and I are working on a piece about this for our clients, so I want to be careful not to write a crappy version of it in an HN comment first. But I think you'll find something close to a consensus on JWT/JWS/JWE/JWK among crypto engineers of our ilk.

I guess I'd close by saying: if you were writing a Rails app, it's almost certainly the case that you'd be better off just using ActiveSupport::MessageEncryptor to create an encrypted token than you would be building a shambolic equivalent of MessageEncryptor in JWT.

<comment><USER4> You didn't actually answer the why not JWT question there.

We're pretty heavily invested with using JWT wrapped inside OpenID Connect, and given you garner a lot of respect on such topics, I'd really be appreciate if you cited a source or gave us a reason. Anything would be better rather than just appealing to a vague consensus.

<comment><USER3> Why would my advice change because you're building something that uses JWT?

This thread, though, is about Go web applications. So I guess apropos this thread, I'd just say we probably don't need an example of how to use JWTs in Go. But session management, yes!

<comment><USER4> > Why would my advice change because you're building something that uses JWT?

I never said it would, I was simply stating my interest in your opinion on the topic. It seems a shame that you don't seem to be willing to expand though.

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> Fantastic. I've found previous examples hard to get into... either way too complex, not doing enough, or not structured well. Thank you!

Update: 2 requests: http/2, and https (self-signed, with chained cert, and mutual auth)

<comment><USER6> another set of examples [https://gist.github.com/denji/12b3a568f092ab951456](https://gist.github.com/denji/12b3a568f092ab951456)

</comment></comment><comment><USER7> Love the way that library handles websockets. Perfect example of the way Go tends to work: no magic at all, yet it's also simple, concise and elegant.

</comment><comment><USER8> This is great, really simple and easy to follow examples.

Would you be able to add some other examples such as interfacing with a database or making remote network requests over http?

<comment><USER9> If you wanna simple database utility for testing golang db conn, please check [https://github.com/blackss2/utility/blob/master/README.md](https://github.com/blackss2/utility/blob/master/README.md)

go get github.com/blackss2/utility/convert * don't use for production

</comment></comment><comment><USER10> I am currently searching for an example / skeleton in Go where I can upload a file via the browser to the server (drag and drop added bonus). Any examples?

<comment><USER11> Something like this will hopefully get the point across on how to handle "multipart/form-data" forms. It will print the content of the upload to the server's stdout.

[https://play.golang.org/p/DiNGdl27kE](https://play.golang.org/p/DiNGdl27kE)

You can use curl to test it out (it assumes a file called "foobar.txt" is available):

        curl -v -F firstname.lastname@example.com localhost:8080/upload

</comment></comment><comment><USER12> I am interested in trying out Go for my next side project. Can anyone recommend any good books/videos that can help me get started?

<comment><USER13> The Go Programming Language ([https://gopl.io](https://gopl.io)) is what I've had at my desk the past few weeks while learning. Also whenever I get stuck I search Github code for a term like "json.Unmarshal" to find how others have done something. And otherwise just duckduckgo'ing "golang <search term>". Also you'll hear a million times to check out Effective Go and The Go Tour (on the official Golang site). Those are good but I appreciate them more now that I've got a good foundation

<comment><USER14> This is one of the things that most stood out with me while I was learning Go, it's just so easy to read other people's examples and just understand it without too much hard thought

</comment></comment></comment><comment><USER15> Gorilla mux is way overrated and overused. I'm not sure why it's the first choice for so many people. There are much better alternatives such as [https://github.com/julienschmidt/httprouter](https://github.com/julienschmidt/httprouter) or [https://github.com/gin-gonic/gin](https://github.com/gin-gonic/gin).

<comment><USER16> Care to explain why it's overused in comparison to other toolkits/frameworks/libraries? Taking in to account, of course, the target use-cases.

</comment></comment><comment><USER17> Has anyone of you experience with the fasthttp Go library[0]?

Does it keep its promise in terms of speed? (I assume real world code would spend much more time in actual business logic than their examples/benchmarks so I guess there wouldn't be as much a difference as they claim, but the idea of zero allocations intrigues me)

[0]: [https://github.com/valyala/fasthttp](https://github.com/valyala/fasthttp)

<comment><USER18> The fasthttp library is good if you don't need to support corner cases of HTTP and you don't need HTTP/2.

If that is given, yes, it's faster.

<comment><USER19> If you want HTTP/2 support Chi[0] can probably help. It's plenty snappy too.

[0]: [https://github.com/pressly/chi](https://github.com/pressly/chi)

</comment></comment></comment><comment><USER20> These look great, thanks. I'm currently learning Go and find this kind of example much easier to follow than documentation.

I'd like to see an example for embedding HTML templates properly. It took me an embarrassing amount of time to get beyond 'header.html' and 'footer.html' being separate, and I'm sure my solution isn't as elegant as it could be.

<comment><USER21> Is [https://www.calhoun.io/creating-the-v-in- mvc/](https://www.calhoun.io/creating-the-v-in-mvc/) close to what you had in mind?

I need to do a follow-up to that with the type I use to wrap that logic, but I am curious if this is inline with what you are looking for in the examples.

<comment><USER20> Yes, thank you. My solution was similar but less elegant; I plan on going through your post in more depth and attempt to reimplement my code with what I've learned.

Once again, thank you for that post.

</comment></comment></comment><comment><USER22> I haven't tried Go in a while but I see a lack of error handling in the code examples. Is that just to keep the code simple? I'd rather see examples with best practice handling of errors. Maybe show both versions so readers can see the difference?

</comment><comment><USER23> These guides go into the right direction. I solved many things for myself but it would be nice to collect good practices. I had to come up with go style design patterns for: \- Middlewares \- Authentication \- Authorization \- Database Access \- JSON APIs \- Template organization \- Migrations \- i18n \- Crypted Cookies \- Image uploading \- Form validation \- Asset Pipeline \- API Versioning \- Writing libs for 3rd party services Where is the best place to share my best practices and to discuss them with others? Via a pull request to that repo? You know of other good sources?

</comment><comment><USER24> Why would I want use Go for the backend, rather than a Python or Node.js framework? Just looking at the syntax it strikes me how inconcise and it is.

<comment><USER25> > Just looking at the syntax it strikes me how inconcise and it is.

And you recommend Javascript instead? Interesting.

> Why would I want use Go for the backend

Fast, built-in concurrency, enough high level concepts and structures to support fast development, and really easy to deploy.

The last part is probably the greatest. It supports simple host-based deploys, tiny docker container deploys, and eliminates the typical dependency conflict problems of Python and Node.

It's also pragmatic enough to make it easy to develop in for developers across the skill bell curve.

</comment></comment><comment><USER26> As always (not go specific), forms example is missing form validation. Is that too old-fashioned?

<comment><USER27> What kind of validation are you looking for? Simple things like "is not empty", "maximum 8 characters"...?

Most libraries I've seen which try to do form validation always lack in certain areas or force you to define your own validation, so I simply ended up adding an `isValid` method to my structs.

<comment><USER26> I want to see a full roundtrip:

1\. define input fields in html template of choice

2\. validate form/struct/whatever and prepare errror messages per field

3\. redisplay html with field-level errors to let user correct its input

step 3. is the interesting and missing in most examples of newer webframeworks

</comment></comment></comment><comment><USER28> > This example will show how to register a route and get the data using just > the net/http package.

What is a "route"?

(I don't need an answer, but I think the example should explain it).

</comment><comment><USER29> Go Content Negotiation - [https://github.com/jchannon/negotiator](https://github.com/jchannon/negotiator)

</comment><comment><USER30> Anybody have experience with Echo? [0]

[0] [https://echo.labstack.com/](https://echo.labstack.com/)

<comment><USER31> Yes, I use it for several microservices, running for about a year now in prod. It's excellent.

<comment><USER30> It seems very nice indeed.

Thanks for the feedback.

</comment></comment></comment><comment><USER32> This is awesome. Examples are so important when learning something and I always found it hard to get good Go web examples

<comment><USER33> This might be helpful!

Tutorial: [https://github.com/thewhitetulip/web-dev-golang-anti- textboo...](https://github.com/thewhitetulip/web-dev-golang-anti-textbook/)

YouTube series: [https://www.youtube.com/playlist?list=PL41psiCma00wgiTKkAZwJ...](https://www.youtube.com/playlist?list=PL41psiCma00wgiTKkAZwJiwtLTdcyEyc4)

</comment></comment><comment><USER34> Why put "
<s>" and "</s>
" in the html file? Given your style you should clearly abstract this out static HTML.

Edit: update. Odd that people are upvoting and downvoting this comment.

<comment><USER35> Possibly because the underlying HTML is not really the point of the tutorial.

<comment><USER34> In web examples HTML is "not really the point"? Ok. I can actually accept that as reasonable. But isn't the style of this example to abstract static HTML out of the HTML file and generate it dynamically as needed? I'll grant that it's a rather small issue; nonetheless, I do think the author would be best served by said abstraction for style and consistency (to the last detail).

</comment></comment></comment><comment><AUTHOR> Actually the link should be to [https://gowebexamples.github.io/](https://gowebexamples.github.io/) I screwed up when posting this lol.

<comment><USER36> Ok, we changed to that from [https://gowebexamples.github.io/templates/](https://gowebexamples.github.io/templates/).</comment></comment>


NASA says it's building a gateway to the Moon–critics say it's just a gate - <AUTHOR> https://arstechnica.com/science/2018/09/nasa-says-its-building-a-gateway-to-the-moon-critics-say-its-just-a-gate/ <comment><USER2> It doesn't make much sense. The delta-v you need to dock to it in lunar orbit is the same you need to go to the Moon. It's kind of a Earth-Moon cycler that doesn't cycle much. I like the idea of having humans near the instruments and being able to provide new instruments using a modular structure, and the refueling capability (that's actually cool). Teleoperation is easy from the Earth and doesn't need a local human and there is no way they'd have a descent/ascent vehicle capable of flying multiple times (unless the refueling capability is much more sophisticated than the project implies).

Am I missing something?</comment>


Visual Transistor-Level Simulation of the 6502 CPU (2012) - <AUTHOR> http://www.visual6502.org <comment><USER2> Previously [https://news.ycombinator.com/item?id=14885321](https://news.ycombinator.com/item?id=14885321) and infinitely previously

[https://news.ycombinator.com/from?site=visual6502.org](https://news.ycombinator.com/from?site=visual6502.org)

</comment><comment><USER3> Should be paired with [http://monster6502.com/](http://monster6502.com/) :-)

<comment><USER4> I simply can't get enough of the Monster6502. If they ever sell a kit I'm buying one in a heartbeat.

</comment></comment><comment><USER5> I never get tired of this.</comment>


Ask HN: Learning Chinese Mandarin - <AUTHOR>

I need to learn chinese mandarin but don't have easy access to real in-person tutelage, because of my location.<p>Can anyone suggest a good method, place to start, be it DVD or online etc. <comment><USER2> It's tonal, so speaking it correctly is quite hard for Western people. I'd say try and find someone. Without someone to talk to you'll have a very hard time pronouncing it correctly.

One of my friends tried <http://www.livemocha.com/> for a language and had a positive opinion of it.

</comment><comment><USER3> LingQ (<http://www.lingq.com/>) is a service that allows you study with native speakers online.</comment>


New blockchain-based music streaming service Audius is a copyright nightmare - <AUTHOR> https://www.theverge.com/2019/10/9/20905384/audius-blockchain-music-streaming-service-copyright-infringement-piracy <comment><USER3> As someone who worked for some companies with actually utility in the golden age of ethereum, blockchain is dead and kind of useless. Yes, it's cool - <USER2> anyone worth their weight as a software engineer shouldn't see value in these kinds of projects...

Protocol labs is one of the only shops I'd vouch for in the space. ConsenSys just scams the financial sector - and fuels their own blockchain circle jerk.

<comment><USER4> Totally agree, worked in blockchain and left because of the amature hour I'm going to get rich making this, neolibritarian ideology that doesn't accept other ideas, and the rampant scamming and market manipulation.</comment></comment>


What Did LIGO Actually See? - <AUTHOR> http://astronomy.stackexchange.com/questions/13782/what-did-ligo-actually-see-gravitational-waves-discovery <comment><USER2> I didn't like the first answer too much. In particular the black holes were not aligned with the detectors, the time difference is smaller than the time that the light needs to travel from one detector to the other.

I prefer the second:

> _The nature of the detectors is that they act like a microphone, as opposed > to a camera._ [...]

and the last:

> _According to the GW150914 tutorial, this is what Advanced LIGO L1 and H1 > detectors originally saw:_ [...]</comment>


Google And Monopoly Theater - <AUTHOR> http://techcrunch.com/2011/09/25/google-monopoly-theater

<comment><AUTHOR> The committee was unaware that Google mixes two distinct services: key word search and question answering.

Key word search approximates your question and returns approximate answer. The amount of interpolation of approximations forces to display a long list of links. Here, the job can be done by simple ranking algorithm.

On the other hand, if we want to answer a concrete question we need to provide a concrete information. Watson would not win Jeopardy if "he" provided just a ranking. Here, the job is done by understanding the question. After that we just need a look up table. Google is not secret about their data model. If your web site is fully annotated with OWL and RDF, surly Google can use it for question answering look up resource.

<comment><USER2> Google has some decent built in responses to things like:

atomic weight carbon, 1+2, Movies 22202, ikea Arlington VA

But, there is still no progress on open ended questions aka "When was the first flight to break the sound barrier?" Because most things seem to be hard coded responses to something like (Category) + Address; math; constants etc

<comment><USER3> Google can do some of that for certain queries:

[http://www.google.com/search?q=what+is+the+height+of+the+emp...](http://www.google.com/search?q=what+is+the+height+of+the+empire+state+building)

[http://www.google.com/search?q=what+was+the+length+of+the+ti...](http://www.google.com/search?q=what+was+the+length+of+the+titanic)

It doesn't know everything though - it came up blank on the first flight to break the sound barrier.

</comment></comment></comment><comment><USER4> The finance snippet could have the same layout as ads, this way it is more obvious it is not in the ranks, and real ads clicks might even increase.

<comment><USER5> Both Bing and Yahoo display the same results -- summary/graph/links to finance product from search results, like Google -- and that this is just one example of how search has evolved past serving blue links and that to be competitive (good) at search, one needs to give the right answer without clicking through to results. Google got really good at this; everyone else wish they thought / got good at it first; and now Government is tasked with crippling Google's products -- hurting consumers -- and allow only competitors to practice "as a monopoly."

Personally, I've never felt like I was locked into Google, couldn't (didn't) have all of my data elsewhere, or couldn't manage without their presence. However, my life would suck a lot if Google didn't integrate with itself.

<comment><USER6> In fact Google copied this from Bing. But the difference is that Google is a search monopoly whereas bing is just a distant second or third depending how you look at it.</comment></comment></comment>


You Can Now Buy and Install SSL Certs from Microsoft Azure - <AUTHOR> https://azure.microsoft.com/en-us/documentation/articles/web-sites-purchase-ssl-web-site/?WT.mc_id=azurebg_email_Trans_1065_Tier2_Release_MOSP <comment><AUTHOR> This has been a pain point for anyone who wants SSL on Azure. A few site extensions (e.g. the one for Lets Encrypt) have tried to address it but they haven't succeeded all the way. Looks like MS has finally made it a few clicks process.

Fire and forget SSL, here I come.</comment>


Lava lamps as source of encryption entropy - <AUTHOR> https://www.youtube.com/watch?v=1cUUfMeOijg <comment><USER2> Not only "Lava lamps as a source of encryption entropy", but "Lava lamps used as a source of encryption entropy in production at Cloudflare.".</comment>


Facebook CEO Mark Zuckerberg to Testify Before Congress RE: Cambridge Analytica - <AUTHOR> https://www.usatoday.com/story/tech/news/2018/03/27/facebook-ceo-mark-zuckerberg-testify-before-congress-cambridge-analytica/462620002/ <comment> wu-ikkyu This could be a great opportunity for the public, if only the questions could be asked by technically minded people.

The average person "knows" that Facebook takes their data. What they don't know is the extremely powerful, subtle, manipulative ways it is weaponized against them.</comment>


Universal Install Script by XKCD – Combat Test - <AUTHOR> http://www.ocsmag.com/2016/04/16/universal-install-script-by-xkcd-combat-test/ <comment><USER2> The line that attempts to build from source is designed to build the repository cloned from GitHub. It seems odd to remove the git clone and leave that in.

BTW, if you have git 2.3 or newer you could just disable the password prompt like so:

        GIT_TERMINAL_PROMPT=0 git clone https://github.com/"$1"/"$1" $1 2>/dev/null

</comment><comment><USER3> Feels to me like you could improve a lot of the noisiness by adding || (or) to the end of each line. So the script would stop trying things once it found something that worked. Then maybe you could reintroduce the git clone command -- coming near the end, it would rarely cause problems.

<comment><USER4> I think you mean &&?

<comment><USER5> No. && would cause the next command to begin once the previous had successfully completed. A successful install shoudn't start the next install attempt, hence ||.

On the other hand, OP and this comment miss the beauty of Randall's implementation, which is each operation is launched asynchronously ('&'), so it isn't the case that you try a few approaches one at a time, i's that you try _all_ approaches _at the same time_.

</comment></comment></comment><comment><USER6> cached version: [http://webcache.googleusercontent.com/search?q=cache:b4rsDCg...](http://webcache.googleusercontent.com/search?q=cache:b4rsDCg1gCAJ:www.ocsmag.com/2016/04/16/universal- install-script-by-xkcd-combat-test/&num=1&hl=en&gl=us&strip=1&vwsrc=0)

<comment><AUTHOR> Wow, already down?! Someone get them a CloudFlare account!

<comment><USER7> CloudFlare is regularly blocking me (because of dynamic address I get from my provider; I have no real choice as I live in the country and not in a city) and being out-US, CloudFlare does not care at all. It is seriously the company I hate most at the net. There are so many alternatives to CloudFlare. Let's make the world a better place and use them.

<comment><USER8> > [...] There are so many alternatives to CloudFlare. [...]

Please list them (especially, those that works _for you_ ) so that we can try.

</comment></comment></comment></comment><comment><USER9> [https://gist.github.com/jpswade/b5907dbb7210812d941040b3ebfb...](https://gist.github.com/jpswade/b5907dbb7210812d941040b3ebfbc504)

</comment><comment><USER10> "Wow that's awesome! This could be a new defualt way to install!"

Relevant xkcd, sort of aluded to kn the end, [https://xkcd.com/927/](https://xkcd.com/927/)

</comment><comment><USER11> Yeah, this is just trying a bunch of different package managers to see which one will work first.

When you run into a name collisions.

If someone wanted to really make some sort of macro package manager (or package manager to end all package managers), that's one thing, but this script is just a mistake waiting to happen)

<comment><USER12> That's the joke. That's why it was an xkcd strip.

<comment><USER11> Yeah I must have missed the sarcasm in the blog post at the end...</comment></comment></comment>


Why drivers in China intentionally kill the pedestrians they hit - <AUTHOR> http://www.slate.com/articles/news_and_politics/foreigners/2015/09/why_drivers_in_china_intentionally_kill_the_pedestrians_they_hit_china_s.single.html <comment><USER2> Forgetting the laws, what sort of people can so casually kill like this? There are basic human instincts not to hurt people. Armies have to train soldiers to ignore these feelings because without training most won't kill even under combat situations. So when I see someone kill so casually I have to believe that they have rehearsed the scenario in their head beforehand. That means a large number of chinese people drive around with a plan in their head covering how to kill should they injure someone. They are mentally prepared at all times to commit murder on demand. That's messed up. It does not speak well of the country or its citizens when they travel abroad.

<comment><USER3> I lived in China for a few months. The way it was explained to me was, it's you and your family, and everyone else can f __* off.

<comment><USER4> Been living in Vietnam for the last five years. It's the same way here. Maybe it's the Chinese influence?

<comment><USER5> You sure that in Vietnam that there are hit-to-kill incidents?

I thought that thing is exclusive to China. Or at least like that, since I have a few people who got hit by vehicles but only injured, drivers don't even tries to finish off.

<comment><USER4> I was referring to the comment that family loyalties seem to be all that really count, not specifically traffic accidents.

<comment><USER5> Family loyalty seems to be a Asian-centric trait, especially in Chinese.

No wonder Vietnam have that similarity since they have been influenced by China for 1000 year.

</comment></comment></comment></comment></comment></comment><comment><USER6> I could not finish this article. I have read about and seen a lot of disturbing things, but this bothers me far more than any horror movie or shock film ever could. The situation exposed in this article evidences something really fundamental about human nature: the banality of evil.

That someone could run over a _toddler_ and then reverse back and forth over them just so they only have to pay $50,000 instead of $400,000 — well, it's absolutely sickening.

Time and again I'm reminded that most people are really only "good" because it benefits them personally in some way. But the ease with which _so many_ people simply rationalize away all the horrors that mankind commits — I suppose that's part of the human genome.

This really depresses me.

<comment><USER7> Yes it's sickening, and also broadly understood to be a logical thing to do in China.

Let's play the devil's advocate and understand the motive behind it-

The average annual wage of a Chinese citizen is $7,500 USD, whereas the average annual wage of an American is $45,000.

Which means that $400,000 is worth 400,000 x 45,000 / 7,500 = $2,400,000 . And that's only over 23 years so far. You have to keep paying until the day the victim dies. That's the equivalent of $105,000 for Americans per year.

If you refuse to pay, the victim will take you to court and confiscate all your belongings. If you still refuse to get a job to pay, the court will throw your ass in jail and (here is the important part) force your family to pay, indefinitely, until the victim dies.

So are you going to have your family pays $105,000 per year while you sit in jail, or are you going to make sure the victim is dead?

Trust me when I say no one wants to kill another human, but when the law is lay against you in such way, well don't be surprise that humans can override their natural instinct.

(I am from Hong Kong that, while most people there do not share the same sentiment, but can understand the math behind this horrific logic.

<comment><USER8> This. Frankly I don't understand these people who "don't get it". We're talking about the difference between moving on with your life with a guilty conscience, vs. having your entire life financially ruined due to _injuring_ someone. I make $80k per year. If my country mandated > $100k per year for injuring someone, that's literally the rest of my life destroyed. I could not financially recover for the rest of my life. Ever. For what? An honest accident in which someone's leg is broken and they feign permanent disability?

Imagine you broke someone's leg. Would you rather kill the person and pay $1000, or spend the rest of your life in prison? Letting the person live and paying them $1000 isn't an option. You either get away scott-free, or ruin your life. I can completely understand a culture in which the reality of the consequences makes people choose the lesser punishment.

The solution isn't to increase the punishment for killing someone on the street. The solution is to abolish the ridiculous costs associated with merely injuring someone, especially if that injury comes from an accident.

Of course what's absolutely a joke is people acting all aghast about another country's culture from behind their white picket fences. You do realize that if you were born in their country, you would have the exact same perspective? What the fuck is with this high and mighty bullshit? Your upbringing in a privileged society doesn't make you better than those from less privileged societies, it just makes you privileged. Be thankful your day-to-day routine doesn't involve having to worry about the possibility of having to kill someone in order to keep your pristine life intact.

<comment><USER9> People are worth more than property.

Would I kill someone I don't know in order to save someone I know and love deeply? No. That is murder. Now saving a loved one vs. saving someone who is a stranger is a different scenario. The scenario depicted here is very clear. Kill or suffer loss of property that will impact your family physically.

I can see that this would be much harder to do in a collectivist society, I'll give you that much. But murder remains immoral.

I also agree that the consequence of injuring someone should be less. But I don't know what it's so high in the first place so I'm not at a point to really comment on that.

As an aside, I was not born in the U.S. and have lived the vast majority of my life in my country of origin. You stating that I would have the same perspective of those in China if I grew up there does not make that perspective the morally justifiable one. Not having grown up in that culture has given me (or most of us) the freedom of thought to come to the point where we can clearly identify it as immoral, even if we are never faced with the proposition.

</comment></comment></comment></comment><comment><USER10> Three questions:

1\. The article notes that the monetary cost to the driver for accidentally killing someone is much less than the cost for accidentally disabling someone.

For drivers that do not have much wealth, and who are the sole source of income for their family, I can see how [1] they might decide that the harm to their family from having to pay that higher cost might outweigh the harm from killing a stranger. People tend to value their immediate family very much more than they value strangers.

However, it seems a lot of these cases were people driving expensive luxury cars. For people with the incomes or wealth to afford those cars, is the cost difference enough to actually cause serious hardship for them or their family?

2\. How does this work when the pedestrian is a foreigner, such as a tourist or a business traveler?

Do drivers know that (1) these people will have their medical bills taken care of by insurance or the national healthcare systems of their home countries, so there is no need to kill them, and (2) it would really piss off their home country, which would cause severe diplomatic pressure on China to seriously punish the driver?

3\. Drivers certainly cannot count on always being able to finish off any pedestrian they hit. Why hasn't an insurance market sprung up to deal with the risk of disabling pedestrians?

[1] Note: "I can see how" is not meant to mean "I approve of". It is observational, not judgmental.

</comment><comment><USER11> I'm reminded that many land mines are designed to maim rather than kill, maximizing the cost to the enemy by forcing them to care for wounded casualties.

</comment><comment><USER12> There's a similar dynamic in Mexico. Causing injury can mean responsibility for lifetime care. Another factor is Napoleonic law aka presumption of guilt. So one may end up in jail until trial. The third factor is ubiquitous graft. After an accident, the party with the most cash gets to tell the official story. So yes, advice is to flee with plates and registration (if any). But I didn't get that killing victims was commonplace.

<comment><USER13> > Causing injury can mean responsibility for lifetime care.

As well it should.

<comment><USER14> No, there is insurance for that. Motor vehicles are inherently dangerous machines, and we all take the risk of injuring someone every time we drive. Insurance distributes the risk of driving across all drivers. You should only be punished for injuring someone with a car if you were negligent.

<comment><USER13> > No, there is insurance for that.

Then being responsible means having the insurance. Not having the insurance is being irresponsible.

<comment><USER15> That's why having insurance is a requirement for driving in most countries.

<comment><USER16> Do you think having a law is enough in a country that big? Its probably cheaper to bribe your way out after being caught than to pay the premium.

<comment><USER17> Or lie. My friend was rear ended recently. When the officer came he took both their statements and checked their insurance. She finds out after the crash the guy that rear ended her had let his car insurance lapse and lied to the officer about the validity of his coverage. Apparently the liar is also a law student at the local university.

This happened in the US and luckily my friend spent the money for uninsured motorist coverage on her policy.

</comment></comment></comment></comment></comment></comment></comment><comment><USER18> In Brazil the punishment for murder is lesser than many other crimes, leading to people murdering investigators (or in one particularly infamous case, a mayor murdered two environmental cops that were going to investigate his farm, got convicted, but still got re-elected).

Also firing a gun and not hitting anything also has a harsher punishment than hitting someone, so unless you are a cop that need to draw attention or something, if you need to fire a gun, you need to make sure you will hit someone.

<comment><USER19> The general culture of the Central and South America is actually pretty similar to China and other Asian countries.

<comment><USER20> Did you mean "general disregard of the law" by "culture"? Because the cultures are light years apart.

<comment><USER19> Are they? Which culture do you feel is more ahead in terms of trust?

<comment><USER21> That's a very narrow perspective. There are (possibly literally) uncountably many other dimensions of culture than level of trust in society.

</comment></comment></comment></comment></comment><comment><USER22> Not the same, but...an anecdote from when I went through driver's education. This was many moons ago and it was meant tongue in cheek, with a bit of truth -- if you hit a pedestrian to the point they are severely injured, you better hope they don't survive.

Thinking seems to be -- A car versus a pedestrian (or cyclist) unless a glancing blow is going to do a lot of damage to the ped/cyclist. Personal liability could be _huge_ in the case of injury, much more so (potentially) than wrongful death.

We see this commonly in the Bay Area in motorist killing a cyclist, the criminal penalty (if any) is often not as severe as it should be.

(The above said, even when the motorist hits and the ped/cyclist survives, getting justice can be long and involved -- classic case is the Los Gatos/Los Altos business man who severely impacted a cyclist who was permanently injured -- [http://www.mercurynews.com/ci_20884491/saratoga- businessman-...](http://www.mercurynews.com/ci_20884491/saratoga-businessman- robert-schiro-sentenced-three-years-state) )

I don't advocate such, just a story and some bay area experiences I remember.

</comment><comment><USER23> This is a very good example of the law of unintended consequences.

</comment><comment><USER24> The story in the intro doesnt match the well-publicized video of the accident, which is on YouTube. The driver does NOT switch into reverse, and the grandmother does not scream for the driver to stop. So unless there was another toddler run-over by a white vehicle in the same city, the driver just made shit up. WTH???

</comment><comment><USER25> The story emphasizes laws on monetary compensation for victims, which I think misses the point entirely. The real reason people are doing this is because they can commit murder and apparently they are not punished for it. If you deliberately run over a living person to kill him, that is murder.

</comment><comment><USER26> Everything is about money when the amount is huge, anything else, including killing, comes to the second.

I don't believe anyone enjoys killing there, however when it's tied with huge chunks of money, many of them will choose to kill instead of leaving a disabled human being on wheelchair keeping asking for lifelong financial support. It's indeed similar to the gun-shoot case in USA, either you don't pull the trigger, or you make sure the target is absolutely dead, that explains some victims have lots of gunshots on their body.

The law must be adapted to deal with this.

</comment><comment><USER27> When the state only thinks about money, people will turn into objects. The population will start to see other humans less valuable than their dinner table and will do their best to exploit them. If you go to China you will see beautiful landscapes, the lineage of one of the most advanced cultures and you will see the pain and the loneliness of its inhabitants. The rest of the world didn't cure the infection in time and now has grown to necrosis at the point that sociopathy it's the norm rather than the exception.

</comment><comment><USER28> I'm a native living in China. After glancing over the article, I don't bother reading it in details. The title sounds ridiculous, but certainly marketable.

I see people here are generally sensible but also emotional. I don't have country level statistics related to these extreme behaviors. But people around me are all very kind and I know many having very high standard of morality. We're constantly chasing for the positive and good.

</comment><comment><USER29> People's actions are the reflection of the real laws/rules in their group. And people tend to take advantage of it. Thinking about killing someone would make you lose way less, is it still a normal world? Why didn't those "killers" take equivalent responsibilities? That's the real why.

</comment><comment><USER30> Did anybody watch the last video? It looks like the person with the young boy pushes the boy under the truck. [http://www.fzjfw.com/xxzx/aritcle194.html](http://www.fzjfw.com/xxzx/aritcle194.html)

I'm surprised that wasn't explained in the article.

</comment><comment><USER31> I'd like to hear the Chinese perspective.

Also, what penalties do people pay in the US if they accidentally cripple someone?

<comment><USER32> A few dollars a month more on their insurance premiums.

</comment></comment><comment><USER33> As a Chinese immigrant I am always baffled when Americans visit third world countries.

<comment><USER34> You're confusing "China" with "all third world countries"

<comment><USER35> Also, China was a Second World country (at least, back when the distinction still made sense).

Of course, at some point, "Third World" became synonymous with "poor", and was euphemised to "developing".

<comment><USER36> When Mao created the notion of the Three Worlds, he included China in the Third World [1]. It was (ostensibly) unaligned, whereas Europe (and to an extent Japan) was aligned, making it Second World. He (via Deng) specifically called out the Third World as underdeveloped.

[1] "Speech by Chairman of the Delegation of the People's Republic of China, Teng Hsiao-Ping, at the Special Session of the U.N. General Assembly: April 10, 1974" (Peking: Foreign Languages Press, 1974).

<comment><USER37> According to Wikipedia, Mao's concept is different, despite the similar name. The term "Third World" comes from 1952 and was used to refer to countries not aligned with either the US or USSR, which would not have included China at the time.

<comment><USER38> In 1952 China was aligned with the USSR. It was in the midst of the Korean War of 1950-1953 where Chinese Communists funded by the USSR is helping North Koreans to fight against the South Koreans allied to the US.

The Chinese Civil War where the Communists were funded by the USSR and the Kuomintang were funded by the US just finished 2 years prior.

<comment><USER37> Sorry, double negative in my comment which is probably confusing. I meant that China was not included among the unaligned countries at the time, because it was aligned with the USSR. In short, yes, what you said.

</comment></comment></comment></comment></comment></comment></comment><comment><USER39> Holy cow, that's some messed up shit. I've never heard of such a thing. And that they're getting slaps on the wrists if any punishment at all because cops are believing their insane stories.

What a cultural mess.

<comment><USER40> When a pedestrian or cyclist is killed by a car in the US, so long as the driver is not drunk and does not leave the scene, the driver will almost never face criminal penalties.

What we call car accidents are considered an unavoidable part of life to be resolved by civil courts and insurance payouts.

I'd say say the US has a cultural mess regarding cars too.

<comment><USER41> Can you cite sources or any basis at all for this conclusion?

An acquaintance of mine was speeding and killed someone. He went to jail for a couple of years. No alcohol or drugs were involved and he didn't leave the scene. He was going something like 80 in a 55mph zone.

<comment><USER42> [http://www.nytimes.com/2013/11/10/opinion/sunday/is-it-ok- to...](http://www.nytimes.com/2013/11/10/opinion/sunday/is-it-ok-to-kill- cyclists.html) has a bunch of examples (though does not link to sources).

Quote from this article: '"We do not know of a single case of a cyclist fatality in which the driver was prosecuted, except for D.U.I. or hit-and- run," Leah Shahum, the executive director of the San Francisco Bicycle Coalition, told me.'

Big ones off the top of my head: \- Amelie de Moullac: police found driver at fault, DA refused to prosecute \- Charles Vinson: driver ran a red light. Vinson also _technically_ ran a red, but had the walk signal. Vinson was found at fault; driver not even 50% fault.

These are pretty SF-specific examples, but I don't think it's an SF-specific phenomenon.

</comment></comment></comment></comment><comment><USER43> They don't have car insurance in China?

</comment><comment><USER44> In many of these cases bribes are what get people off not stupidity.

PS: Granted, in a functional democracy changing the perverse incentives is a much better option. But, unfortunately in China the only reasonable response to this IMO is to find and brutally kill the driver and then publish this after the fact. Accidents happen, but murder should never end up as the 'better' option.

<comment><USER45> So your 'better' option to "getting off the hook" is murder?

On a related topic - if you're dying on the streets of China, your chances of receiving help are slim. Anyone who attempts to help you is responsible for your medical bills. They'll let you die on the streets.

The problem here is laws regarding expenses.

<comment><USER44> When the state executes someone for a crime it's generally not considered murder.

Vigilantism is considered a wide range of things in various cultures, but even in the US if a someone saw a driver drive back and forth over there kid and they pulled out a gun and shot the driver in rage then they would likely get off.

Doing the same thing in cold blood would be considered murder in the US, but we have a mostly functional court system. Without that Vigilantism may preform similar functions as state sponsored executions. Sure, it's far from ideal, but so is cold blooded murder of a child.

PS: Actual death would not be a requierment, but a level of harm that causes people to avoid murder is.

<comment><USER46> "we have a mostly functional court system"

I think we actually have a manifestly dysfunctional court system. But I suppose comparatively it works at some level.

</comment></comment></comment></comment><comment><USER47> Please tell me this is not true. How someone can so ruthless? I just can't believe this

</comment><comment><USER48> China is apparently a bigger hell hole than I could have ever imagined.

</comment><comment><USER49> I've heard of a similar story, but in a different context. One of the asian airlines (I don't remember whether it was Taiwan, South Korean, etc.) had problems and lots of crashes. Turns out, people were not accustomed of questioning their bosses, and if this boss was your other co-pilot you would've never even try to correct them. I can't find the article, but it went something like "a western professor" goes to the troubled company and fixes the problem "overnight" by simply retraining the employees that they should be able to judge their superiours.

I'm sorry for missing the critical part here - the actual article, but such cultural traits can definitely surprise people from other countries (like it did me with this one).

<comment><USER50> It's in the book Outliers, by Malcolm Gladwell.

More info: [http://blogs.wsj.com/middleseat/2008/12/04/malcolm- gladwell-...](http://blogs.wsj.com/middleseat/2008/12/04/malcolm-gladwell-on- culture-cockpit-communication-and-plane-crashes/)

<comment><USER49> Thank you! Yes, I believe this was the original article, but I've never bothered to read the book. Maybe I should!

Edit: From the last comment found this article - which goes a bit against Malcolm Gladwell's findings - interesting read indeed - [http://askakorean.blogspot.kr/2013/07/culturalism- gladwell-a...](http://askakorean.blogspot.kr/2013/07/culturalism-gladwell-and- airplane.html)

<comment><USER51> Gladwell is definitely hand-wavy. I think this article's most compelling point is that Gladwell apparently did not ask a person of Korean culture to interpret the copilot's speech. In particular, one wonders, were the copilot's warning of adverse weather put lightly? Or did Gladwell misinterpret this man's usage of English language + Korean culture which, while seemingly more polite, may have different signals for urgency?

I work in Taiwan and disagreeing with the boss, while unpopular everywhere, is certainly less tolerated here than my experience in the west (east coast US). So Gladwell's story is compelling and built on a known difference in cultures. Yet, as usual, he is missing some facts to make his case.

The real question is, how is the airline performing now after the culture change brought in by the "western professor" as noted in the above comment by malkia? Are they still operating with his suggestions and have they been operating more smoothly? How do employees there feel about the change?

<comment><USER52> There's exaggeration on both Gladwell and Ask A Korean's side. I have been living and working in Korean for the past 5 years, and have been married to my Korean wife for 6 years. Based on the transcript that Ask A Korea posted, it's very clear that that first officer is acting deferentially to the pilot. Specifically, the first officer uses polite speech with the pilot, and the pilot uses familiar speech with the first officer. In my company, neither my manager nor my manager's manager uses familiar speech with me, I'd have to go up 3 levels for that to start happening. Also, when I described what Gladwell mentioned in his book about hierarchy to my wife, she didn't think it was exaggerated. There's likely a large grain of truth to Gladwell's representation of what happened. Also, Ask A Korean is usually fairly nationalistic in his posts, which is a common trait amongst Koreans that I have interacted with.

</comment></comment></comment></comment></comment><comment><USER53> The fact that this story is the top of hacker news should indicate to us all that this site has lost what it had. How is this different than reddit? How do we want it to be different? This is simply a sensational, horrifying article that has been up voted because of its shock value. We can do better.

<comment><USER54> I would say: [https://news.ycombinator.com/classic](https://news.ycombinator.com/classic) but that doesn't seem to help much.

<comment><USER55> What is that page?

<comment><USER56> Stories ranked using votes from old accounts.

</comment></comment></comment></comment><comment><USER57> Why should I trust an article like this?

Outrageous claims. No sources. pageviews.exe

<comment><USER58> The second paragraph links to security camera footage.

</comment></comment><comment><USER59> Even though it is something I wanted to know, unfortunately this is not a story that I want to read at hacker news.

<comment><USER60> I thought it was very interesting to learn about the effects of certain societal aspects on human behavior in societies at large.

Hackernews serves as a distribution vector for most content which expands the mind to new technologies, cultures, science, or entrepreneurial techniques.

For you, there is still quite a fair amount of technical content posted daily :-).

</comment></comment><comment><USER61> In china where the population density is so high that there's no room left for humanity.</comment>


Open Call: How do we exit surveillance capitalism in digital life? - <AUTHOR> https://www.eyebeam.org/rapidresponse/ <comment><AUTHOR> Electronic Frontier Alliance member Eyebeam seeks applications that consider how art and technology can challenge dominant notions of access and how together we can shape a more equitable future. How do we begin to exit surveillance capitalism as the dominating form of digital life and what can replace it?</comment>


Indispensable JavaScript library inspired by lodash - <AUTHOR> https://github.com/dezmou/modez <comment><USER2> Is the `AddthirtyNine` function compatible with React?

<comment><AUTHOR> I think I will do a modez-react special library

</comment></comment><comment><AUTHOR> give me your idees of insispensable lodash-like functions</comment>


The Cost of Losing a Developer - <AUTHOR> http://david-carr.blogspot.com/2007/08/cost-of-losing-developer.html

<comment><USER2> It seems like quantifying the loss of a developer in terms of dollar value is pretty futile. That value is volatile from company to company.

One thing we can _try_ to do is measure the skill difference between two programmers. This is a hard problem, but if we assume that some percentage of their checkins are new features, some percentage are bug fixes, and so on.. Perhaps even going through and manually tagging each changelist (have a convention to prefix a changelist with BUG: or FEATURE:), then we have a sort of rough statistical model of their performance.

So now we have two categories, _bug fix_ and _new feature_. (I'm grouping refactoring into bug fixes for now.) Their performance in each category can be measured by (number_of_changelists / time). This assumes a perfect world, where each bug fix doesn't introduce new bugs, and each feature doesn't add any new bugs. These totally contradict one another, so we can tweak some parameters, perhaps introducing a percentage chance that one of their changelists will introduce a bug, which counts against their productivity score. (You can do some more interesting statistical analysis here at the sourcecode level to determine who's bug was fixed, and actually measure how often they produce bugs.)

But wait a second, what's the value for 'time'? It could be their whole stay at the company. But what if we change it to be, say, a week? Now we can get a velocity value by doing productivity(t) - productivity(t-1).

Those two metrics combined are pretty useful to measure a programmer. You have their productivity over a time value, and you have their velocity based on previous producitivity values.

Now we apply it to the whole company. Add up everyone's productivity for the week and you get the current company productivity. Subtract that with everyone's productivity for the last week and you get the company's productivity velocity. To measure how each of them would affect the company if they left, subtract out their productivity from the equation and compare that with them in the equation.

If your productivity score includes how often you produce bugs, you can actually measure who is hurting productivity more than they're helping it. However, each bug is of a different magnitude, so that number is bogus until you can measure the complexity of each bug.

The one thing this system does _not_ take into account is information lost because only that person knew that information. That's a very valuable asset and nearly impossible to measure. So the best way to account for that is to increase a programmer's productivity velocity over time. You can assume that if they're setting out to accomplish something, whether it's a new bug fix or a new feature, they will accomplish it in less time if they start working on it 10 years on the job versus one day on the job.

Also, someone (perhaps the project leader) needs to put a weight for each changelist. The weight measures how valuable the new feature was, or how much value was added by fixing a bug. This has to be done by someone other than the developer, because they'd have an incentive to lie.

This seems to work, because if you have a superstar leave after one day with the company, it doesn't hurt the company at all. Whereas if he leaves after ten years with the company, not only will the company's absolute productivity go down, but the velocity will take a hit for the next month or so too.

All in all, it seems pretty hard to accurately measure a programmer's value, so I say screw it. Humans are great at recognizing patterns. The whole team should be able to recognize that Bob isn't pulling his weight or is under- motivated, and either give him extra vacation or reassign him to a sister company. Plus if the programmers ever found out they were being measured, the company's productivity would drop like Wile E Coyote. This sort of analysis should really only be applied after a programmer has left or if the company has made the affirmative decision to fire them (possibly to reestimate schedules), not as an ongoing thing.

This is something I came up with off the top of my head just now, so it's probably totally wrong. More research into this field would be really interesting, because if we can measure productivity for a programmer, one could measure the global productivity scores for all programmers. Somehow, I think a certain company that starts with a Y and ends with an R that would be really interested in that.

New startup idea? I'm too busy with mine, go for it. Businesses might pay oodles if you manage to measure programmer productivity accurately (or give the impression that you are).

</comment><comment><USER3> There is such a thing as "negative people". Folks that cost more in correcting their mistakes than in contributing to a problem. This often happens with anemic partnerships.

The cost of losing someone largely depends on how good and useful they were. It is so case-by-case that such a list is useless.</comment>


Ranger - Finder clone for the terminal - <AUTHOR> http://nongnu.org/ranger/

<comment><USER2> I know that this marks me as a graybeard, but this has nothing to do with the Finder; it's (after 10 minutes investigating) a decent mc style file browser. The Finder _was_ the spatial interface to the Mac file system. It's been dead for years; the zombie Finder that Apple currently ships is a hideous, mutant hybrid, neither Workspace fish nor Finder fowl.

<comment><USER3> I've been using Finder since 7.5.3. The Finder hasn't changed all that much in that time has it? Comparative to the rest of the OS? What's so different?

<comment><USER4> As far as a user was concerned, before Mac OS X, the Finder's icons and the files they represented were one object, as were the Finder's windows and the directories they represented. However hard you tried (which you didn't, because you knew a file was the same as its icon), each file had only one icon and each directory only one window. Also, each directory/window had its own position on the screen, size, and layout.

Now, that 1:1 identity is broken. You can have multiple windows showing the content of the same directory. Also, you can have multiple icons on screen 'pointing' to the same file.

This may look like a minor change, but the feel of the UI is very different. It feels much less a direct manipulation interface.

Yes, Mac OS already was slightly inconsistent. Open and save dialogs could show directories and Windows that wer visible in the Finder. However, these felt as part of the application, and were very focused on the task at hand. Icons in those dialogs felt as representations of files, not as the files themselves. Also, there were aliases, but being files, they maintained the 1:1 correspondence between icons and files. Altogether, those things never killed that illusion of 'an icon _is_ a file, a window _is_ a directory'.

Because Mac OS X is a multi-user system, I think Mac OS X had to break this rule (network shares were already stretching the metaphor (almost) beyond breaking years before Mac OS X), but even today, it still feels like a loss to me.

<comment><USER3> Interesting. I've never felt particularly strongly one way or another about the Finder and I didn't feel the changes as strongly as you and others seemed to.

My personal GUI progression was Mac OS 7.5, RiscOS 3, Windows 9x, Mac OS 8 & 9, BeOS, KDE, Mac OS 10.3, onwards. I didn't see a significant break, but maybe it's because of the detour. It just didn't occur to me that it was anything other than a smooth transition. By the looks of things, a good number of people seem to have noticed the change, and many don't like it. I'm not sure the 'classic' way of doing things was entirely compatible with a command line interface (I get that that's what Lisa and Mac was trying to supersede). But I don't think many doubt the utility of CLIs for 'serious' modern use. Do they?

One thing I do remember is that we've always had symlinks (aliases). I don't remember if they were in System 6 but they were certainly there in System 7.

</comment></comment></comment></comment><comment><USER5> This is taken from the list in another submission: "Unix tricks" or similar. I tried it today, but found not vim-like enough (no help under :h ?). I then started searching and found vifm: <http://vifm.sourceforge.net/> \- and after a few minutes I was comfortable with it. I didn't use mc even once today; it's just day one so I don't know if this will stick with me, but it shows much promise.

<comment><USER6> vifm is good. If you like vim movements, you can try zfm (its written in shell - <https://github.com/rkumar/zfm>), and if you like the default hint mode, try 'cetus' -- on the same git repo).

After using vim movements in a file manager, my finding was that pressing 10j or 5gg etc to go to a file is a slow cumbersome way to move around, when you usually just want to open a file/page it or run an action on it. That's why using hints (as in vimperator) or shortcuts for each file is a much faster way of navigating. Just jump with one keystroke.

Similarly it's cool to have vim bindings like "dG" or "d3gg" etc in your file manager (vimfm and zfm have it) but these are not really features that make a difference. It's the speed of getting 90% of your workflow done, and shortcuts/hints are what get that done fastest.

</comment></comment><comment><USER7> I like ranger, and have used it for a few years, but I don't understand why it would be considered a clone of Finder. They are both file managers, that is about all they have in common.

<comment><USER8> It cosidered as clone of Fider because of Miller columns it implements. Only few file managers have them <http://en.wikipedia.org/wiki/Miller_columns>.

</comment></comment><comment><USER6> I found ranger slow. I use cetus (its fast and you can select files with a hotkey (<https://github.com/rkumar/cetus>). There's also a shell version which has a lot more functionality and even a vim mode (since some people here are asking for vim like behavior: <https://github.com/rkumar/zfm>)

</comment><comment><USER9> An answer and a question:

Re: "The secondary task of ranger is to psychically guess which program you want to use for opening particular files.", you can also do `open somefile' to have that file opened in its default app.

And does anyone know if there is anything for OS X that clones your current directory between a terminal and a Finder window? That would be amazingly useful.

<comment><USER2>
      % open .

?

EDIT: And you can drag the little thumb icon in a Finder window's title over to a Terminal and it'll insert the path corresponding to that window at point.

<comment><USER10> Thanks! I've had my Mac less than a year, and stuff like this really helps. (I tried both of those tricks, and they indeed work as advertised)

<comment><USER2> Also super useful:

      % man 1 pbpaste

</comment></comment></comment></comment><comment><USER11> I looked into this a year or so ago when I was looking to "vimify" my whole setup. I couldn't get into Ranger because of the lack of real image previews (I was doing a lot of image processing stuff at the time). W3M looks like it will help a lot with that though, so I'll definitely give it a second shot.

</comment><comment><USER12> Ah no thanks, i'm sticking with Midnight Commander or plain and simple shell commands.

</comment><comment><USER13> On MacOS X, you can simply do:

brew install ranger

</comment><comment><USER14> I could never understand the use of such tools in the terminal. I guess you need to have a certain and very specific kind of workflow.</comment>


2016 JavaOne Intel Keynote – 32mn Talk - <AUTHOR> https://www.youtube.com/watch?v=MAi1eHpLY5M <comment><AUTHOR> Pretty commercial talk, but it shows how hardware is evolving in the post- Moore's-law era.

Highlight at 25:50: If understand correctly Intel chips will have reconfigurable FPGA SoCs, with support in OpenJDK for talking to them. This should be a huge leap for machine learning in Spark with BLAS routines on FPGAs.</comment>


Show HN: Team Leaderboard – Slack Reactions Leaderboard for Your Slack Team - <AUTHOR> https://www.teamleaderboard.us <comment><AUTHOR> I just finished up the first version of a side project I have been working on and I'm looking for any feedback, please let me know if you have any positive or critical thoughts :)

</comment><comment><USER2> [http://jessicake.us/](http://jessicake.us/) FTW. Quality work. Looking forward to seeing how people use this.</comment>


Btrfs will not be the default in Fedora 16 - <AUTHOR> http://lists.fedoraproject.org/pipermail/devel/2011-August/155345.html

<comment><AUTHOR> Here is the previous discussion when it was announced that F16 might use Btrfs as the default:

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

<comment><USER2> and the update on btrfsck: [http://lists.fedoraproject.org/pipermail/devel/2011-August/1...](http://lists.fedoraproject.org/pipermail/devel/2011-August/155348.html)

</comment></comment><comment><USER3> My experience with btrfs has been hugely discouraging. It's the rootfs on one of my machines, and just has lots of terrible behavior:

        * it's lost a lot of space - nearly 100GB
        * it causes all kinds of random pauses while running
        * A *clean* reboot spends over an hour in some kind of offline... something

(basically, if I do a clean shutdown and reboot, the system doesn't go into multi-user mode for about one hour fifteen minutes)

I can't believe it's not better.

<comment><USER4> Can you uphold above quotes with some more facts please? What Linux distribution are you using? What Kernel Version are you using? What kind of files do you have on that server (Video, Word-Files, Sound-Files, DB, ...?).

<comment><USER3> Ubuntu 11.04 (GNU/Linux 2.6.38-10-generic x86_64)

It's mostly a (very low-volume) mail and web server. It's got ~200MB of web, about 11GB of "cache" files for a photo app I've got (about 31k files totally 11GB). I do a little bit of low volume S3 log processing on it every hour. My home directory is 2.5GB with about 107k files (that includes dropbox). The IMAP store is approaching 2 decades of mail with about 239k files totaling about 4.4GB of data. /root is a bit under 500MB with duplicity caches and stuff. Less than 300 files there.

I also keep a few snapshots I take every hour. There's a total of 347 snapshots across all the subvolumes (there are three).

        Filesystem            Size  Used Avail Use% Mounted on
        /dev/sda3             142G  102G   37G  74% /
        none                  2.0G  192K  2.0G   1% /dev
        none                  2.0G     0  2.0G   0% /dev/shm
        none                  2.0G   60K  2.0G   1% /var/run
        none                  2.0G     0  2.0G   0% /var/lock
        /dev/sda1             230M   69M  150M  32% /boot

Overall, it's a small atom box that lives a pretty boring life that I figured would have endless hard drive space given my patterns. That does not seem to be the case.

Anything further I can tell you?</comment></comment></comment>


An introduction to libuv - <AUTHOR> http://nikhilm.github.com/uvbook/

<comment><USER2> As someone with no idea what libuv is, the book certainly doesn't explain what it is very well in the first few pages.

> This 'book' is a small set of tutorials about using libuv as a high > performance evented I/O library which offers the same API on Windows and > Unix.

Okay.

> You will use libuv purely in the context of node.js. For this you will > require some other resources as the book does not cover parts specific to > v8/node.js.

A library for node.js, I take it? My best guess is that libuv provides a way for using C code in javascript.

</comment><comment><USER3> How does libuv fare compared to Boost.Asio?

<comment><USER4> In what sense? The data structures behind it? The capabilities? Boost.asio doesn't do filesystem watching (last I checked). The API? At the end of the day, if you're using Boost, you're probably going to prefer Asio; libuv is somewhat more powerful.

It might have more to do with whether you prefer C++ or C.

</comment></comment><comment><USER5> libuv was created by the guys that make NodeJS to make a cross platform IOCP layer for Windows and Unix

</comment><comment><USER6> +1 Nice, I am reading it.. By the way, servo is using it. Right?

<comment><USER7> Yes, Rust and Servo both use libuv as the native async I/O layer. It's been fantastic for us as an easy-to-use API that works on Windows. Kudos to Ryan Dahl and Joyent for creating it.

<comment><USER8> Kudos should go to Bert Belder and Ben Noordhuis of Cloud9 who built much of libuv and Igor Zinkovsky of Microsoft has contributed a lot of important work as well. As well many other contributors.

</comment></comment></comment><comment><USER9> libev user here. While I couldn't care less about portability to windows, if libuv really does improve libev's performance on unix then consider me interested:

<https://github.com/joyent/libuv/issues/485>

</comment><comment><USER10> This is really awesome stuff, has anyone built a mobile robot application on top of it?

<comment><USER11> Why would you do that? The main point of it is to be portable across Windows and Unix, and I can't imagine that many robots care about that. It was developed for node.js. If your robots were running Unix then I imagine you would just use the normal C APIs or something like libev.

<comment><USER10> Well for a long time folks have built robots by putting a laptop on to a powered set of wheels. Some folks are more comfortable with Windows, others more comfortable with Linux. Recently there has been a surge of 'android' robots as well with folks re-purposing phones and tablets to the task of controller.

The 'style' of this programming is often very much event driven. Seems like a common base would be useful.

<comment><USER12> You're right that an event-driven style is useful for programming mobile robots, but a lot of the time the tricky part is actually generating events (usually from sensors) in the first place. I haven't seen anyone use libuv for this sort of infrastructure, but ROS (www.ros.org) provides everything you need for mobile (and other forms of) robotics: publish-subscribe message passing, client-server, wrappers for common robot platforms. I think it has essentially the functionality you're talking about.

</comment></comment></comment></comment><comment><USER13> Very nice library - documentation is only 50% done, lots of blanks.</comment>


Cost of bandwidth? - <AUTHOR>

If I were to start a media streaming site (video), what could I estimate in terms of rough numbers the cost of bandwidth to be? Just trying to get an idea of revenues vs expenses for an idea.<p>Thanks <comment><USER2> Also keep in mind that bandwidth is not necessarily going to be your most expensive component. Power and cooling usually is. If you have hardware you need to fire it up somewhere and cool it somewhere. Most colo's charge more for power and cooling then for bandwidth.

Just my 2c.

</comment><comment><USER3> There are many services around but I guess this could give you a hint

<http://aws.amazon.com/cloudfront/#pricing>

</comment><comment><USER4> he.net: $600/month Includes 42U Cabinet, Power, 100 Mbps bandwidth. That is a lot of bandwidth. This is where I colo.</comment>