Want to Know What Virtual Reality Might Become? Look to the Past - <AUTHOR> http://www.nytimes.com/2016/11/06/magazine/want-to-know-what-virtual-reality-might-become-look-to-the-past.html <comment><USER2> I think some Steve Jobs-ian thinking about the experience as a whole is called for at this point. VR/AR equipment needs to be friendly to the social experience and to social experiences, otherwise it's going to be out-competed through network effects by other equipment that has an advantage there.

Current VR "room-scale" equipment seems to be optimal for 1) god-like player experiences, where you can survey a world, teleport within it, and command/change/tinker/destroy what's within it or 2) the highly immersed "stage." By "stage" I literally mean it's like you are standing on a stage. It's about the same amount of space, and the immersive feeling is very much like being on the set of a movie or show.

<comment> crooked-v I personally think the things that have the biggest potential in VR are games like Tabletop Simulator, where both the game itself and the context of "being with other people playing a game" are part of the experience.

<comment><USER3> > I personally think the things that have the biggest potential in VR are

Porn. Let's be realistic.

<comment><USER2> When people can have the sensations of sex in VR porn media, without needing to interface bodily fluids with pieces of hardware, then porn VR will, in the words of Dennis Miller, "make crack look like Sanka." Or perhaps, when porn media makers figure out how to work the current forms of immersion to their advantage, there will be an uptick.

Right now, the increase in the quality of experience of VR porn over a screen and a pair of headphones is still marginal.

</comment></comment></comment></comment><comment><USER4>
      "It is a delightful characteristic of these times, that new and
      cheap means are continuously being devised, for conveying the
      results of actual experience to those who are unable to obtain such
      experiences for themselves; and to bring them within the reach of
      the people ... New worlds open out to them, beyond their little
      worlds, and widen their range of reflection, information, sympathy
      and interest."

For the origin of this technology, we can look much further back in time than the 19th or even 17th century... back to pre-historic times at the origin of storytelling.

Storytelling was the first technology for _" conveying the results of actual experience to those who are unable to obtain such experiences for themselves"_.

</comment><comment><USER5> > The most surprising twist in the evolution of V.R. may turn out to be the > pace of the new medium. Quick cuts are an almost physical act of violence in > V.R.; jumping from one perspective to another can create a literal sense of > nausea. But more telling, perhaps, is the fact that people don't want to > move on to another experience once they've put the headset on. They want to > linger. "I want to just put you in a field," Mooser told me, "and you just > do what you want to do in that field."

Quick cuts were seen as violent and jarring when film was new, too. We will get used to VR cuts just as we got used to film cuts. It may take a few generations; right now VR is still a novelty.

<comment> crooked-v The difference here is that quick cuts in film, generally speaking, don't literally make people physically sick.

<comment><USER6> They used to make people sick. But we've adapted to watching screens, mostly. (First person shooters still make a lot of people ill, on regular TVs.) Plus, a grammar evolved (180 degree line of action, visual weights, etc) that allow experienced filmmakers to push the bounds of what's comfortable to watch.

Regular VR devs report (and I can corroborate) that you eventually lose your ability to get sick in VR. This extends to motion sickness in the real world; when I was experiencing a lot of nauseating VR, I no longer got nauseated by reading while driving, or on boats, etc. (Unfortunately your ability to get sick 'grows back' if you stop watching VR; the brain is rather plastic.)

</comment></comment></comment><comment><USER7> Those reports of the past describe one-off location-based entertainment systems which didn't scale, and novelty devices which didn't last. That may be the future of VR headsets.

</comment><comment><USER8> When your technology can modify someone's mind's eye view, call me. I will give you all my money if it works for me.

<comment><USER4> Would you have similarly avoided or not been impressed by photography or film when they were invented? How about writing?

<comment><USER8> I am not stating I would avoid this technology, so asking me if I would avoid similar technology isn't logical. I would take no action to avoid technologies, but I would limit them if I felt they were harmful to my well being.

I do not visualize (Aphantasia), so I would be much more excited if I could both see what is going on here AND have a mind's eye, even if it were artificial.

</comment></comment></comment><comment><USER9> Clicking this link takes me to a login page with no ability to access the content in any way.

I screen shotted it because I've actually never seen something like this before: [http://i.imgur.com/1YBFuiU.png](http://i.imgur.com/1YBFuiU.png)

Also, doing the web link brings me to the same login page.

<comment><USER4> Try substituting "www." in the URL with "mobile."

<comment><USER10> Nope, it does not help. I've tried with lynx ( console browser ), with archive.org; I keep getting the login as well. If I disable cookies, I get a redirect loop.

Edit: Hah! Workaround:

        wget -O- http://www.nytimes.com/2016/11/06/magazine/want-to-know-what-virtual-reality-might-become-look-to-the-past.html > /tmp/x.html && dillo /tmp/x.html

( note: dillo is a dead simple little browser )

<comment><USER11> Cool! Terminal version, piping directly into w3m:

        wget -O- http://www.nytimes.com/2016/11/06/magazine/want-to-know-what-virtual-reality-might-become-look-to-the-past.html | w3m -T text/html</comment></comment></comment></comment>


CSS3 breaking in the design community - <AUTHOR> http://ajaxian.com/archives/css3-breaking-in-the-design-community

