Harvey Didn't Come Out of the Blue. Now Is the Time to Talk about Climate Change - <AUTHOR> https://theintercept.com/2017/08/28/harvey-didnt-come-out-of-the-blue-now-is-the-time-to-talk-about-climate-change/ <comment><USER2> Disappointing article. It starts with "don't wait until the event and hype are past, but talk about climate change now. The fact that there are record- breaking events so often isn't normal." Then it continues to elaborate on politics, politics and politics. So, how abnormal is it? How often should we expect record-breaking events? If I remember correctly, the world was warming up already as part of its natural cycle. Maybe these record-breaking events are quite normal in this period.

I don't think so, and I think denying climate change is a dumb thing, but an article that spends ten paragraphs on politics with no exploration of any evidence is just useless and only fuels the political side of the discussion without convincing anyone. My dad for example cares little about this, and numbers like "three degrees Celsius worldwide over a decade" don't sound like much, but the number of times we hear "record-breaking event" on the news is a very tangible thing that could have been a good argument. But alas.

<comment><USER3> > the world was warming up already as part of its natural cycle

Do you think climate change is man made?

I agree strongly with the rest of your post, the article was way to political and could've supported the claim 'warmer earth -> more storms'. But those positions are easily supported, which makes the lack of such support even more egregious.

<comment><USER2> > Do you think climate change is man made?

