When does learning (to code) stop being so hard? - <AUTHOR> http://tommy.authpad.com/when-does-learning-stop-being-so-hard

<comment><USER2> I do find, however, that we create increasingly complex "frameworks" in the aim of flexibility. We then say how "simple" they are after we learn all the complexity, and use "design patterns" and other heuristics to try to hide just how verbose and complex the frameworks are. Modern GUIs and Web Frameworks (and not just the Java ones that folks like to take potshots at) are great examples of this behavior.

I worry that the moment we come up with a simple approach to something (like HTML), we continually add features in the name of "flexibility" until we have an unwieldy mess requiring HTML, CSS, Javascript, a framework, and various middleware pieces to make a site. We make a new library to abstract away the complexity, but the cycle repeats and that library is too complex, so a new library is created on top of it to simplify.

I've been programming for years, and I still find pieces hard. And it's almost always the dressing: the fundamental algorithm and approach can be solved, and you think you are done... but having to deal with all the "frameworks" just to make a site or an app becomes an exercise in pain. And those were supposed to be the easy parts, right?

I have to admit, I do long for the days of Pilot where I could tell Turtle to just turn left and go, and it would just do it. No windows, no nested frames, no viewports, just describing what I wanted done and the machine does it.

(Yes, I know that modern apps, the machine-learning bayesian-based twitter sentiment analyzer that mashes weather forecasts, stock movements and movie ratings, parallelized and built with enterprise-grade user rights management is a far way from drawing a rotating box... but for sake of argument, wouldn't it be nice to just say "do it" every once in a while?)

<comment><USER3> This reasonates with me. I enjoy the process of programming, even though my exposure to it has been relatively limited (a bit of dabbling in school, and an introductory class in college). But this year when I decided to really plunge into the technical side of things with some friends, I found that learning modern web technologies and actually building a Rails site was quite challenging, because it involved a host of things that all needed to be in place.

I went through HTML+CSS, jQuery, a bit of AngularJS, customising a few existing javascript packages we were using, then moved on to the backend: Linux, git, Rails, and a whole bunch of Rails gems which I had to read the documentation for and do a good bit of Googling on. There's been a lot of learning Rails and library APIs, finding workarounds for CSS quirks, googling combinations of terms to find out how to achieve something, and asking my experienced partner for help: most of this doesn't quite feel like core "programming". I'm happy when I don't have to wrestle with a totally unhelpful Rails error message for which Google has barely any results for (which I think turned out to be due to some inscrutable setting), or try to evaluate the architectural choices for modeling a set of multi-polymorphic relationships (where the blogposts present models with different capabilities and I don't know enough to tell what will really be useful in future).

Maybe I tried to bite off far more than I could chew, I don't know. I guess the trouble is that so much of web development relies on the use of prepackaged tools that the ramp-up learning curve is significantly more challenging than merely learning a single language's vocabulary. As a relative beginner (albeit with prior exposure to programming concepts), it look longer than I expected to get to my current point. Web development isn't just programming, it involves learning a new environment, a whole set of concepts and issues, and a toolbox that just grows and grows and grows...I've started storing my knowledge in a Freemind mindmap just to keep track of it all. I even save my IRC chatlogs whenever I manage to get advice. (If I had a more experienced partner to pair-program with, things would probably go a lot faster, but I'm mostly on my own.)

Now I'm looking at websocket libraries and other nodeJS frameworks like DerbyJS and Meteor for new functionality, and it's analysis paralysis all over again. It never ends for a beginner...I miss programming simple stuff.

<comment><USER4> > It never ends for a beginner...I miss programming simple stuff.

It never ends for a programmer. Constant learning and reinventing is what defines us. It gets easier to pick up new stuff, but you never end the process of picking up new stuff.

</comment></comment></comment><comment><USER5> I started programming pretty young. AppleSoft BASIC at age 9 or 10. Initially just transcribing programs from hobbyist magazines, but then writing my own programs and branching out into lower and higher-level languages (assembly and HyperTalk). While it definitely had a magnetic attraction to me, I found it difficult to learn (my first internet connection was a few years away, the web even further) and I was always learning by rote.

I still remember a distinct moment when I was 20 or so that everything magically clicked into place in my mind. Suddenly I grokked the nature of abstraction and what it meant to translate a mental model into a computer program irrespective of the underlying language. Trying to put it into words always sounds trite, and it's not as if I was magically a better programmer—more like the beginning of a journey, but it was a clear point where I feel like I crossed the steep part of the learning curve, and it was all downhill (at least on the first derivative) from there. I'm not sure if anyone else has ever experienced it this way, I suspect this type of (seemingly) grand epiphany is more likely to happen when you're younger and the brain is more plastic, or maybe I just took too much LSD. In any case, I'm convinced programming belongs to a class of skills (perhaps music is another) that require some higher level foundational concepts that do not occur naturally in most common human experience.

<comment><USER6> I had a similar reaction after working through SICP. Suddenly, I gained a new understanding of programming. I knew it would take a lot of time and practice to actually make use of that knowledge.

But funny enough, I find your description extremely accurate: I suddenly grokked the nature of abstraction, a beginning of a journey.

<comment><USER5> I also was reading SICP for my Scheme class at (or near) that time as well. Fascinating. I'm really sad MIT discontinued its use for the introductory course.

<comment><USER6> Actually, I preferred the video lectures to the book. Still, if I charted all my learning of programming stuff over all time, the time during which I watched SICP will without a doubt be a huge spike in the first derivative.

</comment></comment></comment></comment><comment><USER7> My dance instructor says that learning to dance goes in three phases that spell MAP: Memorize, Automate, Personalize. First you just memorize the steps and walk through them. Then you get to where you can do the steps without thinking about them. Then you get to where you're able to add some personal flair.

For me when learning a new programming language, I find that I move through three important phases. First I'm copying what other people are doing and consulting books and manuals constantly for everything I do. After a while I'm consulting other things I've done myself and imitating those. Then finally I get to where I'm not consulting anything and the code is just flowing, often with my own interesting twists.

Incidentally, feeling like it's too hard for you and that you're not smart enough just goes with the territory. Also try to ignore the temptation to feel like it is all very easy for everyone else. I find that the feeling of failure is often its worst right before I make a breakthrough. After about the fifth time of thinking this is too hard for me, I can't do it, then doing it, I realized this is a pattern for me and learned to ignore the feeling of it being too hard.

</comment><comment><USER8> As others have said, there will come a time which is probably unique for everyone, where things will "click". But a friend of mine had some good insight the other day. We were talking about complexity in software and why at times things seem so difficult. He said it's like when you start working out. You can only lift so much weight until your muscles give out. But eventually you keep working at it and increase the amount of weight you are lifting ... so although it will become way easier to lift the amount of weight you were lifting when you started, you will continue working just as hard to lift your current limit. And that's why software will always seem hard, because we build upon our past knowledge and learn to tackle more and more difficult things.

</comment><comment><USER9> In about 10 years <http://norvig.com/21-days.html>

</comment><comment><USER10> For me was when I stopped learning inflexible languages. LISP was an eye opener in regard to how flexibility in a language will make things a breeze. I can do anything with it, no need to hammer my ideas into a language. To this day, the only language I _enjoy_ writing is LISP. Its just fun.

<comment><USER6> I so wish I could use some LISP at work!

<comment><USER10> We are building a search engine with it (nuuton.com). Shoot me an email. I'm looking for feedback from experienced lispers. :)

<comment><USER6> Ah, well, I wish I was experienced in LISP ;-)

</comment></comment></comment></comment><comment><AUTHOR> In case anyone wants details on what I'm doing:

I started by learning Javascript and found I could understand the concepts and syntax/logic easily enough to have intelligent conversations about strategy with my cofounders, even enough to help with brain locks they had, but found it a little hard to solve my own problems.

After learning Python for a couple of weeks, I found that problem disappeared. With Python, I can just THINK and then write what I'm thinking, which is a huge upgrade for a newbie like me.

I'm going to stick with learning design (including JQuery stuff, which I didn't mention but I have already learned and actually implemented to some extent) and Python to attempt to limit the scope of my learning in order to progress faster toward some degree of mastery.

<comment><USER11> I think your attitude is amazing, and I wish more people had it. Keep at it!

But here is a fair warning: this stuff is hard because it's genuinely tricky. Computers are unforgiving in a way the human mind can never be. So be warned: there are other walls like the one you just vaulted over, and the other side of them is worth reaching. But, it will feel like what you just experienced all over again.

One famous wall that my college used to weed out upper and lower division students at UCSB was pointers. Recursion also really shocks some people. Some people get really distracted by the high level modeling that gets used to build systems. Some people have a really hard time learning how to incorporate how the computer _actually works_ into their programming model.

I don't mean to discourage you! I mean to say that you are not alone. Many people find this stuff hard and work diligently to learn it throughout their careers. It's a fact often lost due to the culture of dominance and bravado that the computer science world has grown.

<comment><AUTHOR> Thanks so much for the words! Everything along the way I struggle with how exactly to implement it in my mental logic model and actually recall it when needed, but once I can do that that individual element becomes much easier. That's how I originally thought of "when will this get easy" until I realized what I meant by easy: when will I just want to do this more than occasionally, when will I ENJOY it.

That's when I realized the answer. It will never be "easy" in the sense that learning these new elements will always be difficult in a way, but there will come and already is starting to come a time when I can do it in a way that fulfills me instantly when I'm doing it.

</comment></comment></comment><comment><USER12> Short version:

Things stop being hard when I know enough so immediate satisfaction is possible. Then things seem easy.

+1 for self awareness progress.

<comment><AUTHOR> NAILED the tl/dr

<comment><USER12> Thank you. I think those are very good and important first steps.

Keep in mind:

1\. We are not scientist. We do not use the scientific method to discover what is already out there. Our creations didn't exist before we write them

2\. We are not engineers. Our creations are not bound by what science discovers. In some rare cases they might be a requirement, but never a bind. This is a curse and a blessing

3\. We are closer to a mathematician painter. Not because we use math (this is irrelevant for this definition), but because we think in symbolic terms which is the essence of mathematics (btw. this makes arguable that ip over algorithms is like ip over colors)

4\. Society is being build on top of it... and "they" are not very aware of it yet

<comment><USER6> This got me thinking (thank you for that): Are we not engineers since our solution space is bounded by the architecture we run on (hardware and software), which in turns has been constructed by engineers who were limited by scientific discovery?

By the way, I totally agree with you, but by your definition the above seems like a logical conclusion to me.

<comment><USER12> Yes, this remind me what one of my teachers used to say: hardware is what you kick when the software does not work.

I don't believe that our solution space is limited by the hardware we run it on because our solution can be intended to run in different hardware, and when its adecuate enought it should produce the same results.

Lets take math as an example.

Lets say the axiom a + b = b + a

We know that the expression is true in its essence, regardless the alphabet that we used to expressed. One can argue that ths expression does not makes sense to a chinesse personon because the chinesse alphabet does not have the letters 'a' or 'b'.

But we know that if we use valid chinesse letters, then the concept is still true.

You see? Is the concept that we express what remains valid, not the symbols that we use to express them. And this allows us to talk about commuting regardless of the language. The symbols are used to communicate an idea that is beyond the meaning of the particular symbol

Same thing with software. Software development is not about the computer that it runs on anymore than astronomy is not about a particular telescope. Thus we need to separate the software solution from its implementation environment. The software is not bound by the architecture, a particular implementation is bounded by the hardware architecture and the ability to think out of the box of the developer; but the software it self it isn't (which is why we can do things like calculate the big O, which is hardware independent)

Like in math, a particular implementation is just one way to express that software on that hardware using a particular programming language. For a different hardware (chinesse) you will use a different implementation for the same software concept.

I cannot address how or why is the logical conclusion for you, but I can tell that it is not for me.

<comment><USER13> The principle you're trying to articulate is the Church-Turing thesis [1]: Every reasonable definition of computation can compute the same set of functions. [2] [3]

[1] <http://en.wikipedia.org/wiki/Church-Turing_thesis>

[2] Quantum computing may change the O() of some functions. I.e. maybe some O(n^2) problems become O(n) with a quantum computer, or NP problems become P; I'm not familiar enough with quantum computation to know for sure which classes are known to be reduced to smaller classes. But in principle you can always simulate a quantum computer on a classical computer given enough time -- of course, in practice "enough time" may be many orders of magnitude out of the realm of possibility. So quantum computation isn't a "new" form of computation as far as the Church-Turing thesis is concerned.

[3] There are purely theoretical machines called "oracle machines" -- exactly like a regular computer/Turing machine, but equipped with a (theoretical) hardware device called an "oracle" which is able to solve some problem that is known to be impossible for Turing machines, like the halting problem [4]. An oracle machine can be more powerful than a Turing machine, but its violation of the Church-Turing hypothesis is sort of a technicality.

Saying "Build magic hardware that does something a Turing machine can't, and attach it to a computer" is too vague about how the non-Turing computation is to be achieved to really constitute a fair definition of non-Turing computation.

[4] <http://en.wikipedia.org/wiki/Halting_problem>

<comment><USER12> Cool! Thank you for the links, I didn't know that it had a name, mine were just mere observation.

To me it stand to logic that different hardware has different capabilities, and if an implementation can use these characteristics then the implementation can have a different O. But my point still remains that as a theorical concept, the O does not depends of the hardware in the sense that it is not a necessary piece of information to make the calculation of O.

Also i would like to point that in my original definition the math paint has a purpose of utility for society. To build magic hardware would be like telling Picasso here is infinite canvas and infinite degree of colors, what can you do with them? The magic is not in the resources or the tools, the magic is in thinking independent of those tools, and then using the tools to implement. I understand that people might come from the other end of the spectrum and think that we need to begin with the tools, i just don't share that view, and it has worked for me just fine.

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> For me it was a long progression of specific moments.

I remember understanding the DOM for the first time, understanding server side code for the first time, chaining methods, JOINs, scope, regexp, MVC, a lot of individual things.

My most practical advice is that you ignore hot new frameworks and languages for now and stick to what you know until you know it much better.

But, as soon as you feel comfortable with what you're doing you should take the next step.

</comment><comment><USER15> Just keep coding and, as important, read other people's code. Keep doing it. If your coding in python, read the standard library. That, my friend, is one of the beautiful things about open source. One day the coding will be easy and the problems your trying to solve will be hard. Thats a good day IMO.

<comment><AUTHOR> Absolutely! Great advice. I write code every day, but reading other people's code and seeing how THEY solve the problems probably helps me more than anything.

</comment></comment><comment><USER16> Having gone from a non-technical co-founder in my last startup to a technical co-founder in my current startup, I could identify with your post, so much so that it was almost like I had written it myself. Also last few months I have always been frustrated with the slow speed at which I write code as compared to others. And that sometimes makes it hard to enjoy the process when the time difference between when you think of a new feature and when you actually see it working in front of you, is large. But now next time I am feeling frustrated I will think of this blog, grit my teeth and just carry on.

</comment><comment><USER17> Software development, particularly in imperative languages, is as intuitive as it gets. Things like algorithmic complexity analysis, distributed and parallel systems engineering, fault tolerance, cache invalidation and prediction, etc, can become fairly complex. But building a hobbyist project as simplistic as it sounds like the author is building? Easy and intuitive.

I'm really getting tired of this "programming is hard" meme. It's not.

<comment><USER18> I'm sorry for the ad hominim, but this view is extremely myopic.

Maybe programming is not hard -- for you. Maybe software development is "as intuitive as it gets" -- for you. But that is an extreme generalization that's simply not fair.

Programming is not trivial and something that everyone should by definition be able to intuit. It requires a very specific and logical way of thinking. It requires intellect. It requires practice. I'd venture to guess that a vast majority of people out there couldn't "just figure it out".

Programming requires interest, practice, intellect and a very specific way of thinking. It can be taught, it can be learned, and it can even be mastered with enough effort (by some people). But let's not dismiss the hard work of the OP and of the many people out there trying to learn (or, frankly, failing to learn) by calling it intuitive and easy.

<comment><USER19> Maybe "as intuitive as it gets" means "as intuitive as it can be"? There is innate complexity there somewhere. Can't say if we've necessarily reached it though.

</comment></comment></comment><comment><USER20> Interestingly, I've long thought that Python is like the piano of programming languages. It takes almost no time to learn how to play Three Blind Mice, but an expert user can also play Rachmaninov.

</comment><comment><USER21> You should fix the links on your blog. All of them except for the HN discussion link have tommy.authpad.com prepended to them.

<comment><AUTHOR> FIXED thanks!

<comment><USER22> also you are hotlinking some of your images from imgur, this is a big web design no-no. You dont control the host of those images and at some point they will expire leaving broken images on your page, this is best case scenario. The worse case is if the host you are hotlinking finds out what you are doing and changes all the images to some grouse pics to teach you a lesson. imgur is good image host so they would not do that but the problem still is if imgur goes down you can do nothing but twiddle your thumbs until they come back

<comment><AUTHOR> Oh I know! Thank you so much for that input. I was really hesitant about posting that link because I don't actually use that site. I'm re-designing it now for what I actually do consulting for (healthcare, hiring, and biz dev for companies that build software and have trouble with sales)

That was just quick and dirty

</comment></comment></comment></comment><comment><USER23> if it's done right, it's never easy. But it can be and indeed should be fun.

</comment><comment><USER24> How useful is it for adults to start off by making even simple games? Simple games have no practical use beside the learning in itself. Even worse, making a game requires spending attention on entirely orthogonal concepts (such as, what text should greete the user?) when beginners need to focus on the pure code concept.

If you're intending to be a tech startup, why don't you code something useful for yourself, like something that turns an excel spreadsheet into HTML tabular data.

<comment><USER13> > Simple games have no practical use beside the learning in itself.

I disagree. Games are a great starting point. Creating your own world where the user can immerse themselves and make a variety of choices is way more fun, on a visceral level, than converting Fahrenheit to Celsius or using jQuery to put a few special effects on your website.

That fun is part of a reward feedback psychological loop which helps get you motivated, and the motivation helps you study harder and get past frustration. So the positive effect on the learning process may be large enough to justify such an "impractical" application.

> games have no practical use

Let's not forget that computer/video games are a large, visible and highly successful part of the entertainment industry that essentially didn't exist before the computer era. We could also say that art, music, movies and fiction "have no practical use" -- but a large segment of humanity still finds them compelling enough to spend enormous amounts of time, money and other resources creating and consuming, and these things are widely considered to be a core part of what makes us human.

> beginners need to focus on the pure code concept

Depends on the person. I would argue that many people learn better when they can apply their learning to a non-trivial problem. This is why introductory university science courses have labs. This is why classes at all levels have large projects in addition to the tiny problems on homework and exams. In fact, an _inability_ to apply your learning to a non-trivial project implies that the learning process is incomplete.

> requires spending attention on entirely orthogonal concepts

Most projects in the modern world require interfacing multiple languages, libraries and API's. Any web app, for example, will likely have -- at minimum! -- parts in HTML, JS, CSS, database, backend language, and a template engine. That's six orthogonal components.

If you're going to be dealing with multiple orthogonal concepts in the "real world" of programming, the "academic world" of programming (whether a formal college curriculum or just self-learning) would be remiss if it didn't give you some preparation for that aspect through exposure to projects involving integrating different technologies.

Even single-language projects involving only core libraries often require putting together different API's (for example, many applications can be roughly divided into dealing with files, dealing with a user interface, and internal core functionality.) In fact, _not_ being able to modularize a large problem into manageable pieces that mostly treat other pieces as black boxes is a recipe for failure of any and all attempts at large projects.

<comment><USER24> I don't disagree with just about any point you made...my point is that I don't think simple games...and for that matter, any kind of web app, is a great way to start learning to code because of what you said.

While you will have to learn multiple API's and libraries to do anything money-generating, I think it's not an efficient route when first learning programming...why not do a simple project that will be immediately useful to you as soon you complete it?</comment></comment></comment>


Show HN: My side project that searches the web for technologies - <AUTHOR>

Hello HN!
I've been working on http://underthesite.com for the last month and now think it is ready for some full strength HN feedback.  What do you guys think?  It crawls up to 10 pages of a given site while you wait, looking for community-provided CSS / XPath selectors and regular expressions.
Additionally, I'd like to appeal to you to submit matchers for technologies that you care about.  Technologies are easy to add, so add your favorite jQuery plugins, analytics tools, client-side node.js wrappers, what have you.  I'm going to be running a large crawl in the next few days and want to make sure to have a good selection of technologies ready.  After the crawl, I'll do some analytics and then come back to you guys with some interesting breakdowns of technology usage across the web.  So, please tell me what statistics you'd be interested in (top javascript framework, percent of sites using backbone.js, etc.) and submit your favorite technologies.
Thanks! <comment><USER2> The custom matcher idea for technologies is really cool. I was thinking about doing a similar thing, but as an open source project that people could contribute matchers - but your approach is a lot easier for people to contribute.

Think there could be a problem where people might not want to contribute when they can't use what they contribute outside of your system. Have you considered extracting the matcher into a gem (or _your language equivalent_) and allowing people to use the matcher? Might not be the best idea because it opens up competition, but if it became the defacto tool for analyzing sites, there would be a lot of trust back your way.

On a side note, if this was an open library, or you did have an API to pull information, I'd contribute and definitely use it on a site I recently built ( <http://lineofthought.com/> ).

</comment><comment><USER3> The little guy in the bottom right corner gets the point across, but he is creepy as hell. Change him into something less Japanese. Maybe a magician? Pulling back the curtain to show all the magic? Or an engineer with a helmet showing the gears?

<comment><AUTHOR> I'd be interested to hear other people's thoughts as well, since most of the people who I have polled did not find him creepy.

<comment><USER3> Since nobody has replied, I should probably give a better answer: This is based on personal presence and tastes of course. The little guy just brings with him connotations of Howl's Moving Castle and the like. It may not be a bad thing directly, but I think there are better choices. The blinking doesn't help much either.

When I think of the underpinnings of a site, I think of images that go along with the daft punk branding/style. Things are sleek, shiny, and, despite all the complexity involved, just work. I feel like that might be better branding for this sort of website. <http://en.wikipedia.org/wiki/File:DaftAlive.jpeg>

I hope that helps explain my thinking better.

</comment></comment></comment><comment><USER4> This is really great! On the Analytics end I'd add the following services:

Omniture (Adobe) Site Catalyst. This can usually be detected by looking for a request to the the *.2O7.net domain (though not always, some Site Catalyst users CNAME their own tracking domain to 207.net, in that case it's harder to detect)

ChartBeat (static.chartbeat.com/js/chartbeat.js)

Some others: WebTrends, CoreMetrics, Hitbox, Performable

</comment><comment><USER5> Disqus doesn't use Disqus?

<http://underthesite.com/sites/disqus.com>

Ah ha! Never mind; Their blog does!

<http://underthesite.com/sites/blog.disqus.com>

</comment><comment><USER6> Looks nice. You may want to consider moving it somewhere closer to iterationlabs.com though, to maximize the SEO benefits. (I forgot whether you need iterationlabs.com/underthesite or whether underthesite.iterationlabs.com would work; look it up or consult someone who knows what (s)he's doing.)

<comment><AUTHOR> I'm sorry, I don't understand.

<comment><USER6> As you probably know, Google thinks a page is more important if more sites link to it. Similarly, I believe Google thinks "a bunch of pages" is more important if more sites link to it; I forgot the exact meaning of "a bunch of pages" in this context (and I _really_ don't have time right now), so you will have to look into this yourself.

That is, if you want iterationlabs.com to rank in Google.

</comment></comment></comment><comment><USER7> Looks good...but isn't this the same thing as builtwith.com and a few others?

<comment><AUTHOR> The other sites don't allow the community to add their own technologies and matchers. My hope is that people who run or are passionate about particular web technologies will add them to underthesite.com. It a good way to spread word about your open source project.

I will be adding much deeper breakdowns about technologies soon.

</comment></comment><comment><USER8> Now all you need is some charts, extrapolate some trends, and write some interesting blog posts.

<comment><AUTHOR> That's the plan!

<comment><USER8> You could also setup chatrooms or forums around technologies: <https://github.com/chrismatthieu/CHATS.iO>

Other ideas:

\- measure who has implemented what technology and when

\- work out various combinations of technologies

\- work out who would have the most expertise in an area

\- try and create a hacker score for users: (function of: time started, site traffic, simultaneous technologies, ??)

</comment></comment></comment><comment><AUTHOR> Clickable: <http://underthesite.com></comment>


Ask HN: When did comments start being split across pages? - <AUTHOR> I searched for an announcement but I didn't find anything. On a recent post I was reading the comments [0] on I noticed a "more" link at the bottom to take me to the second page of comments, I had never seen that link before and wondered if it was new.<p>[0] https://news.ycombinator.com/item?id=13817557 <comment><USER2> I think this is a less than ideal workaround because it breaks (Cmd|Ctrl)+F search on large comment threads. I do this quite a bit just to see if some particular topic has already been discussed somewhere. Actually I think the current design is a little unintentionally insidious just because it doesn't make it clear that any comments are being hidden, so if not for seeing this I probably wouldn't have realized for quite a while that there was even a "More" link to click.

</comment><comment><USER3> At least as far back as 2013, but we only turn it on if the site is getting crushed. These days that happens when (a) there's a story on the front page with many hundreds of comments (say 750+) and (b) there's higher than usual traffic. That was the case yesterday with the big CIA/Wikileaks thread. We've turned it off now though.

One of you will now point out that it would be better not to have to do this (or, as someone gently put it downthread, "maybe it is time they actually considered fixing HN"). You're right!

<comment><USER4> Just out of curiosity, how do you crush a site with just posting maybe 100 text based comments on the top 20 items or whatever?

I mean what exactly is the load that causes this?

If you are executing some algorithm for each request - stop. Just run it every minute to rebuild a cache. HN discourages rapid fire replies anyway.

How hard is it to simply build an html fragment from a tree and cache it? You just see what nodes need other nodes to be appended.

OK, I can imagine MAYBE the most intensive thing is the votes and re-ordering of replies.

First of all I hope you are using this algorithm: [https://medium.com/hacking- and-gonzo/how-reddit-ranking-algo...](https://medium.com/hacking-and- gonzo/how-reddit-ranking-algorithms-work- ef111e33d0d9?source=linkShare-a7703696fe94-1489002238)

Secondly, seriously once again you can batch the upvotes by thread and then process them during the recalculation phase. You only need to recalculate weight totals for the threads where there were upvotes - and this can be parallelized.

<comment><USER5> _some algorithm for each request - stop. Just_ [...] _How hard is it to_ [...] _OK, I can imagine MAYBE_

It can't be any harder than not coming off blithely condescending.

<comment><USER4> Not condescending at all. Incredulous.

That's because the solution is straightforward, the people who built it are smart, had years to do it.

If I can build the basic scalable submission and comment system in one 8 hour day I am sure they can fix it in less than that.

Then you need to iterate of course and get the bugs out. But come on. I am incredulous that HN is buckling under a load of 20 stories with on average 100 comments each. Seriously?

<comment><USER5> _If I can build the basic scalable submission and comment system in one 8 hour day_

...

[unless this is deliberate parody in which case, you got me]

<comment><USER4> of what

<comment><USER5> It feels like joke-explaining because it is but "I can implement this in a weekend" is one of the central self-unaware brogrammer cliches. You asked.

<comment><USER4> Everything I say is self-aware and the result of reflection before posting.

And btw I said 8 hours, not a weekend.

Look up Poe's Law.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> If anything they should make it so that when you click "show more" it adds the next page to the current page instead of redirecting you to another page.

<comment><USER7> That would require javascript, don't they try to avoid that?

<comment><USER8> Not really, you could just load the same page with something like ?comments=all from the server.

<comment><USER7> That seems better actually, considering "more" doesn't really make sense when the things you've already gotten may have shifted in the mean time.

</comment></comment></comment></comment><comment><USER9> I don't mind pagination if it's for mobile performance reasons, but I'd really like an option to disable it in my profile settings.

</comment><comment><USER10> Maybe it's a workaround for the issue where HN hugs itself to death if comments get over a certain number.

<comment><USER11> If that's the case and given all the recent issues (including the somewhat hilarious "Can you all log out because S3 falling over is killing us EDIT: for clarity - Because of the level of auth'd user activity not because HN depended on S3" stuff) maybe it is time they actually considered fixing HN.

<comment><USER12> I've seen the mods make the "please log out to save load on our server" announcement a few times on really busy threads.

My understanding is it wasn't because HN depends on S3 but because everyone was on HN at the same time talking about it!

Edit: my google/HN Search fu is failing to find a reference, but they can't easily horizontally scale HN because it is running on a single arc process. Comments/Submissions are stored in text files, and the "More" links are actually stored in memory in closures. When the closures get garbage collected you get the "Unknown or expired link." error.

<comment><USER13> I'm really curious why the backend is in that state since so long. Today everything is scalable but HN performance is limited to a single process? And the complexity shouldn't be too high to migrate it to another framework/... when the current one does by design not support a multi process architecture. Do I miss something?

</comment></comment></comment></comment><comment><USER14> It seems to have been implemented after the 2016 election threads. I remember dang being frustrated at the page loading times on threads with thousands of comments.

</comment><comment><USER15> It could also trim comments after a certain depth, like Reddit does.

HN may do that, but I've only seen it paginate by the number of subthreads. The bulk of new traffic in a thread is likely to be comments to existing threads. This would also make thread folding faster, because there would be a hard limit to the depth of any thread on a single page.

</comment><comment><USER16> It's been this way for years. It's trivial to use the site search to pull up threads that have hundreds of comments. This doesn't prove whether those comments were spilling over back then, or whether you're seeing pagination being retroactively applied, but IIRC, this has been going on since at least as far back as 2013.

</comment><comment><USER17> I'm sure some smart developer will write a browser extension to grab the next page and append it to the current one.

</comment><comment><USER18> I saw this too. So far I've encountered it on Who's Hiring threads.

<comment><USER19> It's extra painful on Who's Hiring threads because think--what do we all do? Full-page keyword search, right? Now you have to check if there's another page to search.

</comment></comment><comment><USER20> I noticed it 2 days ago and no option to change it back. It really sucks when doing CTRL+F to search for stuff. Please give us an option to turn pagination off.

</comment><comment><USER21> I prefer it the old way, but I understand why they might have changed it.</comment>


Ask HN: Which services have figured out a way for revenue after gaining users - <AUTHOR>

Im just curious. A lot of people say, they will figure out a revenue model, once they start gaining user base. Which of these companies have done it? Most of the cool sites I know of are still free and dont make much(if any at all) and they all have been for few years.
Im trying hard to think of a company which gained lots of users and started making money. They keep saying "we will eventually", but nobody so far???
PS: Related question-A lot of startups (including the one Im bootstrapping) doesnt seem to care much about any revenue, but if the startup fails to get acquired(but does have significant user traction ), what are the options? <comment><USER2> Google. That's the one everyone points to.

There're a bunch of other ones that look like they're not making any money, but actually are, usually through advertising or corporate deals. Reddit. FaceBook. HotOrNot. PlentyOfFish. LiveJournal. MySpace. Skype. YouTube (though I believe YouTubes revenues are less than Google expected when they bought it).

<comment><USER3> Generating revenue and making money are generally considered two different things in business circles. Many believe that making money implies being profitable. It can have the meaning you are ascribing to it. That is, having customers give you money, that's generally considered to be only a part of making money though. The other part is keeping costs low enough that your business generates a profit. Even subject to the more stringent requirements, several of the companies you mentioned qualify.

I have doubts about YouTube being profitable, perhaps you have some inside info on this though. Certainly Google's quarterly reports indicate some challenges there.

Similarly Facebook could be massively profitable if they would cut costs. That profitability would fall well short of justifying a USD15 Billion valuation, but they could be more profitable. It is difficult to tell whether or not Facebook is profitable at the minute, because they can give any story they want as they have yet to go public. Whoever said 'There are lies . . . damn lies . . . and statistics', was probably unfamiliar with the world of corporate accounting, or they would have used 'accounting' in place of 'statistics'.

</comment></comment><comment><USER4> if you have any intent of getting money out of a startup or running a successful business, you need to design and build with the revenue model in mind. even if its a purely ad-driven model.

companies have fund success building first and monetizing later, but its the exception, not the rule.</comment>


I'm mad for gitlibs - <AUTHOR> http://xen.elbowrage.com/gitlibs?s=2 I give you gitlibs! Like madlibs for git, this is not polished at all and will probably break. If there is any interest could be fun to make this a web interface where you could upload your stories and tie into github.. or not. Right now its just tied to the mojolicious repo <comment><AUTHOR> Disclaimer: Its running on a dev server that may go down. If there is any interest at all I can put it on a more durable system</comment>


TunedIn - <AUTHOR>

Get personalised suggestions for great things to watch, read or listen to so you can spend more of your time on the actual watching, reading and listening, and less of it on the searching. You can import your preferences from your social networks and start to organise and share your entertainment life today. Check it out here https://tunedin.me <comment><USER2> no</comment>


Stuff I've learned at Microsoft - <AUTHOR> http://www.sriramkrishnan.com/blog/2009/12/stuff-ive-learned-at-microsoft.html <comment><USER2> I agree with these - 1.) Lone wolf syndrome 2.) Look for the line at your door Have experienced these - 1.) Ask for forgiveness, not for permission 2.) (Most) Screw ups are OK Couldn't agree more - 1.) Code is king 2.) Don't be an asshole

I see your point, on the below, but kinda disagree - 1.) New team? Pick people over products - Would be difficult for me to be passionate about something if I don't like what I'm working on. And product would most likely bring out the passion. If the people in that team are not what I'd like, well, so what, dive in, lets see if it can be cleaned on the way.</comment>


Top 10 Reasons Why Java Sucks - <AUTHOR> http://www.jroller.com/obie/entry/top_10_reasons_why_java

<comment><AUTHOR> _"... framework authors are not application developers ..."_

Rolls eyes, shake heads. I'm not sure #2 argument holds. Wouldn't it be better to have a few system developers working on core code and the app developers assembling from pre-built blocks?

</comment><comment><USER2> Man, I'm getting tired of seeing RoR fan boys peddle their framework as if it's the Second Coming. Why all the hate nowadays? Can't we all just get along....

</comment><comment><USER3> Not a very thoughtful list.</comment>


A long two months: Reflecting on mitigating Meltdown - <AUTHOR> https://blog.cooperi.net/a-long-two-months <comment><USER2> _segmentation is the closest feature really, and it was thrown out for 64-bit AMD64_

That was one of the "big things" with the 286 and protected mode, and enhanced even further with the 386, so it's a bit ironic and sad that it can't be done in 64-bit mode --- and I'm sure it could be done in a backwards-compatible manner if AMD chose to (double-wide descriptors seem to be a reasonably popular thought), but it feels like a lot of the decisions made with AMD64 were more just to spite Intel than benefit anything or anyone else.

Related: [http://www.pagetable.com/?p=25](http://www.pagetable.com/?p=25)

<comment><USER3> It's not so insidious as you suggest (from your link):

 _VMware chose not to support 64 bit virtualization until AMD reintroduced (optional) segment limits on later models of their Opteron and Athlon 64 CPUs. Intel never implemented 64 bit segment limits on their EM64T /Intel64 CPUs, because their 64 bit processors soon implemented VT/Vanderpool, which also worked around the problem. So this is why VMware requires a certain model and stepping of the AMD CPU line or a VT-enabled Intel CPU in order to support 64 bit virtualization._

 _Intel_ was the one that dropped segment limits, AMD added them in later...

It sounds more like advances in hardware virtualization yielded better solutions than a bunch of additional segment registers and slow context switches. It's only now that we realize without those you can trick a processor into fetching memory it shouldn't and that the only viable software solution has been to effectively implement separate page tables and enforce copying between their stack contexts at the user/kernel boundary anyway (so we're back where we started with slow context switches).

In theory, you could mitigate specter by running every process in its own hardware virtualized address space, right? It's just much more complicated to do that because you'd need to move the kernel to the hypervisor ring or rewrite everything to communicate entirely using a shared physical resource like a network interface. If VT-x allowed shared memory regions with ownership restrictions (does it?) you wouldn't even need to do that.

<comment><USER4> Every process already _does_ run in its own virtualized address space, without VT-x. That's what virtual memory is and does. Spectre can cross process boundaries at points where processes have the same memory mapped into their private address space (to wit: shared libs). If you enable VT-x VMs to share chunks of memory, you'll have the same damn problem. (This may be what "Spectre type 2" is, I'm not sure).

<comment><USER3> I thought the issue was that under the same kernel all pages mapped into memory can be read because the processor does not perform the virtual memory checks for the speculatively executing code...which is why the fix involves unmapping pages on context switches. VT-x gives you "physical" isolation not virtual, I thought. Like two VT-x spaces don't share the same page table mappings, do they? I could be completely wrong.

<comment><USER4> > I thought the issue was that under the same kernel all pages mapped into > memory can be read because the processor does not perform the virtual memory > checks for the speculatively executing code...which is why the fix involves > unmapping pages on context switches.

That's Meltdown. In Meltdown's case, the processor does not perform the check to see whether a mapped page is privileged, kernel memory (ring 0) or unprivileged, user space memory before speculatively executing it, and that's where the need to unmap kernel pages before leaving a syscall (and remap them before entering one) comes from. Spectre is confined to a single process's address space, so assuming no processes share code, an attacker would only be able to leak information from within the same process via Spectre. Which is enough a vulnerablility to warrant concern, as with precise enough timers you could exfiltrate information (passwords, etc.) from anywhere in a browser process via JavaScript. The problem is, processes share code all the time, via shared libs, which makes Spectre attacks able to cross process boundaries.

VT-x is a hardware virtualization layer. It doesn't provide some sort of _physical_ barrier to different contexts running on the same CPU wired to the same RAM leaking memory.

<comment><USER5> > The problem is, processes share code all the time, via shared libs, which > makes Spectre attacks able to cross process boundaries.

I don't think that is how it works. Just because multiple processes map the same code (read-only) doesn't mean that they also have mappings to each others' data. If two processes shared mappings to the same data (e.g. after a fork() with no exec()) then what you say may be true.

Just because I can write a program that uses libc doesn't mean that I can use that as a means to extract ssh keys from an ssh-agent that also is using libc.

<comment><USER4> Actually, it does. By warming up the branch-target buffer to call a particular function (called a "gadget") inside libc as the attacker, you can induce the victim process to speculatively execute that function, and thereby leak data. It's a bit more complicated and involved than Meltdown, or Spectre within the same process, but it _is_ possible and depending on the gadget chosen, any data within the victim process could be recovered.

<comment><USER5> I think you are now confirming what I was saying. The attacker uses a gadget in libc (or any other code) to cause side effects that are effective for reading memory within the process's address space.

Since each process has its own address space, this does not allow process A to read memory from process B's address space. For this to happen, process A (the attacker) would need to interact with process B to cause the speculation to happen within process B. Or, as stated in the spectre paper:

> Drawing from return- oriented programming (ROP) [33], in this method the > attacker chooses a gadget from the address space of the victim and > influences the victim to execute the gadget speculatively.

Speculation performed within process A (my web browser) doesn't give you access to the data within process B (ssh-agent).

Maybe I misunderstood the intent of your sentence that I initially quoted.

[edit to fix formatting]

<comment><USER4> Process A uses repeated calls to the gadget to trick the CPU into thinking "hey, that's a frequently jumped to place, I'd better remember that for speculative execution." Then when Process B runs, when it comes up on a branch instruction, it calls the gadget speculatively, bringing with it information about process B across the call. This may require some interaction with Process B, but it's minimal (opening a socket that Process B is listening on might be enough).

Whatever computation resulted from the speculative call is discarded BUT its effect on the cache is NOT. Process A can thus use timing information to determine what's in the cache and thus, exfiltrate data from process B.

So no, you can't read memory across process boundaries directly. The CPU's virtual memory mechanism provides at least that much. The significance of Meltdown and Spectre is, that isn't enough. Using speculative execution, cache trickery, and timing-based attacks, information CAN be exfiltrated from a process even with virtual memory protection in place.

If this gets you paranoid about your ssh-agent leaking data, good. One (relatively) easy way to mitigate this is to use the retpoline compilation technique, which replaces function calls with a RET to the function location. Because the target of a RET, being on the stack, is unknown up until the moment it happens, current CPUs do not speculate across a RET. (Though were it not for Meltdown and Spectre, maybe future CPUs might have made some guesses?) So Process B could not be induced to speculatively call the gadget if it were compiled with retpoline.</comment></comment></comment></comment></comment></comment></comment></comment></comment>


A Raspberry Pi VAX Cluster (2012) - <AUTHOR> http://www.rs-online.com/designspark/electronics/blog/a-raspberry-pi-vax-cluster

<comment><USER2> Of course there is nothing RPi specific in this setup. I wonder how long the novelty of (re)doing everything with RPi and discovering that it indeed is a general-purpose computer lasts.

<comment><USER3> As long as the Raspberry PI remains smaller than virtually everything else, I think it will remain of at least some interest. It might not be fascinating, but it's always at least somewhat interesting to see ye olde piece of computer hardware X, that at the time of its construction was, if not record-breaking in one form or another, at least competitive, reproduced _in software_ by the Raspberry PI. Which costs £25. And is probably smaller than the original device's power supply.

<comment><AUTHOR> > And is probably smaller than the original device's power supply.

It's smaller than the VMS installation tape cartridge ;-)

<comment><USER4> That would make an interesting container for a RPi.

</comment></comment></comment></comment><comment><USER5> Takes me back to my apprenticeship days when I went to Reading (UK) in 1984/5 to spend a week with DEC on a VMS systems admin course, which included setting up clustering.

Back in the office we had a VAX 11/750, which was joined by several MicroVAXes.

Lovely operating system.</comment>


Launch HN: Changemaker Database for Social Entrepreneurs - <AUTHOR> https://www.notion.so/soapboxproject/Changemaker-Database-012744d910e447999e90ad1c54167186 <comment><USER2> This is a great list of new social enterprises. Are you tracking what countries these social enterprises are in? I've noticed that the phrase social enterprise still isn't too popular in the US.</comment>


Picwing (YC Summer 08) Debuts Their Social Digital Picture Frame - <AUTHOR> http://www.techcrunch.com/2008/08/15/picwing-debuts-their-social-digital-picture-frame/ <comment><USER2> Thanks guys! I'm Edward, one of the founders of Picwing, and we're really excited about finally telling the world about the product!

Judging from the number of orders we've been getting, it seems like people have been waiting for something like this for a while. While there are other wireless digital photo frame products out there, we really feel that we've been the first company to tackle it from the software perspective.

Thanks again!

<comment><USER3> Congrats on the launch guys! Awesome product.

One simple suggestion that seems to be missing and can add a lot of value for very little cost...

Allow the frames to be personalised with custom messages engraved on the wood/glass. Finding a good engraving service is easy enough, but if you had a web-form for personalised messages (with preview), these would make excellent presents for weddings/birthdays/anniversaries/etc.

Everyone loves personalisation, and the sentimental value add-in is immense.

Just ordered mine. Look forward to getting it soon(ish).

<comment><USER2> Wow thats a great suggestion! We wanted to (someday) let people customize the actual frame, but the engraving takes its to a whole new level!

The way Apple allows you to do it with iPods is really nice. We'll definitely look into this feature.

</comment></comment></comment><comment><USER4> Please put something more into it to make it different than d-link's or any other wireless picture frame that can also pull stuff from facebook/etc. Is there an ease of use advantage?

Just saying its "social" is played out and only works in the valley. Everybody is doing that these days. Hardware is normally a different game than software and is played by different rules. The marketing is totally different as well. That's awesome that you guys have been able to put a solid piece of hardware together. Don't let all that work, and all that future work, go to waste by falling into a web 2.0 trap. :)

</comment><comment><AUTHOR> Once they get their hardware prices down I think these guys will be rocking. My Mom would love me for a million years if I got her one of these.

<comment><USER5> I could get one for my mom too, then take pictures and have them show up there so she will bug me about my life less often ;)

<comment><USER6> If that's all you want to do, you can just use any MRSS-capable frame with OurDoings.

<http://ourdoings.com/2008-03-01>

It sounds like PicWing has a lot more ambitious things in mind.

</comment></comment></comment><comment><USER7> Cool! I worked on these a while ago, but then we moved back to Italy...

<http://www.mobilemag.com/content/100/336/C2154/>

It was pretty cool - the guy running it scored a deal on a bunch of old HP laptops that he took apart and reassembled into frames.

</comment><comment><USER8> These should really have a webcam and mic, too -- albeit with a physical shutter/switch for total confidence in its on/off status.

Then it'd be the ultimate for keeping-in-touch-with-distant-relatives.

<comment><USER2> Thats exactly the long-term direction that we want Picwing to go. Pictures are really just the beginning for us: We would love to enable applications like email, video conferencing, and more that your Grandma would be able to use in a really non-intimidating way.

<comment><USER6> Interesting. It looks like you're going after "2. Simplified Browsing" (but not just browsing) as well as "27. Hardware/software hybrids" plus at least one of the 30 different subtypes of "9. Photo/video sharing services"

<http://ycombinator.com/ideas.html>

<comment><USER2> number 27 definitely matched what we are doing. The beauty of hardware these days is that its not as scary as most software people thing. Hardware these days really just means low-level software.

</comment></comment></comment></comment><comment><USER9> Six words: Automatically updated photos of their grandkids

Picwing's potential target market: Grandparents. Go after it!

My brother-in-law and myself did this (for my parents) with the then best-of- class Digital Spectrum MemoryFrame. Once we saw that a Wi-fi picture frame supported RSS feeds we were hooked - despite the high cost and painful configuration (RSS + picture frame). I am hopeful that Picwing will make the picture frame grandparent friendly and not try to extort annual subscription fees.

<comment><USER2> Wallflower,

Grandparents or even parents are exactly who we had in mind when we built this!

<comment><USER10> If there is any way you could do this with a dialup connection, then you have yourself a real golden opportunity... especially if there was no monthly fee for 5 pics/month or something. I would buy one right now if it did this.

My recently widowed grandmother doesn't have a computer, let alone a wi-fi connection...

<comment><USER2> We realize that there is sort of a disconnect between the people who buy this thing, and the people who this is intended for (i.e. grandma with no wifi).

We're exploring possible avenues for this, including having low cost GSM connectivity so you can send upto a certain number of pictures w/o a fee

<comment><USER11> I wouldn't worry too much about the subset of people who presumably have broadband (since they know what flickr/facebook, etc are in the first place) but not wifi. You could just sell a cheap router with it in a bundle for that.

Grandma's have wifi these days too.

<comment><USER12> Grandmas have wifi? You are out of touch with ordinary people.

<comment><USER11> I know lots of senior citizens who have broadband and/or wifi. I guess not any who have grandkids my age, but lots of people who have children my age who have children themselves.

<comment><USER12> That's the problem, isn't it. You know lots of people, so you have made the assumption that it's all that way. Well, I know lots of people who are my parents age who not only don't have the internet, but are only peripherally aware that it exists, and really have no interest in going on it.

Just because you know lots of people who are a certain way does not mean it's that way. Remember, you are living in a world that is filtered - to a certain demographic, to a certain income level, to a certain intelligence level, to a certain ambition level and so on. There are huge other demographics that are also filtered in a certain way, and for them, the total opposite is true.

For example, imagine an average high school dropout / labourer. His friends are unlikely to be college professors or other upper class, his friends are unlikely to be rich. His friends are most likely going to be similar to him. And their friends are similar to them. So you have this network of high school dropouts who are all linked to each other in one big demographic pool.

And their parents will also fit in a certain profile, etc. So, no matter what you observe, first of all realise that it's filtered. Very few can say they are intimate with all classes of society. When you are born in a certain class, you may get poor or whatever, but your friends tend to stay from roughly the same class.

It's like an article I read in a german magazine speaking about how universities are functioning as match-making institutions. The article spoke about how the path that leads to a person attending universities tends to bring people who are very similar to each other together - because each step of the way towards the university filters out people. So when they do arrive, you have a group of guys and a group of girls of similar intelligence, similar income level, similar ambition and so on. Perfect fits for each other.

Same with most of us here. We are only on this site because we fullfil some criteria. That I could be here typing this comment on this website means I have matched a set of strict criteria that have filtered out a lot of people.

So, the people you know are also people who would be friends with people who would have children that you would come in contact with. So the same filter mechanism that brought you here also acts on them.

So, your observation can only be through the lens of your class, status, upbringing, intelligence, and education.

<comment><USER11> Aren't you doing the exact same thing? How is "Grandmas have wifi? You are out of touch with ordinary people" any more rooted in fact, rather than your small sample, than my original statement?

Also my statement was "grandmas have wifi". I know two who do, which makes that statement provably true. I never said that all of them do.

More importantly, in the context of the original conversation, before we took this "my sample is more representative of the overall population than yours" detour, is that the product isn't aimed at people who don't know what the internet is. It's a digital picture frame. It's aimed at people who have digital cameras (meaning they almost certainly have a computer) and have family that have digital cameras, and want to be able to share. All products are not aimed at all people, and should not be.

While I assume they're aiming for a wider demographic than the average digital picture frame (and, I think, doing it in a good way) the point of my comment was that they shouldn't worry about aiming too wide. Worrying about making your social digital picture frame accessible to people who don't have WiFi is like making an iPod for people who don't have computers. There is no point.

<comment><USER12> I still think you're wrong. A digital camera is owned by practically everyone now for the simple reason that it's very difficult and expensive to buy a non- digital camera.

But WiFi is really a very optional thing for now.

I'm not saying you're wrong, I strongly believe in focusing a consumer as tightly as possible in the beginning, and since he is dealing with a tech crowd here, he can make wifi a requirement.

But all the same, I don't think WiFi is as spread as you think. Imagine an iPod where one can transfer the music only by WiFi. Or an iPhone. That's a bad idea, is it not?

I'm not saying my sample is more accurate than your, but I am saying I have observed the opposite effect. There is probably some middle ground, the question is where the real statistic lies. And if one is willing to bet a business on that.

I really dislike assumptions. I like to treat facts as assumptions that have not been disproven yet, and that's why I argue this point - don't take it personally!

<comment><USER11> Not only are film-based cameras not expensive or hard to find, they actually outsell digital ones in the form of disposables. I read somewhere not too long ago that they outsell non-disposable cameras by over 25%. (I'm assuming those sales figures meant discrete cameras, rather than including cell-phones. I'll try to find it to check.) Interesting anecdote: my wife and I bought 25 of them for our wedding, and it seems unlikely we will buy 25 digital cameras combined in our lifetimes.

A lot of the reason for their popularity is cost. Disposables are dirt cheap. There's little upfront investment. Most people who can't afford a computer (and therefore would probably not spend $200+ on a picture frame) like that.

So right away, I'd just not worry about lower class families. You aim gadgets at middle class +. I guess my argument is that I don't see much market for a $200+ digital frame amongst people who don't have broadband. There are probably a number of people who have broadband but not wifi who might like the product, hence my suggestion to offer a bundle with a cheap, preconfigured router. (Supposedly only around 40% of broadband homes have WiFi).

I know what you mean about assumptions, but startups are all about making them, building toward them, then narrowing down as you collect feedback from customers. There's simply no way to collect the relevant facts, you have to start from assumptions. They could maybe do some market research, which is slow and expensive, and at least narrow down the assumptions. Or they can just aim their product at the people who can afford it and are likely to want it, and work from there.

So if I were them, I'd focus on building a kick ass wireless frame. Most people who have digital cameras and have experienced sharing them online will probably get it.

<comment><USER12> Alright, we meet in the middle then. On another note, you know one factor that will make a break their company? It's the color of the actual frame. I would never ever buy one of those fake wood made of plastic frames, because they look hella corny. They really need to work on the finish of the frame to make sure it looks really good.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> Congrats guys! Great idea. Looking forward to getting one for the fam for the holidays!

</comment><comment><USER14> Wow! I really like that idea. Now what would be great is if I could hook it up to my Facebook account so that as my friends are adding pictures on Facebook, they show up on my Picwing frame sitting at home automatically.

<comment><USER2> This is a really cool idea too, and it's def on our feature list. We would also keep in mind that all your pictures on facebook are not necessarily the pictures you want on your grandmas photo frame =)

</comment></comment><comment><USER15> It's sort of funny seeing this, after CO2Stats.

Surely electronic picture frames are sort of bad in terms of using energy needlessly? Is there technology yet that only uses power when the display _changes_ , and not all the time?

<comment><USER16> "Electronic paper" is designed this way.

<comment><USER15> In production and cheap yet?

<comment><USER17> It's the stuff that is used in the Kindle and Sony Reader displays (also in that upcoming Esquire magazine cover [http://www.hackaday.com/2008/07/30/esquires-hackable-e- paper...](http://www.hackaday.com/2008/07/30/esquires-hackable-e-paper- display/) ). I know the refresh rates are still very "1st generation", but have no idea about how far along color displays are though.

</comment></comment></comment></comment><comment><USER18> Cool stuff!

I wonder how many times Paul Graham saw this idea mentioned in applications before picking the right team to implement it?

Overall exciting to see these devices slowly becoming popular (Chumby). There is a ton of innovation to occur here.

<comment><USER19> That's probably a compliment to the picwing guys :) An idea that seems obvious in retrospect is probably a good idea. But I'm betting it wasn't obvious to a lot of people before the TC article. If you said, four months ago, that you wanted to "view your photostream across any medium", you'd get plenty of blank stares :)

<comment><USER18> Yeah it was a 2ndary idea we mentioned in sept 2007 application. Like do you have any other ideas we may find of interest.

Though we were not looking at it from a hardware standpoint, but social photo software.

Either way its great to see these devices start catching on and congrats to these guys!

</comment></comment></comment><comment><USER20> When is Mother's Day again? One less holiday present I have to worry about.

</comment><comment><USER21> <http://www.picwing.com/about>

Just like jobsyndicate and startuply, nice copy. Perhaps PG looks for hackers, who are also writers :)

</comment><comment><USER22> Dude holy crap! I was totally thinking of this! I'm definitely going to get a few!

</comment><comment><USER23> Why do digital picture frames always have such broad borders? I'd really like one that is more elegant, that is, with less wasted "screen estate".

But never mind, I won't buy one anyway - I am waiting for digital ink to catch up...

</comment><comment><USER24> When I see something like this, my first thought is, "I wonder how easily this could be hacked so I could display whatever picture I wanted on random people's photo frames?"

</comment><comment><USER25> this one is awesome. I'd get one for my mom when it gets cheaper. =)

Have you guys thought of sync-ing them with flickr and facebook pictures? Or you guys are already working on it?

</comment><comment><USER12> Too expensive. For $50 you'll have me, till then, no deal.

<comment><USER15> For $249 you could just buy a mini laptop :/

</comment></comment><comment><USER26> Pricey but I bought one. Mom's birthday is right around the corner and I love supporting a small and new startup.</comment>


Tech Industry Trade Groups Are Coming Out Against CISA - <AUTHOR> https://www.eff.org/deeplinks/2015/10/tech-industry-trade-groups-are-coming-out-against-cisa-we-need-individual <comment><USER2> Also [https://news.ycombinator.com/item?id=10423742](https://news.ycombinator.com/item?id=10423742).</comment>


Ask HN: What % of the new $2 YouTube Applause goes to the creator? - <AUTHOR> Just saw the button in the wild. It mentions the creator earns 'a share' of the money.
That seems off unless the share is the majority.
Can't find the stated percentage anywhere.
Wrote up a little article about it. https://medium.com/@joshdance/youtube-added-an-applause-button-and-i-kind-of-hate-it-8566b58290f1
Anyone know the breakdown? <comment><USER2> 70% goes to the creator, 30% goes to Google (meaning that the YouTuber will get $1.40 from a $2.00 "applause")

Source: [https://www.socialmediatoday.com/news/youtube-tests-new- appl...](https://www.socialmediatoday.com/news/youtube-tests-new-applause- creator-donation-feature-expanding-on-super/572214/)

<comment><USER3> That is comparable to the fee the Google Display Network is charging [1], so that is not abnormal in that kind of business.

However, compared to Flattr and Brave it is still kind of high, which are charging around 10% [2].

[1] [https://support.google.com/adsense/answer/180195?hl=en](https://support.google.com/adsense/answer/180195?hl=en)

[2] [https://www.ctrl.blog/entry/flattr-vs-brave- fees.html](https://www.ctrl.blog/entry/flattr-vs-brave-fees.html)

</comment></comment><comment><USER4> Tangential: Isn't this like a tip? Shouldn't all of it go to the content creator?

PS: I think it is a good initiative from Google so not criticizing the company at all (in this specific case). Just thought of the recent controversy about some of the food delivery companies taking a portion of the tips, and want to see whether you see this as analogical.</comment>


Ask HN: Why does OS X have more aesthetically beautiful GUI applications? - <AUTHOR> I was in the other Ask HN thread asking about note taking apps. The solutions that were OS X only had such a beautiful interface/UX.<p>Now, aesthetics is probably a perspective thing. But still I can't help but feel that these applications are a notch above, say, Linux GUI applications. <comment><USER2> Better guidelines, [https://developer.apple.com/library/content/documentation/Us...](https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/OSXHIGuidelines/)

And i also think its cultural thing though, they most likely have a huge community with people who has a flare for designing things that goes into the Apple-ecosystem, OS X is pretty nice to look at, and therefor people need to up their design principles to make their applications fit the OS, but don't get me wrong, there are a lot of ugly apps fro OS X as well, they just don't get the same promotion as the good looking apps. :D

Apple is a lot about design, also when it comes to development.

Only my personal thoughts and what i believe might be the reason.

</comment><comment><USER3> On Linux they can't be bothered to get font metrics right for starters.</comment>


The Fruits of Immigration - <AUTHOR> http://marginalrevolution.com/marginalrevolution/2011/07/the-fruits-of-immigration.html

<comment><USER2> Take that, xenophobes!

Many Americans take the stance that "I'm not anti-immigration, I'm anti- illegal-immigration." Nevertheless, the US has very restrictive citizenship & green card programs, and the quotas are a fraction of the demand for them. If we were pro-immigration, we would increase these quotes.

As a globalist: the people living south of our border are just as deserving of a livelihood as we are. This is also the reason that I don't go out of my way to buy local food-- the Chileans need it more than my fellow American farmers. (The American-born farmers had all the opportunities in the world to learn other skills, but they did not excel in high school and have consistently been using protectionism and the "buy local" meme to boost their business.)

<comment><USER3> I think you've correctly identified what Americans mean when they say "I'm not anti-immigration, I'm anti-illegal-immigration." After all, if they were just against illegal immigration, all they'd need to do is make it legal. What they're really opposed to is unlimited immigration.

The part where I disagree with you is the notion that there's something xenophopic about feeling that current levels (depending on where you get your estimates, this ranges from about 1 to 1.8 million per year) are a reasonable limit. I do find it surprising that a nation that admits well over a million immigrants a year is so frequently accused of "anti-immigrant" policies because the annual cap isn't even higher.

You say you'd increase the quota, but you didn't mention if you'd eliminate it altogether. Suppose you felt that immigration levels should be double what they are now, say about 2.5 million a year. Does that mean someone who would make it 5 million a year can call you anti-immigrant?

<comment><USER4> I'm a Canadian currently living in the USA, so maybe I'm biased, but I would personally remove a number-based quota.

I would, however, put in a quota based on the amount of education, capital, and whatever else would provide an estimate of the benefit that this immigrant would provide to the country, penalized by the difficulty that the person would have in integrating and establishing himself.

So, for example, someone with a doctorate, a job offer from an employer, significant capital, and fluency in the language should NEVER have an issue getting into the country.

<comment><USER3> I agree with you, this change would be very beneficial to the US. I've always felt a points-based system (like Canada or Australia) would make more sense. Nobody is happy with the current system - seriously, not a single person thinks the current US immigration system makes sense. The problem is there are so many competing visions for how it should be that reform is nearly impossible.

Keep in mind, if I wrote a post arguing for a cap of 1.2 million a year, some people would upmod me because it's high, others would downmod be because it's too low, others would down mod me because it's too high, others would upmod me because it sets a firm limit. The number of strong opinions on this topic is bewildering (but not at all surprising).

<comment><USER5> This. I have a Master's from a top U.S. University. Both of my sisters live in the US. I have personal resources well above the average American. But, under the current law this is not enough to move to be close to my sisters. In a point based system, I will get points in several categories.

<comment><USER6> Same here, still years away from getting residency.

</comment></comment></comment></comment></comment></comment><comment><USER7> So instead of investing in farm mechanization, or paying marginally more for produce, we should have a permanent underclass of foreign-born manual laborers? Can someone explain the logic in this?

<comment><USER8> If farm mechanization makes sense, sure, but until the Cucumbertron 9001 exists that will make short work of any field, manual labor is needed.

And it's evident that the domestic labor force is ill-equipped to fulfill this demand.

So you are faced with two choices:

\- A shrinking, or at least plateauing of your agriculture industry because you can't find enough people who can do the job.

\- Letting in tax-paying workers in a legal manner to support your growing industries.

The third option is that some company will set up shop in some other country to exploit this labor force that is unavailable in your country, then sell you cheap-ass cucumbers and further increase your trade deficit, and the US government sees neither personal nor corporate income tax benefits, nor any of the ancillary benefits (increased local economy, increased demand for services from workers, etc etc) of having the work in the country.

<comment><USER9> Idea for Mexico: invest heavily in desalination, create whole states of hothouse farms (hothouse assuming that watering whole deserts would be bad for the ecology and an inefficient use of water), and eat American agriculture's lunch. Subsidize the hell out of the desalination, pumping and waste water recycling, until the hothouse industry can pay for it themselves. Then sell the desalination technology and services to the world.

<comment><USER5> Is this really an option? I am Mexican, but don't know much about this type of technology. We have big deserts next to the sea.

<comment><USER9> Your first, second and third sentences are exactly my point.

Yes it's an option, although you and most countries are fairly far from it yet. It takes decisions, purpose and money.

If I can use you as a proxy for Mexico, whatever is not known about this by the larger Mexican economy, and engineering and agriculture communities, can be learned from the smaller groups of knowledgeable people and spread. It's a hard problem, and whatever technologies are developed can lead to exportable products and services (both engineering and agricultural).

Yes, you have big deserts next to the sea, and you probably want to keep them deserts, if for no other reason than human transformation of large ecologies sometimes doesn't work out. So advanced, Mexican developed hothouse technology, enabled by desalinated and pumped water, gives you a place for Mexicans to migrate to in-country, without having to smuggle themselves across the border to die in an American or Mexican desert.

All those Mexican citizens currently working for American agriculture, sending some money home but spending money in America for daily living, could instead be spending that money in Mexico. All that money earned would be feeding the Mexican economy, in addition to the national income earned from exporting agricultural products.

Imagine if the safest food that Americans (and Mexicans) eat came from rigorously clean and high technology Mexican hothouses.

</comment></comment></comment></comment></comment><comment><USER10> The article uses the fact that tomato mechanization blossomed after Bocero ended as evidence that the same will happen in this case.

There are a number of problems with that.

First, tomato mechanization had been researched for what looks like a couple of decades before Bocero ended. It was a solution in search of a problem, then the problem came. So not all fruits yet have suitable mechanical harvesting mechanisms.

Secondly, in order to use mechanical harvesting (with today's equipment anyway), you have to actually plant differently! Wider, longer rows for example. Or different varieties. So farmers would need some time to prepare.

In the long run certainly it should be mechanized from an economic point of view.

From a technical point of view, someone on HN needs to hack a Kinect onto a robot and make an autonomous harvester that can work with multiple types of plants!

</comment><comment><USER11> What I can totally not understand about the US is why are they not PRO- the Startup Visa....this seems to be a total no-brainer.

The people here on this visa, would be working for themselves, attempting to create jobs for Americans, and not taking away any jobs from them, so Congress, get your act together and pass this bill NOW!</comment>


Redis on the Raspberry Pi: adventures in unaligned lands - <AUTHOR> http://antirez.com/news/111 <comment><USER2> It is very cool to see @antirez dedicating time for testing Redis in exotic platforms, showing how different CPU architectures can affect performance of a widely used software. Kudos.

<comment><USER3> Not that exotic anymore... in not-so-many-months we'll have little things with ARMs all over the planet.</comment></comment>


"Bitcoin for the Befuddled" Paperback Now Shipping (Conrad Barski/Chris Wilmer) - <AUTHOR> http://www.amazon.com/Bitcoin-Befuddled-Conrad-Barski/dp/1593275730/ref=sr_1_1?ie=UTF8&qid=1417542348&sr=8-1&keywords=befuddled

<comment><AUTHOR> Hope you all enjoy our new book!

Our free O'Reilly webcast tomorrow: [http://goo.gl/hjRjKm](http://goo.gl/hjRjKm)

Recent O'Reilly radar interview: [http://goo.gl/XmBI80](http://goo.gl/XmBI80)

Read a free (very long!) comic excerpt from the book insert here: [http://befuddled.org](http://befuddled.org)

Buy the eBook with bitcoins on our custom site: [http://cointagion.com](http://cointagion.com) (also has the full No Starch Press book catalog for sale)

Also, here's a site we created for the book that helps newbies get some bits for testing: [http://newbiecoins.com](http://newbiecoins.com)</comment>


Startups are not a chess game - <AUTHOR> http://nabeelhyatt.com/post/16880129002/startups-are-not-a-chess-game

<comment><USER2> This is a great article. I've only made this realization in the past few months after listening to a ton of Mixergy interviews with various startups and companies.</comment>


Show HN: Using Google Face API to "Trumpify" Your Selfies in Realtime - <AUTHOR> https://play.google.com/store/apps/details?id=com.genewarrior.trumpifier <comment><USER2> It makes me sad to see this on hn. I would appreciate a technical write up on the implementation of this app but as snackai said, based on the screenshots it doesn't seem impressive technologically.

</comment><comment><USER3> Quality rather bad. Also, what are you using an API for? Ever heard of Viola Jones? "Programmers" these days...

<comment><AUTHOR> Thanks for your feedback. Implementing a Viola Jones algorithm that is capable to detect tilted faces (and also assess the rotation) from scratch would rather resemble a PhD thesis than a weekend project for fun.

<comment><USER4> DLib has a good implementation of face landmark detection, closer to what you want to do than Viola Jones:

[http://dlib.net/imaging.html#shape_predictor](http://dlib.net/imaging.html#shape_predictor)

<comment><AUTHOR> Cool, thanks for the suggestion. The paper this is based on is really interesting: www.csc.kth.se/~vahidk/papers/KazemiCVPR14.pdf</comment></comment></comment></comment>


Should You Get a Scary UV Photo of Your Skin Damage? - <AUTHOR> https://www.nytimes.com/2019/08/16/style/uv-photos.html <comment><USER2> The powerful dermatology lobby has consistently misled the public about the so-called dangers of sun exposure. We've known for decades that sun exposure has a strong _inverse_ relationship with all-cause mortality.

The fact of the matter is that the vast majority of Americans should be getting a lot more sun exposure, not less. The intellectual sleight-of-hand comes from an obsessive focus on skin cancer mortality to the exclusion of all other causes of death. At the end of the day skin cancer is a relatively rare, easily treatable disease, which only makes up 1.2% of all cancer deaths and 0.25% of all deaths.

Another way to think about this is even if sun exposure increased skin cancer mortality by 250% (it doesn't), the documented 3%+ reduction in CVD is more than enough to outweigh it.

[1] [https://www.ncbi.nlm.nih.gov/pubmed/28074966](https://www.ncbi.nlm.nih.gov/pubmed/28074966)

[2] [https://seer.cancer.gov/statfacts/html/melan.html](https://seer.cancer.gov/statfacts/html/melan.html)

<comment><USER3> > At the end of the day skin cancer is a relatively rare, easily treatable > disease

Please don't say that. Most skin cancers are indeed treatable (basal cell and squamous cell). But melanoma is not, unless caught early. Yes, there are some better drugs now, but it's far from treatable. I have heard too many stories of people who went to the dermatologist to have a mole checked, and 9 months later they were dead. Melanoma is scary.

<comment><USER4> Melanomas are largely treatable because they _are_ caught early. People tend to notice fast-growing tumors on their skin, unlike in other areas of their bodies.

<comment><USER5> People often miss things, or mistake them for something else. My buddy thought he had a mole on his ear until it turned out it was aggressive melanoma. They reconstructed his ear and took out some lymph nodes, and 2 years later it came back in his lung. Fortunately he enrolled in a clinical trial of immune based chemo, so he only lost his thyroid and adrenal glands.

How likely is it that you'd notice melanoma on your scalp or back?

</comment></comment></comment></comment><comment><USER6> I've been Googling it and simply cannot find, anywhere, an explanation of why areas of skin that reflect less UV (and are therefore darker) are "skin damage".

Is this medically legitimate, or just a cool camera effect whose medical causes/effects are unproven or uncorrelated with sun exposure or skin cancer?

To play devil's advocate, couldn't these just be spots that appear with genetics or age regardless of sun exposure? And are there statistics showing that skin cancer appears with significantly greater frequency on the dark spots as opposed to lighter areas? Or heck, couldn't the dark spots function as skin _protection_ (rather than "damage") since darker skin protects you from the sun in general?

I _can_ believe it -- but the complete and total absence of any easily verifiable facts here makes me skeptical about taking this at face value.

<comment><USER7> The thinking used to be that a tan (a complex process called melanogenesis) was the skin protecting itself from DNA damage. However, research in recent years suggests that DNA damage has already happened at the point when tanning occurs.

For example, there's this oft-cited paper: [https://www.ncbi.nlm.nih.gov/m/pubmed/15748643/](https://www.ncbi.nlm.nih.gov/m/pubmed/15748643/) ("Melanogenesis: a photoprotective response to DNA damage?"). Relevant quote: "Growing evidence now suggests that UVR induced DNA photodamage, and its repair is one of the signals that stimulates melanogenesis and studies suggest that repeated exposure in skin type IV results in faster DNA repair in comparison to skin type II. These findings suggest that tanning may be a measure of inducible DNA repair capacity, and it is this rather than pigment per se which results in the lower incidence skin cancer observed in darker skinned individuals."

This does seem to be the current paradigm in dermatology, and it reflects what I've been warned of by dermatologists. I've not been able to find any recent research that challenges this theory.

<comment><USER8> I never thought that a tan protected you from DNA damage _from the sunlight that caused you to tan_. I thought that it protected you from _future_ DNA damage to the now more type IV-like skin.

</comment></comment></comment><comment><USER9> Is this UV damage or just our reflecitivity to UV light?

<comment><USER10> Melanin converts 99.9% of UV radiation into heat.

Even the synthetic form as noted here [https://www.ncbi.nlm.nih.gov/pubmed/15068035](https://www.ncbi.nlm.nih.gov/pubmed/15068035) The risk is poor nutrition, copper is needed for this skin pigment, which means competing with the demands placed by other parts of the body like collagen, (bones, skin, etc etc), blood cell production and more. Another problem is the skin is washed often, daily in most cases and exposed to chemicals which can become carcinogenic under the sun. Carcinogenic suncreams exist. So its a complicated picture, poorly understood. The photo's are useful for seeing the distribution of cells.

</comment></comment><comment><USER11> Hey! You! Schedule a visit with a dermatologist today.

The appointment takes about 20 minutes, and they do a great thorough check of all your moles and other skin irregularities. If you go once a year or so, they'll almost certainly catch anything that needs to be removed before it gets deadly.

Two stories:

First, a close friend of mine ignored a skin irregularity for years and years until he had to have his entire thumb amputated. Unfortunately, the melanoma had already spread, and now he's a terminal patient (although a few clinical trials have helped extend his life beyond the initially predicted timeline!).

Second, my business partner goes in to get his skin checked every year. The dermatologist caught an irregular mole, confirmed it was cancerous, but because of how soon it was caught, the doctor removed it, and he hasn't had any other signs of cancer since.

<comment><USER2> There's no evidence that population-wide skin cancer screening has any impact on overall mortality. And in fact dermatologists have an enormously high rate of misdiagnoses leading to a lot of unnecessary painful and stressful biopsies.

> The second ecological study compared the melanoma mortality experience in > Germany with the melanoma mortality experience of subregions of 22 European > countries for the years 2000 to 2013, none of which had organized screening > programs. After adjustment for potential confounders, Germany and the 22 > European regions had similar malignant mortality rates, suggesting no > benefit of screening.[30]... One case of melanoma was detected per 28 > excisions overall (for both men and women), while 52 skin excisions were > required to detect one melanoma in men aged 20 to 34 years.[31]

[https://www.cancer.gov/types/skin/hp/skin-screening- pdq#_24_...](https://www.cancer.gov/types/skin/hp/skin-screening-pdq#_24_toc)

My advice would be just the opposite. Unless you're an at-risk individual or have a family history of melanoma, skip the dermatologist appointment.

<comment><USER12> Very valid points, but for what it's worth some people will worry until they've got a negative from someone who knows what they're doing. False positives are stressful, but I like having someone who actually understands dermatology take a look, especially since I grew up getting way too much sun, and since I started balding have had a couple bad head burns (I now understand why hats are a good thing).

Also, if you don't have a partner who sees you naked on a regular basis, there are parts of your body you probably don't see too often. I have a birth mark my wife sees more than I do.

<comment><USER13> > Visual examination of the skin in asymptomatic individuals may lead to > cosmetic or functional complications of diagnostic or treatment > interventions and the psychological effects of being labeled with a > potentially fatal disease, although robust data on the frequency of such > events are lacking. Other harmful consequences are overdiagnosis, leading to > the detection of biologically benign disease that would otherwise go > undetected,[7,8,32] and the possibility of misdiagnosis of a benign lesion > as malignant.

The potential harm does not sound too horrible, especially since anomaly detection normally results in removal of a small piece of your skin that heals easily and that's it.

> One case of melanoma was detected per 28 excisions overall (for both men and > women), while 52 skin excisions were required to detect one melanoma in men > aged 20 to 34 years.

On the other hand, the detection rate is actually quite high in my opinion, since they tend to cut out anything small that is suspicious and only do a thorough check afterwards.

It might be different from an economic point of view for the system paying for these checks, but as an individual I'd say there is little to lose and a lot to gain. (The options usually are: Nope, no cancer and you have a small wound/scar. / Yes, it was cancer, but we already took it out so you're fine now.)

<comment><USER14> Melanoma biopsies are not typically "small pieces of skin".

Any other kind of biopsy will be unreliable and is more likely to be a waste.

How are you basing detection rate on that information? Hint: you can't. Or if you are implying that detecting 1 case in 52 cases of melanoma is good (a sensitivity of 2%) then you're nuts.

All medical students and dermatologists train on the basic guidelines for skin cancer screening. Please leave this to the professionals.

</comment></comment></comment></comment></comment><comment><USER15> I read the whole article expecting the question posed by the title to be answered. It never was, nor was there any appeal to science, data, or statistics on UV skin photography. Pretty disappointing.

Specifically, I wonder how good of an indicator of sun damage or cancer risk a photo like this really is, or if it's just an advertising gimmick.

<comment><USER3> It kind of is answered, at the end:

"Doctors don't need UV photography for diagnostic purposes. "We are trained to pick up on subtle changes," said Dr. Rachel Nazarian, a dermatologist with offices in Murray Hill. The pictures, she said, are "meant for dramatic effect."</comment></comment>


China's Quantum Satellite Could Change Cryptography Forever - <AUTHOR> http://www.popsci.com/chinas-quantum-satellite-could-change-cryptography-forever <comment><AUTHOR> FWIW, one of the authors, P.W. Singer is a leading expert on future military technology and its applications.</comment>


Metaprogramming with ECMAScript 6 proxies - <AUTHOR> http://www.2ality.com/2014/12/es6-proxies.html

<comment><USER2> This is huge.

            var proto = new Proxy({}, {
                get(target, propertyKey, receiver) {
                console.log('GET '+propertyKey);
                return target[propertyKey];
             }});

I've been following ES6 pretty closely, but somehow I missed this huge feature. Don't get me wrong, I love generators and destructuring, but this is soooo cool.

<comment><USER3> Getters have been in JS since ES5 and can do what you just wrote. Obv Proxy is more powerful/has more traps.

<comment><USER4> Not completely: with getters, you have to decide on a specific set of properties, the proxy GET trap intercepts all get operations. But I agree that you don't always need proxies.</comment></comment></comment>