<comment><USER2> Gosh, what a total content-jack. might as well link directly to the source: [http://www.smashingmagazine.com/2009/06/15/take-your- design-...](http://www.smashingmagazine.com/2009/06/15/take-your-design-to- the-next-level-with-css3/)</comment>


V1.2 Prediction API: Every app a smart app  - <AUTHOR> http://googlecode.blogspot.com/2011/04/prediction-api-every-app-smart-app.html

<comment><USER2> Push all hacker news comments into it, their dates, users, and scores. See if the system can determine when a given comment was made.

<comment><USER3> what about votes, headline, domain, submitter, time and build a tool that predicts how many votes certain hacker news submissions will get.

(think a winner would be a "node.js apple" post on codinghorror, submitted by john gruber)

<comment><USER4> I've made something like this as a side project, <http://www.pythiafilter.com/>. You paste a comment and it tries to guess whether it will be upvoted or downvoted. The longer the comment the better, obviously.

</comment></comment></comment><comment><USER5> ...SkyNet?

<comment><USER6> $ ./oauth-predict.sh skynetbucket/prediction_models/viability "Humans"

{ "kind": "prediction#output", "id": "skynetbucket/prediction_models/viability", "selfLink": "[https://www.googleapis.com/prediction/v1.2/training/skynetbu...](https://www.googleapis.com/prediction/v1.2/training/skynetbucket/prediction_models/viability/predict), "outputLabel": "Eliminate", "outputMulti": [ { "label": "Nurture", "score": 0.001130 }, { "label": "Tolerate", "score": 0.051339 }, { "label": "Eliminate", "score": 0.947531 } ] }</comment></comment>


London Clinic Leaks HIV Status of Patients - <AUTHOR> http://www.bbc.co.uk/news/uk-england-london-34127740

<comment><AUTHOR> A human cut and paste a bunch of names into an email. They put the names in the To field, not the BCC field. This person then sent a newsletter to all these email addresses. 800 names!

While not everyone on the list is HIV+ many were (it's an HIV clinic providing services to people who are HIV+) and there's likely to be some significant fallout. (Changes in NHS software so that To and Cc fields can't have a bunch of non NHS email addresses; heavy fines; etc).

<comment><USER2> The email screenshot says the website is Wordpress and the newsletter/flyer a MS Word document. I doubt they use special NHS Software beyond MS Outlook or similar. Especially since they say they tried to get the email back (MS Exchange feature).</comment></comment>


Foursquare sets revenue plan - <AUTHOR> http://www.nypost.com/p/news/business/merchant_dice_df9UYAegjUldVV40Sea92H?CMP=OTC-rss&FEEDNAME= <comment><USER2> Exact same story: <http://news.ycombinator.com/item?id=2833821>

No telling which (if either) will get traction - best check there to avoid splitting any discussion.

</comment><comment>==

ADDED IN EDIT: At this point someone has down-modded my comment. Fair enough - your prerogative. My aim was to ensure that any discussion didn't get split across two submissions, to try to add value by helping avoid repetition. If you think trying to avoid such things is of negative value, by all means feel free to discourage me.</comment>


Copyright and the World's Most Popular Song - <AUTHOR> http://papers.ssrn.com/sol3/Delivery.cfm/SSRN_ID1111624_code329492.pdf?abstractid=1111624&mirid=3

<comment><USER2> I remember reading a sci-fi novel that impressed me as a child about the wife of a recently deceased composer corrupting a politician to not vote for a proposal to extend the copyright on the basis that there are only a limitited number of possible "interesting" combinations of notes. Hence an unlimited copyright is like a death sentence to the creativity of all future musicians. I believe that the actual limit of 50 years is already too much.

<comment><USER3> I remember this too -- saw it on reddit, had a title that had something to do with elephant's memory or something to that. Anyone know exactly what this was?

Edit: found it! melancholy elephants: <http://en.wikipedia.org/wiki/Melancholy_Elephants>

<comment><USER2> Thank you, I couldn't remember the title.

Here it is if anybody want to read it:

<http://www.baen.com/chapters/W200011/0671319744___1.htm>

It is strange the way in which a random quote stays in our mind for years, I still remembered the following almost verbatim.

"Artists have been deluding themselves for centuries with the notion that they create.

In fact they do nothing of the sort.

They discover.

Inherent in the nature of reality are a number of combinations of musical tones that will be perceived as pleasing by a human central nervous system.

For millennia we have been discovering them, implicit in the universe—and telling ourselves that we `created' them.

To create implies infinite possibility, to discover implies finite possibility.

As a species I think we will react poorly to having our noses rubbed in the fact that we are discoverers and not creators."

<comment><AUTHOR> This is very similar to the philosophical implications that all mathematics are out there and we are just discovering them. In this light one can always use the example of the infinite monkeys typing random characters and producing all the works of Shakespeare. If you do the Maths though you will need more time than the predicted life-span of our Universe.

Thanks for the link though very interesting.

</comment></comment></comment></comment><comment><USER4> "...was the product of intense creative labor"

I don't mean to downplay the amount of work that goes in to writing a song, but this seems a bit over the top. Short little melodies like this are trivial to write. My pre-school age children come up with these all the time.

The tune of Happy Birthday doesn't seem particularly catchy to me. We've just heard it repeated so many times.

<comment><USER5> > I don't mean to downplay the amount of work that goes in to writing a song, > but this seems a bit over the top. Short little melodies like this are > trivial to write. My pre-school age children come up with these all the > time.

> The tune of Happy Birthday doesn't seem particularly catchy to me. We've > just heard it repeated so many times.

Read the story. The authors actually did a lot of work on Happy Birthday. (They had a couple of conflicting goals and did a lot of testing.)

While short little melodies are trivial to write, HB isn't just any short little melody. Disagree? Come up with a few that work as well. Riches await.

<comment><USER4> I read the story. It claims to be "a product of a highly focused, laborious effort to write a song that was extremely simple to sing yet musically interesting and emotionally expressive, undertaken by a composer and an educator who happened to be sisters."

I still don't really buy that it was "laborious effort." And I don't think the song is popular because of some fantastic musical merits. If the song was still "good morning to all" then it would be just another song. The only reason it has any monetary value is because it became associated with birthdays.

<comment><USER5> > I still don't really buy that it was "laborious effort."

Having read accounts of said effort, I wonder what you think qualifies as laborious. They did days of testing with groups of kids.

> And I don't think the song is popular because of some fantastic musical > merits.

And no one said that it has fantastic musical merits. Instead, they say that it has fantastic kid music merits.

That's a hard market to crack. Lots of people try to write Barney, but few actually pull it off.

There are lots of songs that could have become the standard. That one did, by design and labor.

</comment></comment></comment></comment><comment><USER6> As an aside, just in case anybody is interested (as I was), here's the scoop on the Happy Bday copyright from Snopes: <http://www.snopes.com/music/songs/birthday.asp></comment>


Digging to the Future – Broadband for the Rural North (B4RN) - <AUTHOR> https://vimeo.com/130634706 <comment><AUTHOR> Cool project I came across via this tweet:

[https://twitter.com/Yorkie71/status/694787981824102400](https://twitter.com/Yorkie71/status/694787981824102400)

" _Frustrated by poor internet access, local communities in the rural north of England are finding an answer in Broadband for the Rural North (B4RN). This unique project, built and owned by the community, is on a mission to provide a future proof fibre optic network to all homes, however remote. This short film sees Lancashire communities coming together and digging through all weathers to bring this vital utility to the hardest to reach areas._ "

The B4RN website - [http://b4rn.org.uk/](http://b4rn.org.uk/)</comment>


Ask HN: What tech stack is in demand, and why? - <AUTHOR> <comment><USER2> Slightly out of date now but this gives you a good idea of what companies want (no why though)

[https://blog.whoishiring.io/june-2017-in- numbers/](https://blog.whoishiring.io/june-2017-in-numbers/)

</comment><comment><USER3> COBOL and Fortran. Probably with some z/OS as well.

Much of the world's financial systems run on it, replacing it is infeasible, but the expert's in this area are aging out (and many have retired more than once). But the tech still needs maintaining, and is difficult to work with.

Fewer and fewer grad students seem interested in learning it, and the expectation that you'll stay and work on this stack for 20+ years is something that drives others away.

<comment><USER4> These systems will be fixed and then tossed out

Nothing is infeasible to replace, it might be costly, but not infeasible

And of course IBM is happy to get paid millions to keep backward compatibility on the systems they sell

Nobody wants to invest their time learning a dying platform that is good for nothing but a dead end job at a bank and won't teach anything usable in any form of modern system (hope you like wearing a tie for your job as well)

(Fortran is still used, z/OS might be dying down as well but it runs some modern software)

<comment><USER5> That's exactly what we were told in 1996 (21 years ago that is) when I entered my engineering school: to disregard Cobol and Fortran, because, you know, OLD tech. Won't matter much longer.

If the cost of training peons to make it last and run is less than the cost of rebuilding it, be it from scratch or piece by piece, it will matter longer (that's the point of view of insurances, banks and big corps today, and what's still happening in the IT industry).

<comment><USER6> They might be maintained for a foreseeable time, but if you take a job maintaining them you've committed your entire career to only do that. That's not appetizing to young engineers.

</comment></comment></comment></comment><comment><USER7> As for the web development the situation currently stabilized as an oligopoly between Facebook (React) and Google (Angular). Some projects are trying Vue, some leftover ones with Backbone, Meteor here and there, but it's overall a minor share.

<comment><USER8> Share of new projects being spun up in Angular is probably on a serious decline as well. I don't see too much future potential there. React will probably dominate for the immediate future.

<comment><USER9> Why nobody mentions ember? I thought it was the third most popular thing behind react and angular?

<comment><USER10> I think ember will stick around. I even think it'll overtake Angular one day since it has a better dev/upgrade experience. I don't think it'll ever hit mass appeal, partially because it's quite a niche cookie cutter and the frontend world seems to value flexibility above all else.

<comment><USER11> I have high hopes for Glimmer[1] though as something that can compete with other view libraries and/or frameworks. I'm especially glad that Glimmer diverges from the Ember brand a bit, because there seems to be a lot of outdated (mis)conceptions about Ember from older versions.

I personally feel productive with Ember, but the custom object models and getters and setters for everything are a bit of a turn off, especially after working on an Angular project recently with typescript support. Mobx, for instance, seems to be able to accomplish similar things as Ember but without the custom object model and getters/setters.

[1] For those wondering, Glimmer is Ember's next iteration of view layer and rendering engine, pulled out into a separate library. It's built from the ground up (and so isn't subject to backwards compatibility with Ember just yet), uses typescript, is component based, and it compiles down to op-codes that are used to update the DOM instead of DOM-diffing. [http://glimmerjs.com/](http://glimmerjs.com/)

</comment></comment></comment></comment></comment><comment><USER12> Stackoverflow Insights might help answer your question:

[https://insights.stackoverflow.com/survey/2017#technology- la...](https://insights.stackoverflow.com/survey/2017#technology-languages- over-time)

</comment><comment><USER13> Honestly not very exciting, and possible region specific to my neck of the woods (South Australia): Office 365 and Azure.

Every non-tech company, and even some tech companies seem to be moving whatever they can into Office 365 and Azure. Some are just moving Exchange, others are moving Sharepoint, and some are just using Azure as an alternative to running a VM farm on-prem (bit boring really). But MS is marketing this HARD here and everyone seems to be buying the message.

Plenty of lower-tier 'Infrastructure Admin' type roles going all over the place, most MSP's are looking for architecture and engineering types as well in fairly high numbers (I count about 20-30 such roles on Linkedin). A lot of Dev roles also seem to be angling towards "Experience with Data Lake/App Service/Some other Azure-ey thing is preferred".

</comment><comment><USER14> Living in Sweden, it seems to be to be Java and .NET that keeps the world running. React might be the most popular frontend library though.

<comment><USER7> ... and Java (i.e. TypeScript) in the front end, until someone realizes that Java is nothing like JavaScript... now we have to hire some front end w* * * *s and throw the pile of TS at them.

</comment></comment><comment><USER15> In the .NET universe, demand seems to continue to grow in the UK, especially in the CMS landscape.

However, demand for lower-paying jobs using open-source CMS's like Umbraco seems to be rising, whereas the rates for contractors are rising for the enterprise level choices like Sitecore.

I mention contractor rates because in Bristol companies are struggling to keep experience in full-time development. For Umbraco, we're seeing the space grow with more full-time people, whereas if you're a developer that can work with Sitecore you can earn a LOT more by moving into contracting. Developers are going from £40-50k roles into £550-600 a day roles as contractors, earning over double what they were before. It's also lucrative for recruiters, as they get a percentage of a bigger overall salary.

Sure, it's fairly niche, and it's as unglamorous as it gets, but the work is there if you know this proprietary CMS as it is widely used by a number of large businesses based on its marketing platforms.

</comment><comment><USER16> Looking at the local newspaper, C# Client Applications, C++/Java Business Applications and PHP+MySQL Websites with a few Node.js Jobs sprinkled in.

Some lonely ads are also asking for Ruby or Python.

<comment><USER17> Do people still look up jobs in newspapers? I thought those ads were just legally-mandated foils to prove companies had looked for local people before importing cheaper foreign talent.

<comment><USER16> I do and they may be foils, I'm not sure on that, but if you send in your application it's unlikely to get handled differently. It's a job ad.

</comment></comment></comment><comment><USER18> TensorFlow, Linear Algebra, Calculus and Probability are in high demand right now. They're the building blocks for Machine Learning.

<comment><USER19> I'd question this. These things might be trending in mind share. And companies looking to hire people with these skills might have somewhat of a shortage. But I'm not sure they are actually in high demand.

It's easy to forget on HN that 90% of tech jobs are in 'dull' bread and butter languages used in enterprises, and nothing to do with the latest trends.

I think the stack overflow jobs stats linked elsewhere in this thread says it all... Java, JavaScript, Python are the most in demand languages right now. Tensorflow doesn't even show up on their list of popular tools.

<comment><USER20> SQL has been up there for the last 20 years. I doubt its going away any time soon either.

</comment></comment></comment><comment><USER21> Kubernetes, not a stack per say but increasingly important and worth understanding.

</comment><comment><USER22> Verilog and VHDL, and related software suite; Quartus, ISE, Vivado, etc.

</comment><comment><USER23> PHP, believe it or not there's huge demand

</comment><comment><USER24> This awesome new framework called PlainJS :)

Really efficient some say :)

<comment><USER25> Absolutely not - very hard to get hired in any senior capability if that's all you know

</comment></comment><comment><USER26> Bash and sql, because it's what really keeps things running, despite constant claims by hipster-hackers about how you should be using something else.

Real IDE usage (vim/emacs).

<comment><USER27> Bash may keep things running, but how many developers need to know it? In my limited experience, maybe 10%, and even they barely use it. It's just for writing some bits of the infrastructure, which is then calcified for years.

<comment><USER11> I'm always really impressed when I check out the source of a bash program that I use, and part of me wishes I could be at that level, but really I'm more likely to use python for any non-trivial cli scripting. It's more that sufficient for everything I've had to do so far, and python skills have much wider applications beyond just scripting.</comment></comment></comment>


Understand, Design, Build: A Framework for Problem-Solving - <AUTHOR> https://lob.com/blog/understand-design-build-a-framework-for-problem-solving <comment><USER2> Reminds me of this incredible chart / graph which you can use to apply to a lot of situations. I actively refer to this and show it to teams constantly. The gist of it is that you require many skills and capabilities to create alignment. Without that, you have different outcomes which we may initially experience as frustration / failure.

[https://intenseminimalism.com/2015/a-framework-for- thinking-...](https://intenseminimalism.com/2015/a-framework-for-thinking- about-systems-change/)

<comment><USER3> thanks for sharing, pretty sure that is a post I will come back to often

</comment></comment><comment><USER4> There's a methodology of teaching programming focused on understanding and designing programs.

It's in the book (available online for free) called How to Design Programs: [https://www.htdp.org](https://www.htdp.org)

It introduces the notion of a "design recipe" for structuring thinking and problem-solving for programming.

</comment><comment><USER5> This framework is good. And like the other frameworks in other comments here, it's a good enough start in a small company, start up, or small department within a larger organisation.

A better framework might be cobbled together from various disciplines. For instance, "Understand". This part is huge. Well, bigger than those three questions the author lists.

"Understanding" begins by stepping back to look at the environment as a whole. Bound the situation. Assess organisational culture, the environment (immutable aspects of a transformation/process), the organisation's technology landscape (Active Directory?), regulatory requirements, competition, suppliers and customers.

There's also the social system (roles, norms, values), and the political landscape.

Then you define your objective. But before you can do that you need to know who your client is. Sure, in SV that's often easy. Outside that bubble not so much. Identify the client by asking some questions - whom do you need to satisfy? Who will judge the success of the project? Who will fail if the project fails? Who has authority for the project? Who pays for the project? Whom do you report to?

After all that you're ready to set an objective. Vision/scope stuff. Specific, measurable, attainable, realistic and time-boxed. Cliche'd, but when a project goes wrong the specification is the only version of the truth a team has to fall back on.

Setting project objectives is much bigger than I can do justice to here. However once you have that you can start with the fun stuff. Design, build, deploy, repeat until done.

However while you're doing the fun stuff you still have to do the unfun stuff too - risk management, and stakeholder management. And it's stupefyingly incredible how many people think they know how to do these things but can't readily explain the difference between mitigation and contingency, exposure and impact, or why you have to be nice to the CIO for your project to succeed, even though the CTO and CEO are on your side.

I've written about all this stuff. [https://www.wittenburg.co.uk/Entry.aspx?id=8ec91ced-b3a4-4b0...](https://www.wittenburg.co.uk/Entry.aspx?id=8ec91ced-b3a4-4b07-bf91-17f0efda1718)

<comment><USER6> I think you've just nicely summarised why architects & project managers exist! There's a whole level of treacle to get through before coding can start, and that stays with the project throughout its lifespan.

The challenge I see most is getting the right level of understanding and design freedom to the developer level, where they know why they're being asked to do some work but without burdening them with extraneous detail or processes.

A lot of developers get annoyed at project managers and architects but they dislike project politics even more.

<comment><USER5> " _A lot of developers get annoyed at project managers and architects..._ "

If a PM or architect is annoying developers then there's a very big problem with the PM or architect. Like any profession you get good and bad apples. It's why anonymous feedback from people who manage you and whom you manage is so useful. Of course ego is prevalent the higher up the chain you go so this is something many organizations won't do.

</comment></comment></comment><comment><USER7> Yeah, usually the hardest problem is to define the problem, or even know that there exists a problem that could be solved. Once you have discovered, understood and defined your problem, solving it becomes easy.

<comment><USER8> That's why "vision" is important.

I've seen too many companies tries to be the "next Apple" or "Next Google". I mean come on that's not a vision. Google's vision was to organize human knowledge. That's a god damn good one.

</comment></comment><comment><USER9> A more thorough framework to solve problems might come from being familiar with all of the available problem solving techniques in your domain. For instance, if your job is software development, you may want to know all of the problem solving techniques in computer science. Now is the point that I will be a shill for my own book: [https://www.manning.com/books/classic-computer- science-probl...](https://www.manning.com/books/classic-computer-science- problems-in-python)

<comment><USER10> Your book in swift with the same title is awesome as well.

<comment><USER9> Thanks for the shoutout!

</comment></comment></comment><comment><USER11> > common misconception among new software professionals that the best > engineers are the best at writing code

> Our job is to find and solve problems that move the business forward.

Couldn't agree more. Would also add that this "best dev==best at coding" ain't only restricted to the young ones. Never stop asking theses "why" questions that sometimes show us that crappy and cheap systems may work wonders ;)

</comment><comment><USER12> These are very important steps to creating something, but there's not really anything new here.

This is basically a simplified version of the design thinking framework with the implied "build" step at the end made explicit.

For example, the process that has been taught at Stanford for years is: empathize, define, ideate, prototype, test. The first two steps could map to "understand" here with the last three falling among "design" and "build" depending on the fidelity of your prototype.

PDF link to an overview from Stanford: [https://dschool- old.stanford.edu/sandbox/groups/designresour...](https://dschool- old.stanford.edu/sandbox/groups/designresources/wiki/36873/attachments/74b3d/ModeGuideBOOTCAMP2010L.pdf)

</comment><comment><USER13> This is an adaptation of Design Thinking which designers have used for years. It's found in Human centered Design, Design Sprints, Jobs To Be Done... and others.

I've seen lots of projects fail, cost way over budget, take years longer than projected (personal recorded: I paid a developer to write me - his estimate - a 6 week project. 8 years later he returned my money), and/or completely miss the target because Dev jumps right in and starts coding - not being concerned with the "soft" stuff like business, usability, experience design, etc...

If this helps dev teams join the holistic effort to success, I'm all for it. I entirely agree that coders need to be problem solvers but also solvers of _relevant_ problems.

</comment><comment><USER14> Good talk on this subject:

Hammock Driven Development [https://youtu.be/f84n5oFoZBc](https://youtu.be/f84n5oFoZBc)

</comment><comment><USER15> "But our job isn't to write code. Our job is to find and solve problems that move the business forward. Writing great code is a necessary but insufficient skill for doing that job."

If only more / most people understood this. Coding has a finite use. Problem solving (and critical thinking) are universal and possible uses approach infinity. They are the equivalent of the proverbial "learning to fish."

</comment><comment><USER16> Well written content. However, I am not sure if thoroughly complete. The whole article covers areas of shortcomings related to understanding the problem, designing the structure and building it. But fails to address "upgrading current solution" or "optimizing the current solutions" that suits the current market needs.

<comment><USER12> > However, I am not sure if thoroughly complete.

Of course a 1,000 word web article is not going to be complete. There are dozens of books you can check out for more info, including from Tim Brown CEO of IDEO [1] and from Columbia Business School

[1] [https://www.amazon.com/Change-Design-Transforms- Organization...](https://www.amazon.com/Change-Design-Transforms- Organizations-Innovation-ebook/dp/B002PEP4EG) [2] [https://www.amazon.com/Solving-Problems-Design-Thinking- Publ...](https://www.amazon.com/Solving-Problems-Design-Thinking- Publishing/dp/0231163568/)

</comment></comment><comment><USER17> Is... is this waterfall?

<comment><USER12> I don't know about this author's intention, but in general with design thinking frameworks, the idea is not that each step must be followed rigidly in order and never re-visited. It's more about calling attention to the importance of each part of the framework. Once you know all the inputs needed for creating a great product, you can seamlessly move back and forth among the phases, iterating until you're arrived at the solution.

<comment><USER18> I agree. In waterfall, you close the 'design door' behind you when you go into implementation. There is nothing wrong with taking a phased approach as long as you keep that door open for the inevitable changes you discover while implementing.

In fact, that's the way it should be. There is no human endeavor that does not benefit from an understanding of how something should be done, before it is attempted. I'm not sure why some seem to feel that software engineering is somehow special in this regard. I can't count the number of times we have had people shout down attempts at serious engineering design, often by using the term "waterfall" in a derogatory manner.</comment></comment></comment>


How has online learning changed Education? - <AUTHOR> http://edudemic.com/2011/06/online-learning/

<comment><USER2> All the submitted blog post does is reproduce the industry-supplied infographic, without establishing any context.

To me, the interesting application of online learning is not in higher education, the focus of the infographic, but rather in K-12 education, where there is far less competition among providers. Online learning and other forms of distance education can allow bright learners in underperforming schools to take supplemental classes in mathematics (a huge market for online courses), computer programming, English vocabulary, and even more interactive subjects such as humanities and lab sciences. That lets young learners learn more faster. That has been a great help for my children as they develop their skill sets for the twenty-first century.

Here are links to some K-12 providers of online classes:

<http://cty.jhu.edu/ctyonline/>

<http://www.ctd.northwestern.edu/gll/>

<http://epgy.stanford.edu/>

<http://www.aleks.com/>

This list is far from exhaustive, but includes providers my family has used or is now using.

</comment><comment><USER3> I know from personal experience spending my 10th and 11th grade years doing public online school that you can literally cheat your whole way through, not get caught, and come away learning nothing. Take it how you want it. And now I work at a startup, so im ok but I worry about all the other kids.

<comment><AUTHOR> It depends on what you understand as not get caught. I believe that the problem is not about online learning but on knowledge assessment and certification. There is were actually is necessary some disruption, that somehow you diplomas are based on proved skills and knowledge.</comment></comment>


Where in the U.S. will you find the most "pleasant" days in a year? - <AUTHOR> http://www.kellegous.com/j/2014/02/03/pleasant-places/

<comment><USER2> You should take into account humidity, seeing as the best humidity level at say 80ºF or even 70ºF is _very_ much more pleasant than the worst.

Also, IMO your minimum temperature criterion is probably a mistake. Nobody cares that it's a little chilly at 4am, and meanwhile you're selecting for more humid climates (because those have less diurnal variation).

If you wanted to make the selection criteria user-adjustable, though, I'd be really interested to see the results. (Also, nice job on the visualization, discretizing every grid square to a town is particularly cute.)

</comment><comment><USER3> Neat.

I was looking back at my last few years of utility bills recently and noticed that May (Avg: 60F) and October (Avg: 62F) are apparently the only months of the year where I don't feel a need to heat or cool the house.

If this were adjustable I'd be looking for the place with the most 60° days per year.</comment>


South Koreans fake their funerals for life lessons - <AUTHOR> https://www.reuters.com/article/us-southkorea-livingfunerals/dying-for-a-better-life-south-koreans-fake-their-funerals-for-life-lessons-idUSKBN1XG038 <comment><USER2> Which reminds me of Ben X. Quoting Wikipedia [1]

(SPOILER on bottom of post.)

> Ben X is a 2007 Belgian-Dutch drama film based on the novel Nothing Was All > He Said (Dutch: Niets Was Alles Wat Hij Zei) by Nic Balthazar, who also > directed the film.[4] The film is about a boy with Asperger syndrome (played > by Greg Timmermans) who retreats into the fantasy world of the MMORPG > ArchLord to escape bullying. The film's title is a reference to the leet > version of the Dutch phrase "(ik) ben niks", meaning "(I) am nothing".

> The novel was inspired by the true story of a boy with autism who committed > suicide because of bullying

There is also a Swedish remake (2013):

> Erik Leijonborg adapted the film into a Swedish-language remake, IRL.

[SPOILER]The reason it reminds me of that movie, is because Ben's death is faked to teach his bullies a (life) lesson.[/SPOILER]

Back when I watched it (it hit a spot), I did not play either MMORPGs nor did I know I had autism. Now I know I have autism, and I played MMORPGs.

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

<comment><USER3> Reminded me of the futurama episode of Benders fake funeral.

</comment></comment><comment><USER4> _Let us prepare our minds as if we'd come to the very end of life. Let us postpone nothing. Let us balance life's books each day.

The one who puts the finishing touches on their life each day is never short of time._

Seneca

<comment><USER5> I get frustrated with this attitude which assumes everyone is in a position to do these things.

I've lost many years of my life to physical disability, and pretty well all of my life due to mental problems which mess up my ability to deal with people[0], and without relationships you are nothing.

Reading this feels like someone telling others to "eat, drink and be merry", when those others are have no food or water - but the merry advice-giver has plenty, so what's the problem.

I'd never take away from someone else what I never had and likely never will, but frankly I wish more fortunate people would stop dishing out their insensitive, thoughtless advice.

[0] blah blah poor me with my sob story. Shit happens.

<comment><USER6> I don't think he's advising people to have some fun while it lasts or something like that. I think this specific quote, out of context, may be read like that, but I think the point is actually to ignore trivialities, such as "eat, drink and be merry" and instead prepare for death by focusing on what is important, like having a clear conscience and living a virtuous life. I think it's virtue that he advises we should not postpone- don't leave being a virtuous person for later, because detah may come at any moment, is my reading.

</comment></comment></comment><comment><USER7> I saw a documentary on this.

The long short is "faking their deaths" doesn't mean what we normally think it means. Its more of a therapy tactic for depressed/suicidal people where they get to go through with it. They write goodbye notes, have a funeral, even get put in a coffin for a few hours.

I don't know if it works but it seems promising.

<comment><USER8> "Faking" is the wrong word then -- more like "emulating".

<comment><USER9> The article itself makes it clear and calls it "simulating death"

<comment><USER10> I grew up in a rather small community on the northwestern coast of Norway, home to a lot of small-time fishermen working up in the Arctic.

Just about everyone my age and older still remember when a vessel was lost back in the eighties, initial reports were all hands lost - until suddenly, a week and a half later, the fisherman we'd all mourned for the past days came home, puzzled as to the sensation his appearance made - he and a couple others had been picked up off a liferaft, and Canadian authorities had misspelled his name when notifying their Norwegian counterparts there were survivors after all - so his family had not been notified.

Allegedly, his father's first words upon seeing him was 'F[---] me, did I just die, or is it you who've not died after all?'

Magne is one of the few people I know who've had the pleasure of reading his own obituary.

</comment></comment></comment></comment><comment><USER11> This is actually funny to me because as a child I fondly remember playing "Funeral" as one of our games.

The game consisted of players taking turns lying very still and dead in some kind of coffin or just on the floor. Then everyone else takes turns going up to your dead body and saying last words about what a good friend you were or maybe you were an ass and the world is better off without you or absolutely whatever you wanted to say, sometimes funny and sometimes true. Then maybe you throw some "flower" or something and the next kid takes a turn.

When everybody has spoke their thoughts you're covered with blankets or pillows or whatever we had and you experience just being dead and buried, until you get bored then you get up and it's someone else's turn to die.

I don't know why we played such a morbid game as kids but there you go. Maybe it's why I'm so cynical and nihilist as a grown up.

<comment><USER12> That reminds me of this scene from Better Things: [https://www.youtube.com/watch?v=Bf_hk8ln2pA](https://www.youtube.com/watch?v=Bf_hk8ln2pA)

</comment></comment><comment><USER13> This is fascinating. It reminds me of a line from Hamilton: "I imagine death so much it feels more like a memory". Lin-Manual Miranda has said that was the most auto biographical thing he's ever written and that he thinks his drive and positivity both come from that attitude.

I wonder if there's an easy way to replicate the exercise yourself. Perhaps every month write a letter to be read out at your funeral? One idea I had years ago but never did was to make a short video for my funeral every year where I shared my thoughts, fears and hopes and where I was in life. The idea was I could look back in future and see how far I'd come, but that it would also be useful exercise at the time.

<comment><USER14> I'm also a big fan of reading out my favourite quotes. If you're not sure what to say for your funeral then try to imagine yourself saying them, what do they say and where would you want them read out? A bit like a funeral speech, but a little more personal.

</comment></comment><comment><USER15> As part of many meditation process and spiritual practices in Hinduism and Budhism, visualization of your own death is very common. And it is usually called Death Mediation which is designed to teach you the impermanence of the our own existence and true nature of the World.

</comment><comment><USER16> [https://en.wikipedia.org/wiki/Memento_mori](https://en.wikipedia.org/wiki/Memento_mori)

</comment><comment><USER17> _" The thought of suicide is a great consolation: by means of it one gets through many a dark night."_

Nietzsche

<comment><USER18> > I would feel real trapped in this life if I didn't know I could commit > suicide at any time.

\--Dr. Hunter S. Thompson

</comment></comment><comment><USER19> Avoid the use of social media for a month or more and it will have the same effect. Well, not exactly the same effect, but it will feel like you are observing and interacting with the world like a ghost would.

<comment><USER20> How?

</comment></comment><comment><USER21> I have participated in a similar ritual, not as the buried, but as one of those doing the burying. The impact on everyone present was profound.

Thanks for the reminder -- it is a timely moment to revisit those lessons.

</comment><comment><USER22> This has been an enjoyable, cathartic thread to read. I really vibe with the "memento mori" concept.

One thing I'll add that I ran across is a short discussion between David Lynch and Harry Dean Stanton discussing life, and "how they want to be remembered"

[https://twitter.com/nickusen/status/1190238682713862144](https://twitter.com/nickusen/status/1190238682713862144)

</comment><comment><USER23> There's also symbolic death in Christian baptism.

Part of the human condition is underlying curiosity about death.

</comment><comment><USER24> Jim Jefferies did a nice on-the-premises comedy bit on this, it lets you see everything involved with it.

[https://www.youtube.com/watch?v=O7kJmX9o8-E](https://www.youtube.com/watch?v=O7kJmX9o8-E)

</comment><comment><USER25> Does anyone remember the article about a Buddhist monk who emulates suicide to heal the patients. It was on HN a while back but I can't find it.

</comment><comment><USER26> Alan Watts talked about how one should consider their own death every so often in his lectures. I think he would approve.

</comment><comment><USER27> This is a step above but I use an app that reminds me daily I will die.

<comment><USER28> Seems like something a twitter account could solve.

</comment></comment><comment><USER29> Great advertisement. If they like the company's service alive, they are more likely to use them when they are dead.</comment>


Never Hire An MBA - <AUTHOR> http://www.productivity501.com/never-hire-an-mba/7918/ <comment><USER2> I wouldn't go all the way and say that you should never hire an MBA, but the article does raise some good points. I think the degree itself can be valuable, but not if it keeps you from getting real world experience. There are thousands of idiots with MBAs just like there are a ton of idiots with no education at all. The MBA will only magnify what you already have. An idiot with an MBA will just be a bigger idiot. An intelligent person with an MBA will just be smarter and have more knowledge. School isn't going to teach someone how to be intelligent--they were never meant to teach this and couldn't do it if they tried. College can only help you use what you already have.</comment>


Graceful Upgrade of Internet Services - <AUTHOR> http://fare.livejournal.com/156037.html

<comment><USER2> Some alternatives: Throw nginx (for HTTP) or HAProxy in front of your services, or use LinuxVirtualServer.</comment>


Istanbul: A JavaScript code coverage tool written in JS - <AUTHOR> http://gotwarlost.github.io/istanbul/

<comment><USER2> I'm a fan of mocha + blanket for coverage: [https://github.com/alex- seville/blanket](https://github.com/alex-seville/blanket)

The mocha integration is incredibly easy:

        mocha --require blanket -R html-cov # for html output

</comment><comment><USER3> This is a brilliant tool for those of us who test JavaScript. A bit of a hack, but it seems to work.

It's also a reason why browsers should allow some sort of tracing API for JavaScript. I know V8 and Firefox do not expose the interface because they couldn't think of a decent enough use case to justify exposing the surface area of this code. This is the use case.

</comment><comment> martin-adams In case it's useful for anyone, here is a gist of a gulpfile I use to use Istanbul to instrument my Node.js app, then run tests with Mocha and output the results:

[https://gist.github.com/medatech/76c6017cf55630b2db08](https://gist.github.com/medatech/76c6017cf55630b2db08)

<comment><USER4> or you could just write it as a single CLI command: [https://github.com/strongloop/express/blob/master/package.js...](https://github.com/strongloop/express/blob/master/package.json#L79)

</comment></comment><comment><USER5> Ah that reminds me I wrote a coverage server for istanbul in node.js. It allows testem to send coverage statics across mutliple tests/runs to reported on. It's part of a whole test running package that I'm working on open sourcing that will allow testem (which is a great test runner if you don't mind running all of your tests in one big session) to run multiple suites of tests. For instance if you have a order app and an client management app and you want separate test runs to avoid any namespace collisions the project allows you to define handlebars based templates to define your suites and run each suite with testem one at a time. Anyway here is a gist of the coverage server if it's useful to anyone: [https://gist.github.com/jaegerpicker/95c3900426d55eb9b857](https://gist.github.com/jaegerpicker/95c3900426d55eb9b857)

</comment><comment><USER6> I use this all the time. This is the command I use for coverage with mocha:

./node_modules/istanbul/lib/cli.js cover -- ./node_modules/mocha/bin/_mocha -R spec

Always in my Makefile as make test-cov

</comment><comment><USER7> Great tool, perfectly fits to the node.js ecosystem, lightweight and fast.

However in case you use co-mocha[1] to test your generators, istanbul won't work properly, the generators in the reports are shown as uncovered. Therefore I made a mocha fork[2] and directly applied the changes from co-mocha to the source (instead of monkey patching); it solved the problem.

[1] [https://github.com/blakeembrey/co- mocha](https://github.com/blakeembrey/co-mocha) [2] [https://github.com/tfitos/mocha](https://github.com/tfitos/mocha)

</comment><comment><USER8> For rails projects, if you use the teaspoon gem as test runner ([https://github.com/modeset/teaspoon](https://github.com/modeset/teaspoon)), then you can easily get istanbul based coverage reports as well. It's a good way to see which paths your js tests take in a large project and pinpoint untested code.

</comment><comment><USER9> Istanbul has been a godsend for my company's JS-based projects. When paired with grunt-contrib-jasmine, it gives instant visibility into how much of the client-side app is actually under test, and gives everyone an incentive to keep improving coverage.

</comment><comment><USER10> Why did you name it Istanbul?

<comment><USER11> > Why the funky name?

> Since all the good ones are taken. Comes from the loose association of ideas > across coverage, carpet-area coverage, the country that makes good carpets > and so on...

[https://github.com/gotwarlost/istanbul#why-the-funky- name](https://github.com/gotwarlost/istanbul#why-the-funky-name)

<comment><USER12> It made me think of the Neil Simon song.

</comment></comment></comment><comment><USER13> i have some projects where the meat is in a cross domain connector. no way to test it in units. only functional test in real browsers cut it. otherwise it's just red tape testing.

there is zero coverage tool for this case, until browsers wake up and give me a decent Dev api like opera 12 allowed

</comment><comment><USER14> sample LCOA Report links is broken, [http://gotwarlost.github.io/istanbul/public/coverage/std- lco...](http://gotwarlost.github.io/istanbul/public/coverage/std- lcov/index.html)

</comment><comment><USER15> Wasn't this project originally called "Constantinople"?

<comment><USER16> Surely, the question you mean to ask is if it was _originally_ called "Byzantium".

</comment></comment><comment><USER17> why is this popping up now? its quite an old project at this point.</comment>


XMR mining app, built with Vue.js, D3 and CoinHive - <AUTHOR> https://github.com/bradoyler/xmr-miner <comment><USER2> This is really cool. I didn't know about CoinHive. It looks like it's a sort of profit sharing setup with CoinHive, who provides all the technical bits.

Another option is to build your own. I published one of the more unapproachable aspects, which is an Emscripten-compiled implementation of the Cryptonight hash function [0]. One could slap a basic WebSocket proxy on top of existing mining server, and the adding the coordination logic in Javascript in the client.

[0]: [https://github.com/noahdesu/xmonarch](https://github.com/noahdesu/xmonarch)

<comment><AUTHOR> TY. Will take a look.

</comment></comment><comment><USER3> Does the value of XMR mined exceed the electricity consumed by the app?

There are already malicious websites using hidden windows to mine XMR, but to the benefit of the person in control of the site rather than the people who pay the electricity bills:

[https://arstechnica.com/information- technology/2017/11/sneak...](https://arstechnica.com/information- technology/2017/11/sneakier-more-persistent-drive-by-cryptomining-comes-to-a- browser-near-you/)

<comment><USER4> In general, any PoW-cryptocoin quickly reaches an equilibrium with its costs. Changes in the difficulty, changes in the exchange rate (usually as a function of changing demand), changes in availability of current/next-generation mining hardware will destabilize this equilibrium temporarily.

The answer to the question "should I mine [coin x]" in order to make money is usually "no". You should mine that coin because you care about the network's security and decentralization or not at all. If you have access to next- generation mining hardware or cheaper-than-normal electricity, you might have a case for "yes". Or, as you indicate, if you have a malicious way to run the miner or mostly-malicious-"not-too-clearly-disclosed-to-end-user", that is almost certain to make money.

<comment><USER5> That's not necessarily true, assuming you believe the value of what you're mining will at some point in the future be worth more than it is now. I mined some Ethereum earlier in the year, and was making around $6 AUD a day.

I stopped as I was unhappy with the effects of proof of work on electricity supply and the wear on my GPU, but the amount I mined at current market price is worth around 3x that, making it quite a bit more profitable.

Of course, if you believe the value will increase at some future point you're most likely better off just buying the coin and hodling it :)

<comment><USER6> If the cost exceeds the value of what you're mining, you're always better off putting that money directly into purchasing the cryptocoin instead.

Option 1: Spend $10 to mine $5 worth of BTC

Option 2: Spend $10 to obtain $10 worth of BTC

If the market goes up, you are better served by the latter option.

<comment><USER7> More like spend $500 for a graphics card and end up with a graphics card and $2000 in bitcoin

<comment><USER8> Nevermind the hardware, the electricity to run the hardware costs more than the coin generated.

<comment><USER7> Maybe for XMR but not in general

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> It is not a 'mining app' but a front-end nobody needs.

Is there any coinhive alternative? That would be a progress.

<comment><USER10> Are there any that let me specify what percentage to give to the devs?

<comment><USER11> [https://github.com/fireice-uk/xmr-stak](https://github.com/fireice-uk/xmr- stak)

</comment></comment></comment><comment><USER12> Wouldn't a user mining for themselves use a desktop program miner? Coinhive has the overhead of running in a browser and takes 30% of the haul.

<comment><USER13> There are ways to connect the miner to other pools, a desktop miner would be more effective.

[https://github.com/cazala/coin-hive-stratum](https://github.com/cazala/coin- hive-stratum)

</comment></comment><comment><AUTHOR> Thx y'all. Im getting about 500 H/s right now.

<comment><USER14> hardware?

<comment><USER15> It's from folks visiting his site. (Linked.)

</comment></comment></comment><comment><USER16> This is giving me major idle/incremental game vibes. This could so easily be converted into an interesting incremental experience.

<comment><USER17> So this is how paperclips makes their moolah... ^_^

<comment><USER18> This one? [http://www.decisionproblem.com/paperclips/index2.html](http://www.decisionproblem.com/paperclips/index2.html)

</comment></comment></comment><comment><USER19> Funny side question. Is there any crypto currency that it's worth mining as a non consortium these days? I used to do bitcoin way back in the day but I'm curious if any of the other currencies are worth enough to make it worthwhile.

</comment><comment><USER20> monero is where it's at imho

<comment><USER21> ... especially if Coinbase decides to add XMR as their 4th menu item

<comment><USER22> Seems like an odd choice. It's specifically a privacy coin, not meant to be centralized.

<comment><USER23> Adding a fiat on/off ramp doesn't make a coin centralized.

As for privacy, that's okay too. Once you send Monero to your own wallet, Coinbase has no idea what you do with it afterwards, just like withdrawing cash from a bank.

</comment></comment></comment></comment><comment><USER24> I hope at your day job, if you are a programmer at all, you don't write commit messages like the ones in the repo.

<comment><AUTHOR> Yes, i do. And we're hiring!</comment></comment>


11foot8 bridge - <AUTHOR> http://11foot8.com <comment><USER2> Way way way too much unnecessary footage in the videos. I don't want to watch 10 seconds of nothing before the vehicle is even in frame.</comment>


Petabyte-Scale Data Pipelines with Docker, Luigi and Elastic Spot Instances - <AUTHOR> http://tech.adroll.com/blog/data/2015/09/22/data-pipelines-docker.html <comment><USER2> Cool stuff. Curious to know what systems these containerized tasks are pulling data from. Does adroll consider let those containers access production database instances? Or are they backed by non-production systems? (EDIT: I understand that it's S3 for intermediate steps. But I'm curious where the data comes from initially.)

<comment><AUTHOR> We have a few cases of containers pulling (meta)data from databases. We use Postgres on RDS, so setting up a read-replica is very easy. Containers can safely access these replicas.

Raw data is collected by our bidders and adservers that push data to S3 and Kinesis for real time consumers ([http://tech.adroll.com/blog/data/2015/06/26/kinesis.html](http://tech.adroll.com/blog/data/2015/06/26/kinesis.html))

</comment></comment><comment><USER3> Interesting, we're doing similar things with Spark, Cassandra and Mesos. By scaling out Mesos with spot instances for its agents.

</comment><comment><USER4> What are you using for scheduling your jobs?

<comment><USER5> We wrote our own scheduler, called Quentin, which we may opensource. Essentially it is a simple queue that takes care of running containers and managing pools of instances that containers run on by integrating with AWS autoscaling.

It is a very straightforward service, for example it doesn't do retries (done by Luigi), it is not highly available and not distributed. That makes things much easier to maintain, and we don't need HA since jobs inputs/outputs are in S3 anyway. Luigi makes it easy to restart parts of the pipeline if scheduler ever goes down.</comment></comment>


Blocking I/O: it's not just for pansies - <AUTHOR> http://paultyma.blogspot.com/2008/03/writing-java-multithreaded-servers.html

<comment><USER2> About the title, "Blocking I/O: it's not just for pansies".

Whether the title wording is ironic or sincere -- and I'm guessing it's used jokingly -- using it presumes a very specific shared outlook with the reader that is, likely as not, wrong. Certainly wrong in my case.

I'm not claiming the title is homophobic. I claim it's distracting to some portion of readers and serves to introduce the actual content of the linked submission poorly. The submission title does not nearly reflect the attitude or writing in the actual linked post which is, in comparison: specific, technical, and non-abrasive.

<comment><USER3> Relax. It's just a title. Let's talk about the article which (even though from 2008) is actually interesting.

<comment><USER4> It's also unashamedly biased. I'd take it all with a massive dose of salt.

</comment></comment></comment><comment><USER5> Important to remember that we're talking about threads and IO in one specific VM case, etc. The same assumptions won't necessarily hold in, for example, a .NET case, as the memory cost of a thread is more significant (in some qualified cases).

Fundamentally, most of these points have so many caveats were you to want to extrapolate them to general programming technique, that you're much better off simply saying "benchmark your actual cases and try the alternatives".

<comment><USER6> With both Sun JVM 1.6 and .NET, on Windows x64 you get by default a 1MB stack per thread.

</comment></comment><comment><USER7> Also, programming in C, it's very easy use thread-per-connection model especially if synchronization is not necessary. If you want a pool of threads it gets a bit more complex, but if you always spin up a new thread for each connection, it's easy as pie (and in my case doesn't matter since the time spent creating a new thread is negligible compared to the amount of time it'll spend doing useful work).

<comment><USER8> If you want to keep the easy thread-per-connection model even with 1M connections you might have a look at Erlang - it takes the best of both worlds (threads and async IO) via its processes (so you get a process-per- connection). I read somewhere that the overhead of a process is just about 300 bytes.

</comment></comment><comment><USER9> I realize there are lots of special cases and exceptions to what I'm about to say but I've come to 2 good general rules of thumb when it comes to designing concurrency:

1\. _prefer processes over threads_ \-- because your architecture can scale horizontally across multiple boxes easier, because you become free to write each piece in a different language, and because mutable shared memory is problematic in very subtle, counter-intuitive ways

2\. _prefer events over processes or threads_ \-- because you can handle much higher concurrent IO traffic on a single machine, due in part to reduced memory use

</comment><comment><USER10> I've found similar results to those stated in the article. In my case I found that the Tomcat Http11NIO connector was actually slower than the default Http11 connector. In benchmarking my server I found the default Http11 had about 20% higher throughput than Http11NIO. From what I understand (and I may be wrong since I didn't delve to deep), but it is because there is a high cost when using methods accessed through the Java Native Interface (JNI)

</comment><comment><USER11> Couple of things:

1) Recent versions of the 1.6 JDK will use epoll on Linux. Thus the benchmark should be re-evaluated. poll() is known to not very scalable. There is an issue, however: NIO only supports level triggered (not edge triggered) epoll.

2) This doesn't cover the case of threadpool starvation. I.e., there are multiple connections, some are very fast, some are very slow.

Prime example of this would be a client for a WAN-distributed database or a WAN-distributed file system: most operations are local (5 ms), some operations are remote (80 ms). Remotes are lingering longer and longer in a fixed size threadpool, leaving less and less space in the threadpool causing a longer wait time for incoming operations. You can even have this without WAN distribution e.g., 80% of operations require no random disk seeks (are retrieved from cache), 20% require them (orders of magnitude slower operation even with elevator scheduling).

</comment><comment><USER12> Depends on what you're doing. I read that article a couple years ago and thought "Take that you libevent C zealots." And while I still firmly believe that the JVM is optimized and mature enough to hold its own against platforms that have traditionally been considered faster, I still think there are cases where event-based I/O will out-perform thread-per-request. For instance, if most of what you're doing is shuttling bytes back and forth (like in a proxy). I also wouldn't be surprised if a thread-per-request app took a bigger hit when virtualized (like EC2) than an event-based app.

<comment><USER13> If you start a thread for each request in Java, you can easily run out of memory when serving large number of connections. This is because Java uses kernel threads, and the stack of threads are allocated from heap when created, usually around the size of 1MB.

This means that you will need around 10GB of memory when serving 10000 request, while an event based app can serve the same amount of requests with minimal memory.

You also have to take into account that thread creation and context switching is really an expensive operation (contrary what the OP is saying), so the thread-per-request app is adequate only for serving small number of requests but for large numbers you will need to use the event-based approach.

You might get along with a threadpool based approach, but take into account that if your protocol is not stateless, then you will need shared state which means you have to use concurrent data structures, which might complicate code.

</comment></comment><comment><USER14> This post is over 2 years old. Seems likely that the world has changed at least a bit since posted (slow things tend to get optimized).

</comment><comment><USER15> As a side note, I really enjoyed attending the SD West conferences in the past. Alas, it has morphed into something focused on Cloud Computing and lost it's platform independent focus.

</comment><comment><USER16> interesting stuff. it also gave me that weird feeling when one thing or person you've never heard of before crops up in several places in on day, as just an hour ago i was reading this: [http://www.azulsystems.com/events/javaone_2002/microbenchmar...](http://www.azulsystems.com/events/javaone_2002/microbenchmarks.pdf)</comment>


Facebook Places Will Crush Foursquare - <AUTHOR> http://www.pcmag.com/article2/0,2817,2368011,00.asp

<comment><USER2> While I'm no 4sq/gowalla fanboy, to say that Facebook pwns all location based checkins, and "that's a wrap" is a bit premature. Facebook also hosts photos and has made it incredibly easy to upload them, tag them, and share them. However, it is absolutely no replacement for Flickr. Flickr does it better, and continually makes it better.

Foursquare and its contemporaries are very clever on how they get users to use their service. Foursquare has opened up APIs to keep it simple, and their user actions are already syndicated to the Facebook/Twitter. Foursquare has built game and reward mechanics that are genuinely engaging.

My newest startup is in the events/activities space. Facebook also has an events app/module, and it's second rate and barely scratches the surface on both the consumer and provider end of events. I fully plan on leveraging Facebook events to compliment my product. It doesn't have me running for the hills.

This is herd journalism.. the demise of [x] because [Y] has entered the market.

<comment><USER3> >However, it is absolutely no replacement for Flickr. Flickr does it better, and continually makes it better.

To an extent, you're correct about this. There are large numbers of people for whom Facebook is no replacement for Flickr. However, I, and many others have not posted a picture to Flickr for years (I once had a pro account event), because posting a picture to Facebook seems to be the easiest way to share it with everyone I care about.

But yes, calling the end of Foursquare is a bit premature. It does raise interesting points, however.

</comment></comment><comment><USER4> _I'm always shocked when people on the witness stand recall with crystal clarity what happened on a night two years ago. You know some of that is made up. Facebook Places would certainly take the guesswork out of such things._

The impact of location-based services on the legal system reminds me that the root meaning of "alibi" (in the Latin) is "elsewhere" (from the broad idea of "other there," _ibi_ being the Latin word meaning "there").

This to me is a somewhat creepy reminder that modern technology does not necessarily mean unalloyed progress. With the good comes the bad, and the bad here is a long-term trend by which people can be traced more and more easily in where they are and what they do. In the right hands (true friends), this can be great; in the wrong hands, maybe not so good.

<comment><USER5> Well said. I wonder how vulnerable this system would be to griefing.

I can just picture people being as annoying about posting your status at places your not as tagging you in collages of their favorite ponies.

</comment></comment><comment><USER6> In February, this same publication declared, "Google's Buzz Puts Facebook, Twitter On Notice": <http://www.pcmag.com/article2/0,2817,2359017,00.asp>

I'm detecting a pattern.

<comment><USER7> The source article's headline is declaring the war already over.

The article (with a tamer headline) you cited is summarized quite well by the author towards the end with this statement "My gut gives it a 50-50 chance". Not exactly the same type of statement as the former.

</comment></comment><comment><USER8> People put up with Twitter and Foursqure updates because you choose whom to follow. Facebook relationships are reciprocal so I'll get flooded with Facebook places updates from my aunts going to church even though I'd never actively choose to follow them on a site like Twitter.

It reminds me of the Achewood blog post where Roast Beef relates a conversation with Ray where Ray thinks McDonalds starting to sell fancy coffee will put Starbucks out of business. [http://rbeef.blogspot.com/2008/01/mcdonalds-vs-starbucks- vs-...](http://rbeef.blogspot.com/2008/01/mcdonalds-vs-starbucks-vs-ray-vs- me.html)

<comment><USER9> I'd assume just like Farmville and everything else, with one click you can hide all Facebook Places updates. You just can't pick and chose who to receive which updates from. It's either hide the person or hide the app, not 'hide this app for this person'.

</comment></comment><comment><USER10> This isn't necessarily the place to bring this up, but I take it I'm not the only one who finds 4sq and pals a bit creepy?

The 'scary' side of social media has long been a favourite topic in the mainstream press - and in this case, I think they might have a mild point. I'm sure that 100% HN users are fully aware of the risks of storing personal info online, and will act accordingly - but so many more web users honestly don't have a clue. I've also heard ad agencies and potential employers talking about tracking 4sq users...and I'm not sure I like that either.

Am I overreacting?

<comment><USER11> After reading this, I was a little creeped out: <http://www.guardian.co.uk/technology/2010/jul/23/foursquare>

But my general policy with posting online content is if you put it online, don't be surprised when people find out. I think the ad agencies tracking 4sq check-ins is key to monetizing location based services, and I'm all for it because it just makes sense. When/if this happens, 4sq and others will hopefully be transparent about it, so users know what they're getting into.

But if you don't want people/companies to know where you shop, don't check in. Simple as that.

</comment></comment><comment><USER12> The utility of location based services has a strong network effect. For finding friends, they need to be on the service. For coupons & deals, business development is far easier with a larger audience.

Interestingly, one way to be ubiquitous is to open up the service as a platform. That means that it makes sense for Facebook to let Foursquare & Gowalla use the platform. Those using Foursquare and feeding into Facebook make Facebook more useful.

It also matters whether location is a way to drive engagement for Facebook, or if they expect deals to be a major revenue driver. I highly doubt even a large effort on local deals and coupons would earn significant revenue for Facebook relative to their astoundingly successful ad system. They aren't mutually exclusive of course, in that they can have hooks for their ads to leverage places. Ignore for a moment that mobile ads are universally horrible and Facebook doesn't have any (yet).

This makes me think Foursquare can still grow by being the best place to find deals. From what I've seen, Foursquare's business development is rock solid. Also, Foursquare's mission isn't about location based checkins but to make cities more useful. So I think everyone will be just fine.

</comment><comment><USER11> Maybe, but I'm not sold yet. Yeah Facebook has 500 million plus users, so even if there's a 1% conversion rate they'll have the same or more users than Foursquare. That's huge, especially because Facebook has a much more diverse audience than Foursquare.

But...I can't help but think about Buzz. Gmail had those 170 million users. Sure Twitter was around, but how could Buzz fail when there was this huge existing audience to use it? But today I don't use Buzz at all, and Twitter around a dozen times a day.

Facebook Places has potential, but it's way too early to think Foursquare will be "crushed"

<comment><USER7> They key difference I think is that Google accounts or gmail accounts were not used as the hub of social interaction (like Facebook) when Google launched Buzz. All the hipsters had built these huge networks on Twitter and Facebook already and now suddenly had to re-assemble a social network from scratch based on their GMail address.

If history was different and everyone used their Gmail account as their social identity, things would have been different as Twitter would have just been a 'feeder' service like 4sq/Go are now.

<comment><USER11> That's a good point. But I also wouldn't call Facebook my all encompassing social identity. I don't update my status with everything I tweet; I don't even sync up Foursquare and Facebook because I don't want everyone on Facebook knowing where I've checked in (and I don't think I'm alone because 20% of Foursquare users sync up with Facebook). Many people just find it annoying, but the bigger reason is that I'm not really that 'close' with all my Facebook Friends. If I post a check-in to facebook, I'd only want a fraction of the people to know.

I haven't gotten the rollout yet but hopefully Facebook realizes this and makes Places something you can use with some of your friends, and not all of them.

</comment></comment></comment><comment><USER13> Yishan Wong makes some interesting points:

[http://www.quora.com/Are-Foursquare-and-Gowalla-going-to- sur...](http://www.quora.com/Are-Foursquare-and-Gowalla-going-to-survive-now- that-Facebook-Places-has-launched)

</comment><comment><USER14> This is kinda bad news for Loopt if anything. I was sure facebook would check out Loopt towards sqrt(4^2) before the competition does.

</comment><comment><USER15> Facebook Places doesn't include many places yet ([http://www.networkworld.com/news/2010/081910-facebook- places...](http://www.networkworld.com/news/2010/081910-facebook-places- problems.html))

But even if it did ...why would I trust FACEBOOK to be my location app. I enjoy Facebook, but I don't trust it -- I certainly don't want it tracking my whereabouts.

</comment><comment><USER16> I think its way more likely that if/when twitter launches a location product similar to foursquare that /that/ will do them in. Facebook is for a different type of relationship (at least to me) whereas 4sq/twitter is more selective- Who do I want to follow. I feel that twitter could completely replace 4sq, as their is nearly 100% overlap in that space anyways.

</comment><comment><USER17> Depends on why people check into places. Is it their daily human need to publish their location? Or is it that they saw a silly idea and decided to have some fun playing along. If the latter, why wouldn't they use 4square for that instead the serious FB?

<comment><USER2> Checking in, in terms of social interactions, is like a deconstructed form of interacting. I've been thinking about how we've deconstructed personal interactions, and how we've arrived at these one-button-click/automated communiques:

Meeting in person > talking on phone > sending an e-mail > sending an SMS > posting on someone's wall > creating a general friend-syndicated update > [<poke>, <like>, <check-in>]

<comment><USER17> I can't imagine that is sufficient interaction in the long run.

</comment></comment></comment><comment><USER18> They said this when Yelp added checkins too. I'll believe it when I see it.

(Foursquare user #657)</comment>


Ask HN: Why don't links posted on HN open in a new tab? - <AUTHOR>

<comment><USER2> Because the average HN user is perfectly able to middle-click or ctrl-click or long-tap (or whatever combination works in your specific environment) when he wants something to open in a tab? It's not the AOL target audience.

</comment><comment><USER3> It's a lot easier for a user to force a link to open in a new tab than it is for the user to force the link to open in the same tab.

</comment><comment><USER4> Because it is better to have the link open where the user specifies. This is why browsers should control where links open.</comment>


Show HN: Gripeless – Capture Complaints - <AUTHOR> Hey everyone,
We all see these amazing ideas being posted on Show HN but let's be real - every product has some gripes that could be improved.
The gripes could be things like broken flows, unintuitive UX behaviors, or some interactions being too slow - you name it. Everybody has their favourite products, and each of those products (awesome as they may be) have a couple of small things that could be improved to make them even better.
What's interesting, though, due to a variety of reasons we usually don't report those things at all - we might not think the complaint is solicited, we might not think that anything will be fixed after we report the thing, or even just writing and sending a semi-formal letter is too much friction for such a simple task.
This is why we've built Gripeless, an all-in-1 solution to make the process as smooth as possible for the user so that they don't have to write emails, don't have to think whether the product-owner is acting on those complaints or even requesting complaints in the first place.
Gripeless can be installed onto any website and the provided script is only 20kB gzipped. Both the script and the management dashboard are built with Elm, which turned out to be an amazing choice for making things fast.
We're specifically building a product that can capture complaints and efficient access to them, so Gripeless is not a replacement for:
- Email support software - like Zendesk or Supportbee
- Automated analytics - like Google Analytics or Mixpanel
- Error reporting software - like Sentry or Rollbar
Complaints, that's what we're all about.
There's a lot of existing science behind complaints in the service industry which this product is based on, and we've linked a bunch of it on https://usegripeless.com.
Let us know what you think.
- [redacted]
[1] [redacted]
Create your project over at [redacted] <comment><USER2> This is super nice. Love the clear explanation and the app design.

I'd use it, except there seems to be a total lack of context. If I add this button to my (web based) single-page app, I want to know what exactly the user was doing when they clicked it.

Giving the user just a text box and hoping that they'll include all context unprompted is a bit too optimistic IMHO. Maybe your JS thing could accept a context argument, and you can show that context in some way along with the complaint.

</comment><comment><USER3> One thing I noticed is that you example seems to be _too meta_ , in that it's a complaint about the complaint platform, which is just confusing to read.

Would be good to change the example to something simpler and more relatable like; "I keep getting logged out after 30mins" or something similar.

 _> Optimised for complaining_

I had a chuckle at that. Nice work though!

</comment><comment><USER4> Great landing page, I have no questions how the product works.

Pricing seems on high end, consider lower pricing plans and a free tier.

</comment><comment><USER5> The UI is very nice. As a fellow founder, I'm putting this on my docket. We might try it out in the coming weeks.</comment>


Ask HN: Teaching your kids technology without helicoptering - <AUTHOR> A baby will soon come into my life, and this gets me thinking about how to introduce computers and technology to young kids.
I think a lot of tech-literate people make the mistake of becoming helicopter parents when it comes to technology. They become IT support for their children, and the kids develop a sort of 'learned helplessness', where they expect their dad (usually... sometimes mom) to solve the technical issues.
Thinking back to my own childhood (born '71), I seemed to learn the most when left alone, with no distractions. Figuring things out this way seemed to make it stick out n my head.
What mattered perhaps was the (accidental) order which things were presented to me. A Commodore 64, a manual, some games, literally copying code from computer magazines. No internet to distract. This got my interest, and prompted me to learn.
What order should I present tech to a young kid? I'm inspired by this article which someone teaches his kid about gaming by starting off with old school games:   https://medium.com/message/playing-with-my-son-e5226ff0a7c3
Here is a rough outline I'm the thinking of:
* First computer, a pi or similar, with Linux and no GUI. No WiFi. A few CLI-based games. A Python manual, and some python games to type in. Keyboard, but no mouse.
* (After getting ok at touch typing, and getting a very basic understanding of python, then ...)
* UI updated to split-screen shell and browser. Still no Wifi. Book about HTML, CSS, and simple JS.
* (After gaining proficiency making web pages, then...)
* Wifi added (switches off at bedtime?)
* (More proficiency)
* Upgraded computer to Mac
* Etc
Reading this back it seems a little dry, and perhaps expecting a lot of a little kid. And what will they think when they go to their friends house and see their bells-and-whistles computer?
What does HN think? <comment><USER3> First develop the child's curiosity, independence and confidence in using tech.

My daughter is three and a half and I've been contemplating similar, how to introduce tech.

From about 15 months old we have given her small tasks like washing her hands before dinner, tidying up her toys etc to encourage her to be independent and do things for herself. (We do help her but we give her the opportunity to do it herself first). We take her to museums, read and play games with her, my wife also teaches her Japanese. All of these things add up and have given her a curiosity about things. She asks questions and we give her the answers, if we don't know it we tell her so and we find out together. I let her do 'ok Google' on my phone so she can watch a youtube video from time to time - <USER2> she is comfortable around devices. She video calls with my wife's family almost daily too so she understands the interaction around phone and tablets.

Every now and then I'll let her tap out some letters on my laptop and explain to her why reading is important - so you can use the computer and make it do silly things.

Eventually I hope she will have enough interest to want to explore these things herself, because i dont think you can force or guide a child to learn something. You need to look at the bigger picture.

The first year for new parents is tough but worth it. Congratulations!</comment>