The sour science driving James Harden's vexing genius - <AUTHOR> http://www.espn.com/nba/story/_/id/26662160/the-sour-science-driving-james-harden-vexing-genius <comment><USER2> > Unless the league proactively addresses its rules and these whistle-chasing > tactics, free throws stand to become the next version of corner 3s, with the > league's smartest teams and players racing to find new ways to get them.

The NBA will probably crack down on this at some point considering how awful it is to watch Houston's games sometimes.

I never knew that Harden's flopping was born from a strategic team effort. Makes sense since you have the #1 and #2 floppers in the league on the same team.

<comment><USER3> They will need to do something, because it is not an entertaining product right now. I'm beginning to pine for the physical grindfests of the early 2000s before the Malice-in-the-Palace, let alone 80s or 90s ball.

The Rockets are all in on analytics and routinely use their D-league team to experiment with, frankly, cheesey min-maxing strategies.

<comment><USER4> I genuinely can't understand the sentiment as I find the quality of the game great. The biggest issues to me are "reviewing fouls" to see if they are flagrant and fouling at the end of the game (especially with the 3 point so prevalent in today's game, sometimes fouling for 2 free throws can be beneficial). I wish the refs would generally take a more "let them play" approach so I guess this would fix the issue of James Harden (who I dislike for his style of game)

<comment><USER3> With Tim Duncan retired, I can't think of a center or power forward with enough moves to post up and score reliably. Guys will talk about spending their whole offseason refining their post-up game, and that just means they learned a drop-step...

The high pick-and-roll and four-out sets everyone runs now are pretty monotonous.

The worst part is the style spills over to the way ordinary people play in pickup and rec ball. Not many with the requisite talents at that level, but boy do they try.

</comment></comment></comment></comment><comment> blah-blahblah ``` That gap can't be explained solely through Harden's unprecedented prowess on unassisted 3s and how much it frightens defenders. It's about antics, man ...

When we look at the league's most voluminous 3-point shooters over the past three seasons, we see Harden's foul rate is more than twice as high as any of the league's other top marksmen. ```

It's a little odd that Goldsberry recognizes that Harden's 3pt attempts might be different than most 3pt attempts but then only compares his foul rates to other people taking threes.

The style of shot (catch/shoot, unassisted, etc) is much more important for fouls than the type (2pt/3pt). If Harden gets a lot more fouls when shooting unassisted jumpers, including 3 pointers, than everyone else shooting unassisted jump shots then maybe it's antics. Otherwise, comparing fouls on Harden's 3 pointers to fouls on Khris Middleton's 3 pointers is like comparing fouls on Rip Hamilton's 2 pointers to Shaq's 2 pointers.

<comment><USER5> It's a limited comparison, I agree, but I think it still tells part of the story. Curry shoots fewer threes but the same kind, and he can't buy the types of calls Harden gets

</comment></comment><comment> mr-ron I've heard the argument on /r/nba that one key to James getting fouls is his beard. He throws his head back, and his whole chin bounces up and makes it super noticable to the refs.

A big part of drawing fouls is getting the ref to be looking at you and seeing contact, and waving a big beard in the air gets a lot of attention

<comment><USER6> That's the first good reason I've heard for why he maintains such a long beard. I wonder if it was a calculated decision.

<comment><USER7> is "because he likes it" a "good reason"?

</comment></comment></comment><comment><USER8> The Rockets allegedly track ref tendencies and feed that info to their players (Harden included) so that they can better draw fouls. [1]

Can't say I fault a team for doing everything within the rules to win, but it sure makes the games hard to watch (and I say that as a fan of both the league and Harden + CP3).