Largely. I don't know enough about it to cite any accurate figures, but from what I remember it was warming up perhaps half a degree per century and now, over the last half a century, it increased two degrees. Something in that order. So the climate would have been slowly changing and an ice age would follow the heat period eventually, but extrapolating we'd have an ice age (or something else that's disruptive for mankind) in two centuries or so instead of in a few hundred thousand years.

</comment></comment></comment><comment><USER4> Climate change is the most likely reason behind rising sea levels, however, Houston is far enough inland to not have gotten any storm surge. What happened was the storm stalled over top of the city instead of moving on through. This meant that it picked up water on the south-east side of the storm and dropped it on the north-west side, right over the neighborhoods. And did it over a couple of days.

What it was .. was a severe rainfall event.

And the photo she led with, with the people walking along the highway divider? Houston's road network is designed to be a last-resort flood buffer to collect rainwater temporarily until it can drain to the east into the ship canal. So yeah, that's going to happen.

The good news is the $700+ million in FEMA money that was spent over the years since Katrina to prevent flooding at the city's medical centers appears to have worked. They stayed open.

<comment><USER5> It was my understanding that climate change made events like hurricanes and extreme rainfall more likely.

<comment><USER4> Perhaps not more likely, but since they run on heat, hurricanes could possibly become stronger in the future. I haven't seen any articles which reference research on this, as it's hard to filter out the ones with bias (in either direction).

<comment><USER6> "Perhaps not more likely, but since they run on heat, hurricanes could possibly become stronger in the future."

They run on heat _differential_ , like any heat engine. A uniform global temperature increase would likely have minimal effects.

<comment><USER7> But the poles heat up faster than the equator, so we actually do have an increased differential.

Edit: apparently someone doesn't believe me. Here's a source: [http://www.npr.org/2014/12/18/371438087/arctic-is-warming- tw...](http://www.npr.org/2014/12/18/371438087/arctic-is-warming-twice-as- fast-as-world-average)

<comment><USER8> Since the poles are currently colder, them heating up faster than the equator decreases _that_ temperature differential. I don't think that's precisely the differential at issue with Atlantic hurricanes, though.

<comment><USER7> Hah I'm an idiot. Thanks.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Two things to note here:

\- Naomi Klein is a well-known leftist activist and author with a clear agenda. Take what she writes with a grain of salt.

\- Yes, it's important to think about climate change and how it may impact weather patterns. But no serious climate scientist would ever credit singular weather events to global climate trends, which take decades to evolve. It's lazy to use a hurricane to bolster climate change arguments for the same reason it's lazy to use a blizzard to bolster climate change skeptics.

<comment><USER7> This is like saying it's lazy to use lung cancer cases to bolster arguments against smoking, since there's no way to prove that a particular case of cancer was caused by smoking.

<comment><USER9> As long as you are comfortable with cigarette companies pointing to cancer- free smokers and saying "See! Smoking doesn't cause cancer!"

<comment><USER7> Which they did for a while, but we didn't respond by abandoning the entire line of argument, which would have been silly.

</comment></comment></comment></comment><comment><USER5> Also worth talking about and springing from similar causes: wetland reduction has made the region more vulnerable to floods, as this local article highlighted a year ago. [http://www.houstonchronicle.com/news/houston- texas/houston/a...](http://www.houstonchronicle.com/news/houston- texas/houston/article/Houston-s-development-boom-and-reduction-of-8403838.php)

</comment><comment><USER10> There are a lot of things more crucial than climate change. There are towns with no building and zoning regulations, bad infrastructure for water drainage and few resources for tragedy prevention.

Low taxes and deregulation are very nice in the short run. But then comes what statisticians call black swans and you understand why you needed them. New Orleans and Houston are Gulf Coast cities, they should expect hurricanes and should build accordingly. Just as much as California builds expecting earthquakes.

France and Germany have a much bigger population density and lots of floods but a lot less fatalities. Maybe they know something about how to build cities.

<comment><USER11> France doesn't get anywhere even close to what Harvey dumped on Houston.

[http://www.bbc.co.uk/news/world- europe-40554842](http://www.bbc.co.uk/news/world-europe-40554842) \- Paris got 54mm of rain - "heaviest July deluge on record", "the equivalent of 27 days of rainfall".

Harvey has dumped 25x that (51" and rising) on Houston.

If you dumped half that on Paris, I guarantee it would be a national disaster on the same scale.

</comment></comment><comment><USER12> These conversations are endless and repetitive. Both sides are fully entrenched in their positions and I don't know how we can come back to having productive discussions on this topic when both sides have already decided what they believe to be true. How can we talk about anything when we don't agree on the facts?

<comment><USER13> To be honest, I'm learning a lot from the comments on this thread. I appreciate climate change skeptics speaking up because I know it's not a popular position to take. I also appreciate where everyone has added highly credible citations to back up their claims.

For those who struggle to understand skeptics point of view take a look at Michael Crichton's interview on Charlie Rose. This was the first time I came to appreciate the views of climate change skeptics: [https://www.youtube.com/watch?v=Vh4dIkEyfd0](https://www.youtube.com/watch?v=Vh4dIkEyfd0)

Essentially he says yes the planet is warming but the impact that will have is unclear and models suggesting a high degree of certainty are not being honest. (I don't think this is the same FUD of cigarette companies as some have suggested above).

An even quicker way to understand skeptics is to read this blog: [http://theparadoxproject.org/blog-1/2017/6/6/the-tribes- of-c...](http://theparadoxproject.org/blog-1/2017/6/6/the-tribes-of-climate- change). The 5 points on climate change, and where skeptics vs. scientists differ, is clearly laid out.

Essentially liberals and conservatives largely agree on the facts but differ on the policies that can help.

<comment><USER12> I guess I feel it would be easier to trust the motives of skeptics if they weren't constantly shifting the goalposts and fighting the data. A couple years ago there was plenty of denial that climate change was happening at all. Now the data has made that position indefensible so now they seek to cast doubt on what the impacts will be.

I'm all for good science and skepticism, and for legitimate issues with the models. But all of this reeks of the same type of "science" that tobacco companies bankrolled to fight the lung cancer findings decades ago. Their motivations just make it very difficult to take them seriously.

</comment></comment></comment><comment><USER14> I'm interested in sea level rise and warmer oceans as direct catalysts for more powerful storms with larger impacts occurring more frequently. It seems like our models for predicting major hurricane events may be flawed.

In Harvey's case there was an intensification in the last day or so before landfall that caught many experts by surprise. It also came back out to sea and was able to reenergize stronger and faster in the warmer waters. These are troubling details that make me question our grasp on predicting the occurrence and strength of these types of storms.

</comment><comment><USER3> > Which means there is a moral imperative for informed, caring people to name > the real root causes behind this crisis — connecting the dots between > climate pollution, systemic racism, underfunding of social services, and > overfunding of police.

I see the obvious relevance of climate change and perhaps social services, but I don't see how systemic racism is a factor in the tragedy of the storm Harvey. Certainly, the article provides no context.

For rebuilding, it is likely to be an issue, but it is almost defeatist to assume ahead of time and include it in the current tragedy.

</comment><comment><USER15> Harvey was a hurricane. It could have occurred anywhere on the Gulf Coast. There is no direct relationship between climate change and any particular named storm.

To argue otherwise is to destroy one's credibility.

The problems that exacerbated the disaster of Harvey are indeed linked to climate change, but not in the simple-minded way that Naomi Klein makes out. The economic factors that lead to high-density construction in flood zones are the same as those that drive the wasteful use of fossil fuel energy. Overpopulation, overbuilding, market-driven urban planning practices, shoddy construction intended to maximize profit and waste while minimizing safety-- all of these underlie both climate change and the disaster in Houston.

Raving about climate change as if every hurricane is a direct consequence is both intellectually ridiculous and it ignores the root cause: us and our wasteful, idiotic consumerism. If we understand that we, and not corporations or governments, are the root cause, we can fix climate change almost overnight by two simple expedients: stop having babies and stop buying things that we don't absolutely need.

By doing so, we could exercise power over the corporations that we unfairly demonize. No company is going to dig oil out of the ground if the demand does not justify it.

Klain's worst offence is being a stupid liberal, just like the ones who drove 36 hours or more one-way to join the protest at Standing Rock in gas-powered vehicles. Want to stop an oil pipeline? Stop using oil. It's easy: at least 80% of our energy use is wasted. Just cut the waste.

When stupid liberals write articles like this, a backlash is inevitable. Want four more years of Trump? Want the alt-right marching in the streets? Keep writing articles like this.

Instead, be a smart liberal. Start by having a look in the mirror.

<comment><USER16> 'market-driven urban planning practices'

National Flood Insurance Program subsidizes building in flood-prone areas. Doesn't sound very market-driven to me.

<comment><USER17> No true market.

<comment><USER18> If its bad, it never is.

<comment><USER17> A market is a market, whether it's distorted or regulated or monopolized or captured or unhealthy. The fact that markets can behave poorly because they are embedded in the wider world is absolutely intrinsic to the concept of a market.

<comment><USER5> Yeah, I think it is a mistake to try and think about the market and the political environment as two separate spheres rather than deeply linked entities constantly influencing each other. There is no such thing as "free market" without a government creating the conditions for one, whether that means subsidizing flood insurance or creating a navy to force other countries to go along with free trade (a development largely coinciding with the rise of laissez-faire theory).

</comment></comment></comment></comment></comment></comment><comment><USER19> Anyone have proof that man's actions have significantly contributed to this storm's catastrophic power?

The title feels like political click bait, to me. How about proactively preparing for these events?

If you tell me, "there's no way we could prepare" I'll tell you "there's no way we can do whatever you think is required to meaningfully alter our supposed impact on the climate."</comment>


A new package management system for Lisp, developed by ITA - <AUTHOR> http://www.lispcast.com/drupal/node/36

<comment><USER2> It's only been announced, it's not available for consumption... I'd have titled that "A new package management system for Lisp, _being_ developed by ITA" or something.

</comment><comment><AUTHOR> Here's the full announcement - apparently it's proposed, not completed. Still worth keeping an eye on.

</comment><comment><USER3> I have a collection of scripts I'm not happy with and I've been looking around for a good cross-platform language-independent package manager that handles dependencies in a smart way for some time now. Although I've looked at several of the tools listed here [http://www.edos- project.org/xwiki/bin/view/Main/WP2StateOfTh...](http://www.edos- project.org/xwiki/bin/view/Main/WP2StateOfTheArt) I have yet to find something that runs everywhere I need it to and is worth switching over to.

I look forward to seeing what they come up with, especially if they do a good job managing non-lisp packages.</comment>


Ask HN: Why we can't our CPU be as powerful as our GPUs - <AUTHOR>

<comment><USER2> Why can't our GPUs be as powerful as our CPUs?

Simple, they make different tradeoffs to target different tasks. GPUs are horrible at code that is branch heavy, CPUs tend to be much better at that kind of code. GPUs make trade offs for fast memory access, ever hear of a GPU with 32GB ram? and vice versa.

<comment><USER3> I think it's also that there are so many cores. For example, there are 768 CUDA cores on a GTX 650 Ti.

<comment><USER4> Right, they can fit so many cores on a chip because they are very optimized for one type of work (streaming vector math) and don't have things like branch-predictors that would make them good for general purpose work.

</comment></comment></comment><comment><USER5> GPUs are great crunching numbers and CPUs are better with complex logic stuff...

And GPUs have a lot of simplified cores they simply can't handle every operation a CPU core can. Maybe you can get a hybrid hardware... replacing the space used for CPU cores by GPU cores and some kind of fast access memory...

<comment><USER6> Wasn't that one of the things that the Cell processor was trying to do? Originally there wasn't supposed to be a GPU for the PS3.

</comment></comment><comment><USER7> branches</comment>


Google's Android ban for Huawei proves we need strong alternatives - <AUTHOR> https://www.dailysabah.com/op-ed/2019/05/21/googles-android-ban-for-huawei-proves-we-need-strong-alternatives <comment><USER2> I _was_ enthousiastic about Purism and was following their progress on making a new phone, the Librem 5. My interest in Purism has dropped to zero since it is an American company that can be forced to do whatever a president wants it to do. Yes, we need an alternative and it has to be one that is out of reach of the president of the USA to make sure that our investments keep their value.

</comment><comment><USER3> We need an European company that steps up. Maybe in an Airbus styled way. Different countries different parts of the product.

Hardware, software and services. Working tightly together.

<comment><AUTHOR> There's no guarantee that a European company won't do similar things. That's exactly the problem. Technology has to serve the people and not become weapons of governments under which they live.</comment></comment>


Into Eternity: Storing Stuff Forever, and Its Consequences - <AUTHOR> http://paul.kedrosky.com/archives/2010/11/into_eternity_s.html

<comment><USER2> If running a long-lived institution matters, then I think a backup service run by the Catholic church would be a great success.

<comment><USER3> The Catholic church has only been around for about 2,000 years. For comparison on these time scales, note that none of what we now view as "primitive" religions from the ancient world persist today. On top of that, I believe that even though the world is highly religious today, it is one movement I'd imagine to be in significant danger going into the far future.

<comment><USER4> > The Catholic church has only been around for about 2,000 years.

Do you know of any older institution ? I don't think there is.

<comment><USER5> Depending on how you blur the definition of 'institution' either the Imperial House of Japan[1] or the Jewish Kehuna[2] might qualify. Some more candidates here: [http://en.wikipedia.org/wiki/Wikipedia:Reference_desk/Archiv...](http://en.wikipedia.org/wiki/Wikipedia:Reference_desk/Archives/Miscellaneous/2008_November_18#Second_oldest_organization_in_the_world)

[1] <http://en.wikipedia.org/wiki/Imperial_House_of_Japan> [2] <http://en.wikipedia.org/wiki/Kohen>

</comment></comment></comment></comment><comment><USER5> There's no mention of a DVD release date on any of the pages I can find, anyone know if it's in the works? Having to fly to the UK to watch it is a bit of a non-starter.

</comment><comment><USER6> This looks awesome. And reminds me of the storyline of Homeworld (the building of the mothership). Anyone else?

</comment><comment><USER7> I was sure hoping this was going to be about information archiving - and its long-term issues.</comment>


Full Flash Player 10 for Q2 2010 on every major smartphone except iPhone - <AUTHOR> http://www.informationweek.com/shared/printableArticle.jhtml;jsessionid=4ZBVHRMYW5Z3BQE1GHRSKH4ATMY32JVN?articleID=220301033

<comment><USER2> I think Apple's hoping that video will start being done through HTML5 - or at least that sites will offer HTML5 video via H.264 as an option. For many sites pushing Flash video already in H.264 (as my organization is), this would require minimal changes.

This would be great for me as Flash usually uses around 90%+ of one core on my box to decode video while other media players (QuickTime, VLC) use a third of that. This is going to be hard for a lot of handhelds and hopefully that will lead HTML5 video to offer a much better experience on mobile devices.

Adobe knows that if they don't get Flash out for mobile platforms, Flash is going to be left out of the next push on the web in favor of Ajax and HTML5. So, while Adobe does dominate a lot of things right now, their position is tenuous.

<comment><USER3> > Flash usually uses around 90%+ of one core on my box to decode video

Is that on a linux box?

<comment><USER4> I can have 3/4 flash-apps running (like facebook games, etc) with no appreciable effect on my 3 year old Dell Inspiron 9400, which doesn't have an ATI/nVidia chipset. I upgraded the ram, but only to 1 & 1/4 gig (maximum is 2 gig) from 512 meg. It's a core 2, 1.66 ghz, totalling ~3.3 ghz.

I'm unsure how anyone's system can be hitting 90% on one of their cores if my 3 year old machine barely hits 10% of a core when viewing solely a HD youtube video. Chrome (including Flash) was hitting about 50% earlier with two facebook games loaded up and a HD youtube video running.

Flash is unseemly solely because it doesn't multithread, that's the only support that needs urgently implementing. H.264 through HTML5 is a pipe dream and likely to be unaccepted for a long period of time, content providers like Youtube and Hulu aren't going to allow or be allowed to provide their video in H.264 as it's simply far too easy to download.

<comment><USER5> You can already rewrite Youtube pages to play the exact same video via HTML5. I linked to the plugin you need elsewhere in this thread.

So Youtube in flash is already "far too easy to download" and Flash's "encrypted" streaming mode has been broken too, though it turned out not to be that protected anyway.

</comment></comment></comment></comment><comment><USER6> I think it's very unlikely that mobile Flash 10 is going to offer acceptable performance on current generation hardware. So we're probably looking at 18-24 months from today for the market to cycle up to the point where a $99 SmartPhone can handle Mobile Flash 10. On top of that you have to factor in all the legacy devices out there and their lifespan before being replaced with more capable devices. Can Flash really survive the next 2-3 years with a very limited mobile presence? It seems to me most of these devices are going to end up having better support for HTML5 and other emerging technologies much sooner. I suspect by the time Mobile Flash is remotely usable it will primarily be a legacy platform.

</comment><comment><AUTHOR> I realized I slightly butchered the title (to get a date in and fit to length).

Adobe's _plans_ are that there will be Flash 10 on _some_ devices in the _first half_ of 2010 - all other major platforms (excl. iPhone) are planned, but perhaps not for the first half of 2010.

</comment><comment><USER7> It might be there, but it won't necessarily be good.

Flash still stutters on Atom-based devices.

<comment><USER8> Flash still stutters on Core 2 Duos, in my experience...

<comment><USER4> Flash only runs on a single core, and most Atom's have the same processing size as a core on my Core 2 (1.66ghz x 2). This means any very intensive flash will still max out a processor, which is why flash urgently needs to implement hyperthreading to alleviate this process, until it does it's in risk of replacement in some areas of its market.

<comment><USER9> You clearly have no idea what you're talking about re: concurrency. If mentioning cores repeatedly (and summing their clock rates) wasn't enough of a giveaway, proposing _Hyperthreading in userspace_ is just hilarious.

The problem with flash is not that it's single-threaded -- it's because NSAPI plugins run in (and block) the main() thread!

<comment><USER10> I guess you mean NPAPI.

</comment></comment></comment></comment></comment><comment><USER11> A question for people who are more knowledgeable than me about Flash and Actionscript -- from whence do these performance problems originate? Is it primarily Macromedia/Adobe's poor technology causing the problem, or is it developers writing really bad Flash applications? Or is it some other bad integration layer between Flash, the browser, and the hardware?

<comment><USER9> A) Macromedia + Adobe = :(

B) Some flash video player wrappers are _much_ worse than others. Hulu's is particularly slow, Comedy Central's basically refuses to work on Linux.

C) Flash has to do the YUV->RGB conversion internally so that it can composite your poorly-conceived UI on top of it. It's almost immune to hardware acceleration (except in full-screen mode). Then it has to run in the main() thread of an intrinsically memory-gobbling application.

 _D) All of the above_

</comment></comment><comment><USER12> They can't even get Flash to work well on the desktop. Video performance is abysmal. Sure, it's _possible_ that they'll get their act together for the mobile versions, but it seems unlikely. And that is a very good thing.

<comment><USER13> The more I work with Flash the more I see glaring faults that will probably never be resolved:

-Lousy internationalization(showstopper language-specific input bugs have remained unfixed for a year+)

-Inconsistent API access(For example, you can load a Sound from a ByteArray, but not a Video.....), new features are arbitrarily exposed via one of the Flash IDE, AS3 APIs, and MXML and not necessarily the others.

-Default fonts fall back on system fonts. Hence many swfs render text incorrectly, sometimes illegibly, on platforms lacking the fonts they were built for.

-Major performance variations across platforms. Using lots of alpha transparency for your game? Then say goodbye to Linux, because alpha is absurdly slow on that platform. (Plus to rub salt in the wound, since there's no palettized, colorkeyed transparency, that's kind of the only option for most layered effects.)

I have this dim hope that the JVM will somehow reemerge as a strong browser gaming platform, as it has great modern languages and tons of libraries and infrastructure - putting it technically well ahead of any other option I know of, but MS played that crucial king-maker role for large-scale deployment of Flash early on; nothing points to that scenario ever happening for the JVM. So if you want to reach the largest gaming audience possible Flash is still going to be "it" for the foreseeable future.

<comment><USER12> Interesting info. What is your opinion of the prospects for browsers with canvas, O3D, etc. as a gaming platform?

<comment><USER13> There is a strong possibility that a platform using Javascript and some combination of canvas/O3D/other APIs will emerge in the next decade. But it will take a while and not all the pieces are visible yet, because you need to support several I/O components beyond fast graphics to have a really credible game platform:

-user file system access, low-level networking, swf or jar-style data & code bundles

-input devices: keyboard, mouse, gamepad...graceful coordination of input between the rest of the browser and the game is needed.

-sound and music, preferably with abilities to do runtime sound generation and processing

Missing one of those isn't necessarily a showstopper, with the right kind of game, but together they put severe constraints on what can be built and how easily it can be distributed. Flash has very gradually and awkwardly added some degree of support for all of these things, but its origins as a graphic design and animation tool still pollute the design, even with the major refactor of Flash 9 and Actionscript 3.

The JVM platform is a lot more self-consistent and it has solutions for all of this stuff right now, hence why I'm more hopeful about it than a Javascript- based solution, or another plugin like Unity.

<comment><USER12> Thanks for the response. I wonder what percentage of users will have the JVM installed in the future; maybe it depends on Oracle's plans.

</comment></comment></comment></comment></comment><comment><USER14> I for one am happy that there isn't Flash on the iPhone. If it could be garenteed that it was only delivering a video, than I would tolerate it.

General Flash use on my desktop is annoying, but on an iPhone it would be way worse. Plus not having to download the extra content, which really ends up being useless anyways is a waste.</comment>


It's Never Going to Be Perfect, So Just Get It Done - <AUTHOR> https://www.nytimes.com/2019/07/07/smarter-living/its-never-going-to-be-perfect-so-just-get-it-done.html <comment><USER2> I'm reminded of a similar online NY Times piece I read, years ago, I think by a woman named Gladys, which was entirely about the harrowing process of procrastinating on, and eventually writing, the piece. All I could think was, poor Gladys. Not, here's an authority on procrastination. Heck, I'm more of an authority on procrastination, based on my high school and college years alone, not even counting that I've overcome it in my 30s.

There is so much better advice than "just get it done" (isn't that like telling a commitment-phobe, nobody's perfect, so just pick someone and commit? I'm sure someone, somewhere, has given themselves that advice and taken it, with positive results, but it's kind of questionable advice in general).

For example, "meditate" is good advice. Let the anxiety come up; allow it to flow, and leave; see it without judging it or trying to figure it out. Even realizing your problem with starting is an anxiety problem, and feeling the feeling in your body, is a huge step. Maybe noting some beliefs that contribute to it. "Journal" is good advice. Practice writing in your voice, and the act of writing. Journal about your anxiety. Learn to enjoy your writing. Practice will improve the quality. Discounting quality will not help.

Stories about how I procrastinated on something for a month and then late one night managed to forget my usual thought patterns for an hour and do it? I have hundreds of those from my past. There is some information in the thoughts I had when finally doing it ("I get it! You just do it!"), but not relative to the information you will get from going inwards and asking how to change your own patterns of feelings, thoughts, and behaviors.

<comment><USER3> I often tell myself to "just start" rather than to "just get it done," especially when I suspect my anxiety is driving.

If I tell myself I'm just going to sit down and pretend-work on the thing that's making me anxious for five minutes, just to get a feel for it, and if it ends up being crappy, I'll just toss it and start over later, I'm usually able to short-circuit the anxious "everything must be well-understood and perfectly optimized before you even start, or you're going to fail, because this problem is crazy hard" part of my brain.

Usually five minutes turns into 45 minutes, and I either finish, or conclude that it wasn't so bad after all.

<comment><USER4> > pretend-work

I pretend I'm live streaming my programming session, it seems to cause some switch to flip in my brain and seems to help.

Maybe I should actually live stream? But I probably wouldn't have real viewers, and don't know how to fit multiple monitors into a stream.

<comment><USER5> I'm convinced that the majority of the value from pair programming (literally sitting next to each other, not "virtual" pair programming) comes from the fear of looking like a lazy idiot in front of the other programmer.

<comment><USER6> Hah same here. Half the time I ask someone to pair with me it's because I simply cannot muster the motivation to do anything for whatever reason. I find I go through a couple of weeks of this a couple of times a year, I guess you'd call it mild burnout.

<comment><USER7> If you assume mild burnout, do you think it's long term the right strategy to force yourself through it? What would your body have to do to tell you that it's not mild anymore? What if it does? Take care!

<comment><USER8> Just a bit of anecdotal experience for additional thought: I did the same for years, ignoring the signs, pushing through long hours, etc. and eventually developed idiopathic epilepsy. As it's idiopathic, there's no known direct cause (e.g. no head trauma, no tumors, etc.), but there's a decent amount of evidence that supports at least a strong correlation between my lifestyle (lack of sleep, overwork, etc.) and the development of the disease. And of course lack of sleep is now one of my primary triggers, but that's also fairly common amongst epileptics once the disease is 'active'.

Best wishes GP.

Edit: point really being: it's mild burnout until it's not.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Well, they've got a point. There are definitely quite a few projects whose creators needed to step back, stop spending years focusing on the wrong things and actually get something done. I mean, look at Duke Nukem Forever. Might have done pretty well had they not spent 14 years on it. Same with many other games and pieces of art that spent decades in development, and sometimes bankrupted/broke their creators in the process.

Does that mean you should rush? Obviously not. Does that mean having an eye for detail is bad? No, not at all.

But it does mean you should try to finish your projects at some point. Something that never gets released at all is pretty much useless, and it's probably better to get your products while you're alive rather than have them released posthumously by your estate.

It's also probably worth pointing out that a creator will likely never be as happy with their work as a customer will. After all, you created it, you've got nothing to be surprised by. So right off the bat, some of the 'magic' found in experiencing a piece of fiction/work of art for the first time is immediately gone.

You're also quite likely to see all the flaws, all the things you could have done better, all the possibilities that didn't pan out yet, etc and feel disappointed compared to some ideal you had in your mind.

<comment><USER10> For software you should make something - any part - work and release it. Then do regular feature releases after that.

If you are not working alone you can ask your marketing people for help, sometimes it is worth waiting for a big bang release, sometimes not (For some things if you miss Christmas you should delay until next Christmas). I recommend you err on the side of release too soon - customers are the ultimate answer, if their feedback on what is important is useful to have (but their feedback is not always correct!)

<comment><USER11> This doesn't work so well for video games. Reviews come out saying its thin on content with a score to match and can kill a game before its had a chance to expand. Developers have started trying to do this more often lately with mixed results, DICE and Blizzard are high profile examples of this. Blizzards latest World of Warcraft expansion was heavily criticized for the lack of content on release day and has yet to shake the bad blood even after two big content patches. DICE tried this with Star Wars Battlefront but couldn't keep fans long enough with the limited maps it released with.

<comment><USER12> It doesn't work for AAA games, but it can work really well for indie games. Think of something like Factorio, where version 0.1 looked like this:

[https://www.factorio.com/blog/post/fff-184](https://www.factorio.com/blog/post/fff-184)

Then they just kept releasing every week for 7 years, and now you have people building CPUs and explaining Apache Kafka with it.

Ostriv is another recent game that comes to mind as having a similar development cycle. Also many F2P MMOs - most of the non-Blizzard online games I know do regular releases that frequently change the game mechanics (often, to a big player uproar) but still keep their userbase. Fortnight and Pokemon Go are two big ones here.

<comment><USER13> Lots of games come out in early beta now and raise money through sales as they are developed. It is a better model than crowdfunding for games, because you start from a demonstration of competence in game development and you (usually) have direct view into the development process.

</comment></comment></comment></comment></comment><comment><USER14> I still build out everything required to realise the vision, and that usually takes at least months to build.

There's an analogy in startups that you should build a great skateboard first if your vision is to build a better car, but I just don't agree.

If you have a vision for a better car then you need to deliver a better car, not a skateboard, because, well a skateboard just isn't a car. [https://blog.crisp.se/2016/01/25/henrikkniberg/making- sense-...](https://blog.crisp.se/2016/01/25/henrikkniberg/making-sense-of-mvp)

If my idea is to create a business for sharing cars, but it's cheaper and quicker to build a business where local kids drive you around on their pushbikes, I just don't see that as being the same. Those who argue for skateboards versus cars would say "well you are solving the problem of rental transport and starting in a practical way". Meh.

The other thing I think is important is not to waste the initial attention for your product on something that is not in fact the true vision of what you had in mind.

But so far I haven't succeeded so my philosophy can't be given much credence.

<comment><USER12> In practical startup terms, if your idea is to deliver _either_ a better car or a better skateboard, you've already failed. Both these industries have a century of optimization behind them; even if you did manage to catch up, any useful innovations would be copied by incumbents. Successful startups usually come out of _new_ markets: areas where the environment has changed such that existing product categories or delivery channels no longer match what consumers want to do. You can't really define these as "better" except in the sense of users adopting them rather than existing alternatives: if you could, the existing companies would've done it.

Rather than designing a great skateboard or a better car, your goal might be to design the Schweeb, or OneWheel, or Segway, or HyperLoop, or rideshare or scooter rental company. There're still plenty of ways to fail with these, but at least you have a chance of success.

<comment><USER14> The real question is "what, _exactly_ is an MVP?"

Some people interpret an MVP almost literally as almost nothing - just a web page that describes the idea and asks for email addresses.

Others interpret the MVP as almost nothing, but a "workable" almost nothing - i.e. some code that users can find. After users have found it, the code will be iterated upon until the original vision is realised.

The skateboard people interpret an MVP as making a series of easier-to-build similar, broadly analagous products on a path to eventually building the full product that you envision.

I interpret the MVP as being the minimum system that completely realises the vision. That might takes months to build. but the point is that when any user sees it, they should understand completely what this thing is meant to be. It doesn't mean the software is complete in every possible way, but it does mean that everything needed to make original vision working and obvious.

Speaking to the original post, this takes time and it might take alot of time.

<comment><USER12> The vision is irrelevant to the customer.

There's an easy way to tell _in hindsight_ whether something was an MVP. Did it get beaten to market by someone who came out with something worse? Then it's not Minimal. Does nobody use it? Then it's not Viable. Do they get bored and move on? Then it's not a Product.

Doing this with foresight, so you're the one who actually puts out the MVP for the market and captures it, is significantly harder. Whoever manages to do that ends up rich, so if it were easy, we'd all be rich. But a general rule of thumb is that if the world is moving on and _other_ people are getting rich while you sit there refining your idea, your idea of "Minimal" isn't actually minimal, while if you're continually pumping out ideas that nobody likes, your idea of "Viable" isn't actually viable.

<comment><USER15> >> The vision is irrelevant to the customer.

Having vision for a product means correctly identifying customer's problem and proposing a solution for it. Dropbox vision is: "Make user files accessible anywhere, by storing it in the cloud synching them across devices". Google's vision is: "Make all information in the world easy to find and access, by having search engine know you better than you know yourself" :)

Customers either buy into your vision, or ignore it, and the latter means that the problem that you stated does not exist or is not important enough to your users.

For you, having clear vision helps you create MVP, because you can easily identify which features are crucial, and which are nice to have.

</comment></comment></comment></comment></comment><comment><USER16> I really wish I could stop seeing this everywhere I went. I get that there are people who need this kind of advice, but for someone like me, this advice is poison. For everyone who needs to be carefully and constantly reminded that you can't let the perfect become the enemy of the good, there's someone else, maybe several someones, who need to be carefully and constantly reminded that "good enough" is almost never good enough. And this latter group, when left unchecked, tends to do a lot more harm than the former.

<comment><USER17> This is definitely in the category of advice (much like GTD) of "if you don't think you need this advice, you probably don't need it."

I feel like there's an alternate wording for this advice that is less "cut corners" and more "determine how many corners you don't want cut".

Maybe involving a target condition? You want to make the best thing possible. Keep on aiming for the best, but establish a baseline that you would find acceptable. Maybe you won't make something perfect, but you'll now have a target that you _can_ get to.

This thought process reframes the discussion of "good enough" away from "did I spend enough time on this? Surely I can spend another week and make it 10% better" to "Does this meet the requirements". There is no longer a debate to be had, just a yes or no question to answer.

So when people ship things that just aren't good enough you don't have a discussion around spending more time on things or being more careful, you have a discussion around what your baseline requirements are (which is _actually_ what you care about).

<comment><USER16> This makes sense to a certain degree, but "just ignoring it" only goes so far: even seeing it is corrosive to a certain extent, and by the time you've even registered it enough to ignore it, a lot of the damage is done.

Perfectionists undergo a similar phenomenon, I'm told. After all, the modern "Do it badly" movement was itself a response to the corrosive effect of the "'Good enough' isn't" message permeating all of society. I'm not unsympathetic. In solving one problem, it didn't exactly create another -we've always had perfectionists to some extent- but it made that problem much, much worse than it had once been. But the fact is, it was done to solve a real problem in its own right, and that problem has not gone away.

What it comes down to is conflicting needs. The all-pervasive "'Good enough' isn't" came about because some people genuinely need it, and they genuinely need it at that level. The same is true of the now-pervasive "Do it badly": it is genuinely needed, and at this level. And you can't balance them, because they inherently undermine each other. So what do you do?

</comment></comment></comment><comment><USER18> Steve Wozniak suggests the Apple II became successful because he's a perfectionist. He talks about throwing out almost-finished designs because he thought of a more streamlined approach while implementing the existing one.

Then again, Steve Jobs has suggested that "Woz" spent so much time fiddling with Apple II hardware that he never got around to adding floating point math to Apple BASIC. (They probably should have hired somebody else to work on BASIC if Woz seemed more hardware-oriented.)

<comment><USER19> Perfectionism is great when you know exactly what the customer wants (like a custom made shoe). It wastes too much time when you're experimenting to find out what the market wants.

<comment><USER20> The part I've always had trouble with is you need a certain amount of polish before the idea is acceptable. The quality of delivery heavily influences people's perceptions. So this is a very fine balance.

<comment><USER19> Quality is local optimization, Market Fit is global optimization. As the saying goes, if you're not embarrassed by v1 you waited too long to launch.

<comment><USER21> But consider results in consumer technology: Palm versus Blackberry versus iPhone.

<comment><USER22> Did you use the first iPhone? It had a ton of gaps, even in the market at the time. I believe they would have hamstrung it if not addressed in subsequent versions.

I personally have never viewed iPhone as an example of perfectionism in product delivery. To me it's a whole bunch of solid execution over a very long time scale, before and after introduction.

<comment><USER23> Consumers and the press were much more forgiving of the iPhone's shortcomings than they were with anybody else. The 2007 iPhone was 2G only (when 3G on Nokia, Samsung, and Blackberry phones was standard), and it constantly dropped calls on AT&T in the US. Steve Jobs was in full reality distortion mode thanks to several successful iPod/Mac releases, and people loved the showmanship. Loyalty to Apple wasn't purely about the quality of the product.

The Blackberry Storm was released in 2008 to compete with the iPhone and was completely trashed by critics, despite doing the basics extremely well (call reliability, high quality capacitive touchscreen). I had one at the time and apart from the fact that BBOS 6 wasn't 100% touch-optimized, it was very usable. Unfortunately its app store was lacking, whereas the iOS app store had plenty of flashy, gimmicky apps that better served as a showcase for the iPhone's capabilities (gyroscope, motion sensor, etc) rather than useful functionality.

<comment><USER20> The polish was in the fluidity of the interface. To make touch easy the interface couldn't jump around just as you touched the screen.

Its not that the iPhone was fast - but when it couldn't render it showed a square pattern and still scrolled roughly in tune with your finger. None of the other players thought that was important.

<comment><USER23> Wow, that took me back...I remember the little mosaic graphic to display parts of the web page that the browser hadn't loaded. Feels like a lifetime ago, but it makes sense to have that little bit of UX improvement, since back then all we had were full-fat desktop websites.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER24> At least in software "getting it done" is only half the problem. The real problem is knowing how to find a balance between _good enough_ and catastrophic long term consequences. It's a balance between tactics and strategy.

The approach is different in other disciplines such as artistic creation where blind confidence in what you are doing is a better long term strategy and we give a lot more importance to tactics. The more you work the better you become.

<comment><USER25> This comment speaks to me. I'm in a weird point at my job where I'm right at the tail end of supporting this legacy app I've worked on for years, and a brand new app my team will be building from scratch.

It's pretty surreal, because I've been dealing with many of the negative long term effects of decisions that were made for this app years ago, meanwhile I'm about to have to make a whole host of similar new decisions for the next app. I know there are going to be compromises, I know I won't be able to make it _perfect_ , so finding that balance is going to be critical.

I'd love to hear from someone who's had to find that balance and what they've learned.

<comment><USER24> I'm sure you learned _a lot_ about the problem from maintaining the legacy app.

There is some intuition that develops over the years, but honestly the only reliable way I've found of knowing how to properly solve a problem is solving it multiple times.

</comment></comment></comment><comment><USER26> I had the same negative reaction to the title that other commenters had, and of course I was thinking about software. But then I opened the article and saw a picture of a canvas and my mind shifted to music.

I know lots of people who love to write music or want to write music but can never get anything done because of a feeling that it has to be perfect. I have always embraced an aesthetic of rough imperfection in my music and (I suppose) as a result I have record over 30 albums and EPs. Sure, lots of that music is, well, cringe-worthy, but there are some gems in there that wouldn't exist if I let perfectionism get in the way of _production_.

<comment><USER24> For artistic creation I always come back to this anecdote from the book "Art and Fear":

 _" The ceramics teacher announced on opening day that he was dividing the class into two groups. All those on the left side of the studio, he said, would be graded solely on the quantity of work they produced, all those on the right solely on its quality.

His procedure was simple: on the final day of class he would bring in his bathroom scales and weigh the work of the "quantity" group: fifty pound of pots rated an "A", forty pounds a "B", and so on. Those being graded on "quality", however, needed to produce only one pot – albeit a perfect one – to get an "A".

Well, came grading time and a curious fact emerged: the works of highest quality were all produced by the group being graded for quantity. It seems that while the "quantity" group was busily churning out piles of work – and learning from their mistakes – the "quality" group had sat theorizing about perfection, and in the end had little more to show for their efforts than grandiose theories and a pile of dead clay."_

<comment><USER10> That anecdote seems to be a story that was just made up. It is believable if the students have never done ceramics before, however if the students have done a lot before I would expect thinking about what to make would become more useful than doing something again for the millionth time.

<comment><USER27> I also remember this story and hearing that it was just made-up rather than real. However, I know a lot of professional artists and most of them do not have a process that consists of "sitting and thinking about what to make." It is often a generative process that consists of making small/sketchy things and iteratively fleshing it out. In other words, although that anecdote doesn't seem to be referencing any sort of study, it matches very well with my experience in the art world & in teaching art.

<comment><USER10> I agree that spending most of a class thinking about what to produce is not useful. However just creating without thought isn't the best way either. Someplace in the middle is where to be.

That is get an idea, and create it in sketch form. Then examine the sketch (often waiting a few days is required to be a good critic of your own work). If the idea is good start fleshing it out a little at a time - examining it critically at each step. In some mediums you can erase, in others you need to create a new sketch of the same. Eventually you get something good. Many artists will have more than one piece in progress at a time so they can have that break to get away from their mental investment and look critically at it. (this last is not universal)

</comment></comment></comment></comment></comment><comment><USER28> So-called satisficers are happier with their decisions probably because they _are decisions_ , that give them a sense of control. "I chose this 'good- enough' option, I will now proceed." In other words, if there exists some better path out there, I don't care, because this is good enough, and I want to proceed. It's all coming from, and directed from, within. You are the agent in charge.

Whereas so-called maximizers are always at the mercy of an external world that might contain a previously-unknown "better" or "best" option that they feel obliged to find. It comes from without; the world is in charge, the vagaries of a perfect ideal are in charge; the person is only hapless and reactive.

Thinking you're in control of your destiny (even if it's not true) is more satisfying for people.

</comment><comment><USER29> There are several kinds of procrastination, so it's impossible to generalize.

Some projects require very large time commitment to get right, reworking several times, etc. Some others reach a diminishing return stage very quickly and continued effort is wasted. You definitely shouldn't just take whatever you have in front of you and just rush it until it's barely workable.

The critical skill is to be able to judge without anxiety and with some precision how much additional time is going to improve the outcome, and what is the rough global value (to you) of this improvement. Some projects have long ramps of effort and refinement, some are just not worth the time and can arrive at a good enough stage very quickly.

I think the best advice I could come up with is that if you're having this sort of problem, recognize it, try to deal with the anxiety and get a perspective on the risks vs benefits, and improve. If possible find an environment/hobby /side occupation where you have to make a ton of such decisions to get a lot of practice. College/personal projects tend to be pretty sparse and give a lot of room for failure and delaying I guess.

For me it's been a very slow, progressive realization that I'll never get things I wanted done by just leaving them to an arbitrary later date, or obsessing too much over details. In nothing vs something, something wins.

</comment><comment><USER30> This is exactly what I was saying in the other HN thread today about code reviews, and I got downvoted a bunch of times. A lot of people have a perfectionist mindset and lose sight of the fact that "perfection" can be subjective and that the product they are creating _for the user_ is more important than the engineer's personal vision. This isn't to say that we should just throw out best practices, wing it, and never take criticism. Being _willing_ to break work into further tickets and _actually_ giving them priority can mitigate long-term problems created by imperfection in the first place.

<comment><USER31> This sounds like some non-engineer talk that ends up fucking the team up 1 year later as there code starts breaking everywhere, the code becomes very difficult to refactor, new hires start to struggle ramping up, etc.

I agree that sometimes people can be too focused on perfection in code reviews but consistency, modularity, and other seemingly unimportant things are crucial in maintaining hygiene for your project

<comment><USER30> > This sounds like some non-engineer talk

Does it merely _sound_ like non-engineer talk, or is it _actually_ non- engineer talk? I just want to make sure you aren't making the wrong assumption or implying the wrong thing. I've been saying what I've been saying as a result of my 5+ years experience doing full-time software engineering.

> I agree that sometimes people can be too focused on perfection in code > reviews but consistency, modularity, and other seemingly unimportant things > are crucial in maintaining hygiene for your project

It's interesting to me how easily people here are assuming that I'm implying the absence of standards merely because I'm suggesting people opt not to chase perfection in favor of providing a non-blocking pathway for engineers to make changes or improvements. Maybe my phrasing is poor.

I don't think you and I disagree that consistency, modularity, etc., are important and should have some amount of enforcement. The point I'm trying to make is that, in my experience, people sometimes go _too far_ with this, so there should be some set expectations as to the limits of an individual code review. Limiting the amount of review iterations in a unit of work and splitting feedback-related work into other tickets can help address the issue of perfection zealotry.

<comment><USER31> What I meant is, I've heard this kind of language from non-engineers before (mostly PMs) trying to get developers to ship something in a bad state. Most probably because they'll be gone before they start having to deal with the repercussions of the technical debt.

>Limiting the amount of review iterations in a unit of work

Fully agree. I think there should only be two iterations max, preferably just one.

>splitting feedback-related work into other tickets

Would never work at places I've worked. The backlog of "important tasks" is never-ending so code cleanups, optimizations, etc. never get done because there is always higher priority work. This isn't really in control of the team because even if the PM agrees to let you lose a week of productivity making the code better without adding features there's a good chance their manager, the engineering director, etc. won't like to see that. So at least in my experience you only have one shot at getting that code in a good state, with the alternative being the code slowly getting worse and worse until it gets so bad you opt for a rewrite or lengthy refactor

<comment><USER30> That's a totally valid point, and perhaps I am too optimistic. I do think that a company with the right values could do that properly, but most don't, including best ones I have worked for.

</comment></comment></comment></comment></comment><comment><USER32> The article is just the title stretched out into a few paragraphs. Signal to noise ratio is close to zero.

</comment><comment><USER33> Has anyone else just stopped reading stories on sites like NYT that block reading if your browser is in private browsing mode?

<comment><USER34> And all the sites that won't let me use an ad blocker or Firefox Foxus. I don't trust any of them not to load 300 ads.

</comment></comment><comment><USER35> I've seen some code done by perfectionists, it was beautiful to behold. It did it's job well. Unfortunately it was considered the "legacy system" and was eventually retired.

<comment><USER36> Some things belong in museums.

</comment></comment><comment><USER37> The problem with the headline is that if you think 'it' isn't good enough, then 'just getting 'it' done' will send you into a vicious loop that will spin out of control as the pressure to over-achieve builds up.

You really have to reframe your view of 'enoughness' in a more positive light, so instead of something being perfect (not enough until then), it's finding a way to see what is good enough for the time being, that allows you to move on. Then you can go and do what you need (or do nothing if what you have is adequate) and take the weight off your shoulders.

The startup lingo for this is MVP. There's no getting it done with that until you've reduced the scope of 'it'.

</comment><comment><USER38> Just don't take it as far as Boeing did.

<comment><USER39> Is it time for "That's what Boeing said" already?

</comment></comment><comment><USER40> Reacting solely to the headline, no.

"We're never going to find an energy better than coal, so just go down in those mines and go earn your living like a real man!"

Critical thinking is an extremely important skill, always, forever. Not impulsivity.

</comment><comment><USER41> This is a difficult decision in science. If you are too perfectionist you will fail. If you are not, then your contributions can be bullshit. However, there is no such thing as a perfect experiment (at least in cognitive sciences), so we depend on converging evidence, so pretending it can be perfect is procrastination.

</comment><comment><USER42> I think many people and teams (myself included) have pretty poor self- knowledge. You should aim to create the best product you're capable of. Most people either over or under estimate that, and they're left either never delivering, or spending the rest of their lives complaining about technical debt.

</comment><comment><USER43> Non-paywalled link, anyone? NYtimes won't let me read it in Firefox's Private Mode.

<comment><USER44> Firefox Focus works flawlessly

<comment><USER45> It's blocked as "Browsing in Private Mode" for me on mobile.

</comment></comment></comment><comment><USER46> Paywalled but, I guess the headline contains all the actionable insight already</comment>


621+ Programming Resources - <AUTHOR> https://medium.com/free-stuff/2000-programming-resources-c2c835001216#.7afcewqn0 <comment><USER2> Not a section for Swift :( One of the newest and popular languages.

Here are a few for swift:

Swift Tutorials: [http://ios-blog.co.uk/tutorials/swift](http://ios- blog.co.uk/tutorials/swift) Swift Monthly: [http://swiftmonthly.com](http://swiftmonthly.com)</comment>


Can JIT be Faster? - <AUTHOR> http://tirania.org/blog/archive/2012/Apr-04.html <comment><USER2> Both Herb and Miguel seem to be writing on a flawed assumption, which is that JIT will only ever apply optimizations that can be proven safe. As I understand it, this is true for CLR implementations. And if that were the case generally, there would be no significant-enough difference between the set of optimizations available with AOT and the set of optimizations available with JIT, and JIT would never be "as fast as C".

But this disregards one of the major selling points of profiling + optimizing JIT: you can apply optimizations that cannot be proven safe _and you can get away with it_. This means you can not only be "as fast as C", you can implement a JIT that will mop the floor with C.

Good JITs are already taking advantage of this, and the very first comment on Miguel's article points this out. This (four-year-old!) article by Charles Nutter explains it a bit more in the context of the JVM:

<http://headius.blogspot.com/2008/05/power-of-jvm.html>

<comment><USER3> I keep on hearing that it's _possible_ to write a JIT-based vm that's "faster than C". I have yet to actually see one where that is true for anything other than one or two very specific micro-benchmarks.

Edit: the old C2 wiki actually has something useful to say about this.

<http://c2.com/cgi/wiki?AsFastAsCee>

<http://c2.com/cgi/wiki?SufficientlySmartVirtualMachine>

<comment><USER4> It's actually not that difficult to find programs where a JIT is better. Things that benefit _significantly_ from profile directed feedback often run faster in JIT than static compilers, because JIT's tend to do this dynamically, whereas static compilers require training runs.

For example performance critical code that has a lot of conditional branches, but only a few are taken at runtime, will often work faster in a JIT.

(Of course, the typical solution is not to write performance critical code with a large number of branches, i'm just giving you examples)

<comment><USER3> Sure, but even in those cases the saving has to win back the overall cost of the runtime profiling and dynamic compilation. The crossover point seems to be high enough in the graph that it's not reached very often in practice - especially since, as you say, programmers tend to learn early on that hoisting conditions out of inner loops Makes Code Faster.

<comment><USER5> _The crossover point seems to be high enough in the graph that it's not reached very often in practice_

I remember a study posted here a few months back that supported the notion that most web apps have a certain "steady state" that they reach after they start up, where almost all the types of variables are known, and most of the funkier "dynamic" changes don't happen. If one can get a JIT to remember the tracing information from session to session, it should be able to run as fast as or faster than C.

<comment><USER6> But if they reach a steady state, then profile guided optimization can be used to make an AOT C compiler generate faster code too.

<comment><USER5> True, but let's say the implementation Lang in question has optional types. Consider the unfilled type information to be technical debt. If the tracing information can be exploited to automatically fill in the type info, then this is technical debt that magically repays itself. That's something startups should be interested in.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> Yes and No.

If you bundle JIT with garbage collection, bounds checking, and all the usual things that come with the JVM/CLR and execute on current hardware, probably not.

If you were to JIT a language like C it would probably be faster as you could optimize to specific hardware. OpenCL uses JIT for example and it's many times faster than static compilation (because it can take advantage of extra hardware at runtime).

The issue to contend with is the reality that about 30 years of the industry have gone into making C fast, everything from compilers to the way CPUs are designed. There's likely no inherent reason any style of compilation / execution couldn't beat static compilation, it's just we need the same level of resources and hardware support for those execution models.

For instance with garbage collection and bounds checking you no longer need an MMU.

<comment><USER8> Is that "If you were to JIT a language like C it would probably be faster" true? I think a JIT C compiler would run into trouble with alias detection. Let's say that it removes an if statement because the variable a in the "if(a)" that starts it always is false. In C, code like "x->y = 1;" could affect the value of a, as could _any_ pointer dereference. If the JIT cannot prove that that could happen, it would have to insert a check "does this modify a?" for every such statement. I think there will be quite a bit of code out there where even a very smart JIT would not be able to conclusively prove that such aliasing does not happen.

Also, I do not accept that OpenCL argument. IMO, OpenCL is more similar to static compilation than to a JIT. It is as if you recompiled your kernels whenever you changed your video card (perhaps also when you change its configuration); it does not do things that a JIT would do, such as "hm, most of the pixels are black; let's optimize for that case".

<comment><USER4> We (compiler optimization folks) have gotten very good at making pointer and alias analysis fast, particular simple pointer analysis like you might find in JIT. For a JIT, you would likely write out conservative but correct static results in whatever the equivalent of "javac" is for your C jit, and then refine it in the JIT. You'd invalidate it if you saw accesses you can't account for come up later on.

Even if you didn't want to do that, on demand CFL reachability formulations of pointer analysis can calculate reasonable pointer results for individual pointers fast enough if it became important.

Realistically however, no JIT is going to do advanced pointer analysis, unless you have CPU to burn. As for "conclusively prove that aliasing does not happen", you don't actually have to, because if it is truly going to improve performance, you can insert runtime checks.

if (&a == &b) <do super fast thing> else <slower fallback code>

</comment></comment></comment><comment><USER4> The very first comment misunderstands reality. It talks about how you can make java programs that outrun C++ ones using hotspot. Ignoring, of course, the fact that nothing really stops you from making a good C++ JIT except engineering time, and it would do just as well in those cases.

Nobody does it because the cases in which it would help are small, and most of those folks are willing to do profiling/training runs, and get about as good results, even if it requires more pain.

As Herb said, the languages were made for different tradeoffs. Speaking as a compiler guy, yes, you can make almost any of them as fast as each other given enough time and effort.

But putting time and effort into a JIT may not be as effective as choosing a different language.

<comment><USER9> > Speaking as a compiler guy, yes, you can make almost any of them as fast as > each other given enough time and effort. But putting time and effort into a > JIT may not be as effective as choosing a different language.

So, the most "bang for your buck" may be using a JIT for a language like Python. Sure, it won't be as fast (at least, not until a huge amount of work has been done on it), but it can get faster. Trying to beat C + a good C compiler is ... ambitious.

<comment><USER10> But possible: <http://shootout.alioth.debian.org/u64q/fortran.php>

Doing it for Python will be impossibly hard, yes.

<comment><USER9> Yes, fortran is actually faster than C for some things. OK, C++ with the right templates, or a later C standard can theoretically do what Fortran does (remind me again - pass by reference, no recursion, and bounded arrays rather than pointers?). And Intel tends to be faster than gcc.

There's no way you can make broad statements (like "nothing will beat C" or "fortran is actually faster than C for numerical stuff") without having a few exceptions. Actually, Pypy is faster than C, in _extremely_ specific circumstances (i.e. ones which were set up by the Pypy people to show off, see "PyPy faster than C on a carefully crafted example" ... thought they point out there are things you could do in C to make it win).

The most bang for you buck in JITs is for dynamic languages, because while stuff like type inference can exponentially explode, you'll only really have 1 type in many cases (i.e. a float), and the JIT can pick that up. And getting Python within an order of magnitude of C would be a massive win.

</comment></comment></comment></comment><comment><USER11> One thing I would like to see is speculative execution. I have an 8 core machine. When the JIT compiler runs there is no reason why it can't generate 7 alternatives to any particular code sequence, run them all in parallel and keep whichever was the fastest. Or run both sides of an if statement simultaneously.

This helps solve the problem that compiler writers often have multiple alternatives they can generate, but have to make hard decisions as to which to pick.

I'm not saying that implementing this will be easy, but then again all of the easy things have already been done.

<comment><USER12> Describing this as not easy is a bit of an understatement; there has been a lot of research into speculative threading and communication overhead between cores almost always kills it.

<comment><USER11> The main hurdle is getting a block of execution large enough to make it worthwhile trying alternatives and absorbing the cost of setup and finish. I suspect some form of STM would help a lot since you could then run multiple threads of code and only "commit" the winner. That allows a larger execution block.

I also think software people still have a innate fear of "wasting" CPU/memory/disk which is hard to overcome.

<comment><USER13> One example of where this is used in practice is the fftw library (fastest Fourier Transform in the west). At runtime you can run a trial of FFT algorithms for your data size and architecture, and it will pick the fastest.

<comment><USER11> It is a pain with FFTW since they expose all this in the API, let you save/load the details etc. A better example is MongoDB. When you make a query they try multiple query plans concurrently, note which is fastest and use that in the future with continued performance monitoring. Once diverging from expectations they run the contest again.

Compare with other databases that put an inordinate amount of effort and tuning into coming up with the one true query plan per query.

</comment></comment></comment></comment></comment><comment><USER14> > Java HotSpot takes a fascinating approach: they do a quick compilation on > the first pass, but if the VM detects that a piece of code is being used a > lot, the VM recompiles the code with all the optimization turned on and then > they hot-swap the code.

Wait, what? Hotspot does a "quick compile" on the first pass? When did this happen?

<comment><USER15> Some time ago. It has a "pasting" JIT for as a first optimisation stage, which just pastes together machine code for each opcode, to remove the overhead of interpreting.

Note that it does just interpret by default.

<comment><USER14> > It has a "pasting" JIT for as a first optimisation stage

Could you point to somewhere on the interweb which discusses this in detail?

</comment></comment></comment><comment><USER16> One of the performance advantages of C is the sheer amount of detail that's left to the implementation. By contrast, languages like C# and Java are typically much more tightly specified, which prevents optimizations that are not provably correct. This is not a matter of JIT vs non-JIT.

<comment><USER2> The JVM is quite happy to speculatively apply optimizations that are not provably correct, and has done so for _years_. Have a look at the link in this comment:

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

<comment><USER16> Sure, but if not provably correct then they need to be detectably incorrect. That's still a higher bar than a valid C implementation needs to pass.

</comment></comment></comment><comment><USER17> Sigh. Why the hell do people use the Candara font?

Do they want people to have a hard time reading what they write?

<comment><USER18> There's no accounting for taste. This font looks good for me.

<comment><USER17> It looks nice to me too, if I press ctrl-+ twice. Maybe it is just that the font doesn't scale well enough for high resolutions.</comment></comment></comment>


My blog can't keep up: 500 errors all over - <AUTHOR> https://lemire.me/blog/2019/01/31/my-blog-cant-keep-up-500-errors-all-over/ <comment><USER2> 30 to 50k uniques per month really isn't that much. At a rough guesstimate, I'd say I've got at least one hosting customer that does that much with Wordpress, gracefully, on a site that's not optimized even a little. I charge them $10/mo.

Static site generators and everything else are lovely and all, but it's hard to beat Wordpress when it comes to being able to just plug in a new feature. Which, of course, also gives some folks the rope they need to hang themselves. As other folks have pointed out, there could be a plugin issue.

But my guess is it's the hosting provider. They can have professional-sounding support but still be running an architecture that hasn't been updated very much in the last 5+ years. mpm-event and php-fpm alone really changed the performance characteristics for bog-standard LAMP hosting.

The error logs should give a number if memory's exhausted. I bet it's super low, because a lot of shared hosting providers still try to cram as many sites as they can onto a beleaguered colo'd box. At a glance, that does look like the csoft.net architecture (they have "Two Dedicated, Redundant Servers (with Private Gigabit LAN)").

There's certainly a broader point to be made about the gross, inexorable bloat of web-based applications, but there are also plenty of people running even more bloated, busy stuff for less money with less trouble.

Oh, and you can install the traditional editor for Wordpress, they've made it available as a free plugin and it works just fine.

There are plenty of people around who can sort out stuff like this. I'm one of them, but I'm heading to bed. Email's in my profile, or just accept help from anybody else that knows what they're doing.

</comment><comment><USER3> Consider moving away from a CMS like Wordpress. It's great at what it does but I think you've out grown it. Static content generators might help here. They let you edit off line and compile to a static version of the web content you currently serve. I'd suggest looking at Hugo or one of the many specialised for blogging. [https://opensource.com/article/18/3/start-blog-30-minutes- hu...](https://opensource.com/article/18/3/start-blog-30-minutes-hugo)

You can then push the content to something Amazon's s3 and put cloudfront in front to speed things up.

You'll have to then offload the comments to a service but that is relatively easy and cheap. A service like discus is only $9 a month. Moving to s3 you'll save that in hosting. (I run two sites like this and pay $0.07 on average per month). Not to mention those services are pretty good at filtering spam.

There are some other options around too. [https://darekkay.com/blog/static- site-comments/](https://darekkay.com/blog/static-site-comments/)

Wordpress is nice but it will never out perform static content.

EDIT: I just read this in discus "Free For small, personal, non-commercial sites who do not run any ads. This plan includes everything in Plus except Direct Email Support."

<comment><USER4> > It's great at what it does but I think you've out grown it.

There is absolutely no justification for him to be running into these sort of issues at such an incredibly low load. Let's pretend he gets 50,000 hits per _day_ (he says 50k per month but I don't know reqs/sec). Than's less than one per second. The $5/mo box over at DigitalOcean can handle 100 times that with the most poorly optimized PHP, Wordpress, and MySQL installation.

The problem is entirely due to a shitty host and/or grossly misconfigured server. No CMS should run into load issues at the microscopic traffic levels he's complaining about. He doesn't need Cloudflare, either.

So, yes, a static site would indeed perform better but to imply that he's actually reaching the limits of a simple CMS is absolutely ridiculous.

<comment><USER3> >There is absolutely no justification for him to be running into these sort of issues at such an incredibly low load

Yet he is running into these issues. Is it a buggy plugin or a configuration issue?probably, yes.

But that's exactly the problem static sites solve. I don't mean to say he's out grown it as in you can't serve Wordpress at the volume he's currently getting. I mean you have to have everything setup correctly to do so.One option would be to learn the workings of Wordpress and maybe the web server hosting this. If that's what he wants to do with his time great. I suspect he may have other interests, if that's the case static hosting would be a good alternative. It might not be the best, but it's the best I know.

</comment></comment></comment><comment><USER5> $50 seems quite a bit of money for a wordpress blog, when you can have wordpress.com host you for $5/mo.

</comment><comment><USER6> I am running multiple Wordpress customers on digitalocean $20/month plans, and some of them get more than 50k uniques per month, never had any issue. Never did much optimization. I am pretty sure the issue is your hosting. Also check your Apache error log, maybe you are using some plugin or theme that is overloading the memory with some crap code like majority of free Wordpress plugins/themes.

p.s make sure to update to php 7+. The speed difference was very noticeable when I upgraded

</comment><comment><USER7> I'm just going to say one thing: EasyEngine.

If you need help managing/setting it up, I can do it for $15 a month + DO cost - or AWS/Google/Azure. I'll manage your stack, depending on time to migrate, there might be like $50-100 for migration.

I'm looking to start a WP management service, and hosting company -- mainly to get some MRR during my slow months.

I'm currently a Full stack laravel/vue/react freelancer.

For reference, I ran a political blog during 2016 w/ 100k hits an hour for a few weeks (traffic died down a ton), but my site wasn't functional at all on shared hosting.

After easy engine on DO's lowest tier, everything just worked. Nginx + redis cache is amazing.

Just drop me an email : patrick @ zvive.com -- linkedin: [https://linkedin.com/in/patrickcurl](https://linkedin.com/in/patrickcurl)

<comment><USER8> How does EasyEngine compare to dokku-wordpress?

<comment><USER7> Can't say, haven't used dokku-wordpress. I know EasyEngine recently moved to docker images, which I'm not totally a fan of -- simply because you can only have X number of images per instance, iirc -- and that limits how many sites you could potentially host on a single server.

<comment><USER8> Do you mean it uses more memory? or you are hitting the docker limitation per host?

<comment><USER7> [https://easyengine.io/handbook/v3-to-v4-migration](https://easyengine.io/handbook/v3-to-v4-migration) "As v4 depends on docker, it is affected by Docker's limitation of 31 network per machine.

v4 creates one network per site. Then v4 also needs few Docker networks for global services. So roughly we limit the number of sites to 27."

I'm also wondering what all those docker instances do to performance, seems to me there might be a better way.

</comment></comment></comment></comment></comment><comment><USER9> That's just a bad hosting service.. I manage somewhere in the neighborhood the OP gets with a basic Wordpress deployment. It's extremely stable, and only ~7/month. I use limited plugins and have optimized for speed.

My guess is a plug-in or theme is bugging out here. Easy solution is to remove all and slowly add until the problem exists again.

In 2015 I had "Crayon Syntax Highlighter was Killing my WordPress" for instance:

[https://austingwalters.com/crayon-syntax-highlighter-was- kil...](https://austingwalters.com/crayon-syntax-highlighter-was-killing-my- wordpress/)

</comment><comment><USER10> Ignore all the comments telling you to switch to static content generation, that's generally a large time endeavour and for a blog that is getting 50k uniques a month should be pretty easy to serve all requests with a little CloudFlare tuning.

First, let CloudFlare do 99% of the work. Don't worry about optimizing the linux box, PHP, MySQL, PHP Opcode Cache, WP-Cache at first.

First, let's check that CloudFlare is caching and serving all static assets such as js, css, images, .xml, .ico. I don't see a cache-control header being returned on js, css, images, etc. Make sure this is setup in CloudFlare with Caching Level => Standard and Browser Cache Control => 1 month. Also, consider enabling Auto Minify => Javascript and CSS. Finally enable Brotli and make sure HTTP/2 is enabled under network.

Now, here is where you can really make things fly. It is possible to have CloudFlare cache the result of generated html pages, so requests don't even hit your shared hosting provider. This is done with Page Rules. The trick is going to be crafting a rule that you can match posts and posts only. With my site, I leave .html extension on my files, so my rule is simply:

[https://imgur.com/a/4iNpB4V](https://imgur.com/a/4iNpB4V)

Your challenge will be creating a matching rule while excluding admin backend pages. Also, most certainly you probably going to want a much lower cache time than 8 hours. My site content does not change often. Perhaps something like 30 or 60 minutes to start.

Good luck, let me know any questions, my contact info is in my profile.

</comment><comment><USER11> Although a lot of the recommendations are great, and to me it also looks like there are specific hosting problems at play, possibly serious overcommit by the provider or some plugin problems, I do think there's a deeper issue:

> What am I missing? How can I be in so much trouble in 2019 with such a > relatively modest task?

Something is not quite right with our web-platform when we have these sorts of problems, and the solutions also require quite a bit of sophistication.

As an experiment, I recently switched my [http://objective.st](http://objective.st) site to run on Objective-Smalltalk itself on a Digital Ocean $5/month droplet (their smallest). Surprisingly made it to the HN front-page and didn't hiccup, despite an egregious memory leak on my part (fixed now).

This was reported as "blazing fast"[1], despite being a single binary hosted in Frankfurt, having no CDN support and no static files, with everything served from the embedded web-server. Heck, I haven't even hooked up gzip- compression

I don't log much, so I don't really know how much traffic it's getting. I do know that hitting it with wrk remotely I got around 1000 requests/s, locally on the same box it was around 8K. So I think there's plenty of headroom. Oh, and the logs do show continuous attempts to break in POSTing to what I presume are php vulnerabilities.

I am emphatically _not_ saying I did something amazing or even particularly good, everything was somewhere between straightforward and egregiously simple- minded, and there were other (mostly easy) ways of accomplishing the same thing. Previously the same site was served using static files running the same code as a static site generator.

However, it does confirm my suspicion that we've path-depended ourselves into a corner.

[1] [https://news.ycombinator.com/item?id=18965054](https://news.ycombinator.com/item?id=18965054)

</comment><comment><USER12> Which PHP version is being used? If it is still 5.* I would consider upgrading to 7.*. Just estimating now: 45000 users would be like about 1 user/minute, so maybe 10 requests per user per minute, could equal on peak max. 1-2 requests per second.

Some shared hosting shouldnt run into trouble.

</comment><comment><USER13> For 50$ (Canadian, I guess), will not someone like wordpress.com do better? Their business package is USD25 per month.

<comment><USER14> Their plugin selection isnt great though and you cant install your own.

<comment><USER15> The WordPress.com Business Plan[1] actually allows you to upload your own plugins and themes.

[1] [https://en.support.wordpress.com/business- plan/](https://en.support.wordpress.com/business-plan/)

</comment></comment></comment><comment><USER16> I come across colleagues in the same boat as the OP, but the truth of the matter is that a $5/mo VPS hosting WordPress is really not going to handle a surge of high traffic. Been there, done that, when I had a $20/mo Digital Ocean droplet with my blog on it. Anytime I posted a link to it on HackerNews or Reddit, it used to die under the 'hug of death'.

Since moving my blog to SquareSpace, I've never had that issue. In years. Note: Not an advert and not an affiliate for SS, just a happy user.

We still have a WP blog on a VPS for our SaaS, but I am keen to move that over to another platform, because I have enough on my plate to develop code for my SaaS itself. For my blog, I just want to post my thoughts without having to wade through a WordPress Admin console and see dozens of flags, warnings and popups about a myriad of plugins that need attention. Seriously - our WP admin console causes a lot of stress just logging in, which sucks all the creativity out of me.

SquareSpace (and even Medium, for all the negativity surrounding it) makes it so easy to start with a blank slate and just _write_ and let the ideas flow.

<comment><USER17> To help in case of a surge of traffic you can enable some sort of microcaching on the web server. For example with a cache TTL of as little of a second you are sure that Wordpress will never see more than 1 req/sec (per page, but usually surges are specific to one or a few pages), and at the same time you will never be serving stale information.

The downside is that your Wordpress installation will not see the requests served from cache, which means so if you rely on a Wordpress plugin for statistics and/or analytics the data will not be correct.

</comment></comment><comment><USER18> Anyone else use Ghost? I've got Ghost running in a Docker container on a DO droplet. It's the smallest droplet there is. I don't have a ton of traffic to my blog (at least, I don't think—I haven't found a privacy-respecting analysis system that I like (maybe roll my own... just count page request)) but it does the job.

<comment><USER19> We generally serve several of the front page stories on HN every day (some we host, some we don't) - so very used to dealing with high traffic loads

@OP - If you're interested, drop me an email on firstname.lastname@example.com and I'll set you up with a 2 month free trial on our Pro service where you can deploy a new instance in a few seconds and kick the tires. No obligation.

</comment></comment><comment><USER20> If I recollect correctly (haven't used WP in years), the bulk of error 500-related problems on WordPress are due to poorly written plugins -- of which there are many. One of the better ways to track down a problem is to disable plugins one by one until the problem goes away.

<comment><USER21> Further to that, delete the folders. Plugins are often targeted directly if written poorly, so if you don't need 'em, delete 'em.

<comment><USER20> Disabling them is good enough, actually. The php code in them won't run at all unless they're enabled.

</comment></comment></comment><comment><USER22> 50 CAD a month (33€) for such a small site and then it doesn't even work properly. It boggles the mind. I'm sure you can get a working setup for 5€/month without breaking a sweat.

Having a company that deals with your Wordpress installation is only beneficial if they get it right.

</comment><comment><USER23> WordPress might be slow, but it's probably just the host or not enough PHP memory assigned to it. There is nowhere near enough traffic to bring down a WP site, unless you have a ton of bots pinging your site that never appear in your actual google analytics (because they are boths) .

* look at an actual server access log. cPanel offers one if your host is offering cPanel. * try and increase your WordPress memory limit: [https://docs.woocommerce.com/document/increasing-the-wordpre...](https://docs.woocommerce.com/document/increasing-the-wordpress-memory-limit/) * check your server's PHP error log and see if there is an error * set WP_DEBUG to true in wp_config.php

</comment><comment><USER24> Hugo. It's completely static and great out of the box. You can add new posts in Markdown.

<comment><USER15> I looked into Hugo but stuck with WordPress because the transition of 2M posts with 1,000+ daily new posts seemed too much for the build process:

[https://discourse.gohugo.io/t/transition-2m-posts-from- wordp...](https://discourse.gohugo.io/t/transition-2m-posts-from-wordpress-to- hugo/12704/5)

</comment></comment><comment><USER25> Oh, good old traditional LAMP shared hosting and WP. Honestly, I doubt that combo will ever work reliably. WP hosting is bit of a dark art in the best of times, and operating under shared hosting does not help. That being said, self-hosting on something like AWS probably would end up much more expensive, and would take also some effort to set up and maintain.

Personally I would either start looking for fully managed WP service (wordpress.com), or switching to a different, easier to host, platform

</comment><comment><USER26> I use wp-stateless to offload images, and cache-control to serve most of the content through CDN. (I also put a serverless reverse proxy infront to mixin other stuff on a common domain). I get great performace off shared hosting. [https://corepox.net/devlog/simple-extensible-performant- low-...](https://corepox.net/devlog/simple-extensible-performant-low-cost-web- serving-using-firebase-hosting)

</comment><comment><USER27> Caching 'anonymous' requests at edge with Cloudflare workers - no need for the $200 p/m business plan

[https://www.mmaton.com/2018/07/02/cloudflare-cache- anonymous...](https://www.mmaton.com/2018/07/02/cloudflare-cache-anonymous- requests/)

</comment><comment><USER28> You can export to static pages (one for every blog) with a plugin. You'll lose the comments functionality, but views will work.

An easier/quicker solution is to just stick a cdn in front, that way you can cache pages and still have to back-end work.

</comment><comment><USER29> No offense intended at all but I can't help but wonder how a technologist/computer scientist has ended up asking for help resolving 500 errors on his blog rather than hypothesizing what the problem could be and testing his theories.

A quick Google search on the error he's getting says it's an Apache error either from invalid file permissions or running out of memory. His provider refuses to transparently increase memory so the hypothesis seems stronger here. Now just test it by spinning up a simple load balancer, clone your website on a different server, split the traffic 50/50, and see if the errors continue. Repeat this process until you've isolated the issue. Trying to solve the problem by adding a cache layer isn't going to help before the problem is understood.

<comment><USER30> We don't know that the author didn't google and try a few things. And it's perfectly possible to be a computer scientist and not know how to tune a web server. There are lots of specialisms and paths. Personally I admire someone who, despite being an expert, isn't afraid to ask questions and admit when they don't know something.

<comment><USER29> That's a great point. My comment above seems to be coming from a rather limited mindset

</comment></comment></comment><comment><USER31> Seems like Wordpress has outlived its usefulness. It's like the Windows XP of the internet. It was great and simple, until the security problems and feature creep plagued it to death.

<comment><USER6> Most of the time the problem is not Wordpress but poorly written themes/plugins (especially free ones). Also $5/month shared hosting running on a decade old hardware are not helping either.

</comment></comment><comment><USER32> This won't end well for csoft.net

</comment><comment><USER33> Reading this, I feel they should hand this job on to someone else. There comes a point where if you're not experienced enough to do this, no amount of Googling and investing more time will help you.

tl;dr I get the feeling that this person has been sold the idea that throwing money at things will help (why is he using argo for a smallish blog, it's not worth the money?)

</comment><comment><USER34> I've had similar issues with several wordpress installs.

Some of the less known issues I found that can add to this problem:

Spiders/Indexing Bots Brute Force Login Attempts Hidden Hacked Pages

Helps to look at logs sometimes, if you get hit with all three of the above at the same time, it's a tricky mess to clean.

You may find relief making an aggressive noindex robots.txt file (there are tons of bots to block which are worthless and use up your resources. - it may be best to say * disallow all, then specifically allow google, bing, etc (would love to find a way to tell archive.org it's okay in that situation))

Even when doing the robots block, I've found some aggressive spiders or bots that use some of their user agents need to be blocked via ip subnets and cidrs with htacess for example.

Brute force login has many options for slowing down access. I love a combo of ipgeo block, sucuri, graphic captcha, shield security

plugin for disable xml-rpc or use the setting for such with the shield security plugin (this blocks massive login attempts) to block all xml-rpc use.

Hidden Hacked Pages If you find bots spidering a bunch of product pages for things in other countries in your logs for example, you may have been hit with a bunch of pages being created that you may not see on your may front end, or even in the backend admin area of your site.

Removing those pages is a start, and then a plugin like 404 to 301 redirect may be beneficial - but you will likely find a bunch of bots coming to index them, and other hackers who have been sold access to your site trying to login and make more of them.

For me it was more log checks and looking up ips to add to the server block lists to slow it down. Just make sure you don't add google's or bing's ips to the list.

With a few sites I had that got some of these issues I decided to pull down wp-login.php - and in an effort to lighten up the load on the shared server, I decided to use one of the plugins that make wordpress into a static site (there are two good ones in the repo now)

Once I generated the static html and css, I created a new wp-login.php that would log all ips and user agents / date to a separate text file, and display a message on the screen warning the visitor hacker that I was casting a spell on those who access the login page.

The amount of bots trying to login, and trying to access the old hacker- created-pages that were made over a year ago is still crazy. Their bots are still coming and trying the same login page and trying to access the same pages that have been removed over a year ago.

If I had left those pages available as php pages, each one of those visits would of been taxing my sql, even if they were showing the wp 404 page, or failed login.

I hope your issue is simpler, like a bad plugin. Certainly I've run into that issue with other problems not related to these as well.

</comment><comment><USER35> Pssh, all you need to do is install docker, convert static files and blog post into lambdas, then route each unique http request to a serverless IPv6 address located on the nearest continent.

<comment><USER3> Can you elaborate a little? I'm not sure I understand what you're suggesting but it sounds interesting.

<comment><USER36> Here is the architecture: [https://serverless.com/blog/serverless-wordpress- hosting-wit...](https://serverless.com/blog/serverless-wordpress-hosting-with- shifter/)

[https://www.getshifter.io/](https://www.getshifter.io/) seems to be a relatively turnkey solution for existing Wordpress sites to migrate to serverless hosting. It spins up a Wordpress docker image when somebody is in the admin panel, then builds and deploys a new static site to S3 when a change is made. Each build is immutable and easy to switch between.

There are limitations with static site hosting. Their approach to comments is: Use Disqus.

</comment></comment></comment><comment><USER37> I can recommend you Publii CMS ([https://getpublii.com](https://getpublii.com)), it's excellent static blog tool I use from over one year and manage four blogs.</comment>