Prague from the TV Tower - 18 Gigapixel Panoramic Photo - <AUTHOR> http://www.360cities.net/prague-18-gigapixels

<comment><USER2> From the blog post, it looks like this could be done by anybody with a good SLR, lens, robot mount, and lots of time.

Also, let the "wtf am I looking at" hunt begin:

<http://i.imgur.com/Ibmo5.jpg> <http://i.imgur.com/Tjxfd.jpg>

<comment><USER3> Actually, it's not that easy (to do well, at least).

18Gpix with a 9Mpix camera means 2000 exposures. Steady-state shooting rate for most digital cameras once the buffer is full is about 1 shot/s, so that means it would take _at least_ half an hour. (And it's doubtful a robot mount could move that fast.)

During that time, the Sun will move significantly and unless you have a completely clear sky some clouds will likely move in front of the Sun. You'll never get a good stitch.

<comment><USER4> simple:

many professional cameras (20+ mpix) used by many photographers to take pictures of their appropriate sections

</comment></comment></comment><comment><USER5> The best part is that you don't have to look at the tower:

[http://en.wikipedia.org/wiki/%C5%BDi%C5%BEkov_Television_Tow...](http://en.wikipedia.org/wiki/%C5%BDi%C5%BEkov_Television_Tower)

A communist-era classic.

<comment><USER6> What? The TV tower is awesome. Especially the crawling baby sculptures..

<comment><USER4> absolutely amazing! shame I haven't seen it before

</comment></comment></comment><comment><USER7> 26 GigaPixel image <http://www.dresden-26-gigapixels.com/dresden26GP>

</comment><comment><USER8> The additional details are pretty interesting also:

About: <http://blog.360cities.net/the-largest-panorama-in-the-world/>

How it was made: [http://blog.360cities.net/prague-18-gigapixels-how-it-was- ma...](http://blog.360cities.net/prague-18-gigapixels-how-it-was-made/)

</comment><comment><USER9> The buildings are of remarkably uniform height. My guess is either limitation of building material at the time of greatest construction, or zoning ("cannot be higher than the church").

Even the modern buildings are mostly low.

<comment><USER10> At the same time each building is different in style, something that many US cities lack.

<comment><USER11> In the center. Outside? Not so much. <http://en.wikipedia.org/wiki/Panelák> :-)

<comment><USER12> Yes, I was rather startled by the housing-development-writ-large look of much of the view, as I'd only seen pictures of older Prague architecture before.

</comment></comment></comment></comment><comment><USER13> This could be a great tourism tool. "Hey check out our cool city and its architecture." Makes me want to visit Prague. Looks like a cool city.

There are a few other cities I would like to see this of.

<comment><USER14> Don't forget about google street view. It doesn't provide the nice bird's eye view that this does, but there is street level coverage of a good chunk of the city.

</comment></comment><comment><USER15> very impressive! zero obfuscation though...

How long until technology gets to the point where this can all be done in real time, giving powers that be absolutely insane CCTV monitoring abilities?

<comment><USER16> This resolution isn't coming in real time any time soon (i.e. within the next 10 or 15 years), until we have cameras based on a different optical principle than a flat sensor with a set of glass lenses in front of it: Using the sizes of sensors we can currently manufacture for any reasonable kind of price, we can take a picture of this resolution with each exposure having about a maximum of about a 20 degree field of view. And since current sensors are not all that far off of saturating the detail that lenses can resolve, the only way to improve this will be either to make larger sensors, use arrays of cameras (or turn the cameras around very quickly), or use some other kind of optical system. In not too long, I suppose we might be able to capture data continuously, as a video, and then use software (computationally expensive fancy math) to increase the resolution beyond that in any particular frame. But that's still not going to get us close to 18 gigapixel spherical panoramas.

<comment><USER12> Especially considering something like this takes lots of time just to take the stills. (For instance, on the Dresden panorama linked elsewhere on this page, if you look along the bridge on the left side, you can see two different appearances by the same woman cycling.) Real-time at this quality is a _very_ long way away.

</comment></comment></comment><comment><USER11> Is there a reason why the panorama isn't joined cleanly at the closest zoom level? (Northeast direction, facing Vysočany.) I don't know how hard is it to make, though.

</comment><comment><USER17> I don't know, but it simply seems weird to see prague for this point. While my old office is almost across street from my home, it looks incredibly far on this photo.

</comment><comment><USER18> Very interesting. Did you notice the dupicate guy?

Look on the left of the circular park in the middle of the round about. The guy with the knapsack is duplicated.

<comment><USER19> There are a ton of stitching errors. I imagine the algorithm chosen was optimized for time, not for accuracy.

</comment></comment><comment><USER20> Pretty incredible stuff. I'm glad they didn't have the treasure hunt clues up yet or I probably wouldn't have lost the better part of my morning looking at this.</comment>


How the World Missed Covid-19's Silent Spread - <AUTHOR> https://www.nytimes.com/2020/06/27/world/europe/coronavirus-spread-asymptomatic.html <comment><USER2> This article is humbling, or should be. Many people have been quick to condemn "non-scientific" laypeople for stubbornly refusing to wear face masks. But it's clear that there's been analogous denial within the scientific establishment itself. Human society is poorly adapted to solving "tragedy of the commons" types of problems. It's worth stepping back a bit to think about how we could do better, because we have even bigger problems like climate change on the horizon.

<comment><USER3> I don't think the denial was within the independent scientific establishment. From what I saw as it was spreading, many people in academia knew something was wrong. But, the scientific community that was tied to politics (public health officials, government appointees, etc) were singing a very different tune, and the political pressure to tell a nice story to the public seemed to be incredibly intense. IMO, this underscores the need to have public health agencies be independent of political pressures and find ways to mitigate political influence on these agencies, sort of like how the federal reserve is theoretically independent. I think things would have looked different if government science officials hadn't intervened in favor of their preferred narratives early on. This includes the WHO as well - their early denials of the severity of the spread and apparent willingness to go along with China's narrative just confused the scientific and political response.

<comment><USER2> I think you are right about independent scientists in some cases having a better view of the pandemic on the ground.

At the same time it's not clear independent health authorities are the solution. The problem we're facing with reopening is that we have to balance health outcomes with economic trade-offs to create a solution that maximizes both. In theory that's what we pay politicians to do, especially in democracies.

<comment><USER4> I think one thing that happened is a total break down between policy makers and institutional scientists. Institutional scientists simply will not speculate publicly. Normally they work with executive branches and political leaders to formulate a coherent policy. Non institutional scientists on the other hand were free to say what they believed was prudent.

In the west over the last 40 years there has been a complete breakdown in the ability of governments to formulate coherent policy followed by action.</comment></comment></comment></comment>


Dear Hacker, 95% of your peers have chosen this API instead... - <AUTHOR>

Social coding?
Nice concept or not really needed?<p>http://www.eclipse.org/recommenders <comment><AUTHOR> Clickable: <http://www.eclipse.org/recommenders>

</comment><comment><USER2> This would be great if the best frameworks and APIs were the most popular. But they rarely are.

Most people are too lazy to learn which APIs are actually the best.</comment>


Teenager arrested for Facebook post beaten up in prison - <AUTHOR> http://rt.com/usa/teen-facebook-arrested-prison-628/

<comment><USER2> This article raises a multitude of issues.

Issue number one: The problematic ways that the prison system deals with assault and mental illness among inmates.

Issue number two: Whether the potential sentence for a crime purely involving speech, rather than actions, should be so severe as eight years in prison.

Issue number three: Whether the speech in question was Constitutionally protected satire, or a criminal threat.

Issue number four: Whether the justice system should have taken a look at this case and decided to cut the defendant some slack.

I'm sure there are more.</comment>


Yelp deletes all the content - <AUTHOR> https://www.news18.com/news/buzz/yelp-tried-to-remove-bugs-on-app-artificial-intelligence-deleted-everything-2003957.html <comment><USER2> Repeat of fake news.

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


A Primer on Web Caching - <AUTHOR> http://thomashunter.name/blog/a-primer-on-web-caching/

<comment><USER2> Weird stuff in here...

Makes it sounds like Redis is "closer to the metal" with a lower-level API than Memcached. Also how can you be "more persistent"...you're either persisten or not, unless you are being cynical and saying Redis' persistence is hit or mess?

The idea that caching results from SQL queries to disk won't, in general, provide gains is silly. Aggregates, complex joins, high offsets, queries that don't hit indexes and so on can all benefit _greatly_ from having the final results cached. It isn't the network overhead that you are trying to avoid, it's the data transformation.

There are other oddities in there.

Out of curiosity, does PHP code really still use interpolation rather than parameters for queries?

       [select...where] company_id = " . $this->db->escape($company_id) . "";

<comment><AUTHOR> memcached is not persistent, redis is, therefore, redis is more persistent than memcached.

The framework the example app is built in provides a (poor) database library, and that is the method for building SQL queries (I've since moved on to PDO's parameterized queries).

<comment><USER2> Ok, maybe I was being pedantic about the persistence thing, but just to be clear, I read that in the way that you might say Julia Roberts is more female than me.

Anyways, we'd need to find an english teacher to see if you can say it or not.</comment></comment></comment>


I Sent Valentine's Day Text Reminders to My Boyfriend Using Twilio Studio - <AUTHOR> https://twilio.com/blog/2018/02/i-sent-valentines-day-text-reminders-to-my-boyfriend-using-twilio-studio.html <comment><USER2> If you have to prompt affection, the resulting act is not truly affectionate.</comment>


IWork '13: A Huge Regression - <AUTHOR> http://mjtsai.com/blog/2013/10/23/iwork-13-a-huge-regression/

<comment><USER2> It seems they have shifted their focus from providing a cheap consumer alternative to Microsoft Office to instead providing an alternative to Google Docs. It just shows their bigger competitor these days is Google as opposed to Microsoft.</comment>


More steps to better code (2016) - <AUTHOR> https://about.sourcegraph.com/blog/the-sourcegraph-test-v0-9-12-more-steps-to-better-code/ <comment><USER2> The concept of powerful and simple code navigation can be mind blowing for productivity. While modern editors have become slicker, I think that many have lost the customisation from macros that made it so easy for emacs users to create their own productivity workflows. Never the less, I will try sourcegraph.

<comment><USER3> Fun fact: both Quinn and I (Sourcegraph cofounders) still use Emacs as our primary editor :)

(But frankly, all other editors except Vim are great, too :P)

</comment></comment><comment><USER4> TLDR: jump to def to death.</comment>


Douglas Adams Hitchhiker's Guide drafts to be published - <AUTHOR> http://www.bbc.co.uk/news/entertainment-arts-27632566

<comment><USER2> I'm hoping for some cryptic notes in the margin about the whole 42 thing.</comment>


How I lost trust to programmers when I was 13 - <AUTHOR> https://medium.com/planet-arkency/how-i-lost-trust-to-programmers-when-i-was-13-91624fd3fa7b#.7812sioyx <comment><USER2> What lesson do we take from this? Always implement Test Driven Development?

<comment><USER3> And use mutation testing to make sure your tests are correct. Oh, and have integration tests too, along with tests for your infrastructure. How can anything go wrong if you have all that? Well, it can and will.

</comment></comment><comment><USER4> The only question is if users are willing to pay the price of a bug-less software.

Nope, but at least they have the time to write one star reviews about wasting money on a 99c app, while sipping through their $10 cup of coffee. :)</comment>


Rams [video] - <AUTHOR> https://www.ohyouprettythings.com/free <comment><USER2> It's very generous of Gary Hustwit to make his films free right now. He's being doing one a week. I watched Rams last night and really enjoyed it. Dieter Rams lived in post-war Germany and pretty much invented modern product design. He was hugely influential to Jony Ive and Apple. If you like well-made documentaries about people fully engaged in their craft, I highly recommend it.

Also, check out Objectified which is more about product design in general and features Ives. Helvetica is my favorite Hustwit film, but this comes close if not surpasses it.

<comment><USER3> I watched Helvetica since I am a strange person mesmerized by typefaces design. The lady in the film who claimed that Helvetica was responsible for the Vietnam War made me realize I am really not an insider with this crowd.

</comment></comment><comment><USER4> Heh, for a second I thought this was the 2015 Icelandic film that got much love from the critics. [0] But this is even more interesting, I've never heard the guy's name before but if his style influenced Apple, he's the kind of creator I'd like to know.

Also, those who might not be interested in a documentary about a designer should at least check out the film's soundtrack. The amazing Brian Eno made it and he rarely misses.

[0]: [https://en.wikipedia.org/wiki/Rams_(2015_film)](https://en.wikipedia.org/wiki/Rams_\(2015_film\))

</comment><comment> death-by-ppt Most of it is in German. so i had to read subtitles. there is an English version, but (at least for now), it's not free. (I'm not complaining, I'm letting you all know)

It was mostly about the man, and less about his work. i would've preferred the reverse. of course, it's on the label...

I liked it, but i didn't love it. I'm gonna watch it again on a PC (instead of Chromecasting to my TV, and maybe in English) and screenshot the products that caught my eye.

There are other docus about him, too.

<comment><USER5> I would argue for biographical format the movie takes. Rams' design is this foundation for what now represents an aspirational aesthetic. The design is not faceless, but it aims to be invisible.

Having a glimpse of the individual and his philosophies gives insight into how he made those decisions. It also gives a sense of the forces that working against him.

At the beginning of the film, he took a question from an aspiring industrial designer about overcoming mediocrity. Rams' response was about surrounding oneself with people who see themselves as striving to be better. Obviously, this statement is portable to beyond just design.

</comment></comment><comment><USER6> That was inspirational. Thoroughly enjoyed watching that and, quite aside from the elegant 10 principles stuff, I couldn't agree more with Rams' objection to the vulgar insistence on big, prominent logos, rather than his preference for understatement - a signature by design, rather than shouting.

[edited to remove ambiguity]

</comment><comment><USER7> Already bought this movie before, and as someone really interested in design, it was really worth the money...

</comment><comment><USER8> Nice! Missed the debut this year and have been looking for a way to see it.

</comment><comment><USER9> I'm always surprised people here tolerate these one word titles that say nothing about what is in the link.

</comment><comment><USER10> @dang can you update this title to indicate that the link is so-and-so's documentary about Dieter Rams?

<comment><USER11> I thought it was about random access memories

<comment><USER12> Well, if you need some you can always download them[0]

[0][https://downloadmoreram.com/](https://downloadmoreram.com/)

<comment><USER13> Well, at least they just did nothing, and then an innocent rickroll ;) I mean, they could have maxed browser RAM usage. Or worse.</comment></comment></comment></comment>


How To Read an Unlabeled Sales Chart - <AUTHOR> http://evanmiller.org/how-to-read-an-unlabeled-sales-chart.html <comment><USER2> The first technique won't work if the sales are rounded off to the nearest pixel, which is pretty much almost always the case.

The second method won't work if the sales do not follow a Poisson distribution, for instance a product will have better sales at launch and during advertising campaigns. The sales figures don't always float around a constant average.

Also, I hadn't checked the math on the second method but the units don't add up.

On the LHS, you have [sales / pixel]x[pixels] = [sales]

On the RHS, you have ([sales / pixel]x[pixels])² = [sales]²

IIRC, the left hand side should be squared.

<comment><USER3> Both sides are unitless: sales is not in dollars but the number of sales.

<comment><USER4> The units are actually rates: sales per day.

</comment></comment></comment><comment><USER5> The article could have computed the numbers on various charts that others have published that do have the scale visible, to illustrate how well this works.

</comment><comment><USER6> Surprised no one on HN calculated this already.

S = P / Var(P)

Numbers of pixels: 13,6,16,29,6,16,13,6,19,13,19,9,26; followed by the large one. Mean ~ 14.692; Using Sample Variance ~ 53.397; Using Population Variance ~ 49.289;

SalesPerPixel(Sample) ~ .275

This doesn't seem right, where does the math screw up?

That said, this isn't very useful. The only time someone will show sales graphs is for special events... aka when it DOESN'T follow a possion distribution.

<comment><USER4> I think you underestimated the pixel counts. It's hard to be precise because of the bleeding, likely due to scaling, but adding one to the pixel counts results in a much more reasonable 0.294 sales per pixel. This would indicate the special event precipitated 25 sales.

</comment></comment><comment><USER7> "Here's a table with more values (the Riemann zeta, unfortunately, is not implemented in Excel)"

This made me laugh.

</comment><comment><USER8> The article fails to mention the very huge dependency on scale for such a methods.

These methods will work on a sales graph built from numbers like [27, 41, 55, 73]. Part of these methods (not all) may work on a sales graph built from numbers like [27 000, 41 000, 55 000, 73 000] ... and give the exact same result as for [27, 41, 55, 73].

And none of them will give any reasonable results for numbers like [27 123, 41 432, 55 132, 73 433] - there's not enough information for that.

</comment><comment><USER9> This assumes that all sales are equal, but if sales is a sum of dollars earned I assume this won't work (since each sale can be for a different amount).

<comment><USER10> Sure, but then it gives you estimate of dollars earned.

<comment><USER11> It will give you a estimate of _cents_ earned, but they are usually too small to appear in the graphic. In this case the first method doesn't work.</comment></comment></comment>


Vikram 'Kumare' Gandhi's Wired 2012 talk: the power of religious belief - <AUTHOR> http://www.wired.co.uk/news/archive/2012-10/25/vikram-gandhi

<comment><AUTHOR> Just saw Kumare on Netflix & it's simply brilliant!</comment>


Ask HN: Why do you do open source? - <AUTHOR>

We're currently working on my bachelor's thesis on the subject of why people give up their free time and work on open source projects. As a first step, we're collecting data on the motivations behind it.
There's just one question on the form, but please write as much as you have time to! Thank you!
https://docs.google.com/forms/d/1MtXwd4kVF6kSuC4q_4rDaUksBRckLaCfgJGP6_JKSnY/viewform <comment><USER2> This old discussion on the Programmers StackExchange might be of interest - [http://programmers.stackexchange.com/questions/3233/why- do-p...](http://programmers.stackexchange.com/questions/3233/why-do- programmers-write-closed-source-applications-and-then-make-them-free)

<comment><USER3> Off topic, but yet another good discussion that was closed by some narrow minded moderator.

<comment><USER4> Really? it is an interesting topic, for HN, but not for a Q&A site. (I actually sound like a Jeff Atwood snippet.)

</comment></comment></comment><comment><USER5> It's not always free time. At companies I worked for, we upstreamed open- source changes, because we wanted to shift the burden of maintenance.

But I sometimes have similar motivations for contributing my changes to open source projects privately, too.

</comment><comment><USER6> Painters paint, hackers hack</comment>


Westworld Is Strikingly Real: AI Could Be Conscious and Unpredictable - <AUTHOR> http://nautil.us/blog/westworld-is-strikingly-real-ai-could-be-conscious-and-unpredictable <comment><USER2> I'm not sure why anyone would want to build AI with wide open ended types of goals.</comment>


Simple VM JIT with LLVM - <AUTHOR> http://blog.fallingsnow.net/2008/05/23/simple-vm-jit-with-llvm/

<comment><USER2> (This is from 2008)

<comment><USER3> Yep, indeed. Though still worth a read for the comments alone.

Nowadays Rubinius' JIT VM is implemented with LLVM and, obviously, is much more sophisticated.

</comment></comment><comment><USER4> the comments are where this starts to get really interesting.</comment>


Startup Opportunity Targeting Skin Cancer Patients. Interested? - <AUTHOR>

Few days ago I was talking with a very top dermatologist in Houston, TX (he's treating my mother for skin cancer) and he has an idea (and has applied for a patent) for a mobile app that would be very valuable for dermatologists treating skin cancer patients as well as for patients themselves.
Essentially once you have a skin cancer mole and that area has been removed, you need to go and see a doctor periodically (every 3 months initially, then 6 months then a year) and a doctor will take a picture of all the moles all over your body, mark it on a "human body map", compare it with how the mole previously looked and decide if the mole is potentially dangerous and if so send it to biopsy.
The idea is to write a mobile app that will organize that whole process for dermatologists and help them save time. Moreover, potentially a much bigger market can be skin cancer patients i.e. they can take pictures of their moles themselves and software can "compare" the picture with previous versions of that mole picture and advise the patient to go to see a doctor if something has changed abnormally.
If you are a developer who would like to work on such an app or are an investor who would like to invest in such an opportunity please send an email to firstname.lastname@example.com. <comment><AUTHOR> If you have any questions, I'd be happy to answer them as much as I can/know. I'm a programmer by trade and I would've done this project myself if I wasn't running my newly established startup myself.</comment>


Ask HN: Recommended resources for learning advanced JavaScript - <AUTHOR> So I've been learning Javascript for a couple of years now and I feel more and more that my poor understanding of how it works under the hood is holding me back.
So I'm looking for resources that focus on how Javascript works under the hood. I'm thinking concepts such as execution context, event loop, scope, etc..
Preferably the resources contain a lot of examples and exercises for practice.
I've been following the guide on Javascript.info which is great, but I'm looking for something that goes even deeper than that. I've tried reading the "official" specification but it's just too dense for my brain to grasp.
So I would love to hear if anyone here has any such resources to recommend. <comment><USER2> Check out 2ality[0]. The blog author delves into ECMAScript internals and specific concepts (e.g. hoisting, scope nuances based on variable declaration, etc.) with great details.

[0]: [https://2ality.com/](https://2ality.com/)

<comment><AUTHOR> Wow, awesome. Seems to be just what I'm looking for. Thanks:)

<comment><USER3> These two books are based on the 2ality blog and also free to read online:

– JavaScript for impatient programmers (covers most of ES1–ES2020, incl. many advanced topics): [https://exploringjs.com/impatient- js/](https://exploringjs.com/impatient-js/)

– Deep JavaScript (covers advanced topics): [https://exploringjs.com/deep- js/](https://exploringjs.com/deep-js/)

<comment><AUTHOR> Thank you, will check it out:)</comment></comment></comment></comment>


The Market for Human Hair - <AUTHOR> http://priceonomics.com/the-market-for-human-hair/ <comment><USER2> If you find the article interesting, I encourage you to check out Chris Rock's "Good Hair" film. As a white guy from the midwest I learned a lot:

Trailer here: [https://www.youtube.com/watch?v=1m-4qxz08So](https://www.youtube.com/watch?v=1m-4qxz08So)

</comment><comment><USER3> This reminds me of Lexx episode "Lyekka Vs Japan".[0] The relevant bit starts at about 1:00.

[0] [https://www.youtube.com/watch?v=ax4CC4VGEa0](https://www.youtube.com/watch?v=ax4CC4VGEa0)

</comment><comment><USER4> I will sell the output from my razor for $125. Comes from a smoke-free home.</comment>


Visual Cryptography Kit - <AUTHOR> https://www.cl.cam.ac.uk/~fms27/vck/ <comment><USER2>
      data:text/html,

Of course, I did this via the domtools^Wdevtools before experimentally trying the above, which happily works as well.

I _think_ the reason the images loaded was because I was on a data: URI? Or am I misinterpreting CORS?

</comment><comment><USER3> Result: [http://imgur.com/DpcqpMs](http://imgur.com/DpcqpMs)

<comment><USER4> I printed the images onto A4 paper (held in front of a lamp). It's quite fiddly to get them to match. Very fine sub-mm accuracy needed.

<comment><USER5> just drag the image on top of the other with your mouse

<comment><USER4> The point is that it's much harder with a hardcopy...

</comment></comment></comment></comment><comment><USER6> isn't this somewhat easy-to-decrypt than OTP? this isn't using some XORs, but 'OR' operations.</comment>


Email in the 18th century - <AUTHOR> http://www.lowtechmagazine.com/2007/12/email-in-the-18.html

<comment><USER2> I invented this in my head a few years ago. Figured that if I was sent back to the 17th century or so, I'd get rich by building towers to send messages long- distance with light. No surprise that someone already did it.

</comment><comment><USER3> The Great Wall of China had one of those fire towers every some distance (to alert invasions I think), kind of like the set up in the LoTR: The Two Towers. I never thought people would use these signaling methods to actually transmit these kinds of information. Pretty cool.

</comment><comment><USER4> This made me think of that scene from "The Lord of The Rings: The Two Towers" where Merry sets fire to one of the signal towers in Minas Tirith. (Or was it Pippin?)

</comment><comment><USER5> Remember playing the game "Post Office" in elementary school? The first person would whisper "The quick brown fox jumped over the spoon," to the second person. This would go around the room until the last person revealed the message, "My mother bakes brownies on Tuesday." And it happened like this every time!

What did these systems do to avoid that translation problem? Probably nothing, leaving me to believe that they weren't that effective and were quickly replaced by the next available technology.</comment>


The Most Important Idea in Computer Science from Alan Kay - <AUTHOR> http://bc.tech.coop/blog/060224.html

<comment><USER2> Alan Kay has got to be one of the smartest people alive. I wish he wrote more. My favorites are his answer to the question "What do you believe is true, even though you cannot prove it?":

<http://www.edge.org/q2005/q05_8.html#kay>

and his essay "Predicting the Future":

<http://www.ecotopia.com/webpress/futures.htm>

His other work is quite impressive, also, but these two are by far my favorites.

</comment><comment><USER3> One idea that Kay has championed is what he called somewhere "recursive design", in which you begin with a kernel that is both simple and universal and then build the rest of a complex system in terms of that. The relation to Lisp is obvious, and Lisp and Smalltalk environments are probably the best examples of systems designed this way. I'm curious what other examples people here might cite.

</comment><comment><USER4> First .coop site I've come across.</comment>


3 Best Libraries to manipulate Java bytecode programmatically - <AUTHOR> http://www.coolcoder.in/2015/02/3-best-libraries-to-manipulate-java.html

<comment><USER2> ASM is the best library as of now</comment>


Ian Bicking: My Unsolicited Advice For PyPy - <AUTHOR> http://blog.ianbicking.org/2011/04/04/unsolicited-advice-for-pypy/ <comment><USER2> Ahh, but PyPy is not being written by web developers -- or for them. The main guy behind the project is a research computer scientist (<http://cfbolz.de/>) and most of the people who are excited about it are also doing scientific computing.

I am one of them, and the ability to write scientific code in Python that runs as fast (or faster!) than C would be so awesome that I can hardly put it into words. Unlike web development, performance is still a huge bottleneck in this field; people still mill about for 3 weeks waiting for their job to finish just like it was the 1970s. Consequently, most code written for research projects consists of lot of arcane, difficult-to-read C, C++, or even (gasp!) FORTRAN.

The benefits of switching to Python in terms of development time, ease of debugging, reusability, potential for collaboration, reproducibility, etc. are immense, but the performance penalty is such that it rarely happens. Even in spite of that, Python already has a large academic following; if PyPy manages to pull off its stated goals, it would be revolutionary.

<comment><USER3> The big issue here is that most scientific code in python runs on top of numpy, and getting numpy to work on top of pypy would be challenging.

I understand that relying on a C extension compatibility layer would make things slower at first, but the alternative of re-implementing numpy from scratch in python does not seem realistic to me. Even if numpy on top of pypy is itself say 2 or 3x slower than on top of cpython, this could be quite acceptable if you can get speed back on top of it for things for which numpy does not help. This would also enables an iterative process of getting away from cpython internals (which has already started in numpy a couple of years ago, albeit more slowly than everybody would have liked).

<comment><USER4> I hear there is effort to get Numpy working on Cython, and work to get Cython to target PyPy as a backend. Given the two efforts... maybe doable.

<comment><USER5> Enough with the Cython nonsense! Cython has excellent marketing but it is a really naive compiler. Just figure out how to translate Cython to ctypes+Python for backwards compatibility and use pypy.

<comment><USER6> Cython is supposed to be a naive compiler, it's primary use-case is for speeding up specific functions by having them compiled. That it uses a python- like language to do this is great.

I'm reasonably certain the C parts of numpy rely more on implementation optimisations than compiler optimisations for their increased efficiency.

</comment></comment></comment></comment></comment><comment><USER7> "What do I want? [...] Shared objects across [micro-]processes with copy-on- write; then you can efficiently share objects (like modules!) across concurrent processes without the danger of shared state, but without the overhead of copying everything you want to share."

Is overhead of modules really an issue on servers with GB of RAM? More importantly, almost every multi-threaded string library (like C++ STL) has moved _away_ from sharing across threads and COW because the cost of the atomic operations is too high. See Herb Sutter's "Optimizations That Aren't (In a Multithreaded World)."

<http://www.gotw.ca/publications/optimizations.htm>

Also, to say that speed is "really uninteresting" but latency is important seems like a contradiction. Latency is absolutely gated by speed for non- parallelizable problems. And even if the problem can be parallelized, speed is a _much_ easier and simpler way to decrease latency than parallelizing.

I guess this reads to me more like a list of theoretically interesting ideas than a set of features that will actually help anyone in the real world.

<comment><USER4> RAM seems relatively constrained to me -- at least, running a multiprocess server _without_ a few GB or RAM is hard to do (and memory seems to be the most expensive part of servers). And when it goes wrong (you reach whatever your limit is) then things tend to fail in less than ideal ways. Tools around memory usage are also quite poor, so while performance gets optimized memory seldom does. And a culture of cavalier memory usage doesn't help either -- too many people are borrowing memory to get performance, compounded in the case of an application that is typically an aggregation of many people's work.

The amount of code involved in systems is also continuing to go up, so that the amount of memory you use before you've done anything (but when you've loaded up all the code) is getting constantly higher. In the world of static/compiled languages this might not be as notable as there's a clear sense of "code" and "data" -- Python has no such distinction, so if you don't share anything then you don't share _anything_.

WRT speed-vs-latency -- definitely related, but most benchmarking seems to specifically remove latency from the benchmark and instead test throughput. E.g., tests frequently throw away the slowest run, even though abnormally slow runs exist in real programs and can have an effect. (Of course they aren't predictable and might be affected by other things on the system -- which is a kind of bias to not optimize things that are hard to measure). But latency is mostly just simplicity of implementation, so no, I wouldn't expect parallelizing to help.

<comment><USER7> I guess I can't disagree with your specific points about memory, but OS pages are already copy-on-write -- if you're really concerned about that kind of overhead you could always fork() individual OS processes from one that already has everything loaded.

<comment><USER4> Re: copy-on-write: <http://news.ycombinator.com/item?id=2407397> \-- tl;dr reference counting ruins copy-on-write

</comment></comment></comment></comment><comment><USER8> For what it's worth, another 2c from another web developer - for me memory isolation and COW for module dependencies would be less useful than a single process and a lack of GIL (hold the flamethrowers for one second please) - allowing me to share on a multicore server resources like those same modules, as well as database connections, as well as any significant static data i may read in at start up, decreasing my operational complexity, etc. In a web server environment shared memory isn't particularly scary, to me anyway. Am I misunderstanding the reason for COW?

Also, the most important characteristic to me is latency. I don't care about throughput that much as long as it's "good enough", hardware is getting really cheap really quickly anyway (in terms of cores and RAM/$). Latency on the other hand is tough. While IO is normally going to be the biggest factor here, if the runtime allows me to consistently shave 5ms off of every request - that's still a great improvement. In this sense i would say that raw speed IS important to me.

Perhaps I haven't encountered the use cases Ian is talking about, it was difficult to figure them out from the blog post (i'm a relative novice in Python).

But I am hoping PyPy can at some point help with the concerns I have above, even lower latency by itself may be compelling enough to switch.

<comment><USER4> Copy-on-write lets you efficiently share objects across boundaries -- not copying everything right away (and everything in Python means _everything_ ), while also safely avoiding the sharing of state. If you are cool with threads then it's not an issue. If you can spare the overhead of a few processes then the GIL isn't an issue. I'd rather it not be a matter of tradeoffs, and I don't think either OS processes or threads are it.

</comment></comment><comment><USER9> It seems like he could get most of what he wants without a new runtime. Diesel (<http://dieselweb.org>) provides async without callbacks or Deferreds. Diesel1 used Python 2.5's yield expression, and Diesel2 switched to using greenlets. As long as your modules and your applications don't rely on global state (which they shouldn't anyway), you essentially get everything on this list. For web programming, cooperative multitasking usually works perfectly well and no state is generally shared between any 2 http requests, so I'm not sure how much a web programmer stands to gain from preemptive multitasking and completely separate address spaces with CoW.

The one thing Diesel is missing is good runtime introspection and more primitives to encourage reliability (a la Erlang), but if you hang out in #diesel you'll see that jamwt has already implemented a lot of that at Bump and he plans on pushing it down into the framework soon (probably for Diesel3).

<comment><USER4> All these systems are share-everything, which I'm not excited about -- if I want share-everything I can just use threads, and they work far better than most people seem willing to admit.

<comment><USER10> Threads have _at least_ the following problems in high concurrency environments:

(1) context switching is expensive

(2) access to shared variables leads to race conditions, which requires careful synchronization (to be fair, this is true for any shared storage: databases, mmap()ed regions, etc.)

See also [http://www.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-1....](http://www.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-1.pdf), which provides a thorough treatment on why multithreaded programs are inherently less reliable than single-threaded.

<comment><USER11> Quoting Robert Harper: 'Concurrency is concerned with nondeterministic composition of programs (or their components).' [1]

Threads can be a very efficient way of introducing non-determinism (preferable to incurring IPC overhead). Writing correct code then boils down to controlling interactions between threads. Actor architectures can be very helpful in such settings. Key to safe implementations are type-enforced isolation and immutability. More experimentally, STMs offer the promise of high-level composition of actors. My 2p.

[1] [http://existentialtype.wordpress.com/2011/03/17/parallelism-...](http://existentialtype.wordpress.com/2011/03/17/parallelism- is-not-concurrency/)

</comment></comment></comment></comment><comment><USER12> The first two points are describing fork(), which python already has on unix- like systems. If he means something different, then he needs to explain more how exactly it would work (especially regarding hardware/os support).

<comment><USER4> Interpreter-level fork() is very much what I mean ("green processes" would be another phrasing I guess?) Of course the Python interpreter always acts as an intermediary for any access to resources, so I feel like you can kind of punt on that, call it an interpreter implementation detail.

fork() isn't awesome with CPython, as its reference counting kind of destroys the utility of copy-on-write ( _reading_ an object creates a reference, which increments the object's reference count, which is a write). And there's really a lot of shared data that you can have between processes, since every module you import is data (and expensive data!) -- I'd like to see it feasible to create extremely short-lived processes, for instance (why have a worker pool at all?)

Once you've created a new microprocess I suppose the actual concurrency would be up to the interpreter to best decide (or at least there would be a lot of flexibility because that concurrency would not be so overtly exposed to the Python program) -- it would be reasonable for a Python microprocess to be an OS-level thread, for instance, or for it to simply be cooperative multitasking at the VM level, or even be a real OS fork (though without an OS fork it seems reasonable to share immutable objects, but once forked the objects must be immutable _and_ serializable).

<comment><USER13> Eh, PyPy does not use reference counting. Are you saying PyPy + fork() is what you want?

<comment><USER14> BTW, PyPy (unlike CPython) indeed great for multiprocessing.

CPython's ref-counting forces copy-on-write in RAM even when no write operation have been even applied at all. So, if you have a huge read-only object in RAM forget about multiprocessing. The object will be cloned for each process.

</comment></comment></comment></comment><comment><USER15> I agree. I think there needs to be an effort to push towards concurrency in Pypy. They were optimistic that the GIL would be easier to factor out in their runtime, and I think that could be a great start. I'm all for new methods for concurrency, but I feel being able to make efficient use of native threads would bring a lot of momentum to the project. Even though it's not as big a deal as most people make it out to be, Python gets a bad rap for the well publicized GIL problems.

<comment><AUTHOR> Everyone is optimistic that they can factor out the GIL (see: Unladen Swallow). Then they find out the problem is much, much harder then they initially thought. That said, all it requires is a fundamental change (e.g. dropping) the ref counting system:

[http://code.google.com/p/unladen- swallow/wiki/ProjectPlan#Gl...](http://code.google.com/p/unladen- swallow/wiki/ProjectPlan#Global_Interpreter_Lock)

So, perhaps PyPy _can_ do it, and I hope they do - from an evolutionary standpoint, they're the interpreter with the most velocity inside of the interpreter core development, so if it's going to happen, it's going to happen there.

CPython will stay conservative, and much as it is today for some time.

<comment><USER4> For a while I had it in my mind that maybe you could save some memory while having safety just by using os.fork() after pre-importing a bunch of stuff; but then reference counting was pointed out to me and I realized it would be pointless -- the act of merely looking at an object changes the object, so copy-on-write means copy-everything.

Reference counting seems like it could be removed... except for all the C extensions that are specifically handling reference counting internally, removal of which I'm guessing would cause a lot of breakage. But then... it seems like those C extensions are exactly the problem, so if PyPy tries to keep them is it messing itself up? (Though I'm guessing it would somehow use proxy objects or some other trick to keep its internal object representation flexible.)

<comment><USER16> Have your cake and eat it too: open a socket to a CPython process and let _it_ handle the legacy C extensions.

<comment><AUTHOR> [http://morepypy.blogspot.com/2010/04/using-cpython- extension...](http://morepypy.blogspot.com/2010/04/using-cpython-extension- modules-with.html)

</comment></comment></comment></comment></comment><comment><USER17> In addition to speed and the points raised by the OP, I am interested in static/duck typing as it relates to both speed and static error-checking and documentation. i.e., making debugging easier and faster. I somehow think this can happen while keeping almost all of Python's strengths and ease of development.

<comment><USER4> Python 3 added type annotations, but I've yet to see much interest in actually using it. Traits (<http://code.enthought.com/projects/traits/>) pursues the error-checking side of type declarations, while Cython pursues the speed side. If you want _both_ then too bad ;)</comment></comment>


Show HN (again - fixed now): I made this before getting out of bed this morning - <AUTHOR> http://isthistwitternameavailable.heroku.com/

<comment><USER2> This will give you false positives when you input characters not allowed by Twitter. I think they only allow [a-z][_][1-9].

<comment><AUTHOR> Great point. I'll implement that once I at back. Was originally just thinking about simple names, as this is just a personal tool. Thanks for the feedback!

</comment></comment><comment><AUTHOR> Sorry about the initial posting - it was working locally, but not on heroku. It's been fixed now - thanks for the feedback!

</comment><comment><USER3> How does this get around the Twitter API call limit?

<comment><USER4> The web interface isn't restricted. I suspect this is just checking <http://twitter.com/foobar> to see if the user foobar is in use.</comment></comment>


Sara Blakely Is Giving $5M to Support Female-Run Small Businesses - <AUTHOR> https://www.forbes.com/sites/elanagross/2020/04/03/sara-blakely-is-giving-5-million-to-support-female-run-small-businesses/#3f8eb99e5035 <comment><USER2> > I know first hand what it's like to be a small business owner. As a woman it > can be lonely and scary, especially during a time like this.

Your sex does not matter during a time like this. Unless you are suffering from domestic violence, it is less scary to be a woman right now, since you are less affected by COVID-19 than men are.

Anyway, everybody should be able to help whoever he or she wants to help, and it is nice that she seemingly does so without strings attached.

<comment><USER3> The idea is that women have less access to various support networks that men do, typically referred to as the "boy's club", and therefore create their own replacements.

<comment><USER4> Depends what do you mean by "support networks". Like social? Or just purely economy based. Cause if social then I'd say it's the exact oppopsite, one of the main reason men has 3-4x higher suicide rate than women in the west.

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

<comment><USER3> > Like social? Or just purely economy based.

It's both.

> Cause if social then I'd say it's the exact oppopsite, one of the main > reason men has 3-4x higher suicide rate than women in the west.

Those stats are very different depending on the social class. Men have fewer support networks in lower social class, but more in the upper classes. Given that we're talking about business owners, that's the range we're talking about.

<comment><USER5> Small business owners are hardly "upper class".

<comment><USER3> The equity involved makes almost all small business owners at least upper middle class.

</comment></comment></comment></comment></comment></comment><comment><USER6> Everytime I see a news piece like this I wanna write a very snarky comment.

Then I change my mind because I am not being productive. But, after all, it is impossible to talk on the subject productively.

</comment><comment><USER7> Link for anyone interested in applying: [https://www.globalgiving.org/redbackpackfund/](https://www.globalgiving.org/redbackpackfund/)

It looks like they're closing applications once they receive 5,000 so time is of the essence.

</comment><comment><USER8> This is the equivalent, in proportion to her total wealth, of the average American donating about $350. Good for her, but is it really newsworthy? Let alone hacker-newsworthy?

<comment><USER9> Hackernews worthy:

\- Applies to small businesses

So, yes, if we are a community of small businesses that might be eligible to apply or if we might know a company that is eligible to apply, then I'd say it's definitely hacker news worthy.

You're looking at it as cynically touting the amount as opposed to the perspective that it may be a small business's next week's funding.</comment></comment>


We have started our Seed fundraising round two weeks ago - <AUTHOR> ut the way we are undertaking this fundraising round is somewhat different.
Would love to get feedback from the HN community. -----
Since we launched Zest.is one year ago, we have been able to create a professional and influential content arena driven by 16k weekly active members operating around the world as a cohesive and coordinated elite unit.
After such a crazy period, with no external funding and with the support from hundreds of amazing volunteers, we decided to start raising money to support the platform's substantial growth in a cross vertical manner and meet the demands of both our community and potential clients. -----
Raising funds with a twist of lemon:
In contrast to the standard format used in the start-up world, we decided to share intimate information in order to reach the right eyes and to open a new channel that is transparent and authentic, while documenting the growth process and receiving ongoing feedback.
Beyond data and demographics, in our Investor Dashboard, you will also find our Investor Deck and the Onepager. Open to the general public.
Our tagline for this round is: "Open for All".
Not in the crowdfunding aspect of it but as a part of our sharing and openness mindset. https://investor.zest.is/ <comment><USER2> Thanks for sharing.

First thought is that I was disappointed with a google login blocking access. I used a throwaway gmail account as I'm not interested in getting hammered with marketing emails until I like a service. If you're truly seeking investment with this page, someone interested will reach out.

On the deck:

Given your user traction, I think you'd benefit from more user quotes. Why do people love your service? Why can't people live without what you're doing? What were they doing before that now if they had to go back to they'd be miserable? [Live editing this. I just saw you had quotes cycling through with animations. I missed that in the first viewing. Might want something more concrete as investors skim these decks]

Your burn rate is pretty significant right out of the gate for only a $1M round. Is that the right amount of capital? Will you be able to hit the milestones you need to achieve to raise your next round or become self sustaining? Is your plan to be profitable near term? When my cofounder and I did our pre seed round we were upfront that we felt there was a good chance we would only do one raise, and wanted investors who were aligned with that philosophy. Even if you choose to raise an A eventually, it's helpful to have alignment if you don't.

I don't think it's clear to me what your revenue model is from the deck.

I'll keep skimming your info but these were my top of mind thoughts.</comment>


Ask HN: I can never learn coding - <AUTHOR> Hello HNers,
I have been trying to learn coding for over 10 years. Languages I tried to learn include Visual Basis, C#, .NET, C/C++, Java, JavaScript, PHP, HTML, CSS. I cannot code in any language. It is serious attention problem I have been facing.
I tried to abandon the programming. But Again I got curious about web development. And for last 1 year, I am trying to learn Python. Again, I am failing due to lack of focus.
What is wrong with me?
How can I focus and learn coding? Or, should I forget about learning programming for good?
I would appreciate any help. <comment><USER3> I'll be he counterbalance and say quit ... if it's been 10 years since you've started trying I'd imagine it's not practicalities getting in your way ... whatever way you chose to learn should have gotten you to level 1 by now and if it hasn't its worth reassessing whether it's really you in the first place. Anyone can learn to code; it's not a capacity thing but it takes work and if you don't really care, wanting to be "the guy that can code" won't get you there.

<comment><AUTHOR> I want to build a few web apps. How is it possible if quit?

Is there any other option to build web apps except coding?

<comment><USER4> Make money doing something else, then use some of that money to hire developer on Upwork to code for you

</comment></comment></comment><comment><USER5> Need more info really to diagnose your problem. For lack of focus you can try the pomodoro technique. Although I would say that if you can't focus on something chances are you also don't enjoy it. If you don't enjoy it why are you doing it? Do you want a high-paid job as a programmer? Because if you don't really enjoy programming then your life will quickly become miserable as a full time programmer. This is often masked as "burnout".

That said, I would suggest to learn coding by building something that you actually want to build. Maybe you have an idea for a project that could make money somehow? Then learn the bare minimum you need to learn in order to build that project.

If you just sit there thinking "I am going to learn how to code" then you will likely dick around learning little bits here and there with no real aim. Coding is a means to an end, not a means in itself.

Here is another idea: take a look at the projects on freelancing sites like Upwork. Try coding some of them yourself. You could make yourself a goal to complete a paid project on Upwork within one years time. Pick a language/platform, find projects in that area on upwork, do them yourself as practice runs, learn the bare minimum you need to complete each practice project. As you do more and more you will learn new things each time and eventually you will be confident enough to do a paid project (though you will likely have to bid a pretty low price to get the job!). But you will have the satisfaction of having earned hard money for your efforts, even if its not much!

<comment><AUTHOR> I have found out that after 10 years I am still spending more time on choosing which stack to learn, instead of focusing on any one and learning it.

Learn by building is great advice because I learnt basic HTML, CSS, and WordPress when I built a website for Excel tutorials. In fact, whatever I have learnt so far it is out of necessity.

<comment><USER6> It takes an evening to pick up basics of any framework but it can take weeks or months to build something with it... Learning just for the sake of it sounds a bit weird, pick one and build something, have fun while doing it :)

</comment></comment></comment><comment><USER7> Can you tell us more about how you've been trying to learn?

If you've been reading random articles on the web and going to Stack Overflow whenever you need to figure something out, it might help to do something with more structure, such as working through a book on a particular language, or doing one of the introductory college CS courses that are available online. These will present material in an organized sequence and give you a foundation to build on.

Also, learning this stuff takes time and practice. There are things you won't understand the first time you see them, which you'll eventually understand after having read more and written more code.

Finally, don't jump the conclusion that something is "wrong with you". We live in a world filled with many distractions, and even if you don't have ADHD it can be hard to sit down and focus on something hard. Focusing on hard stuff is difficult, so you may need to gradually build a habit of doing it, starting with short periods of focus and working your way up. And you won't be able to focus if you're being interrupted by your phone beeping every few seconds, so try turning off distracting devices while you're learning.

</comment><comment><USER8> Coming from someone who's lived and breathed programming, and excelled at it by most standards (topping national competitive programming competitions, graduating among the top 1% in college, having built compilers, OSes, an OpenGL game engine), then worked for about 4 years at a bigcorp and subsequently burnt out, and has been struggling to get back on his feet for the last two years, I can tell you it's not going to be easy. Last year I picked up haskell, seeing that it was very different from what I was used to up to that point, and built some stuff with it, some web apps built on warp+wai, and quite enjoyed it. But it was short lived. I developed an attention problem like the one you mentioned. I've had call ups from places like Google, following codejam results, also invited to interview by MS, Amazon. But I was and still am a wreck, and seeing the hole in my CV, they turn my down if I answer them at all. Funnily enough, I got most jobs I applied for, the last one being just after quitting my first job. They told me I was the best candidate they've interviewed ... But I started having panic attacks, and quit after a few days.

So the takeaway from all of this? It's not programming. It's mental health. And having spent the last couple of years devouring medical research and throwing my every last ounce of energy at the problem (I started suffering from chronic fatigue, so it wasn't really a lot), discovering autoimmune diseases (celiac) which were causing sleep problems, blood tests indicating significant hormonal imbalances, experimenting with paleo, keto, exercise variations ...

The takeaway is that the state of mental health treatment is horrendous. Most of my recent readings and research has taken me into the direction of childhood trauma as being the most likely cause of most instances of mental health problems and a lot of chronic health conditions. Some pointers would be the ACE study, and start by reading works by Alice Miller, Bessel van der Kolk, Laurence Heller. Now, the medical consensus is quite different from what I've stated here, so I should back this up with some significant evidence, which I won't. The evidence is fractal-like, and there is huge predictive power in understanding this (that unmet developmental needs during childhood lead to coping strategies that are maladaptive in adulthood, and those are the cause of things like ADHD, chronic fatigue etc).

Is there a solution? I don't know, I certainly haven't solved my issues, but I've started to understand them. You'll probably have a hard time doing the research yourself, given the attention problems. In any case, there are risks associated with this path ...

But if it truly is possible to solve this issue, you'll not only be able to focus on coding. YOU'LL START LIVING.

</comment><comment><USER9> You say you can't code and can't focus. But what specifically stops you? How far have you gotten?

Without knowing, here are some general ideas:

1\. Stop expecting to understand the program at the "macro level" and the "micro level" at the same time - just accept that there will always be some unknowns. For instance, don't think about how the processor or memory works while just writing a few lines of Python to read a file.

2\. Try to understand the code's structure and flow rather than specifics - <USER2> you understand how functions call each other, how module systems work, etc?

3\. Try to start with an existing open source project and then modify it to your liking. As you dig around figuring out where your changes go, you'll appreciate more about how it all comes together

<comment><USER7> I think that trying to understand an open source project is excellent advice for someone who already knows how to code and wants to get to the next level, but not for someone who is just starting to learn how to code. When you're starting to code, you need to start with very small programs and work your way up to bigger ones, not by trying to navigate through thousands of files filled with millions of lines of code. Understanding vast extents of other peoples' code is something that even experienced programmers struggle with.

<comment><USER9> I didn't mean to attempt understanding the whole thing - just to understand one tiny part of it for your improvement, and by that route, come to understand how it's all interconnected.

It would be impossible to "read" and understand the whole of a huge project as an inexperienced coder, of course.

</comment></comment></comment><comment><USER10> Being a programmer is like being a musician. There are many different levels and some people are more natural at it than others. Some people can learn an instrument for years and never get good enough to play a tune (people who tried to learn programming). Some people get good enough paid to play (9-5 programmers). And some people are so good they go on to create own albums and masterpieces.

I've seen a lot of people who tried to become programmers just fail because they can't think like a programmer. However, I have found those same people are awesome testers, designers, planners, etc. I would suggest looking to see if you somehow are more better at something else in the web development realm. If you do find something then you'll at least be in web development and be part of something you find interesting.

</comment><comment><USER11> I greatly struggled too, I didn't get it. For a long time, programming was very hard. But eventually I understood, and then was challenged again with new concepts. This keeps on happening and I continually learn and am challenged, but reading your post doesn't make me think you aren't a hard worker.

I think you are struggling with learning a language instead of learning how to think logically. Instead of learning a language, learn how to break up a complex requirement into discrete steps. An example --

I ask you to save inputted text into a text file called "file.txt". What are the steps you need to take (to write this in any language?) This comes with experience but I'll walk through it here:

1\. Take in input from the user. 2\. Write out input into file.

I don't know everything, so when I forget, I google this stuff. "How to take in input in C++". Okay, I understand what I need to code. Next, how to write a file "how to write a file in C++". Done. By combining these steps, I've accomplished my goal.

Basically, my whole experience has been following this pattern of taking a problem, breaking down it into individual parts, coding these individual parts, and coming up with the solution. However, with each step, you get into deeper detail. How do you take in input in C++? Well that's with cin, what's cin? _Google C++ cin_ , ah okay. etc. As you program more, you start to memorize these steps, which lets you code faster and better quality. Instead of googling things, you remember that you have 2 steps you need to do to write out a file. Of course, working in different languages is basically the same, just different syntax for the same thing. I'd focus less on different languages and just one for the time being.

Take a read on a post I wrote up, I hope it's helpful: [https://debugandrelease.blogspot.com/2018/12/how-to- become-b...](https://debugandrelease.blogspot.com/2018/12/how-to-become- better-programmer.html)

</comment><comment><USER12> It doesn't sound like programming is the problem, do you have this problem with learning anything else in life?

<comment><AUTHOR> No, I am self-taught computer user. I learned English on my own.

Learning is not my problem.

</comment></comment><comment><USER13> I have no idea if this is applicable to your particular situation, but I'll share what helped me. Maybe you're similar to me, but YMMV.

I tried on and off to learn programming for years, and I was never able to get any traction until I started doing it as part of an actual job. I just have never been able to get myself to focus on manufactured projects whose only purpose is learning to code. I needed actual business problems to focus on, and an environment where I couldn't just abandon my project with no repercussions.

I started out small, and with tasks that were related to my (non-programming) job -- these made my life easier but weren't on anybody's radar at the business. I was selling mortgages at the time, and built myself a better mortgage calculator, slowing delving into Excel's Visual Basic for Applications when I wanted to do things Excel wouldn't let me do without code.

After getting comfortable with that, I found more opportunities to do light programming that helped make my job easier, in the few hours at a time when I didn't have critical tasks in my day-to-day work. I started using SQL and VBA in Microsoft Access, then moved on to SQL Server and C# by taking a few freelance jobs. They paid terribly, but I took them more because they forced me to solve real problems using "real" programming tools. Eventually I was able to turn that SQL Server and C# toolkit into my full-time job.

TL;DR: what I needed were real-world problems to solve. If you can, find some way to write some simple scripts to simplify your everyday life, and use that to build on.</comment>


The radical plan to destroy time zones - <AUTHOR> https://www.washingtonpost.com/news/worldviews/wp/2016/02/12/the-radical-plan-to-destroy-time-zones-2/?wpisrc=nl_draw <comment><USER2> _WV: So, the Universal Time Zone system. What lead you to argue so strongly for that option?_

 _HH: Because from a physics point of view, there IS only one time!_

Um... this would've been a more convincing argument if there was an attempt to use physics, any physics here. "Relative to the centre of the Earth... relative to ..." well, anything, really. The fact that some of our most interesting time sources--GPS satellites--have the difference in their relative time baked into how they operate is a score against the whole "only one time" idea.

</comment><comment><USER3> > In Washington, for example, that means we'd have to get used to rising > around noon and eating dinner at 1 in the morning.

I think "noon" would continue in common usage to mean the approximate time when the Sun is at its highest point locally, and "morning" would continue to mean the time locally between the end of darkness and noon (or the time between between midnight and noon, with "midnight" continuing to refer to a local time, not a global time).

</comment><comment><USER4> posted 8 hours earlier, 25+ comments:

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


Encyclopedic Knowledge, Then vs. Now - <AUTHOR> http://www.nytimes.com/2009/05/03/business/03digi.html?hpw <comment><USER2> It's probably been ten years since I even thought about looking something up in a CDROM encyclopedia, but even now it's kind of sad to think that Encarta is gone. When I was a kid, my dad bought a double-speed CDROM drive for our Digital Equipment Corporation 486-powered computer, and the 1994 edition of Encarta. At the time, Encarta was the best possible reference for a curious kid. If you just wanted to learn about something interesting, it was way easier than flipping through heavy encyclopedia volumes. I'm sure plenty of this site's readers have innocently gone to a Wikipedia page to look something up, only to find themselves reading a completely unrelated page a half hour later. Encarta was deep enough for a kid to do just that.

Some time around 1994 or 1995 (just after we got a modem), I remember reading an article in a magazine comparing three CDROM encyclopedias: Encarta, World Book, and Compton's. There was a sidebar, entitled something like "What about the Web?" The conclusion was that while the Web was promising, it just wasn't comprehensive enough to replace a CDROM encyclopedia. It's funny to think how far we've come.

Finally, it's interesting to see how irrelevant encyclopedias are for current schoolchildren. When I was in middle school and early high school, an encyclopedia was the first thing you went to if you needed to write a typical school paper. In eighth grade I had to write a research paper on a topic of my choice; I remember my teacher telling us that while we could start our research with an encyclopedia, we were forbidden to cite it as a source. My eighth-grade brother says he always starts a paper by reading up on Wikipedia -- he's never looked up anything in a traditional encyclopedia.

<comment><USER3> I remember a story a friend of mine told me about high school. He was in US history, and was supposed to do an assignment on Andrew Jackson (or something similar), so he rot13'd the wiki article, so that everyone else would have to either know how to see history, or do real research. Admittedly, he did it to annoy rather than teach them, but an interesting side effect.

In an unrelated node, I remember playing with Encarta as a small child as well. There were some games of some sort in it, I think (something interactive, anyway), and I spent long hours playing with it.

It is almost my only recollection of it, in fact.

</comment></comment><comment><USER4> My first encyclopedia when I was young was a CD-ROM edition of Britannica. It had a superficially deep article on almost everything, and made for endless hours of joyful exploration. Then one day I found a complete 1958 paper edition of the Britannica in a dumpster - in perfect condition, no dirt or damage. It was an entirely different world. The degree to which it surpassed the digital edition defies description. The articles on various machines, chemical reactions, fortifications, etc. seemed detailed enough to replicate all of these wonders with my own hands, had I the time or resources. The coverage of most historical events seemed intellectually top-notch and well- researched.

That was when I first understood that the transition to digital media is not an unmitigated good, and that much is being lost - without many people necessarily noticing. I still have the 1958 Britannica, and I intend to keep it for the rest of my days. Some of the articles inside (in particular, on mathematical concepts) are unmatched in their quality by Wikipedia or even Wolfram MathWorld.

</comment><comment><USER5> My recollection of Encarta was that it didn't have nearly enough information to satisfy my curiosity. If I wanted to get an explanation that was actually satisfying, I needed to turn to my grandparents' ancient Britannica. I suppose I'm part of a niche market, but if only they actually tried to have more information on the subjects they covered than Wikipedia, instead of just consistent quality...

</comment><comment><USER6> I remember Encarta to be inaccurate and having few listed sources. I rather see a messy and full of controversy wikipedia article than a short and oversimplified - it gives you a wrong impression on sensitive and complex issues.</comment>


Civil Cyber Defense is One Helluva Joke - <AUTHOR> http://www.infiltrated.net/cyberdefense.html <comment><USER2> Unfortunately for the author, they can't see the wood for the trees. His first example shows a complete lack of understanding about how incident response at the Cyber level works, the problems of attribution and deterrence.

The comments about comparing cyberwarfare to conventional warfare again show that the author doesn't really understand what cyberwarfare is, and is instead getting (rightly) frustrated by the marketing spin being put out by the snake oil machine.

Cyberwarfare is a horrible dirty word in civilian life because it's hijacked by marketing people who think it sounds cool. The term 'Cyber' in a military context is standard shorthand for things happening in Cyberspace. Cyber Warfare is a covering term for 3 different areas - Computer Network Defence (CND), Computer Network Espionage (CNE) and Computer Network Attack (CNA). That's all it is. Nothing more. There's no magical vendor box to do it. There's no magical vendor box to stop it.

The reason people are getting all worried about Civil Defence in the Cyber arena is because the attacks are being targeted at industry, not the military forces. While the military and intelligence agencies of a given country may be prepared, the industrial complex is not and the gap between adversary and victim is so huge that it's not a level playing field, they're not in the same ball park, it's not even the same ball game.

Cyber Civil Defence shouldn't work for two reasons:

1\. It encroaches on civil liberties in a manner that is genuinely open to abuse.

2\. It's too much for too few people to take on.

That's the only real reasons I can see, unless anyone has any more.

If anyone in the US wants to know what's really going on in their country, this is probably the best place to start: [http://www.youtube.com/watch?v=B5geX8ZAvu4&p=A2E99F5EE69...](http://www.youtube.com/watch?v=B5geX8ZAvu4&p=A2E99F5EE69136DB&playnext=1&index=31)</comment>