1 - [https://www.youtube.com/watch?v=wyuIEMdOi_E&feature=youtu.be...](https://www.youtube.com/watch?v=wyuIEMdOi_E&feature=youtu.be&t=294)

</comment><comment><USER9> The evolution of the game is based on hacking the rules. The step back 3-pointer is based on the fact that you can take two steps and glide to the rim (layup or floater) or one step sideways, then back and jump shoot (fadeaway) so why not take two steps back then jump forward (step back 3) which you have to do anyway to create enough forward momentum on your shot to avoid muscling the shot (Lebron-style step back 3) and getting tired eventually (if you're not Lebron).

It's innovation at its finest, or better yet, iteration. Because anyone watching the game knows that Steph Curry made the step back 3 a game changer in today's NBA. Harden just perfected it.

</comment><comment><USER10> it's a tricky balancing act. i just watched two of his 3-point foul draws in the game tonight (one deserved, the other not so much). a little bit of foul shopping keeps the other team's defense honest, but harden does it so much that it's frustrating. players really shouldn't be rewarded for constantly baiting opponents into fouls.

fractional free throws to nullify the advantage would be odd, and not calling fouls consistently would be even more maddening, so the solution isn't straightforward.

with that said, harden really is fun to watch when he's not just fishing for fouls.

</comment><comment><USER11> In my opinion a good way to address this behavior is by crawling over game footage from multiple cameras after the game itself. Anyone caught flopping should be served with a multi-game suspension. Flopping is just as much cheating as bribing a referee would be.

<comment><USER12> This is a great idea. Not only is flopping cheating, it's dangerous. Harden was legitimately poked in the eye recently and when he went down everyone ignored him, precisely because of his history of faking injury. Officials need to know when an injury is real.

<comment><USER13> If you get legitimately injured but it gets ignored because you fake it _that_ often (and your team suffers as a result), seems like a problem that would sort itself out.

<comment><USER14> All pro athletes accept risk of injury as the price of being the best. If you refuse to take risks then you'll be beaten by somebody who does. Even if the expected value for the team as a whole is negative, it often still makes sense to take the risk, because "best in the world" earns you so much more (including earnings from adverts/speeches/movie deals/etc.) than 2nd best. The rules are supposed to prevent this race to the bottom.

<comment><USER13> Totally valid point, I'm arguing about the sense of urgency in the league addressing it is all. If two jets of the same make and model crash in relatively short window, then yes, ground every last one of them right then and there and get every stakeholder involved; if a bunch of multi-millionaires get some extra side eye because they _may_ have got nudged a bit extra, why not wait and see if it self corrects based on TV ratings and ticket sales?

Edit, added: "based on TV ratings and ticket sales" to original response.

</comment></comment></comment></comment></comment><comment><USER15> I'd say the best play is the 4 point play back breakers</comment>


Google Voice Is Coming Back To The iPhone Via The Browser - <AUTHOR> http://www.techcrunch.com/2009/12/24/voicecentral-iphone-browser/ <comment><USER2> You could always use Google Voice via the iPhone web browser. This is exactly why I really don't like TechCrunch. Almost every story I read there I feel like they're trying to manipulate people.

<comment><USER3> Except you can't play voicemails, which is the primary reason to use the web interface.

<comment><USER2> Yes, you can. Not sure if they added this very recently or what. I don't use GV much but I just tested it to make sure.

<comment><USER3> I just tried and it doesn't work :(

I get a page full of garbled text (presumably the sound file) when I hit play. Using Mobile Safari on 3.1, non jailbroken, at <http://www.google.com/voice>.

How are you getting this to work? I've been frustrated not being able to play voicemails when traveling without a laptop (obviously without having to call in to my account).

<comment><USER2> Hm weird. I'm using an iPhone 3G with the latest software update. It opens the iPhone's QuickTime-ish player plugin when hitting play below the voicemail transcript.

</comment></comment></comment></comment></comment><comment><USER4> It appears that they have figured out how to get the App interface (e.g. momentum scrolling) via the browser. Wasn't it a big deal that such changes could help developers avoid the App Store:

<http://daringfireball.net/2009/12/more_on_pastrykit></comment>


Edge computing could push the cloud to the fringe - <AUTHOR> https://techcrunch.com/2017/08/03/edge-computing-could-push-the-cloud-to-the-fringe/ <comment><USER2> First of all, this guy seems like he watched the last season of Silicon Valley and took it too seriously (perhaps due to having his firm name-dropped, who knows).

> As Levine puts it, "Think about a self-driving car, it's effectively a data > center on wheels, and a drone is a data center with wings and a robot is a > data center with arms and legs and a [ship] is a floating data center…"

A self-driving car is not a datacentre. It will have a few computers, sure, but a datacentre is a distinct class of entity featuring hundreds of highly- available, enterprise grade computers; the self-driving cars that will ultimately succeed will have automotive grade machines, built to the lowest possible standard and price that meets quality and reliability requirements as defined by the DoT and the warranty department.

A drone is not a datacentre with wings. It has the least it can possibly have aboard, because it needs to use as little electricity as possible for computing so that most of it can be used for spinning motors. While some drones do have multicore CPUs and GPUs on board, if anything we'll likely see improvements in wireless that enable that kind of tech to be pushed back to base stations / controllers / phones, so as to free up more precious battery for flying.

Now, a ship I'll believe - you do need racks of servers on a cruise ship, for sure, especially given the fact that it's going to be away from a reliable network connection for ages at a time. However, it's not doing the same thing as the cloud; it's got to be reliable as hell with minimal IT staff on hand to deal with it, which means imaged machines running simple, basic things that can be trusted without having to have techs use expensive satellite data to fix it remotely.

While there's some logic to the circular nature of centralized vs. distributed communication, packaging this up and branding it as "edge computing" strikes me less as a true observation or prediction, and more as someone who's spent too much time thinking about things through a marketing lens.</comment>


The Boring Company raises $112M from Musk, early employees - <AUTHOR> https://www.sec.gov/Archives/edgar/data/1737630/000173763018000001/xslFormDX01/primary_doc.xml <comment><USER2> I hope that this would be a boon for transit costs in America which are ridiculous compared to Europe [0].

But part of the problem lies with transit advocates in the US, who think tech and Elon Musk are a threat to transit. [1]

0: [https://www.nytimes.com/2018/03/28/nyregion/new-york- subway-...](https://www.nytimes.com/2018/03/28/nyregion/new-york-subway- construction-costs- congress.html?mtrref=www.google.com&gwh=CEC730A179DCBAF18A6F6273514862D7&gwt=pay)

1: [https://twitter.com/humantransit/status/941386665519595521](https://twitter.com/humantransit/status/941386665519595521)

<comment><USER3> It's hard to take him seriously in terms of mass transit when he talks about vacuum trains as though they're not a terrible idea. Then you remember he owns a company that plans to ultimately replace airlines in some markets with rockets, and a car company, and a person not overly taken with his "charisma" wonders if his interest in mass transit is in scuttling it.

If he was serious about mass transit there are existing, proven technologies he could get behind with his billions, rather than hyperloop. Instead he proposes a technology that is entrancing to people who don't know enough about engineering and physics, and that is exciting. Unfortunately the tech isn't workable, it's just exciting, but it could take a decade or more for that to become apparent to most people.

Wikipedia has an excellent article which lays out the history of the concept going back to the 18th century. [https://en.m.wikipedia.org/wiki/Vactrain](https://en.m.wikipedia.org/wiki/Vactrain)

I love the understatement of "prohibitively expensive" too, very droll. Any experimentalist who has worked with strong vacuums knows how absurd the idea of a hyperloop is at this point. The expense, the maintence costs, the airlocks, the pumps, all would be an incredible expense that could never be recouped in the builder's lifetime. The actual tunneling would have to be totally revolutionary too, with incredibly long, nearly straight sections. The turning radius would have to be on the order of of a commercial airliner's turning radius, which is absurd.

Credit to the man though, it hits that sweet spot requiring specialist knowledge to see through the hype, much like promises of nuclear fusion as a major power source within a couple of decades. The big idea is so attractive, and the problems all involve technical details. It's not quite a con, but it's close.

<comment><USER4> Hyperloop is near vacuum, not vacuum.

When assessing Musk's success, note that Tesla has singlehandedly pushed the entire auto industry towards electric vehicles. Before Tesla, electric vehicles were funny experimental things for hipsters. Very few people bought electric cars, and when they did it was usually only as a second car that could drive 100 miles around town. Virtually no major manufacturer were planning on changing that.

After Model 3, all major car manufacturers are changing their product development and production lines to make electric vehicles. It's now clear to everybody involved that in a number of years, it will only, or almost only, be electric vehicles.

Even if Tesla were to end up being a company that only sells a few hundred thousands cars per year, their impact will have been several orders of magnitude bigger. At the end of the next decade, tens of millions of electric cars will be produced every year and Tesla is the company that not only showed the way but forced an entire industry to go in that direction.

Now, why on Earth would Musk not be interested in promoting mass transit? Tesla is unlikely to produce 50 million cars yearly anyways, and - so far - electric vehicles are more expensive than ordinary cars and not much more suitable for dense city traffic than ordinary cars (although the cost is going down and although self-driving capabilities may change that a bit). But for many years to come, it's unlikely that the Boring Company or the Hyperloop is going to cannibalize on Tesla's market.

<comment><USER5> > Tesla has singlehandedly pushed the entire auto industry towards electric > vehicles.

I would say they led the industry by 2-3 years because of capabilities of making losses (actually not, Chevy bolt came before model 3).

What made electric cars possible is cheap batteries, otherwise they'd have built model3 right out the gate. And Tesla didn't make batteries cheap, consumer electronics did. Tesla doesn't even make battery cells, they buy them from panasonic

<comment><USER4> That's like saying Apple didn't transform the cell phone industry but only led the industry by 2-3 years before Android followed.

Or that Apple didn't innovate because they merely used known technologies like phones, batteries, and touch screens.

<comment><USER5> Except apple made products for profit which others could have but didn't.

Tesla made cars at loss, which others really couldn't.

But at the core of it, Tesla has the hype of Elon musk, and no other car manufacturer can pull that off.

</comment></comment></comment></comment></comment></comment><comment><USER6> Some back of the napkin calculation that I made some months ago, hopefully still useful to think about where the Boring Company is going : [https://medium.com/the-naked-founder/elon-musks-boring- compa...](https://medium.com/the-naked-founder/elon-musks-boring-company-is- boring-for-now-f778d382971b)

<comment><USER7> Nice article but I would point out that many of the very long and/or deep tunnels are built for railroads instead of cars, precisely to lower the diameter necessary (no exhaust needed, no hard shoulder).

</comment></comment><comment><USER8> $100M. Same amount at Musk's personal investment in both SpaceX and in Tesla.

<comment><USER9> Same _initial_ investment. Both Tesla and SpaceX have far more from him now.

<comment><USER8> Really? Musk started with $200M from PayPal, invested half in each, according to reports. There is nothing left to invest after doing that.

</comment></comment></comment><comment><USER10> I think the huge thing that most people miss is that Elon isn't trying to fix the earth's problems. Elon is using the earth and other people's money to bootstrap all of the things he needs to live on Mars. Every single one of his projects is in some facet working on a tech that is needed on Mars.

SpaceX gets you there.

Tesla gets you around there and batteries store power.

Solar City because batteries.

Boring Company to dig tunnels and create radiation safe locations for humans on mars.

Hyperloop cross country transport that doesn't work well in our atmosphere but makes much more sense on Mars.

I think he is all consumed by his vision of humans surviving on mars and thriving. And when you look at things from this view suddenly his crazy becomes less crazy.

<comment><USER11> "most people miss" that because that isn't what he says he is trying to do. Musk has said on several occasions that he _is_ trying to fix some of the earth's problems.

By all means, speculate on Elon Musk's hidden psyche, but don't expect everyone to agree when the man himself says something different.

<comment><USER10> I could agree with some of it. But he's also said many times that he feels the only way to keep humans from going extinct is to make humanity a multi- planetary species, so while he maybe trying to fix some things his pretty clearly stated goal is to get humans off this rock permanently.

[http://earthsky.org/space/elon-musk-mars-manifesto-humans- mu...](http://earthsky.org/space/elon-musk-mars-manifesto-humans-multi- planetary)

<comment><USER12> > _multi_ -planetary species

...That means fix Earth too. We / he certainly doesn't want to trade Earth for Mars. Mars is just a good place to store a backup of humanity.

</comment></comment></comment></comment><comment><USER13> What does the boring company make? I saw bits of it as a bit of a joke... ?

Is it Musk's approach of making a traditional company and flipping it on its head?

<comment><USER9> they make tunnels and outfit them for various modes of transportation. it's not a joke. i can't imagine any better way to make it clear that something isn't a joke than to put $100 million into it.

<comment><USER7> Is $100m really enough to build a state of the art boring machine and get all equipment/labour to actually build a tunnel?

<comment><USER9> I have no idea what $100m is enough for, all I know is that Elon Musk gets more done per dollar than anyone else alive.

<comment><USER14> Really? Care to give some examples?

<comment><USER9> Yes, SpaceX and Tesla.

<comment><USER14> You said words, but there's no substance, how does SpaceX and Tesla in any way prove that "Elon Musk gets more done per dollar than anyone else alive" exactly?

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> Elon is doing way too much context switching between Tesla, SpaceX, and The Boring Company even though he is no ordinary human.

Recently in an interview he said he was sleeping on the factory floor of Tesla because he didn't have time to go home. That's going to lead to burnout, mental and physical issues. I am a big advocate of work smarter not harder.

<comment><USER11> I'm a big advocate of "don't tell people what to do." Musk seems to have a pretty good handle on his own limits. He's been doing crazy work hours and sleeping under his desk occasionally for over a decade. Just because it hits the news doesn't mean he should change his habits if it works for him.

</comment></comment><comment><USER16> If they ever develop a cheaper tunneling technology, they could bid on some sections of the Tokyo to Osaka maglev. That's under construction now. For one tunnel, 5 meters a day, 25000 meters to go. Test trains have been running on a 41km track for years. 500km/h is normal cruising speed. They've reached 600km/h in tests.

<comment><USER17> In India, cheaper tunneling technology would be a boon the impossibly chaotic cities. Acquiring private properties to build urban metro transit systems is prohibitively expensive and so is tunneling.

A cheaper tunneling technology would be very much solving plenty of transit problems in a country like India.

I hear TBMs are just crazy expensive. They used two TBMs for the Bangalore Metro. One broke down and it took them months to fix it.

As of now cheaper tunneling tech would be the greatest thing ever for may cities in non developed countries.

<comment><USER5> I'm surprised they used tbm in Bangalore, but I think tbm aren't required. Cut and cover works well and is primarily used

For example, Mumbai Metro's line 3 is totally underground, and is in the costliest City of India. It is planned at 3.5 billion $ for 33 know. Around 100 million $ per km. And this includes the cost of stations, rails etc.

In comparison, recently completed Delhi metro phase 4 took 6.7 billion $ for 100 km at 67 million $ a km. A proposed Delhi metro project to UP outside the city (and hence cheaper) is around 1 billion $ for 35 km (and fewer stations).

From the looks of it, I don't think cut and cover for making tunnels has any significant expense at all. It looks like India can construct metros (including stations which are the bigger costs) at 30 million $ per km. This is far lower than the tunneling costs of 100 million $ per mile that Elon plans to achieve, and 1 billion $ / mile that he thinks it costs (it doesn't, the major cost is stations and labor, and he can't bypass unions with political access).

[https://en.m.wikipedia.org/wiki/Line_3_(Mumbai_Metro)](https://en.m.wikipedia.org/wiki/Line_3_\(Mumbai_Metro\))

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

Edit: Looks like India does use tbm. The cited Mumbai metro line is using 17 tbm.

[https://m.hindustantimes.com/mumbai-news/tunnel-boring- machi...](https://m.hindustantimes.com/mumbai-news/tunnel-boring-machines- used-for-mumbai-metro-work-named-after-rivers/story- xdnu6LoI9bKxs65RkX1VXI_amp.html)

<comment><USER5> Got interested, crunched some numbers.

A TBM costs like 10 million euros to buy, 5 million euros per month to operate. And move 50 feet a day. So, all combined it costs like 14 million dollars per mile to tunnel. But as in Mumbai's case (17 tbm for 33 km!), These are done in parallel for speed and to reduce costs, it's sound 30 million dollars per km. Which is almost the difference for mixed grade Delhi phase 4 and Mumbai's line 3 costs.

TLDR: tunnel boring costs 15 million dollars per km in material/operation costs, rest is probably rails+stations etc.

[https://www.quora.com/How-much-does-a-tunnel-boring- machine-...](https://www.quora.com/How-much-does-a-tunnel-boring-machine-cost)

[https://www.quora.com/How-fast-can-a-tunnel-boring- machine-d...](https://www.quora.com/How-fast-can-a-tunnel-boring-machine- drill-under-good-conditions-How-does-it-go-that-fast)

<comment><USER17> Mumbai and Delhi comparisons are pointless. They get whatever funds they ask from the center. At the same time for cities like Bangalore, they have to work with leftovers.

People complain the pace of Metro construction is low. But for the money these people get, its already nothing short of a miracle that they are even building this much.

<comment><USER5> The question isn't Mumbai vs Delhi. It is how costly is tunneling.

And I'm just pointing out that in India we are tunneling at around 10-15 million dollars per mile, far cheaper than what Elon musk thinks it costs (1 billion per mile), and what he plans to achieve (100 million dollars per mile). Essentially, the breakdown is complex and different for different geology, labor prices, tunnel sizes etc. Musk's salesmanship of selling byte sized numbers without context is stupid.

</comment></comment></comment></comment></comment></comment><comment><AUTHOR> >Who's behind the $112.5 Million In fundraising for The Boring Company?

>Over 90% came from Elon Musk, with the rest from early employees. No venture capitalists or outside investors are involved according to the company.

[https://twitter.com/Lebeaucarnews/status/985994145805238273](https://twitter.com/Lebeaucarnews/status/985994145805238273)

<comment><USER18> Odd ... why put your own money at risk when you have access to unlimited blank checks? Some kind of weird personal asset defense play?

<comment><USER19> I have no idea why people take outside money. If you can't afford to build it, start smaller, get rich, go bigger. What is the purpose of personal capital if not to bet on yourself?

<comment><USER20> Another huge reason is to prove concept and make sure you're not fooling yourself. If you can get others to put in large amounts, it's an (imperfect) indicator of a kind of traction.

Musk probably doesn't feel like he needs that validation, so the main reasons to take outside money would be leverage and diversification. The downside is some loss of control.

<comment><USER21> Nobody else understands it or believes in it like you do.

</comment></comment></comment></comment></comment><comment><USER22> Elon is getting into a lot of high risk ventures. That's good, people ought to push themselves and if someone in his position never fails they probably aren't challenging themselves enough. But I hope that he's able to let go if this does fail, instead of having Tesla buy the company or something _a la_ Solar City.

</comment><comment><USER21> Guess merch funding wasn't enough :)

</comment><comment><USER23> How do I get in on this investment??

<comment><USER24> Be Elon Musk or an early employee.

</comment></comment><comment><USER25> sure let's ban AR15s and give our money to a flamethrower company

</comment><comment><USER26> Guaranteed this is an Artificial Intelligence company.</comment>


FAA Considers Relaxing Licensing Requirements for Rockets - ga-vu https://www.regulations.gov/docketBrowser?rpp=50&so=DESC&sb=postedDate&po=0&dct=PS&D=FAA-2019-0229 <comment><AUTHOR> It took me a minute to find the actual full proposal text: [https://www.regulations.gov/document?D=FAA-2019-0229-0001](https://www.regulations.gov/document?D=FAA-2019-0229-0001)

The link here is to the comments, and definitely take a minute to read some submitted comments from the space industry, congress, airlines & observers. They are enlightening. Having read about a dozen extremely well thought out letters so far, I've seen nothing but very serious concerns with the proposal.

Blue Origin, for example, created a diagram of the new licensing process, and detailed why it's not likely to result in the monetary savings that the FAA is claiming.

[https://www.regulations.gov/contentStreamer?documentId=FAA-2...](https://www.regulations.gov/contentStreamer?documentId=FAA-2019-0229-0096&attachmentNumber=1&contentType=pdf)

Many people commenting that the proposal isn't adequately addressing the FAA's mandate to public safety. To me it seems like a curious move to deregulate in the wake of the Boeing Max crashes that don't look great for the FAA... but I don't know how the FAA is structured, is it fair to draw any lines between rockets and airline regulation, or is rocket licensing a completely separate group of people?

<comment><USER2> > that don't look great for the FAA...

I am not sure I understand. The crashes where in Indonesia and Ethiopia and those planes weren't under the jurisdiction of the FAA: presumably they were inspected by the relevant aviation authorities in those countries. There weren't any crashes in the US, so how does that make the FAA look bad? The US commercial aviation safety rate is unsurpassed and exceptionally good. I'd say the FAA has a pretty good track record. Just looking at the operational history of Indonesian airlines — it's clear that their regulatory body has a serious problem. But the FAA? The American safety record is compelling.

<comment><AUTHOR> Boeing is an American company and the FAA declared the Boeing Max safe to fly in US airspace, and didn't require the re-certification it should have had after major structural changes to the 737 design. What many people learned after the crashes is that the FAA is essentially letting Boeing certify their own airplanes, in an effort to be pro-business and soft on regulation. We are only lucky a crash didn't happen in US airspace, those crashes do count against the American safety record.

> Just looking at the operational history of Indonesian airlines — it's clear > that their regulatory body has a serious problem

"Problems" there, or not, it seems like a bad idea to try and blame the Indonesian airlines for a known design flaw in a Boeing airplane that the Boeing company tried to hide and cover with yet another known design flaw, the sum of which are known to have been the cause of both crashes. Boeing tried this tactic of blaming others, and it hasn't worked out well for them.

Edit: I was having deja-vu and realized I've answered this very same question of you before. [https://news.ycombinator.com/item?id=19837481](https://news.ycombinator.com/item?id=19837481) What is your reason for continuing to deny the role of the FAA in the 737 Max issue, and continuing to suggest that the crashes are the fault of the foreign operators that Boeing hid information from?

<comment><USER3> > Boeing is an American company and the FAA declared the Boeing Max safe to > fly in US airspace, and didn't require the re-certification it should have > had after major structural changes to the 737 design.

There's a pretty strong argument to be made that the 737-600 (first of the NextGen) was a far greater departure structurally from the 737 type certificate than the 737-Max was from the immediately preceding 737 aircraft. The Nextgen aircraft have a wingspan 16 feet wider, a wing area of 125% of the Classic 737, and a length as much as 44 feet longer (even slightly longer on the -Max).

Certification of derivative aircraft on a common type certificate is extremely common and generally has proven to be safe over the years. This specific certification has serious deficiencies, but that doesn't mean the practice in general is wrong (IMO).

In fact, the costs of certification from scratch are so high that it in some cases holds back development advances (because the optimization questions now include regulatory optimizations like "what can we certify under the old type certificate?" in addition to the actual physical engineering concerns.

</comment></comment></comment></comment><comment><USER4> After reading the documents this seems to apply to industrial scale rockets, space-X scale launchers; not hobby rocketry or amateur rocketry.

It would be interesting to see a rewrite of hobby/amateur rocketry laws but this isn't it.

</comment><comment><USER5> Is that really the thing keep people from making their own rockets? Red tape?

> This action would also enable flexible timeframes, remove unnecessary ground > safety regulations, redefine when launch begins to allow specified pre- > flight operations prior to license approval, and allow applicants to seek a > license to launch from multiple sites.

I feel as though we do want careful and deliberate launches. After all, this IS rocket science.

> remove unnecessary ground safety regulations

Hmm.

<comment><USER6> There is a cost-benefit trade-off for any regulation. If the non-regulatory costs of rocket launches are decreasing significantly, then it is worth revisiting the regulatory costs; what makes sense for 5-6 launches per year might not make sense for 50 launches per year.

<comment><USER7> Regulation and regulation costs are different things. Further, comparing costs incurred for business vs regulation costs seems odd. Regulation should be there for a reason. Just skimping on that because some other cost changed seems arbitrary. Further, I fail to see why you cannot optimize on the regulation cost; you can do this without changing the regulations.

Another way of looking at costs: eased regulations vs long time investigations and associated costs when something goes wrong due to eased regulations.

<comment><USER6> I don't know what the FAA regulations are, but here's an example of how a regulation can incur unnecessary costs:

If the regulation requires hand-inspecting part X and someone invents a machine to inspect part X, you are now incurring costs solely due to regulation.

The above is somewhat orthogonal to my main point. If you inspect something 10 times, then it is marginally safer than if you inspect something 9 times, and so on and so forth. Everything can be made more expensive and safer or less expensive and less safe. If there are benefits of increased spaceflight that exceed the downsides of the reduced safety, _and_ lowering the costs will encourage such increased spaceflight then it makes sense from a policy point of view to reduce the safety.

This is in addition to the point that regulatory compliance tend to increase costs by more than the amount needed to increase the safety (my example of hand-inspecting a part that could be machine inspected is one example; paying someone to check up that the regulations are actually being followed is another).

</comment></comment></comment></comment><comment><USER8> If there's one thing I've been thinking about the FAA lately, it's that they're regulating TOO much. /s</comment>


Value_ptr – The Missing C++ Smart-pointer - <AUTHOR> https://hackernoon.com/value-ptr-the-missing-c-smart-pointer-1f515664153e <comment><USER2> The idea of a value_ptr is something that's been around in C++ for quite some time, now. It usually goes by the name clone_ptr or copy_ptr. (Googling for either will yield several implementations.)

Looking at the author's code on GitHub, this implementation seems decent.

One thing to note about this implementation is that it doesn't address the other big reason for doing dynamic allocations: polymorphic types. Value semantics are preserved so faithfully that objects are sliced just as they would be if they weren't dynamically allocated.

Consider this example: [https://gist.github.com/SeanCline/c81218e4c0208ccb871268aecd...](https://gist.github.com/SeanCline/c81218e4c0208ccb871268aecd7d4eff)

<comment><USER3> For similar reasons it seems inappropriate for PIMPL. The template indirectly calls `sizeof(...)` on the template type. When that type is not concrete (which is likely the case with PIMPL) the code will not compile. The `value_ptr_example_pimpl.hpp` example doesn't compile for me using GCC 5.4.

<comment><USER2> Well, that isn't a flaw in the implementation of value_ptr. The example, as provided, won't compile because the the copy constructor, assignment operator, and destructor are declared `= default` in the header. This causes any translation units that include value_ptr_example_pimpl.hpp to attempt to stamp out the default implementation, which does require knowing `sizeof(Foo::Pimpl)`.

Moving those methods to value_ptr_example_pimpl.cpp, just as you'd normally do for PIMPL makes the compiler happy.

This works for me in VS2017 but should work on any C++11 compliant compiler: [https://gist.github.com/SeanCline/55d700d4fbf8cc1bdaeb44b547...](https://gist.github.com/SeanCline/55d700d4fbf8cc1bdaeb44b547ee200c)

</comment></comment></comment><comment><USER4> Not sure I like this pointer. Copying a pointer should not be a heavyweight operation. That is pretty well established.

I wish C++ had a unique_ptr without the ability to be null. But that does not seem possible given that moving from a pointer must give a valid object.

<comment><USER5> If you don't copy the resource then you are sharing it. This means you'll have reference semantics and every instance operates on the same resource. Value_ptr implements value semantics and so it behaves like primitives.

<comment><USER6> > If you don't copy the resource then you are sharing it.

I think their point is more that the copy has an arbitrary complexity, so while you think you're copying a smart pointer you're triggering a possibly huge cascade behind the scenes.

> This means you'll have reference semantics and every instance operates on > the same resource

You could have an _explicit_ copy operation on an otherwise move-semantic smart pointer. No sharing, and while you get the ability to copy stuff if necessary it's not potentially hidden behind every argument passing or assignation, it becomes a very deliberate operation.

</comment></comment></comment><comment><USER7> Shameless plug, but that is very similar to the _immer::box_ type in this library of immutable data-structures: [https://sinusoid.es/immer/containers.html#box](https://sinusoid.es/immer/containers.html#box)

</comment><comment><USER8> You still need to dereference the `value_ptr` a lot, right? Otherwise argument dependent lookup won't work for the wrapped value type.

I guess you could provide specializations for all the common candidates (begin, end, swap, size, empty, data, and whatever gets added in the future) in the "valuable" namespace, but you'll need to be pretty aggressive with adding new specializations as people find ones they need.

Also, it might be a good idea to support a Deleter template parameter and propagate it to the underlying `unique_ptr`. Some projects use that customization point for various purposes, like instrumentation of (de)allocation or grabbing certain kinds of objects from memory pools.

</comment><comment><USER9> The comparison chart is nice [https://gist.github.com/njlr/b03f212a3b56a22a54db536f536434f...](https://gist.github.com/njlr/b03f212a3b56a22a54db536f536434ff#file- smartpointers-md)

<comment><USER10> Semantics would be more accurately described as optional-value (instead of value).

</comment></comment><comment><USER11> I highly recommend watching this presentation: [https://www.youtube.com/watch?v=JfmTagWcqoE](https://www.youtube.com/watch?v=JfmTagWcqoE)

Herb Sutter: Leak-Freedom in C++ by default

</comment><comment><USER12> That's just a confusing name for boost::optional, right?

<comment><USER10> Not exactly as boost::optional would have infinite size for recursive types. You would need to combine it together with recursive_wrapper.

</comment></comment><comment><USER13> Since memory is copied, it's really not clear to me what the advantage is of using value_ptr over just using values.

Is it just about heap vs. stack?

<comment><USER14> I think its about recursive types/members, e.g.

        class Tree { Tree _left, _right; };

Won't compile because it has an infinite size. However

        class Tree { Tree *_left, *_right; };

Compiles, but the author contends that a more explicit description of the ownership semantics is better:

        class Tree { value_ptr<Tree> _left, _right; }

This is also why `value_ptr` is different than `optional`.

<comment><USER15> I think you have to say something about the copy semantics too, because if you ignore those, value_ptr would be synonymous with unique_ptr.

       class Tree { Tree *_left, *_right; };
       Tree y = x;

makes a shallow copy.

       class Tree { unique_ptr<Tree> _left, _right; };
       Tree y = x;

doesn't compile, but

       class Tree { value_ptr<Tree> _left, _right; };
       Tree y = x;

makes a deep copy.

</comment></comment></comment><comment><USER16> C++ "smart pointers" share with threads a common risk: most people using them should avoid using them.

<comment><USER17> "Most people" using new/delete with raw pointers = memory leaks and crashes, guaranteed.

unique_ptr and shared_ptr are really simple and incredibly useful. If you're too scared to use them, you should not be using C++ at all.

<comment><USER16> Well, I'm using C++ since 1993, so go figure.</comment></comment></comment>


Eliminating some of the pain of long-lived feature branches - <AUTHOR> http://blog.launchdarkly.com/feature-branching-using-feature-flags/ <comment><USER2> yea but long lived branches are still necessary</comment>


Bogo-bogosort - <AUTHOR> http://www.dangermouse.net/esoteric/bogobogosort.html <comment><USER2> This seems completely pointless. The elegance of bogosort is that it's an extremely simple algorithm, with a simple description of "randomize until it's sorted". Bogobogosort is complicated for no apparent reason. It's trying to be cute and clever, but there's no rationale for why additional complexity is being added.

Bogobogosort seems in the end to be no more worthwhile than sleepybogosort, where you must sleep() in between every operation.

<comment><USER3> No, since the complexity of bogosort with sleep is still O(n!), while the algorithm from OP has a higher bound.

<comment><USER2> Depends on how you do the sleeps.

</comment></comment></comment><comment><USER4> This got me thinking about a more generalized approach to this sort of thing.

Given a task where you can check completion _somehow_ , you can then solve it using the following procedure:

1\. Generate a random program. (This could be a Turing machine, bytecode, C source, whatever.)

2\. Execute the program on the input for n steps, where n is an incrementing counter.

3\. Execute the given check on the output. If the check passes, return the output.

4\. Increment n and go back to 1.

The restriction on n steps avoids running afoul of the Halting Problem.

The check has to be a little more rigorous than the one used in Bogosort. It can't just check to see if the output is in order, because the output may contain completely different numbers, since the program could be doing anything. You'd have to check not only for order but also that the output is in fact a permutation of the input.

I wonder what the running time of this algorithm is. I wonder if it can even be calculated.

<comment><USER5> We both came up with nearly the same idea at nearly the same time (within one minute) - what are the odds of that?

My solution is slightly different - to avoid the Halting Problem, you can use a distributed approach. You have a very large (but finite) number of processors that you pass your programs to.

<comment><USER4> "what are the odds of that?"

I'm not sure, maybe we should build an unbelievably inefficient program to calculate them.

<comment><USER6> But is it really inefficient if it is efficient at being inefficient?

</comment></comment></comment></comment><comment><USER7> My favourite is still Intelligent Design Sort:

[http://www.dangermouse.net/esoteric/intelligentdesignsort.ht...](http://www.dangermouse.net/esoteric/intelligentdesignsort.html)

O(1) run time!

<comment><USER8> Genius :)

</comment></comment><comment><USER9> My favorite line: "as anyone who knows anything at all about computer science knows, recursion is always good and cool."

</comment><comment><USER10> I snort in fake outrage that nobody has seen fit to reference the definitive work on this topic: [http://ivanych.net/doc/PessimalAlgorithmsAndSimplexityAnalys...](http://ivanych.net/doc/PessimalAlgorithmsAndSimplexityAnalysis.pdf) (Check out section 5 in particular for today's topic.)

</comment><comment><USER5> Here is a "distributed" sorting algorithm that requires even less thinking - you don't even have to write a shuffling algorithm!

1) Start with an empty string.

2) Increment the string in such a way that will _eventually_ generate all strings.

3) Give the string (and your unsorted array) to a processor that attempts to run the string as a program and go back to step 2.

When a processor is given a program, if the output contains all the elements of A and the output is sorted, stop everything! You've sorted the array.

It requires O(n^m) processors, where n is the number of characters possible in a program, and m is the string length of the code that finds the solution. Lots of the processors will be stuck in infinite loops.

</comment><comment><USER11> I have a soft spot in my head for _turdsort_ , which attempts to optimize over _bogosort_ , but ends up being no better.

      #!/usr/bin/python
      from random import shuffle

      def turdsort(a):
        def turds(a):
          n = 0
          for i in xrange(len(a)-1):
            if a[i] > a[i+1]:
              n += 1
          return n

        count = 1
        n = len(a)
        t = turds(a)
        while n > 0:
          while t >= n:
            shuffle(a)
            t = turds(a)
            count += 1
          n = t
        return count

      if __name__ == '__main__':
        a = range(10)
        print a
        print turdsort(a)
        shuffle(a)
        print a
        print turdsort(a)

<comment><USER11> There is also the slightly less pointless _ordersort_ , which works only on permutations. The complexity of _ordersort_ is given by the Landau function. It is more efficient than bogosort, however.

      #!/usr/bin/python

      def gcd(a,b):
        while b:
          a, b = b, a % b
        return a

      def order(a):
        """compute the order of the permutation a"""
        lcm = 1
        for i in range(len(a)):
          j = a[i]
          while j > i:
            j = a[j]
          if j == i: # i is a cycle leader
            j = a[j]	# get next element of cycle
            cyc = 1;	# the cycle has length at least 1
            while j != i:   # the cycle hasn't closed
              cyc += 1
              j = a[j]
            lcm = (lcm/gcd(lcm,cyc))*cyc
        return lcm

      def ordersort(a):
        ord = order(a)
        print ord
        b = range(len(a))
        while ord > 0:
          b = map((lambda i: a[i]), b)
          ord -= 1
        return b

      if __name__ == '__main__':
        from random import shuffle
        a = range(50);
        shuffle(a)
        print a, ordersort(a)

</comment></comment><comment><USER3> My addition to the algorithm: Every time your check if arrays is sorted and it isn't, start from the very beginning throwing away all progress made so far.

I doubt this way n == 6 would finish in some normal time period.

<comment><USER12> bogosort does that already.

I ran it on an the array [0,1,2,3,4,5,6] and it took between 3 hundred million and 1 billion operations (by my marginally accurate counter) and between 6 and 20 minutes, but mine was in python, not C.

<comment><USER3> Welcome to HN.

I was referring to OPs algorithm which was bogo-bogosort.

At first I though my change would not increase the complexity, but I think it is dependent on size of input since for every recursion there is a chance to fail and start completely over, where the number of recursion is dependent on input size. Therefore it adds to complexity.

</comment></comment></comment><comment><USER13> You say it will take on average n! attempts to find a sorted list randomly. This is false. It will take on average n!/2 attempts.

<comment><USER3> O(n!/2) == O(n!), the whole paragraph is obviously referring to big o notation.

edit:( I have edited the post to respond to your comment, trying to clarify what OP meant; I in no way tried to make your comment "look silly" )

<comment><USER13> Yes, but that's not what he says. He says "The loop will repeat on average n! times". That's not true. He's not referring to O notation there, he brings that in later. Here he's talking about the imperative number of times a loop will run on average.

Edit: you've edited your paragraph to make my reply look silly. The whole paragraph is not in O notation. In fact - the exact opposite. In the last sentence of that paragraph he shows what the expression with constant factors looks like before converting it into O notation, and it's wrong! "The product (n-1)n! is O(n × n!)." Bzzzzzzt! Wrong! He should say "The product (n-1)(n!/2) is O(n × n!)."

</comment></comment></comment><comment><USER6> Isn't this how evolution works?

<comment><USER14> No.

Evolution doesn't involve resets - the hint is in the name.</comment></comment>


Facebook removes misinformation related to Oregon wildfires - <AUTHOR> https://mashable.com/article/oregon-wildfires-facebook-removes-misinformation/ <comment><USER2> Asymmetrical warfare. Truth can never win. Fact checking is akin to boiling the ocean.

Just require attribution and real names.

Then ban algorithmic newsfeeds, targeted advertising, and bots.

Sure, let the Freedom Speeches™ trolls keep their conspiracy theories and hoaxes. Anything approaching omission will trigger the cancel culture keyboard commandos. And who needs that heart ache?

But ffs stop promoting it. And if it's not signed with a real name, don't pass it off as any thing more than it is.

PS- I'm open towards banning likes and retweets. I haven't dug into the data, but I'm reasonably sure they're part of the dopamine addiction too. And if these obvious, common sense, proven remedies are not enough, start adding other frictions to the feedback loops.

<comment><USER3> I think another underrated solution may be geographically restricted posting. Someone else was talking about massive amounts of trolls flooding local groups that try to inform people about the fire, so why not have a feature where communities are effectively GPS locked down to some radius.

Otherwise agreed with all the points.

</comment></comment><comment><USER4> It's worth noting that the "misinformation" cited by Facebook regards the attribution of the fires to particular groups, and that they are not disputing that some of the fires may have been intentional. They are not claiming that all of the fires are natural, or that people have not been arrested for arson, just that those arrested are not shown to be associated with the particular groups that are being accused. This page has details on six individuals who have in fact been arrested for setting recent West Coast fires: [https://thatoregonlife.com/2020/09/signs-in-oregon-fire- zone...](https://thatoregonlife.com/2020/09/signs-in-oregon-fire-zones-show- looters-and-arsonists-will-not-be-tolerated/).

</comment><comment><USER5> We are about 10 miles from the fire and about 5 miles from people who have been evacuated.

Frustratingly, one of the best sources of information about the fires has been community meetings and content posted on Facebook by the agencies involved. Often those same community meetings and PSAs about the fire have been bracketed by non-stop streams of people reposting this same bullshit about the fires.

In general, I think posting siloed content is really bad policy by government agencies, but in this case it's particularly bad. I don't see this as a failure of the fire agencies—it's not their job to be a platform for delivering content. The problem is our government lacks effective channels for delivering this content outside of these silos.

</comment><comment><USER6> Why is Facebook's policy communications manager tweeting?

</comment><comment><USER7> >We are removing false claims that the wildfires in Oregon were started by certain groups.

I don't get how Facebook can say with certainty this is misinformation? It's information that hasn't been verified. There is an important difference.

<comment><USER8> This trouble for Facebook and well anyone attempting to combat misinformation is that the falsehood can be created in seconds. The clever ones are designed to be hard to fully disprove, or at least seem that way.

Everyone else has to then scramble and spend hours, days or more gathering evidence to prove lies are incorrect. It's a denial of truth attack that is impossible to police fairly on a time scale that matters.

</comment></comment><comment><USER9> Facebook removes lots of truthful stuff, so that says nothing about the validity of it. It does tell us that Facebook employees dislike the information.

<comment><USER10> > Facebook removes lots of truthful stuff

Such as? Examples would be appreciated.

<comment><USER9> Anything pointing out that Kyle Rittenhouse acted in self-defense seems to get banned.

All [https://JoeBiden.info/](https://JoeBiden.info/) links are banned. It's 100% truthful, with citations, and unmodified video that you can watch with your own eyes.

<comment><USER11> How do you go across state lines with a gun in the middle of protest and then claim "Self defense"?

<comment><USER9> According to Kyle's lawyer, that never happened. The gun never crossed a state line, not that it matters. The lawyer is a reputable source. See what happens when information is suppressed? You didn't know that fact.

<comment><USER11> > The lawyer is a reputable source.

Johnnie Cochran also said OJ wasn't guilty.....

</comment></comment></comment></comment></comment></comment><comment><USER12> Don't remove posts.

Mark them as lies and don't let the writer modify or delete them.

Once people see they have been upvoting lies, some might reconsider next time.

<comment><USER13> More likely that they'll just become cynical and stop believing everything altogether. Marking a post as a lie doesn't educate the user how, or give them the tools they need to independently confirm the truth of a post.

</comment></comment><comment><USER14> If anybody really wanted to know "who started the fires," that's easy: It was you, driving that car of yours, running that air conditioner, heater, stove, fridge, washer/dryer, buying those products, living your life. Not a mystery. But nobody wants to know that. Consider each downvote a confirmation of that last sentence.

<comment><USER15> If carbon dioxide brought the bark beetle to our shores, then forced the federal and state agencies to not treat the resulting megatons of dried out trees as the emergency they were, then ok.

But you're going to have to explain how that works, because I'm not seeing it.

Sure, climate change is a real and increasingly urgent problem. And you can make a case that it made the situation worse; fine.

But the bark beetle was both necessary, and sufficient, to cause the crisis we're seeing. I've seen estimates of 30% kill rates in Western forests over the past five years.

<comment><USER14> Here is how it works: "Many species, such as the mountain pine beetle (Dendroctonus ponderosae) attack and kill live trees. Most, however, live in dead, weakened, or dying hosts."

[https://en.wikipedia.org/wiki/Bark_beetle#Ecology](https://en.wikipedia.org/wiki/Bark_beetle#Ecology)

</comment></comment></comment><comment><USER16> Political extremists did not start the fires. But decades of the political status quo in both dominant parties led to mismanagement that led to the current situation. Are any of the "corrections" correcting that omission?

</comment><comment><USER17> It sounds like Facebook fell for misinformation, or they are willingly involved in a political coverup.

Here we have a distraught witness: [https://www.bitchute.com/video/tNgWGZBxPtGx/](https://www.bitchute.com/video/tNgWGZBxPtGx/)

<comment><USER18> She didn't witness anything, if that makes a difference. She is claiming her husband witnessed something.

Also, even if her claim is true, there is no evidence that the people involved had any affiliation with antifa or proud boys.</comment></comment>


Jet plane emotions; iPad cycles - open vs closed systems - <AUTHOR> http://www.oblomovka.com/wp/2010/01/31/jet-plane-emotions/

<comment><USER2> He is right. If you want an open system better than the iPad then you can make it. No use complaining that Apple is making a closed system - that is there prerogative.

Maybe the year of the Linux desktop should be skipped and those interested should be aiming for the year of the Linux tablet.

<comment><USER3> I have an HP tc1100, and it's _fun_ to use. Windows handwriting recognition is _awesome_. But Linux could do better, given enough will.

</comment></comment><comment><USER3> _Even the supposedly sealed iPad sits close enough to our laps for us want to make something, even if it's just finger paintings._

"Just finger paintings?" I saw a lot of potential in what Brushes is doing. Another HN poster deprecated the finger interface because it wasn't capable of "precision pointing." Any designer worth their salt can think of a way around that in about 30 seconds. (A gesture where you have crosshairs between your fingers, combined with a zoomed-view, much like a sniper scope in a FPS.)

There's no reason why a multitouch interface can't subsume most of what we want to do with computers. The last barrier is text input. And a small Bluetooth keyboard like Apple's seems like a dandy solution to me!

Prediction: Interfaces as light and unobtrusive as a pad of paper will change the way we use computers.</comment>


Ask HN: For beginners: what is the hardest part while learning web dev? - <AUTHOR> Hey there,
Self-taught web developer here. I managed to get a job after 11 months of learning of my own. For me, the sheer amount of resources was overwhelming and sometimes got me thinking to give up, but I kept at it and managed to get a job and find out how web dev looks like in real life.
Eager to hear your stories.
Thanks, Alin R. <comment><USER2> I think that a majority of "beginnner" tutorials miss the point. They start with the actual HTML/CSS right away. Heck, some even start with jquery as part of a beginning course.

I really believe in learning the "why" of something and not just the "what" or "how".

For example, if you really want to learn web dev, you have to learn to some extent how the internet works, what are the various protocols for web (http vs ftp vs ws etc), what the hell is DNS, the whole client/server cycle (request/response etc) etc. Sure it can help showing actual HTML code to explain http or request/response but I feel a lot of beginner tutorials just focus on the result and not the actual path.

Teach about the document/DOM etc and then write a simple helloworld.html. But then open the web inspector, show them how the request was sent (header,data) and then show the response received from the server.

There is plenty of tutorial on the usual stuff but not many that get real deep which is useful for beginners.

<comment><USER3> I think going front to back is valid too.

Restyling wordpress yields usable results qiuckly, which is great for motivation. And motivation might be the most important things if you learn it by yourself. It's just important to take your time when encountering issues related to things below.

In general there is a fine line in programming: going as high level as possible only gets you in to trouble when things go wrong or need optimization, but you often don't have to know much more than one level down and a few basics to make better guesses about errors.

<comment><USER4> I don't think this is true. I have worked with people who don't know enough going down the stack of web programming (and been one of them). They couldn't fix bugs as easily as I could. I'm sure there are other consequences, probably design related, but the bug one is apparent to me because I help when I can.

</comment></comment></comment><comment><USER5> In my opinion, it's the sheer amount of options available. It's overwhelming.

First of all, the tooling. Should I use NPM, Bower, Gulp, Grunt, Webpack or something else?

What text editor should I use? Visual Studio code? Sublime? Vim? Emacs? Something else?

What Javascript framework should I use? React? Angular.js? Angular2? Vue.js? Do everything with jQuery? Something else?

What CSS framework should I use? Bootstrap? Semantic UI? Material Design? Something else?

Should I just use ordinary CSS? SASS? LESS? Something else?

Should I use plain Javascript? Typescript? Dart? Something else?

All of the above have a learning curve (which means spending your valuable time learning the specifics of each choice). And no matter which combination you choose, somebody will come along and tell you that you have made all of the wrong decisions and should start again with X, Y and Z instead, which is incredibly frustrating when you just want to build something.

I've learned that, if you have learned X and are using it to build something, and somebody comes along and says, _What are you using X for, everybody is using Y now, X is dead_ , you just need to have enough backbone to say, _X works for me, I know it inside out and I can use it to build a mean product, go away_.

It reminds me of the old but still relevant Joel Spolsky blog post, _Fire and Motion[0]_.

[0] - [https://www.joelonsoftware.com/2002/01/06/fire-and- motion/](https://www.joelonsoftware.com/2002/01/06/fire-and-motion/)

<comment><USER6> You will get plenty of strong opinions and materials on the tremendous amount of JS framework and libraries. In the end, choosing what is best for you is a balancing act, and there is no clear winner.

One benefit of learning Dart + Angular(.dart) is that you get an efficient programming environment with batteries included. The toolchain includes the usually required tools (SASS included, it is now implemented in Dart first and is ported to other platforms afterwards). The learning curve is small(er than usual), the tools are great.

</comment></comment><comment> open-source-ux _" What is the hardest part while learning web dev?"_

The sheer amount of stuff you have to learn _other_ than just the programming language you picked up. In fact it feels like as much, if not more, time is spent understanding tooling, distribution, packaging and hosting options for you web app. Little of which feels satisfying or enriching to learn because so much of it is simply endless administrative minutiae. No-one seems interested in simple, easy alternative methods.

This won't be a popular opinion, but I'll say it anyway...I am learning Python at the moment, and I can completely see why so many people start with PHP for web dev. Python - _the language_ \- might be easier and friendlier PHP, but Python's 'eco-system' for deployment and distribution is horrible, fragmented, clumsy and not easy to learn (or documented well).

<comment><USER7> I'm not a fan of PHP as a language, but anyone who denies it hits a sweet spot for deploying applications is seriously confused.

<comment><USER8> PHP has such a terrible reputation from all the spaghetti code that's out there, but modern PHP is a pretty solid language when written properly. So long as you are writing good OO code and using an IDE like PHPstorm its a breeze to develop in. Also with Facebook's HHVM performance is on par or better than Java or C#.

</comment></comment></comment><comment><USER9> The hardest part, for me, is knowing how to 'get a job' as a web dev. It seems like thats something no one ever talks about, and rarely do I see any information for. The reality is that you need to have some worth to a company, and that is in your skills and ability to improve your skills. Thing is, how do you prove that? Just because you make some app in React doesn't mean you're now an experienced React developer that can solve complex problems with it. Just because you make some web apps doesn't mean that you know the proper technologies to work with in other projects. It takes a lot of time and effort to learn things, and there are plenty of companies that aren't there to pay you to learn a whole bunch of new things unless overall you have a lot of experience.

I look at job postings all the time, and I don't feel I can honestly say: "Yeah, I can do that". I could learn to do what they need, or maybe the circumstances of the employment may cause me to be useless in its duration. There just doesn't seem to be a way to know what you're going to be working with until you just jump ship into it, and if you fail, well, nobody talks about that, and thats legitimately scary to me.

Sometimes I feel its not real, like the people who get 'real' jobs with this stuff can either just fake it and get lucky, or are simply better. It sucks, because I know I've made some cool things and can make much better things. It sucks even more because there's a limit to how much time you can spend working towards a complex career goal like software development before you just end up working a retail job full time to survive.

So, yeah, that parts difficult.

</comment><comment><USER10> Also a self-taught web developer here. My advice would be to make sure you learn the languages, not the frameworks. Once you know the languages, you can pick up the frameworks far easier and you can actually dig in and see what's happening.

<comment><USER11> I'll say it's more of learning the fundamentals / concepts, such as why a framework will be useful. Languages and frameworks will change over time, but some core concepts will remain the same.

</comment></comment><comment><USER12> The hardest part what I think is that we are surrounded by numerous web frameworks which makes it difficult to choose one of them. It may be due to the scope of the framework, community support and learning curve. I am a JavaScript Developer and I too find it hard sometimes to move ahead due to the design paradigms (both frontend and backend), database drivers (MongoDB my fav), community support for the project. It doesn't end here but we also feel that our project or a small app that we make might be neglected because the stack which we used while developing it was too much flexible or was easy to implement.

A solution to this can be making your development stack more and more compact according to the current needs and choosing a open source project or framework to work on which offers good community support and has a future scope.

</comment><comment><USER13> I started not even trying to learn "web". I was self teaching Python and trying to solve Project Euler problems... it was fun!

But also not very useful. I became pretty clever (imho) but didn't know much about the web. I had no idea how JavaScript would interact with HTML, for example.

I found that learning how the internet worked helped a lot. So TCP, HTTP, DNS. Before I learned these things, I struggled a lot.

From there I learned Rails (and then Ruby, which is common but perhaps not ideal), and the rest is history.

This was over the course of several years though. One thing I'd really like to point out is that you're likely able to get a job earlier than you expect. That's not to say that you should be overconfident, but embrace being a beginner, ask questions, and know that you can still contribute.

</comment><comment><USER14> For me it was getting enough experience with the various tools and tooling to learn the __right __tool for each job.

I started around '08 on a Django-based stack with really only university courses and prior Python programming experience. I was very active reading about the tech stacks which helped substantially.

When building mostly static content, I relied heavily on templating. When it came time to add interactivity, jQuery was right there waiting for me. When more complex behaviors were needed, I had to figure out how to write _actual_ javascript rather than string callbacks together. Then learning to manage dependencies and assets became necessary, ... and so on.

A mentor would have been an enormous benefit. I was very lucky in that I got a wide berth to work in, and much opportunity for greenfield work.

</comment><comment><USER15> These are all the things that made full stack webdev overwhelming for me: 1\. HTML, CSS, JS and a backend language with a database.

2\. Even if you learn basics of these, you proceed to see online tutorials. When I started angular was all the rage. Midway through learning angular, facebook released react. As a beginner you get pretty much carried away by blog posts which go on praising the new tech.

3\. Es6 comes in the scene. Enough said.

4\. But you have to learn grunt/gulp to be productive.

5\. Code in vanilla JS? Ever heard about typescript? All the angular guys are using it.

Css frameworks, jQuery, and many other things.

<comment><USER16> 4\. gulp/grunt is history already! webpack is the new hotness.

It's crazy how fast the things move in js world.

<comment><USER17> The good thing is that nobody is forced to use all that stuff. You can write plain ES5 and plain CSS and it will work in most browsers out-there.

</comment></comment></comment><comment><USER18> For me the hardest part was slamming into that wall where you've been working at a very high level of abstraction (HTML, CSS, a web framework of some sort, an IDE) and you realize you have very little idea how computers work or how they talk to each other.

This is the point where you need to do some kind of a deep dive into UNIX or the command line of your OS and figure out what the hell is really going on. Processes, files, permissions, networking, security, etc. When you pull back that curtain a bit and realize you know almost nothing...

<comment><AUTHOR> Yep, I remember learning all those html, css, js stuff but I had no idea how a site works and all the server side, DNS, etc. SO true...

<comment><USER19> Don't mean to humblebrag, but thanks for reminding me that I have actually learnt stuff that not everyone knows. Imposter syndrome kicks in easily when caught off guard, especially when surrounded by people who appear more knowledgeable than you at most times.

</comment></comment></comment><comment><USER20> 1\. Code tutorial websites teach mostly syntax but are weaker when it comes to teaching you how to set up an environment and structure a new environment. As such, it's useful to look at other people's code on github or similar. Websites and web applications are only partially about the code your write; they are also about the system on which they are built. Learn what it means to "deploy" a website and how that works. Even though some will argue that that's more of an operations concern, as a web developer you often have to wear multiple hats, including operations and server management.

2\. With languages like javascript, especially for those with no programming experience, it's really easy to get your feet wet and believe that you "get it", that you "know javascript". That's a fallacy. Javascript, perhaps more than other languages I know, is easy to stitch together to get working (quick and dirty) but really tricky to write eloquently in a way that follows core software development principles and in a way that is easy to manage in the long term (which is part of the reason that there are so many JS frameworks out there).

3\. Accept that there are things that you just don't know (and things that you don't know you don't know) and dedicate time to learning from others; not just as you get started, but forever. We spend time on our team every day sharing even the smallest things that we've learned that week to promote this idea (even things like "I discovered the `git add -p` command and here's what it does!").

<comment><USER21> Amen, coding is a never ending study. Always new things. do do do do doooo. I'm coding it.

</comment></comment><comment><USER22> The way I teach it to beginners, is by making them create something the really would love to create.

Because teaching them HTML/JS/CSS and/or a random framework simply 'always' is overwhelming.

And because some really like backend, others Frontend. Some really like Vanilla and others really like frameworks.

If we sit together for 5 minutes to talk about the requirements.. They usually getting really excited and seem to to do a Minimal Viable Product approach with a lot of motivating.

For some reason they learn really fast that way and start to make quick choices from the start because they have a clear goal and start to look more 'what works for them' instead of getting lost in all pretty looking blogs and to much technicall theory from the start.

Next to that, I'm being really clear that there code will always suck. Same as there 2nd project and the 3rd project.. Even my code will suck after I did 50 more projects..

Point is, they have to have finish something first, look back and than realise what they want to improve.. After a few years you know a lot of pitfalls and you 'could' call your self a good developer

</comment><comment><USER23> There are a lot of tools and frameworks out there, so it's tough to know which ones to get started with. There are a lot of terms that don't make much sense until you just go ahead and start using them... HTML, CSS, JavaScript, CoffeeScript, Ruby on Rails, Django, HTTP, API, SSL, Angular... it's really frustrating to figure out what's what when you are just beginning, but once you do figure out, you realize that it's not rocket science. But I'd advise _anyone_ trying to learn to do web development to find a mentor who can help you get started by pointing in you in the right direction in terms of tools you'll need to learn to get started (and in what order to learn them). Once you have the basics, it'll be easier to know what tools you want to add to your arsenal later.

A great way to meet people who can give you guidance is through local meetups. For example, you'll likely find people with web development experience at any Python meetup. Finding a good mentor will save you a _lot_ of time.

<comment><AUTHOR> True that! For me, I find my mentor at my job and it feels that I learned an awful lot more from him than I would have learned on my own, so yeah, it's very important to find a sort of mentor.

</comment></comment><comment><USER24> This isn't as much of a problem today, but when I was beginning ('97-'98) the hardest part was learning to completely ignore most "vendor" platforms (especially the big content management systems like Vignette StoryServer).

Other than that, the need to learn five sets of semantics/syntax in parallel (HTML, CSS, JS, (Python|Perl|PHP), template language) with constant context switching was quite difficult as well. I lucked out in that the server-side tech I chose (Python & Zope) at least let me ignore SQL for a while, and I was able to minimize the amount of JS I used until jQuery came along to make front-end coding suck a _lot_ less.

</comment><comment><USER16> As someone working on web development for about 16 years and mentoring tens of junior developers, most of them get stumped at how HTTP Redirect exactly works. Not that it's super complicated.

Otherwise I think web development these days has gone nuts, with so many technologies involved SQL, HTML/css, server side language and framework, not to mention JavaScript.. even if you decide to stick with React, which is the most accepted framework these days, within React eco system there are so many different choices of tools no newbie can get his/her head around that easily.

</comment><comment><USER25> I graduated as a mechanical engineer and tried to make the switch to web dev but I got caught up in not really knowing what to learn to get an actual job. For instance, I'm a natural at CSS, came as a no brainer, but all places want you to know less and then it was sass and then it was one of those along with gulp and then grunt, and then everybody became crazy about mom and then webpack. This is why I gave up and moved on. I still love to code in my spare time, but as far as work wise I never made the transition. I felt like I was chasing a never ending qualification list.

<comment><USER26> May I ask why one would want to switch from a well respected engineering profession to one which literally kids can do? Outside of the HN bubble where there's lots of VC-funded Internet startup employees, webdev is a joke, and I think you see why now.

<comment><USER25> There's better working conditions in tech, you can get paid more, when you know how to code monetization options open up since it's a lot easier to make money and less risky with a website/store/service than it is making your own physical product, webdev now is also pretty much software development depending on the type of work you do, my engineering background couples very well with program design and also helps out a lot when connecting to physical systems.

</comment></comment></comment><comment><USER27> Cutting through all the bullshit and tribalism around languages and frameworks one finds online is the hardest part imo. whats important is defining a basis to choose; employability, cool, theoretical etc, and basing how you spend your time on that. Not on "x says y is the new hot I better learn that!" That's a treadmill that never stops.

Edit also understanding the first language and framework you learn is just the beginning, there will be many. That's something that surprises many.

</comment><comment><USER28> Ugh. When I think about how much I know, and how long it took to learn, and how hard it was to learn, I have to say I would be daunted if I had to start again from "this is a bold tag", which I did in about 1998.

You just need to maintain a frenzy of non stop learning and write huge amounts of code for the next X years and you'll be OK.

</comment><comment><USER29> I echo the sentiment expressed here: Learn the building blocks not frameworks.

It's the long way but the investment will pay off. New frameworks come along, you'll pick them easier because you'll already know which building blocks are used.

</comment><comment><USER30> The tooling (do I need grunt, what framework do I use) and organising my code (best practises/design patterns) has always been what confuses me as a data scientist who wants to learn more front end.

</comment><comment><USER31> that's a reason never liked web dev .. it's like porn fight between reality kings and pornhub.. @jmkni introduces very clearly first few probs..

</comment><comment><USER32> The whole picture of the Internet, this is hard to get. Technologies are good to learn, but abstractions of the real world, this comes from one's experiences.</comment>


The Twelve-Factor App - <AUTHOR> https://12factor.net/ <comment><USER2> They give a nice TOC:

———

The Twelve Factors

I. Codebase: One codebase tracked in revision control, many deploys

II. Dependencies: Explicitly declare and isolate dependencies

III. Config: Store config in the environment

IV. Backing services: Treat backing services as attached resources

V. Build, release, run: Strictly separate build and run stages

VI. Processes: Execute the app as one or more stateless processes

VII. Port binding: Export services via port binding

VIII. Concurrency: Scale out via the process model

IX. Disposability: Maximize robustness with fast startup and graceful shutdown

X. Dev/prod parity: Keep development, staging, and production as similar as possible

XI. Logs: Treat logs as event streams

XII. Admin processes: Run admin/management tasks as one-off processes

———

</comment><comment><USER3> Just as with yesterday's discussion about Black[0], there will be people who like 83% and dislike the other 17%. But having stated principles about how you build software within your organisation ought to make everyone's life easier and more enjoyable.

And this list is a great starting point, even if your organisation chooses to adopt precisely the opposite for each of the 12 points.

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

</comment><comment><USER4> I've worked on codebases designed using this model, and it's a vast improvement over how many web service applications are created. A lot of this seems like common sense (one codebase, for example), and some of it is frustratingly _uncommon_ sense (like dev/prod parity).</comment>


Noam Chomsky: Coronavirus – What is at stake? - <AUTHOR> https://www.youtube.com/watch?v=t-N3In2rLI4 <comment><USER2> some takes from the video (listening is better of course)

\- corona virus was easily solvable as demonstrated by south korea, taiwan and china, but market failures cause by emasculated public institutions and companies more interested in selling consumer products exacerbated the crisis

\- we are very dangerously closer to midnight on the doomsday clock (90 sec away) and seems the implication is because of the volatile situation in south asia (it seems he was implying india and pakistan?) caused by many things including climate change, and strongman leaders who also have no idea what they are doing (trump/boris) in the uk and us

\- south asia is on its way to becoming unlivable, as certain areas last year reached upwards of 50 degrees centigrade; with continuously rising temps and increasing droughts this will only exacerbate tensions as time goes on

\- we will get through the corona virus, but if sometching isn't done about global inequality, the slow collapse of democracy around the world, and finally climate/environmental crisis, we will not "get though" it

\- we are stuck in the ideology of markets and markets only, where private profit, not not societal needs are considered, and we need to break out of this ideology if we want to survive the coming crisis post-corona

\- if there is anything positive to come out of this corona virus, it's that people take the time to think about and act on what type of world do they want to live in, do we want to continue the same path towards destruction, or will we de-atomize ourselves and start to come together to face the looming problems (which are surmountable if we work together and pool our resources as people and countries)

.... that's not verbatim of course, but my interpretation of what noam was saying

<comment><AUTHOR> thanks for this, that's quite useful, especially because original video doesn't have a great quality of audio.

</comment></comment><comment><USER3> Damn he looks old -- praying we don't lose him to covid

<comment><AUTHOR> indeed he does. sending good vibes towards Noam!</comment></comment>


'Data Selfie' App Shows You Exactly Who Facebook Thinks You Are - <AUTHOR> http://motherboard.vice.com/read/data-selfie-app-shows-you-exactly-who-facebook-thinks-you-are <comment><USER2> I have a sneaking suspicion that you will have to give permission for this app to harvest your data in order to analyse it.</comment>


Half of Republicans would support postponing 2020 election if Trump proposed it - <AUTHOR> https://www.washingtonpost.com/news/monkey-cage/wp/2017/08/10/in-a-new-poll-half-of-republicans-say-they-would-support-postponing-the-2020-election-if-trump-proposed-it/ <comment><USER2> This is how democracy devolves into autocracy.</comment>


Analysis of Brexit-Centric Twitter Activity - <AUTHOR> https://labsblog.f-secure.com/2019/03/12/analysis-of-brexit-centric-twitter-activity/ <comment><USER2> Yesterday, Parliament rejected May's Brexit deal for the second time. Today, they rejected a no-deal Brexit. Tomorrow, they're expected to reject gravity.</comment>


Ask HN: What are the new ideas of the last 10 (or 5) years? - <AUTHOR>

Let's look at the following statements:
"Personal computers will be a big hit." "Internet search will be an extremely important and profitable business."
These statements were absolutely not trivially true at the time when personal computers started, or when Google started.
Can we collect important statements, which were not trivial 10 years ago, but seems to be fairly trivial now? (Regarding topics in which HN can be interested: mostly innovations.) A more interesting, but harder question: what happens if we take 5 years instead of 10? (Can we see clearly enough in this case? In what time-granularities can we think? What is the pace of development?) <comment><USER3> Mobile phones will be your primary communication device.

Most software will eventually be accessed from a browser.

People will pay $15 a month in perpetuity for a single video game.

Talking to someone about your finances will be the exception, not the rule. All of your routine transactions are automated. So are many of the non-routine ones, such as opening a new account for anything smaller than a mortgage -- and we'll automate most of that, too. You'll laugh in the general direction of what people used to pay for money management, unless you're very rich or very poor.

It used to take effort to find out where you were going. It now takes effort to not know where you are.

<comment><USER4> _Talking to someone about your finances will be the exception, not the rule._

Isn't this already done? I haven't visited or talked to anyone at a bank (other than a couple of calls to the help desk for my online banking when strange things happen) for years. Paying bills, transferring money, applying for loans smaller than a mortgage, opening and closing accounts, managing my investments. All that is trivially done on-line these days. I don't know anybody who doesn't do all their personal financial management over the internet.

<comment><USER5> >Isn't this already done?

That's the point of this topic, to discuss things that have been done but didn't seem obvious 5-10 years ago.

<comment><USER4> Sorry, I completely misread the question. I read it as things which will seem obvious in 5-10 years, but have yet to be fully implemented.

</comment></comment></comment></comment><comment><USER6> I'm not convinced this is a particularly useful exercise because most changes are the evolution of what came before. You're trying to create a neat package of discrete changes when the real world is continuous and evolutionary.

Take "Internet search will be an extremely important and profitable business", for example. But Yahoo and AltaVista were both important and profitable before Google even existed, and their existence is because of the web's lack of built-in search, which was a design decision, for example. If you'd told me 15 years ago that the most popular and profitable website in the world was a search engine making money through delivering ads, I wouldn't have been particularly surprised.

</comment><comment><USER7> Different languages hosted on the same VM. Ten years ago if you said JVM the only language to come to mind was Java. Now it's common to think of Clojure, Scala, JRuby, Rhino, etc. too.

<comment><USER8> And JavaScript will be the most popular language, by far, for most types of applications.

<comment><USER9> Excel is a close contender. It's still the world's most popular programming language. It incorporates a zeroth order functional language (the spreadsheet).

<comment><USER10> Off-topic, but what's a zeroth order functional language? What are the other orders (something reqiring lambdas, closures, etc)? Google and Wikipedia didn't help.

<comment><USER9> This is a quote from a talk at the International Conference on Function Programming (or more specifically the Workshop for Commercial Users of Functional Programming <http://cufp.galois.com/2009/abstracts.html>). But Lee Benfield who said it, attributed the saying to Simon Peyton-Jones.

A higher-order functional language allows higher order functions like map, filter and foldl (functions on functions). A first order language allows to define functions, but not on other functions. And a zeroth order language does not allow you to define functions (or name anything) as far as I figure.

</comment></comment></comment></comment></comment><comment><USER11> _What is the pace of development?_

Obviously not fast enough for the moon colonies and jet-packs I was promised.

</comment><comment><USER12> I truly feel that 3D printers will change the way we live. Maybe not in the next 5-10 years though.

<comment><USER13> How? What could we be doing different if we have them?

Not rethorical, please share your opinion.

<comment><USER14> rapidly innovating physical products. fixing our own physical devices. 3d printers are to the physical world what 3gl languages are to software, or maybe assembly, or maybe machine language over punch cards.

<comment><USER15> The time you waste instructing the 3d printer to recreate your broken widget is better spent carving it out with the methods at hand.

That little steel thingy that wore out I can drill, file and bend by hand faster than you can CAD/CAM it up. You'll beat me if you're making many of something. But your home shop 3d printer still won't print steel.

<comment><USER12> You raise a good point - but consider:

* It is very possible that 3D printers may be able to craft some sort of metal in the future.

* You will have massive CAD sharing websites if 3D Printers were to ever become a home standard. You would be able to simply grab and print anything you need - quickly.

Your comment overlooks the fact that most people cannot drill, file or bend by hand.

The unfortunate reality is that most of us are not machinists. Much like how most of us cannot compute large mathematical equations. For this, we created a tool to make it so everyone could do. The result has grown far from that simple goal.

<comment><USER16> funny you mention the "cannot drill, file or bend" comment... i love using my drills and angle grinders... but never thought they were a big deal... felt they were common and easy until i met a whole bunch of family friends who found such work "beneath them" and/or were simply found it too "tricky"!

</comment></comment></comment></comment></comment></comment><comment><USER17> I like 15 years, because that's 10 doublings by Moore's Law... 1024.

What becomes trivial with an iPhone that's 1,000 times faster?

If instead of Crysis fps of 20, you have 20,000. If instead of 2GB RAM, you had 2TB RAM; instead of 1TB HDD, 1PB. Instead of 2 MB/sec broadband, 2 GB/sec. That's just the standard, average device - not high end.

Of course, these might be disrupted by something less powerful but more convenient. One trend is HDD being disrupted by SSD, and by the cloud.

Flat-screens probably will be disrupted by 3D/hemispherical/projectors/e-ink screens.

</comment><comment><USER18> To nitpick, isn't it really that "Selling advertising on the top of search is an extremely important and profitable business"?

<comment><USER19> ...for essentially a single company.

</comment></comment><comment><USER20> augmented reality on contact lenses (or anything as intimate as them) - <USER2> more clunky cellphones with screens: everything right there in front of your eyes (and the voices inside your head). Introducing the iYou.

edit: that's my take for something for the NEXT 5-10 years - re-reading the question, it makes me wonder if it was about things that were created on the PAST 5-10 years... doh!

</comment><comment><USER21> "different mode of revenue for web software"

Ads was and is obvious now, but there's a limit to how much ads budget the world have.

A number of startups are now experimenting with various freemium or one time fee or granular pay-as-you-use.

I'm expecting this trend to go up. And maybe there will be companies that make some of these payment plans automated.

</comment><comment><USER20> Funny to notice that the Internet is already "an extremely important business" - but it's still NOT profitable for the vast majority of people (quite the contrary, if you analyze how many businesses/industries are getting dismantled as technology spreads its wings and everything goes digital)...

</comment><comment><USER22> I think you would enjoy the book "Megatrends" [http://www.amazon.com/Megatrends-Ten-Directions- Transforming...](http://www.amazon.com/Megatrends-Ten-Directions-Transforming- Lives/dp/0446356816)

</comment><comment><USER23> Ubiquitous recording. Capturing damn near everything on video, and storing it in some endless cloud.

Not _quite_ there yet, but headed that way.

</comment><comment><USER24> Code won't be written but generated

</comment><comment><USER25> Open source web browsers will be next development platform.

P2P networks will change the way of distribution of digital media.

Linux-based systems will dominate server market.

Linux become the supply of reusable software components for mobile devices.

Mobile carriers will dominate internet-access market.

OMG! I forgot facebook. Social networks as the second major place for a product placements (indirect advertisement) and brain-washing after TV.</comment>


Legendary C64 composer Ben Daglish has died - <AUTHOR> https://metro.co.uk/2018/10/04/legendary-c64-composer-ben-daglish-has-died-8005131/ <comment><USER2> This genius can make you buy a computer just by listening to its music. I bought an Atari ST after listening to the game Lotus Esprit at a friend's home. R.I.P. Ben

</comment><comment><USER3> "Last Ninja" soundtrack: BEST.SOUNDTRACK.EVER!

R.I.P. Ben Daglish

</comment><comment><USER4> A true genius in music. Able to produce multitrack audio from only 3 waveform generators.

R.I.P. Ben Daglish</comment>


Show HN: 3-D engine powering my personal website - <AUTHOR> http://dougkoellmer.com <comment><AUTHOR> We all have one of these projects, wanting to finish that One Last Thing before showing anybody. But I just looked and my last commit was 9 months ago. I'd love to be able to work on it more but you know, kids, life, money. Mostly have to make it more mobile-friendly but it's a pretty solid version of what I originally set out to do. Enjoy!

[https://github.com/dougkoellmer/swarm](https://github.com/dougkoellmer/swarm)

(TIP: visit a bunch of different cells then hammer the browser back button...still entertains me for some reason).

</comment><comment><USER2> Unsure of what the goal was, here is my objective reaction:

\- Navigation was a mystery. How is creations different from software? What is precisouses? I have to click to truly know.

\- The site is almost 90% layout and navigation, with maybe 10% from content. I spent most of my time fiddling with the moving menus than I did learning anything about you.

\- The additional backwards, up, forward navigation seemed confusing and unnecessary if you went through the trouble of implementing pushState, which you did.

\- Copy and paste didn't work anywhere

The node navigation and geometry seems pretty cool, but it probably has more practical applications than a personal website. Content-wise, what I saw could have been better represented as a feed.

<comment><AUTHOR> My website itself is just peacock feathers.

The engine/CMS powering it is the more interesting part and I agree has other applications. Thanks for the feedback.

</comment></comment><comment><USER3> The backend appears to have far more potential than is being utilized here. Nice work, though! Impressive.

<comment><AUTHOR> Indeed there are many possible applications. One is an interactive e-book reader that solves the spatial awareness problem of reading technical material in a digital format.

Demo: [http://eagrereader.appspot.com/](http://eagrereader.appspot.com/)</comment></comment>