Ask HN: Burnt out in job after 9 months - <AUTHOR> I feel burnt out after just 9 months in what is my second job after college. My first job lasted 2 years and I loved it - for the most part and worked hard.
With my current job I got disinterested after about 8 months. Lack of a real challenge, no deadlines, no scope for further development of my skills - e.g. formal testing (unit/integration). My counterpart developers are in another country/timezone with nobody to really learn from.
I'm using all of the above to reason why i've become absolutely allergic to the place. I have become demotivated during my working day and what I think is the onset of depression - There have been a lot of days where I just can't get up out of bed to go to work. I have missed a lot of days now and is becoming problematic.
Has this kind of thing happened before? I'm just a little confused now, not sure if a work environment can do this to somebody or if I just have my own problems?
I'd love to hear from fellow developers who may have experienced the same.
Thank you. <comment><USER2> Move on. Try a new environment with a new company. I am in a similar boat. My current job just sucks. My state was just flooded with 18 inches of water and the interstates are closed. (Hell, while I was typing, my cell chimed an emergency evacuation notice for a nearby county.) We were expected to be at work or take a vacation day. That is just the most current example.

I am opting currently for the safer route of finding a job while I still have this one. I am looking for pure remote work, so it will likely take me a while to find something.

If the depression issues continue, seek treatment. Whether you're at a new job or not. Take care of yourself while you have the means. Depression will greatly hinder the search process.

<comment><AUTHOR> Wow, that's pretty harsh. Regarding the depression. I have started taking medication, which has a lead time to effectiveness of about 6 weeks. I'm about 4 weeks in so hopefully things will pick up soon.

</comment></comment><comment><USER3> > _Has this kind of thing happened before?_

Yes. To many of us. You're definitely not alone there.

Unfortunately, that feeling rarely goes away on its own. If there is someone you can talk to (a mentor, an older sibling, a good friend, or even a therapist), I'd recommend seeking out their guidance. Don't underestimate the _scope_ of the meaning of this problem. In other words: you _may_ think you're just unsatisfied with this job, but there could possibly be much bigger factors at play here, that should be addressed (purpose, happiness, self- actualization, etc). Low job satisfaction may just be a symptom of a larger issue.

</comment><comment><USER4> "Lack of a real challenge, no deadlines, no scope for further development of my skills"

Those are the reasons right there.

Without a challenge, it's hard to feel like you're creating something or doing something valuable. It might be valuable to someone else, but if it's not challenging to you, it's very difficult to feel like you're accomplishing something that is valuable.

Without a deadline, there's usually no sense of urgency. In order to be productive and efficient, you have to have deadlines.

I'd try to find work that has both of these. Before you decide to move on, be absolutely sure that you communicate with your current employer. I've heard countless stories from Recruiters and Hiring Managers saying that if an developer had only told them that something was bothering them, the company could have changed to accommodate them (saving the developer from quitting, and saving the company lots of money in trying to find a replacement).

After you've communicated very clearly and kindly, see if things change. If they don't change, leave. Give yourself tangible outcomes (example: If X doesn't change by this date, I'm finding a new job) and stick to those.

All the best.

</comment><comment><USER5> I don't know what kind of financial situation you're in, so I'd recommend securing a new job before you quit, but if you are doing fine financially, you may want to consider quitting first. Health is not cheap.

Burnout is a very real thing; personally, I didn't realize I was burnt out until months later, and I just felt nothing. Absolutely nothing. And it's not like you can just flick a switch and make it all okay again.

That said, make a best effort to not burn any bridges and leave as amiably as possible. Good luck!

<comment><AUTHOR> Thanks for this. Financially, I could survive quitting before securing a new job. That said, I have told myself I will hold out for the 12 month mark, for credibility.

</comment></comment><comment><USER6> Get out. Get out get out get out.

Without knowing the specifics of your situation, I can't say much about you vs. them--usually, it's a team effort. Don't feel bad about leaving, whoever is at fault.

Put in your notice, or just call in and quit (yay right to work!), and take some time to reflect on what wasn't working for you. Then, start a new gig with an eye towards avoiding that.

The shittiest part about burnout is that you start to question if it's all your own fault: it's not.

</comment><comment><USER7> > not sure if a work environment can do this to somebody or if I just have my > own problems?

Think of your current job as a personal research lab-- can you devise and build-in all the work elements you miss? Professional challenges, Deadlines, Development, Collaboration?

Ultimately, leaving is easy. It's quite hard to connect with a job that truly 'gives' you everything you need to stay engaged.

</comment><comment><USER8> Do not worry. I have seen lot of people changing jobs frequently in this field (me included :). After college, it takes some time to realize what type of job and work suits you well. Do not be afraid to change the environment. I wish you a very good luck!

</comment><comment><USER9> Can you get out _of that role?_

You said "Lack of a real challenge". Can you go to your supervisor/manager/boss and say, "Look, I'm ready for more of a challenge. Got anything harder I could work on?"</comment>


Alfred workflows to increase productivity and speed up repetitive tasks - <AUTHOR> https://www.alfredworkflows.store/ <comment><AUTHOR> Hi!

I made up this new Alfred marketplace of workflows as a guy fancy of digital tools and productivity. I think you could like it.

Alfred workflows ([http://alfredworkflows.store/](http://alfredworkflows.store/)) is a curated list with a selection of 100+ Workflows for everyone divided into 13 Categories (Design, Development, Productivity, Video and others...) and for different job titles (Developers, Project Managers, Designers…)

The community of Alfred users and I will add more every week to help people and you be more productive.

This is a version 1.0, not perfect. Hope you will enjoy it.

What do you think? Feel free to ask me any questions and share your feedback.

Cheers! Florent</comment>


Watch Out Google, Obama's Antitrust Chief Is Looking To Make A Big Case - <AUTHOR> http://www.techcrunch.com/2009/05/11/watch-out-google-obamas-antitrust-chief-is-looking-to-make-a-big-case/ <comment><USER2> I hate the whole idea of anti-trust.

Charge more than your competition and your abusing your monopoly.

Charge less than them and your pricing to destroy competition and monopolise the market.

Charge the same as your competition and your colluding on price.

Anti-trust laws simply penalise big, successful companies for the fact that they're successful.

<comment><USER3>
      "Now let me state the present rules,"
      The lawyer then went on,
      "These very simple guidelines,
      You can rely upon:
      You're gouging on your prices if
      You charge more than the rest.
      But it's unfair competition if
      You think you can charge less!
      "A second point that we would make
      To help avoid confusion...
      Don't try to charge the same amount,
      That would be Collusion!
      You must compete. But not too much,
      For if you do you see,
      Then the market would be yours -
      And that's Monopoly!"

      --"The Incredible Bread Machine"

<comment><USER4> Is this a poem? Or will it compile?

<comment><USER3> I needed to use code formatting to get it to honor the line breaks.

<comment><USER4> Makes sense, my underlying question being if this whitespace is significant.

<comment><USER5> I wouldn't have even noticed that it rhymes without the whitespace.

</comment></comment></comment></comment></comment></comment><comment><USER6> Bait much?

Isn't Arrington supposed to be a lawyer? Don't you remember the actual Microsoft case? It wasn't about whether MSFT was a monopoly. It was about the overt predatory actions MSFT undertook to maintain that monopoly. The MSFT action was a "when, not if" situation; MSFT blatantly strangled the browser market using their OEM monopoly.

The only fact TechCrunch has to marshall here is that Google is big and has commanding market share. But so does Apple in music, Microsoft in Office software, Intel in X86, Blackboard in educational software, Monsanto in GM crop strains, Bloomberg in financial terminals, several private health insurers in regional markets, and I can keep clicking through Google News results to generate more of these.

</comment><comment><USER7> How likely is this with Eric Schmidt being Obama's advisor? [http://www.sfgate.com/cgi- bin/blogs/techchron/detail?blogid=...](http://www.sfgate.com/cgi- bin/blogs/techchron/detail?blogid=19&entry_id=39176)

Talk about a conflict of interest...</comment>


Deal reached on $2T coronavirus stimulus bill - <AUTHOR> https://www.latimes.com/politics/story/2020-03-24/congress-white-house-stimulus-deal-coronavirus <comment><USER2> Like many in the Bay Area, I don't qualify for an economic stimulus check, despite really needing it. Is it so hard to understand that someone's 2018 tax return might not reflect their current need or circumstances?</comment>


One of Canada's most prolific romance scammers - <AUTHOR> https://www.chatelaine.com/living/romance-scammer-canada-marcel-andre-vautour/ <comment><USER2> > "What people don't understand is how the victims in these scams are > manipulated and groomed. For the criminals, this is their job and they are > extremely good at it," says Roy Beauchamp. In most cases a fraudster will > start with "love bombing," either online or in person. The > technique—flooding a person with affection and attention to fast-track > intimacy and build dependence—is also used in cult recruitment strategies. > Mirroring—reflecting a person's experiences, likes and dislikes—is another > effective tool for creating the illusion of having found one's "other half."

It is easy to scoff at other people's mistakes, but ultimately, we're all a mess of biological impulses that want to be loved.

I like to think of myself as reasonably smart, but against someone like the guy described in this article? Who's had tons of practice conning others? It would probably be like like going in the ring with a pro MMA fighter.

> A Federal Trade Commission survey from 2013 found that participants who had > experienced trauma—a death, a divorce, a stressful career incident—in the > previous 24 months were more than two-and-a-half times as likely to have > experienced fraud than those who had not.

Astonishingly cruel.

<comment><USER3> I think the strategy is to avoid someone who doesn't have a job locally that's verifiable and not give them money.

<comment><USER4> The challenge is that even having a strategy fails when you're in a vulnerable place and someone comes along and says and does all of the "right" things.

Many people are deeply lonely and will do and believe anything someone says if that someone is offering love and affection.

</comment></comment></comment><comment><USER5> This goes places that probably aren't going to be much appreciated on HN. This is a hard problem to solve and it's complicated.

<comment><USER6> valuable and insightful comment

</comment></comment><comment><USER7> Vautour meaning vulture in French, nice aptonym.

</comment><comment><USER8> This is a really big spectrum, and I wonder what the true cost is. Due to my position, I have a lot of firsthand knowledge from people who have either been unknowingly or knowingly 'scammed'. That is, some guys knew the women just wanted money in the end, but didn't mind because they loved having someone to talk to. Many were married. Some even 'married' women and brought them to the USA, under a relationship more akin to a caretaker than a wife. I guess both sides benefit in some way, but in reality, it's still a scam, if not to anyone but the US Government. And some truly just want money and disappear, which is what the article references. This happened to my aunt, and she wrote off her family for trying to stop her. Really sad.

I consider all three scams of some sort, and the real money involved would balloon.

</comment><comment><USER9> You know what's interesting here? - The steps/trap or the playbook that these scammers have mastered</comment>


A review of the effects of installing air filters in classrooms - <AUTHOR> https://statmodeling.stat.columbia.edu/2020/01/09/no-i-dont-think-that-this-study-offers-good-evidence-that-installing-air-filters-in-classrooms-has-surprisingly-large-educational-benefits/ <comment><USER2> A thread on the article that Gelman is responding to: [https://news.ycombinator.com/item?id=22006033](https://news.ycombinator.com/item?id=22006033)

</comment><comment><USER3> > _When you see a report of an interesting study, contact the authors and push > them with hard questions: not just "Can you elaborate on the importance of > this result?" but also "How might this result be criticized?", "What's the > shakiest thing you're claiming?", "Who are the people who won't be convinced > by this paper?", etc._

That's a nice set questions, unnervingly disarming! Versatile too - it would be interesting to see some journalists use a similar line of enquiry with pronouncers of political policy.

</comment><comment><USER4> The sad fact is that sober analyses like these won't make their way around. Meaning a large subset of readers of the first article will have more "evidence" for their mistaken interventions to improve academic performance. On the plus side, installing air filters in schools is cheap enough that they should do it anyway -- not to mention the morality of forcing kids to be in school for half the day when the conditions aren't healthy.

</comment><comment><USER5> It's obvious. The author of the air filter paper didn't have the luxury of having air filters in their office. They're hardly to blame.

</comment><comment><USER6> I thought a current suspect of diminished classroom performance is _CO2_ , and a typical filter won't help there. I'd like to see a study with CO2 sequestration in classrooms and/or other people-dense indoor settings.

<comment><USER7> > CO2 sequestration

Or perhaps design buildings with windows that people can open?

At the risk of sounding facetious, I think most people underestimate how much CO2 is produced by 20 odd people in a room. Equally we underestimate how much air is renewed by just opening a window.

</comment></comment><comment><USER8> I really wish this was a continuing series on research that gets picked up in the popular media. There's so much questionable coverage out there.

<comment><USER9> That is in fact a common topic on Gelman's blog, if you go through the (large) archive.

</comment></comment><comment><USER10> ..or schools willing to change their air filters (or attempt to measure the effect of having changed their air filters) are more likely to be among the higher performers according to traditional KPIs (when controlled for observer bias)?

<comment><USER11> The article explains why the air filters were installed, and it doesn't fit your supposition.

<comment><USER10> agree, I actually expect there to be all sorts of positive correlations with clean air - but they all start with caring about it enough to do something like change a filter

<comment><USER12> gfody, the schools had no choice about changing their filter or not. In fact, the whole premise of the study relies upon that fact!

<comment><USER10> good point, crucial even.. thank you I should get back to work :)

</comment></comment></comment></comment></comment><comment><USER13> _New study finds no evidence of educational benefits from installing air filters in classrooms_

A new study was performed of a set of Los Angeles schools and found no effects on test scores, comparing schools with and without newly-installed air filters.

However, this was a small study, and even though it found null effects, it could still be worth exploring the idea of installing air filters in classrooms, given all that we believe about the bad effects of air pollution.

We should not let this particular null study deter us from continuing to explore this possibility.

<comment><USER14> If the air pollution is really a problem, shouldn't the locals address this problem for the sake of public health?

This is something I don't understand. Is it possible that the air pollution doesn't create health problem, but only creates cognitive problem?

</comment></comment><comment><USER15> There was article here not so long ago linking how pollution affects IQ so I am more and more convinced that in the times where air is polluted by smoke and microplastics there can be a benefit of installing filters, if it is something that costs 600 dollars per classroom to fit two Dyson air filters it makes sense to spend this kind of money even to ease breathing for kids with Asthma

</comment><comment><USER16> I can't figure out what kind of common air filter would filter out natural gas?! Am I won't out would they have never worked for their intended purpose?

<comment><USER16> Damn auto correct. "Am I wrong or"..

<comment><USER17> You should still be able to edit your comment. There's a two-hour window.

</comment></comment></comment><comment><USER18> Thanks for posting this. The tl;dr is:

> I don't think the correct summary of the above study is: "A large effect was > found. But this was a small study, it's preliminary data, so let's gather > more information." Rather, I think a better summary is: "The data showed no > effect. A particular statistical analysis of these data seemed to show a > large effect, but that was a mistake. Perhaps it's still worth studying the > problem because of other things we know about air pollution, in which case > this particular study is irrelevant to the discussion."

> The point is that these data, analyzed appropriately, do not show any clear > effect. So if it's a good idea to keep on with this, it's in spite of, not > because of these results.

</comment><comment><USER19> Better than the other article by far.

</comment><comment><USER20> Anyone with expertise in this field care to comment? It seems too good to be true?

<comment><USER21> Another problem that is becoming more of an issue recently is that the "energy efficient sealing" of rooms is causing carbon dioxide to rise higher than expected. Installing air filters may be a proxy for mixing carbon dioxide better with outside air. <shrug>

In short, this study has no real controls, a lot of problems, and not a lot of evidence.

<comment><USER22> As a side note, it is not like the kids live in the classroom, they are exposed nonetheless - when outside the classroom - to "normal" air, let's say that in a week they are 30 hours or less in class and the remaining 138 hours they are not.

So these magical filtering allows for intellectual improvements when impacting roughly 30/168=17.8% less than 20% of inhaled air?</comment></comment></comment>


Show HN: Incremental chained MapReduce indexes with subscriptions - <AUTHOR> https://github.com/pixelcort/SaltDB

<comment><AUTHOR> I created this prototype over Thanksgiving week to scratch an itch. CouchDB has incremental MapReduce, but no chaining of views. Riak has chained MapReduce, but doesn't natively support incremental indexing. Also, I haven't seen any index where an app can be notified if a particular reduced value changes.

Any feedback would be much appreciated.</comment>


Native Client: Getting Ready for Takeoff - <AUTHOR> http://blog.chromium.org/2011/02/native-client-getting-ready-for-takeoff.html <comment><USER2> Just like Wave, NaCl is an inspiring but highly technical innovation that Google started trying to attract community interest in while it was still on the drawing board. Mozilla and others have already turned their noses up at it. What Google needs to do is finish the thing quietly, build something spectacular with it, get lots of people using it, and _then_ casually slip into the conversation that other browsers are welcome to use it.. if, you know, they want to.. (then shrug nonchalently).

<comment><USER3> I can't imagine anything more spectacular than running native code inside the browser securely and across multiple OS.

Google is handling this just as they should and I can't see how else would you introduce such a major piece of browser infrastructure.

This doesn't even compare to Google Wave.

<comment><USER2> Yes, it's 'spectacular' to you and I. I meant in the broader sense of spectacle, the sense in which people on the street want to try it out because it's like nothing they've ever seen before. And that is possible with NaCl if expectations are properly managed.

<comment><USER4> We already know what the killer demo is going to be, Doom in the browser.

<comment><USER5> Doom 3 maybe. We already have Quake 2 running in the browser using WebGL (<http://code.google.com/p/quake2-gwt-port/>), anything less would undersell NaCl.

<comment><USER4> I was afraid of that, but yes, you're right. Doom is old enough to run with JS already.

</comment></comment></comment></comment></comment></comment><comment><USER6> The latest Mono 2.10 has NaCL support provided by Google. That means F#, C#, IronPython and IronRuby, and Java through IKVM, should work with little or no work.

This is a very exciting technical development but it remains unclear what the killer application will be.

</comment><comment><USER7> I hope this is not ActiveX-sans-security-hole all over again. Native code has the huge benefit of being native but also the huge drawback of platform- dependent, which is a huge step backward for the openness of the Web. I only hope the use of NaCl does not take off is kept to the minimum and the absolutely necessary.

Even if they are talking about Portable NaCl, I have doubt about how portable they can make it.

<comment><USER8> The "platform" for NaCl is x86, so the same code runs on OS X, Windows, and Linux. pNaCl supports both instruction sets (x86 and ARM), so it's even better.

<comment><USER7> On ARM support, from their website:

> Native Client runs on 32- and 64-bit x86 systems that use Windows, Mac OS X, > or Linux. _Some ARM support_ is implemented in the source base, and we hope > to make it available for application developers next year.

<comment><USER9> At least with the current native client, you ship architecture-specific binaries. So the existence of "some ARM support" doesn't help you browse a site that posted x86 object code.

They do have a version that's based on shipping LLVM bitcode instead, but that is not yet ready for prime time and it's not clear when it will be.

Here is a comment of mine from last time NaCl came up that explains this and other issues with it:

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

</comment></comment></comment></comment><comment><USER10> This piece is essential to Chrome OS. It is the container for legacy code and things where it'll be unrealistic for javascript to handle for years to come.

Countdown to SSH client functionality in 5... 4... 3...

<comment><USER8> Unfortunately, NaCl seems to have all the same protocol and same-origin restrictions as JS, so you can't even open a frickin' socket.

<comment><USER10> Didn't Google pay for a student to the naclssh port as part of the code of summer project?

Something tells me such limitations will be temporary...

"This allowed us to remove the expiration date and localhost security restrictions we had adopted in previous research-focused releases.

We are excited to see Native Client progressively evolve into a developer- ready technology. In the coming months we will be adding APIs for 3D graphics, local file storage, WebSockets, peer-to-peer networking, and more."

<comment><USER8> AFAIK the security limits are intentional and when they add new NaCl APIs they will have the same restrictions as the equivalent JS version of the API. NaClets that run within an "app" instead of a "page" may be able to bypass some restrictions, though.

</comment></comment></comment></comment><comment><USER11> Very cool. But I'm holding my breadth for the llvm version. Think mobile ARM.

<comment><USER12> On the one hand I think it's good for google to avoid "picking winners" before there's any competition. On the other hand, I think LLVM support will be what propels NaCl adoption.

</comment></comment><comment><USER13> Soon your browser will be synonymous with your computer. There is a bunch of projects that work towards that same goal \- Chrome OS + NaCl (another part of their framework is called pepper) - WebOS - Various JavaScript SDKs (specialized like Game Closure or heavyweight like Sproutcore or small like backbone) I always found it inefficient to 'install' software in multiple locations. It gives you a lot of headaches wrt updates, piracy etc.. I'm excited to see where this goes! Notably not participating in the development is Apple, but I have a feeling they may be working on something like this as well (remember how the iPhone initially launched with just a JS SDK)

<comment><USER14> "Soon your browser will be synonymous with your computer."

This prediction is going on 20 years old. :)

</comment></comment><comment><USER15> Their "Hello world" demo is kind of a turn off: [http://code.google.com/p/nativeclient- sdk/source/browse/trun...](http://code.google.com/p/nativeclient- sdk/source/browse/trunk/src/examples/hello_world_c/hello_world.c)

</comment><comment><USER16> NaCl is disabled by default on the Cr48 development laptop. I would at least hope this means they start enabling NaCl by default in the ChromeOS source tree.

<comment><USER17> The article mentions a clear criterion for flipping the on-by-default switch:

"We'll also be working on Dynamic Shared Objects (DSOs), a feature that will eventually allow us to provide Application Binary Interface (ABI) stability. [...] Until the ABI becomes stable, Native Client will remain off by default. "

</comment></comment><comment><USER18> It's really a shame that JS has stuck around so long. Google is right to be looking into allowing developers to create something usable in the browser without having to use JavaScript or Flash.

Even Brendan Eich openly talks about JS's flaws and admits that it lacks a lot of important things, mostly attributable because he had only a few weeks to compose something to stop Netscape from doing "something worse". See [http://www.jwz.org/blog/2010/10/every-day-i-learn- something-...](http://www.jwz.org/blog/2010/10/every-day-i-learn-something- new-and-stupid/) .

I greatly anticipate the day when I script a web page in Python instead of JavaScript.

<comment><USER19> Mr Eich in the comments responding to someone accusing them of screwing up Javascript and selling out:

"But at the time, mostly we felt the need to move very quickly, not to make money but because we knew Microsoft was coming after us. Microsoft low-balled Netscape in late '94, and the Jims (Clark and Barksdale) told them to pound sand. After that, we felt the monster truck riding up on our little Yugo's rear bumper, month by month.

"If you appreciate this and it is accurate, consider that JavaScript (please, not "JScript") saved you from VBScript."

</comment></comment><comment><USER15> What are the chances of this getting adopted as a standard eventually?

</comment><comment><USER20> This is funny because I just opened a PSD in Gmail thinking that it would throw some kind of error... but then it worked almost flawlessly! (albeit it was missing layer styles, as far as I can tell)</comment>


Ballmer: "[Microsoft's online unit] are 3 year olds playing basketball with 12-year olds!" - <AUTHOR> http://www.forbes.com/technology/2007/10/18/microsoft-google-domination-technology-software-cx__wt_1018microsoft.html "You're 3-years-old and you're playing basketball with 12-year-olds. You're going to dunk on the other guys some day!"<p>If that's what the CEO really thinks, maybe time to short MSFT. <comment><USER2> Part of Microsoft's history is actually being good when it really matters, I don't know if they still have that in them.

'Asked if he thought Google's word processing and spreadsheet applications were good, Ballmer was blunt: "No, I don't."'

He's right, you know.

</comment><comment><USER3> That statement predicts the growth of the online unit will trump the growth of other units. I believe Ballmer is just too smart for most people to understand and he uses his own language, he doesn't care if others understand he knows that only action is going to prove himself correct.

<comment><USER4> He comes off as arrogant and psychotic.

<comment><USER3> Might be from subliminal programming in windows itself that flashes on the screen so fast that you don't notice but your subconscious does. I use windows and I am just like him, I use lots of weird analogies that no one appreciates.</comment></comment></comment>


Learn the ropes of Mobile Services with Brent Simmons (iOS/Windows Azure) - <AUTHOR> http://www.windowsazure.com/en-us/develop/mobile/ios/

<comment><AUTHOR> Interesting to see long time Mac/iOS developer Brent Simmons collaborating with Microsoft in this way. Is MS beginning to adapt to the realities of mobile? I see that they also have resources for Android.</comment>


The Schism Over Bitcoin Is How Bitcoin Is Supposed to Work - <AUTHOR> http://www.wired.com/2016/02/the-schism-over-bitcoin-is-how-bitcoin-is-supposed-to-work/ <comment><USER2> "He also complained of denial-of-service attacks against Coinbase and others, while The New York Times reported that some developers had received death threats.

[...]

But he raises a good point—denial-of-service attacks and death threats notwithstanding.

[...]

This is pretty much how things are supposed to work. Sure, [...] the election tactics got out of hand at times. But, well, this is the internet."

This is a hell of a thing to yadda yadda. Calling DDOSes and death threats "election tactics" is ridiculous. If running X version of bitcoin is voting, then it's not a (free) election if you interrupt people on the way to the polls and intimidate them when they're not backing your candidate.

</comment><comment><USER3> A critical distinction between democracy and Bitcoin is that Bitcoin is an _opt-in_ system.

Let's say alternative Bitcoin software causes a hard-fork in the blockchain: you now how two currencies. The parties involved on each side of the chain might decide that it's worth it to keep two competing currencies going, or they may reconcile the fork and return to running compatible software. In the end, the voluntary choices of the parties determine where they go (informed by economic incentives, of course).

Democracy is a system in which some group of people hold _coercive power_ over the rest of the population. If the rules change (income tax, imminent domain), there is no opt-out short of leaving your property, family, career and moving to another country. Your compliance with the new rules of the game is ensured at the end of a gun.

<comment><USER4> The only distinction is that democracy has widespread support whereas Bitcoin does not. "Coercion" is simply what happens when society decides unilaterally to do things any one way.

<comment><USER3> First: "Society decides." Society is not an entity that can reason or take action.

Second: Are you saying that if Bitcoin had as many users as democracies that there would be no remaining distinction between the two systems?

<comment><USER5> What outsiders don't seem to understand is the people shouting "Bitcoin is or should be a democracy" the loudest are the ones who stand to benefit the most from seizing power from the current core developers.

As if those people have any intention whatsoever to listen to the opinions of billions of poor people when making technical protocol decisions. They don't want real democracy - they want _their_ democracy where they're in control. And for anyone wondering what that control looks like, here are some direct quotes from the "democracy" crew:

Gavin Andresen: "there will be big companies spending lots of engineering dollars on their own highly optimized versions of bitcoin. I bet there will be alternative, secure-and-trusted, very-high-speed network connections between major bitcoin transaction processors. Maybe it will just be bitcoin transactions flying across the existing Visa/MasterCard/etc networks" [1]

Gavin Andresen: "I think long-term the chain will not be secured purely by proof-of-work. I think when the Bitcoin network was tiny running solely on people's home computers proof-of-work was the right way to secure the chain" [2]

Gavin Andresen: "bitcoin is already more decentralised than it needs to be" [3]

Mike Hearn: "probably 2 or 3 racks of machines" [4]

Gavin Andresen: No, it's completely distributed at the moment. That will begin to change as we scale up. I don't want to oversell BitCoin. As we scale up there will be bumps along the way. I'm confident of it. Why? For example, as the volume of transactions come up--right now, I can run BitCoin on my personal computer and communicate over my DSL line; and I get every single transaction that's happening everywhere in the world. As we scale up, that won't be possible any more. If there are millions of bitcoin transactions happening every second, that will be a great problem for BitCoin to have-- means it is very popular, very trusted--but obviously I won't be able to run it on my own personal computer. It will take dedicated fleets of computers with high-speed network interfaces, and that kind of big iron to actually do all that transaction processing. I'm confident that will happen and that will evolve. But right now all the people trying to generate bitcoins on their own computers and who like the fact that they can be a self-contained unit, I think they may not be so happy if BitCoin gets really big and they can no longer do that.

[1]: [https://bitcointalk.org/?topic=3118.0](https://bitcointalk.org/?topic=3118.0)

[2]: [https://lists.linuxfoundation.org/pipermail/bitcoin- dev/2015...](https://lists.linuxfoundation.org/pipermail/bitcoin- dev/2015-May/008094.html)

[3]: [http://www.bitcoin.kn/2015/09/adam-back-gavin-andresen- block...](http://www.bitcoin.kn/2015/09/adam-back-gavin-andresen-block-size- increase/)

[4]: [https://en.bitcoin.it/w/index.php?title=Scalability&oldid=35...](https://en.bitcoin.it/w/index.php?title=Scalability&oldid=3555)

IOW, the goal of their democracy is to usurp control of full nodes from individual hands and make that into a Corporate-dominated service. It would basically turn Bitcoin into an enterprise database that most people are stuck accessing as a proprietary SaaS.

<comment><USER6> Consider that much of the opposition to Core comes from the perception that Blockstream, which employs many of the core developers, is usurping it to be a high-fee, low-transaction network so that they can incentivize (and profit from) the use of their lighting network.

That's why the opposition is called "classic" not "bitcoin democracy". Their position is they are getting back to what bitcoin should have been.

And bitcoin originally had larger than 2mb blocks. The 1mb block limit was a short term solution to a problem that existed back then... that was never lifted.

<comment><USER5> The performance test data shows 32MB blocks are the absolute maximum block size that can be handled on desktop PCs today [1]:

> After simulating the creation of blocks up to 32 MB in size, we have arrived > at some interesting conclusions:

\- a 32 MB block, when filled with simple P2PKH transactions, can hold approximately 167,000 transactions, which, assuming a block is mined every 10 minutes, translates to approximately 270 tps

\- a single machine acting as a full node takes approximately 10 minutes to verify and process a 32 MB block, meaning that a 32 MB block size is near the maximum one could expect to handle with 1 machine acting as a full node

\- a CPU profile of the time spent processing a 32 MB block by a full node is dominated by ECDSA signature verification, meaning that with the current infrastructure and computer hardware, scaling above 300 tps would require a clustered full node where ECDSA signature checking is load balanced across multiple machines.

In addition:

> Aside from the obvious network and storage constraints of running a full > Bitcoin node at large block sizes, it appears the Bitcoin network is capable > of handling a substantially higher transaction volume than it does > currently. The CPU time being dominated by ECDSA signature checks at high > transaction rates suggests a clustered full node architecture could process > credit-card-like transaction rates by using a load balancing / offload > approach to ECDSA signature checking, e.g. a full node with a 10 machine > cluster would top out at >2,000 tps.

> The resources and know-how required to run a clustered node like this may > impose a significant centralizing force on Bitcoin. Backpressure against the > centralization of Bitcoin may well drive alternative solutions to having all > transactions on-chain. Alternatively, it may end up that Bitcoin adoption > grows slowly enough that the computing power of a single node grows quickly > enough to avoid requiring a clustered full node architecture.

Under Gavin Andresen's original plan, the 32MB limit could've been crossed in Jan 2018 when the size doubled to 40MB. Importantly, Gavin has since dropped the idea for a block size of 2MB. Hence you really can't claim that your _own_ preferred plan for block size won't result in "a high-fee, low-transaction network". It's 2MB - that's a very far cry from VISA and it's only 0.4MB more than the scaling roadmap - that's a difference of at worst 3 tps out of VISA's 56,000.

Unless your intent is to quite literally put 100% of Bitcoin full nodes in datacenters, it's as clear as day that raising and re-raising block size ad infinitum doesn't work, as it usurps control of full nodes from individuals. It effectively turns Bitcoin into an enterprise database only accessible to the rest of us through garbage proprietary SaaS platforms. Clearly this isn't a benefit and we should be pulling out every possible stop to avoid it from happening. Look, if your vision for Bitcoin is that it should be like Parse.com for credit cards, I'm sorry but we're just going to have to agree to disagree.

<comment><USER7> > Unless your intent is to quite literally put 100% of Bitcoin full nodes in > datacenters

It is a fallacy to think that unless people can run nodes on dial-up in basements, the Bitcoin network has failed in its mission.

Thousands of nodes running in data centers all over the world can provide a scalable, fault-tolerant, censorship-resistant, decentralized relay network.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Their is no "supposed to" in Bitcoin. Its an experiment that went totally insane. It does not have any way of finding agreement that ankered within the blockchain. The potential value that could be destroyed is so big that it compels people to find some kind of agreemnt.

Newer blockchains are already learning from these problems and are innovating. Bitshares for example has the goverment structure built in, most of the paramaters can be chainged by voting.

Now that does not make it democracy as we know it, because the power of the vote is based on how much stack you have. Its essentially a company with stack holders.

Doing a democracy as we have it in real live will be hard because of the identity problem.

Bitcoin need some way to resolve these conflicts and if possible root the choices in the blockchain itself.

This issue really forces you to think about how we make choices in groupes, and what is "fair".

Their is a lot of research on this in political economics. James Buchanen had interesting things to say about the Economic of Club and the Economics of Constitution.

I also recommend,"Choosing in Groups: Analytical Politics Revisited"

<comment><USER9> I don't think there is a problem with the way bitcoin works. The majority of miners, i.e. the people who actually have invested the money to run the network, decide what software to run, and therefore what bitcoin is.

Bitcoin depends entirely on the self-interest of the involved parties to not destroy the system they have invested so much in. That's how much of the real world works too.

<comment> TD-Linux No, the miners don't decide what Bitcoin is. If a miner produces an invalid block, other Bitcoin nodes will reject it.

It's true that the recent hard fork proposals have keyed off miner voting, but they wouldn't have to - they could just activate at a certain time, block height, strawpoll vote API, or whatever.

</comment></comment></comment><comment><USER10> I fail to see how "DDOS and death threats" == "democracy".

All of this has been covered/talked about ad nauseam, as far as I'm concerned what this comes down to is 2 basic facts:

1\. There's a core development team (with it's fair share of internal politics and power struggles) who is supposedly looking out for potential issues affecting Bitcoin's operational health. Once they agree on the change and implement it, there's no "voting" by any other players in the Bitcoin ecosystem. They just do what they think is best.

2\. There's a disproportionate amount of hashing power concentrated in large mining pools. This would be bad enough but what makes it even worse is the heaviest hitters are in China and are unified against the biggest proposed change SOME of the core team members like Mike were/are advocating.

So now how this standstill will resolve - remains to be seen. There are multiple factors at play but as of right now the situation isn't pretty. To claim that "this is how bitcoin is supposed to work" is to agree with Mike in saying that it is messed up beyond recognition :)

<comment><USER6> The voting is built into the bitcoin protocol-- the miners that find the next block are voting for the piece of software they are running. If there is a schism and some miners are running other software then two chains could -- COULD -- emerge-- but one will rapidly become the dominant one. ( for a period the two chains will effectively double everyone's bitcoins, but the losing chains coins will rapidly lose value as hashing power switches to the dominant chain.)

This could be chaotic so the debate is really how to avoid two co-existing chains in hard fork situation.

But bitcoin itself is, every 10 minutes, voting for what the "right" chain is, which is defined as the longest.

Right now today if you're mining on a block and find out that there is a longer chain, the node switches.

<comment><USER11> > Right now today if you're mining on a block and find out that there is a > longer chain, the node switches.

Not if the longer chain is invalid under your node's consensus rules. The rule is "most-work _valid_ chain."

</comment></comment></comment><comment><USER12> I think the problem is precisely that it is (maybe) a democracy -- and that's not what people expected. They expected a distributed, "trust free" network for clearing transactions.

And no such thing exists, as it turns out. How can this _not_ be bitcoin's practical death?

<comment> TD-Linux Well, so far none of the chain forks have been accepted by the network, so I wouldn't call it dead yet.

It really isn't a democracy - there is no method to force the minority into the majority's will. If a controversial chain fork happens, there will now be two Bitcoin currencies. Those on the original chain won't be forced to switch.

<comment><USER6> They won't be forced to switch but they will be highly incentivized to do so, as people in the minority coin sell them out to buy the majority coin.

Will be really interesting if any exchanges support this concept of two bitcoin chains coexisting. I bet they don't.

<comment> TD-Linux Right, but it's also hard to define the "majority" and "minority" coin here. You could define "majority" based on "most hashpower", but say that chain is being mined exclusively by the 3 largest China-based miners, would it still be considered the most valuable? Or maybe only by one miner, like when ghash.io was over 50%?

If the exchanges don't support the concept, it'll still at least be up to the user to figure out which chain the exchange is on.

</comment></comment></comment></comment><comment><USER13> Without a direct quote from Satoshi Nakamoto (whom ever they are) during the launch of Bitcoin, or a direct quote from the original whitepaper I'm not going to buy what Wired says is how Bitcoin is "supposed to work". One, because either of those quotes would show some deep digging on the author's part. And two either of those quotes would actually support the premise.

<comment><USER6> The white paper goes into the issue to some extent with the "longest chain wins" method, which is effectively, hash power based voting for bitcoin software. (the software with the most hash power wins.)

<comment><USER14> And since hash power correlates with wealth, this means the wealthiest (who care enough to hash) win.

</comment></comment></comment><comment><USER15> There is no ruler. The user can choose the software to run. It's possible there will be multiple protocols that claim to be Bitcoin. It would be nice if some general consensus emerged not to use the Bitcoin name for specifications that introduce substantial changes to the underlying economics or reward structure of the protocol. But even if there's no consensus on semantics, each group can choose to ignore the other and the only consequence will be that I have to check who is speaking before I conclude they mean the same thing I do when I say "Bitcoin".

<comment><USER16> There can only be one blockchain though. As far as I know, any long standing blockchain has a unique name.

<comment><USER15> If you hard-fork the Bitcoin blockchain, but users continue to run implementations of both, then you have two separate blockchains that are both called "Bitcoin". We could call one of these "XT" or "Bitcoin Prime" I suppose.

</comment></comment></comment><comment><USER17> _> "Bitcoin is not having a crisis. It's having an election," says Brian Armstrong, the CEO of Coinbase, a very well funded startup based in San Francisco. "The [prevailing] mental model for what's going on is a split, a divide in the community. But the right model is an election." ... Bitcoin is designed to operate as a democracy, and indeed, it's deep into a major election. This is pretty much how things are supposed to work._

Is it? That's really what this is all about.

Unlike a constitutional political system, Bitcoin has no explicit meta-rules that govern how to change its basic rules. On one side of the present "civil war" over the size of transaction blocks is a group that wants to make a minor technical change to the protocol to allow it to support a higher volume of transactions; and on the other side is a group that doesn't want that to happen.

But these groups really represent two sides of a more substantial debate. One side is advocating for the first deliberate change to the protocol's basic rules, and the other side is saying, no, you can't do that. Michael Marquardt (aka theymos), who controls bitcoin.org, bitcointalk.org, and /r/Bitcoin, and who is a vehement proponent of the status quo, has made plain his position in this meta-debate: "Bitcoin is not a democracy."

And that's the position taken by several Core developers, who insist that the block-size is a "technical issue" over which users and stakeholders should have no say. Gregory Maxwell, a vocal Core developer on the status-quo side of the debate, and many others, object to changing the protocol in ways that could cause a fork in the blockchain, with clients following one set of rules going one way and clients following other rules going another. It's an objection in principle as much as a practical concern: nobody should be coerced into submitting to a new set of rules by the risk of being separated from the mainstream of the Bitcoin community, and that means we have to stick with the present rules. (Its exponents call this philosophy "consensus".)

So it's the newest setting for the oldest and most basic conundrum of politics: bad rules are bad, but so is changing the rules of the game halfway through. Artificially constrained blocks are driving up the cost of transacting in bitcoin and hampering the currency's adoption; but rules are rules, say people like Maxwell and his colleagues at Blockstream, who have carefully arranged their lives and built their businesses on the assumption that the present rules will be the future rules. (Blockstream is a company that employs several Core developers and is building a mechanism for transacting in bitcoin off the blockchain, i.e., a mechanism for providing more transaction capacity to an artificially limited protocol.)

And Maxwell and his colleagues have a point. We are, after all, talking about the rules of a currency that was created in part to take away from central bankers, politicians, and the masses the ability to change the rules of the game halfway through. If the block-size limit can be changed, what's to prevent people from changing more important rules, like the one that keeps bitcoin's money supply from growing without bound?

Still, as the saying goes, rules are made to be broken—and the peasants do tend to revolt.

 _Edit: I edited my comment to properly attribute to Marquardt words that I mistakenly recalled coming from Maxwell. I also tried to clarify a couple of points._

<comment><USER18> _> We are, after all, talking about the rules of a currency that was created in part to take away from central bankers, politicians, and the masses_

Ah, no we are not. The last part, about "the masses", was tacked on later by the people who fear democracy. That was never a part of the original vision. Quoting the white paper:

"The proof-of-work also solves the problem of determining representation in majority decision making."

Indeed, it'd have been a nonsensical goal to try and stop "the masses" changing Bitcoin, because "the masses" are the only thing that give a currency its value and attempting to produce a currency that literally nobody can change, even if the vast majority of people decide to change it, is simply not possible to do with software. That's why we call it soft-ware.

Unfortunately, the Bitcoin community has been completely wrecked by people who truly, deeply believe that "decentralised" money means "money controlled by a tiny cabal of developers" rather than the more obvious interpretation of "money controlled by its users".

<comment><USER19> _" The proof-of-work also solves the problem of determining representation in majority decision making."_

Right. The miners rule Bitcoin. That's the way it was set up. The big miners are[1]:

        F2pool     28%
        AntPool    22%
        BitFury    16%
        BTCCpool   12%
        all others 22%

All the miners listed are in China. They all communicate and have issued joint statements in the past.[2] Their position is that the next block size jump should be to 8MB, but there's no rush to implement it.

What bugs Gavin and the "core Bitcoin developers" is that they're not in charge. The "Bitcoin Foundation" is broke and irrelevant.[3]

The original idea of Bitcoin was that mining would be something done as an idle activity on user's PCs. Today, Bitcoin mining is done in big sheds holding thousands of racks of special-purpose machines, located in cold climates and near power stations.

[1] [https://blockchain.info/pools](https://blockchain.info/pools) [2] [http://imgur.com/JUnQcue](http://imgur.com/JUnQcue) [3] [http://www.bloomberg.com/news/articles/2015-12-30/the- final-...](http://www.bloomberg.com/news/articles/2015-12-30/the-final-days- of-the-bitcoin-foundation-)

<comment><USER9> Kinda weird how "China!" is somehow an argument against the big miners all by itself.

Anyone is free to set up a larger mining operation if they are so inclined. Until then, the bitcoin community can't be anything but extremely pleased with how much processing power the Chinese miners are contributing to the system.

> The original idea of Bitcoin was that mining would be something done as an > idle activity on user's PCs.

I don't have a quote handy, but as far as I know that is not true. Satoshi expected mining to eventually be run out of large data centers.

<comment><USER20> >Anyone is free to set up a larger mining operation if they are so inclined.

Sure, all they need are the tens of millions necessary not only to buy the equipment but also to develop their own competitive custom ASICs.

The biggest problem with btc mining is that it's no longer feasible to make an impact with commodity hardware. I think to the extent that Satoshi may or may not have foreseen that, he assumed that the specialized hardware would _become_ commoditized and that users would still have the power to make a meaningful vote. This didn't happen because the Bitcoin network punishes a faster network with increased difficulty, so as soon as you release your ASIC to the masses, the network raises the difficulty to neuter the effects. However, if you keep your hardware private, you can profit from the hardware without making such a large impact that the network edges you out. This allows the biggest miners to find several blocks per day (which is 25 "new" bitcoins + any attached as fees).

Given those incentives, it's only logical that the best hardware would be used privately and that the vote of the everyday bitcoin user (who was _also_ supposed to be a miner) is irrelevant.

</comment></comment></comment></comment></comment><comment><USER5> > It's like a Visa payment network that's controlled not by Visa, but by the > people—one that is open to all and that can move money more cheaply and > efficiently. That's something we should all care about.

The USD doesn't compete against VISA. Gold doesn't compete against VISA. BTC doesn't compete against VISA.

Please, will someone inform these poor journalists that it's sheer folly to pit a currency or a commodity against a Corporation? American Express isn't competing against gold bullion, and VISA isn't competing against BTC. VISA is competing against Coinbase and Xapo.

</comment><comment><USER21> Bram Cohen, creator of BitTorrent, knows a thing or two about how to successfully engineer a decentralised, peer to peer protocol.

Bram wrote about the manufacturing of this 'fake crisis' back in June of last year [1]. He wrote a subsequent post after Mike Hearn's big ragequit in January [2]. And he's written another short post just today [3]. I'd suggest reading these if you want to get some balance to this highly one-sided and simplistic article by Cade Metz in _Wired_.

[1] [https://medium.com/@bramcohen/bitcoin-s-ironic- crisis-32226a...](https://medium.com/@bramcohen/bitcoin-s-ironic- crisis-32226a85e39f#.hvgkb4vxz)

[2] [https://medium.com/@bramcohen/whiny-ragequitting- cab164b1e88...](https://medium.com/@bramcohen/whiny-ragequitting- cab164b1e88#.1pmjtdg6v)

[3] [https://medium.com/@bramcohen/double-billing-is-not- healthy-...](https://medium.com/@bramcohen/double-billing-is-not-healthy- competition-b698c345b11e#.hjwrfhn1g)

</comment><comment><USER22> yeah, and oxidation is how we're supposed to die, how stuff works or not and their effect being beneficial or not are orthogonal.

</comment><comment><USER23> Yeah, maybe. But all of the security problems, the fact that the average user won't ever understand it, and the massive swings in value will stop me from ever taking it seriously

<comment><USER24> How much does an average credit card user understand about what happens when they swipe it?

<comment><USER25> They don't care "how" it works. They know there is _a_ responsible subject (VISA, Mastercard, ...) behind the curtains, and they know such responsible subject to be have obtained clearing from the local government. When you invest money into bitcoins, who is your guarantee?

<comment><USER26> I'm not even sure people differentiate between their banks and the company behind the type of card itself, to them it's just "a credit card".

</comment></comment></comment></comment><comment><USER27> I'm not going to bother reading what Wired have written, i'll just assume it's nonsense if the HN comments concur.

</comment><comment><USER28> A fascinating bit of self-analysis as I see this headline appear on HN ...

I typically don't find wired.com headlines interesting and typically don't follow their links. However, this headline _did_ pique my interest ...

... and I didn't follow it because I am not interested in the "deal" that wired.com offered the other day. I have neither a dollar I want to pay them nor do I intend to disable any adblocking.

Or whatever the deal was. Who cares. The bottom line is, I didn't read it.</comment>


Interactive visualization of data augmentation in Keras - pascal-dufour https://stepup.ai/exploring_data_augmentation_keras/ <comment> pascal-dufour Colab tutorial to visualize image data augmentation options</comment>


Large Applications on AWS Lambda - <AUTHOR> https://blog.zappa.io/posts/slim-handler <comment><USER2> Have you done any benchmarking on the impact this has on cold boot performance? I'd considered using this technique in a non-Zappa context but was worried that the performance would be an issue (I ultimately was able to get my package smaller in other ways).

<comment><AUTHOR> No benchmark, and it really depends on the size of the package obviously, but generally transfers inside of AWS are ridiculously fast.

Zappa has an auto-keep warm features, so cold-boot is largely negated.

Also, this is a feature really designed for scientific computing, which generally happens asynchronously anyway, versus say something like web-app serving.

Really the big drawback here is that it sucks up available RAM, so you may still have to do some tweaking on a per-application basis.

Still, this feature was contributed out of a user's own necessity, so I'm certain that others will get use out of it too.</comment></comment>


The Zone - <AUTHOR> http://invalidcast.com/2011/04/the-zone

<comment><USER2> I don't think anyone can argue with is, and it may be stating the obvious for some. But as an example, I found myself recently effectively running my company's web-dev arm of the business, which meant doing pre-sales and proposals as well as having to concentrate on the actual coding and web-dev activities. I simply had to remove myself from the environment I was in (open plan office with 10 other helpdesk guys as well as sales guys constantly talking) find a desk with a window and a view, and no harsh air-con or server noises (and no other people!). I had found my zone.</comment>


Ask HN Go or Rust for concurrent web development - <AUTHOR>

I am a python web developer and I want to try out concurrent programming language for web dev. Which one should I try and what are the pros and cons of each in the context of web development? Thanks. <comment><USER2> Go has more mature libraries for web development and you could argue that it is more suited, due to easy concurrency via go-routines. Rust is closer to c++ in the level of abstraction above the hardware, and complexity of the language.

</comment><comment><USER3> For sure Rust has better design than Go, but I don't know any actively developed web framework in Rust. Go may be a better choice because of ecosystem.</comment>


Spidering the web with CasperJS - <AUTHOR> http://planzero.org/blog/2013/03/07/spidering_the_web_with_casperjs

<comment><USER2> I'm trying to work out what you'd want this for. I suppose as a quick "yes this does actually work" but I can't think of many less efficient ways of spidering things - whole headless browsers? Ouch.

If you needed to do this, you'd use something that already exists - if you just wanted to do it in Node, for some particular reason, why not just use plain requests and an HTTP parser?

I don't mean this to be overly critical, but just in case anyone's thinking this would be a good idea - there are better ones. Just to learn from, fair enough.

<comment><AUTHOR> Good questions!

For this particular project I needed access to more than just the page itself - I needed to interact with scripts and have access to the page resources on a level which matched that of a browser. What you're seeing is only the tip of a much larger iceberg, for which efficiency wasn't the main objective.

You're correct that you can write more efficient spiders if you don't want to do anything fancy (indeed, I've written simple scrapers and spiders in various languages), but this project leant itself better to a full browser environment.

<comment><USER2> Ah! Thanks for clarifying, that makes significantly more sense. I hope you didn't take my querying as too unkind!

</comment></comment></comment><comment><USER3> Can you provide some insights into performance? In my experience, a single page could take between 5-10 secs. to scrape.

<comment><USER4> Is this really scraping the data or just checking for links and getting status?</comment></comment>


U.S. Government Strikes Back Against Chinese Investment - <AUTHOR> http://foreignpolicy.com/2018/03/06/washington-strikes-back-against-chinese-investment/ <comment><USER2> This is sensible. China has played the West, by using the unmaterialized promise of access to its markets to motivate technology transfer to it for its own strategic advantage. It's never going to let a Western company provide the technology to power its critical systems, so there's no reason the US should allow a Chinese one to do the same.

<comment><USER3> In many respects China has had a hands off approach by the world. They have high tariffs and other laws that prevent Western products and services competing in China. I'm no fan of trade wars, or a fan of Trump, but raising the tariffs on China for steel imports is nothing China isn't already doing.

<comment><USER3> :edit: Steel was just an example product of many.

</comment></comment></comment><comment><USER4> This is extremely ironic after decades of pushing the international financial institutions like the WTO and the IMF to "open other countries for investment".

<comment><USER5> It's interesting that the US has advocated free trade whilst also being one of the biggest advocates of sanctions for countries with administrations that are not so sympathetic to its plans for them.

Perhaps what the USA wants is not really free trade but "free trade": new markets to sell labour-derived goods and services to and resource suppliers with very low wages, low standards of services and low food prices in order to maintain its (slipping) financially dominant position in the world.

Viewed from this angle the move makes sense and remains consistent with long- term policy goals. The stance of the current presidential administration is merely convenient. Whether it works in the long term remains to be seen.

I'm a long-term critic of the US administration's trade and foreign policy and do not gladly suffer any who are unquestioningly sympathetic with it. So I have a hard time admitting this, but the consequences of the US' global trade empire falling are unimaginable to me: I see more ways it could end up in a significantly worse global situation than a marginally better one.

<comment><USER6> > Perhaps what the USA wants is not really free trade but "free trade": new > markets to sell labour-derived goods and services to and resource suppliers > with very low wages, low standards of services and low food prices in order > to maintain its (slipping) financially dominant position in the world.

This is a commonly touted criticism for the US by foreigners. I grew up basically my entire life hearing this argument. (I'm argentinian).

But I think it fails to grasp the political and economical reality. If the US restricts importations, it harms itself as well as it harms the would-be exporter. The idea that the US gains economic advantage by telling other countries to be open and remaining closed is just false.

Its like a business man telling other business men that paying good wages is the way to retain employees and then he pays below market: he harms himself with the hypocrisy.

Secondly, I am convinced that the natural state of human beings is to be mercantilist and protectionist, which means open trade is always a political uphill battle. The restrictions the US has on imports has been criticized by its liberal economists. But politicians are not elected to make good policy, they are elected to make popular policy.

<comment><USER7> "...The idea that the US gains economic advantage by telling other countries to be open and remaining closed is just false...."

Well, we do gain economic advantage when nations remain open, because the US is only open in theory. That said, this "only open in theory" thing affects us, the citizens of the US, just as much as it affects other nations.

For instance, in THEORY if we in the US don't like the fact that Facebook and Twitter have the power to shape what we see and hear, we're free to form startups that offer competing social networks. As a pragmatic matter though, we really aren't. Such startups are almost guaranteed to fail in the US.

On an international scale we can see this same effect in action by comparing the vibrancy of the Chinese internet startup market, against that of other, more open, nations. The vast majority of users in nations with more open markets use Facebook, Twitter, and other mostly US properties. Don't misunderstand me, the citizens of those nations can attempt to form internet startups if they wish, but the reality is that in the face of the giant, well funded, US competitors also operating in their nations, I, personally, wouldn't be sanguine about their prospects. The Chinese cleverly avoided that fate by effectively closing their market.

<comment><USER6> The chinese people are much poorer for not having as much foreign companies inside. They pay extra taxes for the subsidies and quality of service by having less options.

Yes, its a huge loss for FAANG that they cant compete in china, but its also a loss for chinese people. It's just not a loss for chinese politicians, that can tout that thanks to them they created massive companies.

You can run indefinitely on a bad platform while it gives your reasonable returns. We'll see what happens when china gets its own big capitalist crisis.

</comment></comment></comment></comment></comment><comment><USER8> I really dont like the Trump administration for various reasons, but one thing they have done right is showing firm hand against China. Especially when it comes to the artificial islands in South China sea and also the attempts to buy western technology by buying companies and institutions in US.

I hope more countries wake up to what China is trying to do. Artificial island, Rohingya-cleansing, Sri Lanka airport etc. Its just the beginning, we need to be prepared.

<comment><USER9> Umm..

I'm Australian, so I follow the South China Sea closely.

The US seems to have completely abandoned doing anything in the South China Sea.

I mean - Trump talks a lot about China, but has done nothing to slow the Chinese build up there.

Here's a recent article about how the Chinese have finished their fortifications on one of their artificial islands (which are pretty impressive!): [http://www.news.com.au/technology/innovation/photos- reveal-c...](http://www.news.com.au/technology/innovation/photos-reveal- chinas-south-china-sea-island-fortresses-are-complete/news- story/776e1a695fb41ccb7e47a436594c1530)

<comment><USER10> Those fortifications are a mixed bag in my opinion. On one hand, they help create area denial for the South China Sea. On the other hand, they are vulnerable and difficult to defend. Probably also a lower stakes target. If the Chinese shot at a foreign plane or ship, I think it would be tempting to attack one of these outposts. Easier and less inflammatory than attacking a mainland air base or port.

<comment><USER9> They are an area denial tactic during peacetime. There used to be free navigation there, now only warships go near without Chinese permission.

</comment></comment></comment></comment><comment><USER11> I for one think it would be a good thing for the US if Xi Jinping becomes a dictator. Dictatorships have been proven to be unstable and don't make great decisions. If inaugurated in a period of growth, they tend to stagnate after the original dictator dies. See USSR after Stalin and then Khruschev, Robert Mugabe in Zimbabwe, The Pachas of Turkey, etc... Not to mention other dictators that were only brought down by war, but lord forbid that happens.

So basically, the destruction of what little democratic-esque institution there was in China will inevitably result in a decline and/or downfall of the current political agenda of China, which can only be a good thing for the world in the long term.

The world does not need more validation of dictatorships. It needs to see dictatorships fail, and - even more so - it needs to see democracies succeed.

<comment><USER12> > _The world does not need more validation of dictatorships. It needs to see > dictatorships fail_

Venezuela is a dictatorship failing. China's population is 50 times larger than Venezuela's. Its military capabilities and global economic integration are commensurately greater. When Xi falls, the best we can hope for is a few months of chaos contained to Beijing.

</comment></comment><comment><USER12> "After the collapse of the Soviet Union, the West welcomed the next big communist country into the global economic order. Western leaders believed that giving China a stake in institutions such as the World Trade Organisation (WTO) would bind it into the rules-based system set up after the second world war (see Briefing). They hoped that economic integration would encourage China to evolve into a market economy and that, as they grew wealthier, its people would come to yearn for democratic freedoms, rights and the rule of law.

It was a worthy vision, which this newspaper shared, and better than shutting China out. China has grown rich beyond anybody's imagining. Under the leadership of Hu Jintao, you could still picture the bet paying off. When Mr Xi took power five years ago China was rife with speculation that he would move towards constitutional rule. Today the illusion has been shattered. In reality, Mr Xi has steered politics and economics towards repression, state control and confrontation.

...

The West lost its bet."

[https://www.economist.com/news/leaders/21737517-it-bet- china...](https://www.economist.com/news/leaders/21737517-it-bet-china-would- head-towards-democracy-and-market-economy-gamble-has-failed-how)

</comment><comment><USER13> Please add ", D.C." to the headline :-).

(The headline would not be out of place describing Washington state, which sees a large amount of Chinese real estate investment.)</comment>


Show HN: Header-only, extensible C++17 argument parser - <AUTHOR> https://github.com/sailormoon/flags <comment><USER2> Compare "argparse", in Python.[1] There are a number of argument parsers like this. They have some way to describe the expected form of the command line, and check it. Errors result in a "usage" message which shows the desired form of the command line in the usual "help" style.

Github has at least three C++ implementations of "argparse". Here's a header- only one.[2]

[1] [https://docs.python.org/3/library/argparse.html](https://docs.python.org/3/library/argparse.html) [2] [https://github.com/hbristow/argparse](https://github.com/hbristow/argparse)

<comment><AUTHOR> I agree with you, but a user can easily wrap their own to avoid the boilerplate for adding arguments. An example would be:

      // Could provide more detailed usage if wanted.
      constexpr char USAGE[] = "./program --input_path input --output_path output";
      int main(int argc, char** argv) {
        const flags::args args(argc, argv);
        const auto input_path = args.get<std::string>("input_path");
        const auto output_path = args.get<std::string>("output_path");

        if (!input_path || !output_path) {
          std::cerr << USAGE << std::endl;
          return 1;
        }

        std::cout << "success: " << *input_path << " to " << *output_path
                  << std::endl;
        return 0;
      }

The primary goal of this is to be simple to use and implement in your project, but I can see the use of a simple validation function which provides the same functionality as the above.

</comment></comment><comment><AUTHOR> By the way, I am looking for any and all feedback and would love a code- review!</comment>


Literate programming: Two beefs with the classic version (2014) - <AUTHOR> http://akkartik.name/post/literate-programming <comment><USER2> Previous discussions:

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

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

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

</comment><comment><USER3> I have been playing around with org-babel's ability to do literate programming.

It allows you control which file the code is tangled to, along with a comments which deliminate where in the literate source code a block of text came from. That gives some primitive ability to debug and build larger project bases.

Unfortunately I have never managed to convince a team to adopt emacs, let alone org-mode, as the coding tool for a project. That's left me using the obviously broken, half finished and barely documented implementation as good enough for the parts of projects that are under my direct control.

Even in that state however, when you throw in git and pandoc, it is vastly superior to any other devops system.

</comment><comment><USER4> This actually makes sense. I've always found it much easier to read code in an editor directly and jump around to understand it. I see the appeal of literate programming. But it promises to be a debugging nightmare.

<comment><USER5> I don't think it is really any different than debugging anything else. Literate programming, as i understand it, is basically done with a preprocessor (or two) that takes your "literare program" and spits out a human readable document and a machine readable source code. You debug the latter which is still the code you typed with the document bits stripped out, so it should map 1:1 to your literate program code.

<comment><USER6> I think what it comes down to is interactive tooling linking code and documentation. When coding and debugging, you want to see all the relevant code without any noise (e.g. superfluous documentation). You want to change it in that representation and these changes ideally get transferred back into the documentation automatically. You may want to reorder sections of code and documentation on the screen as required. And so on.

Maybe it is time to finally say goodbye to source files and place everything in structured and annotated code databases instead? Code does not have to be text.</comment></comment></comment>


Meteor surpasses Rails on number of GitHub stars - <AUTHOR> https://github.com/search?q=stars:%3E1&s=stars&type=Repositories

<comment><AUTHOR> Interesting given this prediction and rather heated discussion two years ago: [https://news.ycombinator.com/item?id=6642893](https://news.ycombinator.com/item?id=6642893)

Updated original link: [http://blog.differential.com/meteor-killin- rails/](http://blog.differential.com/meteor-killin-rails/)

</comment><comment><USER2> To be fair, a big chunk of the stars were part of Meteor's "We'll give $5 to organizations that teach kids to code, for every GitHub star we get". But still, pretty impressive growth!</comment>


Facebook to release PHP static analyser for compile-time type safety - <AUTHOR> http://news.php.net/php.internals/71195

<comment><AUTHOR> Last time i submitted something from the php internals mailing list, it couldn't cope with HN traffic, so here's a preemptive mirror:

        One last comment in favor of the HHVM syntax:

          We're written (and will very soon be releasing, I promise) a static
        analysis tool which looks at your entire code base and determines
        types for every local variable in use and tells you (without having to
        run the program) where you have type issues.  This means two things:

        1) No need to do runtime checks (Which impact performance)
        2) No need to get to 100% code-coverage to guarantee type safety.

        And the type-checker can run in the background re-evaluating the files
        as they're updated for instant notification.

        If PHP were to follow HHVM's syntax, we'd get the type-checker as a
        freebie.  (If and when we took on return and scalar type hints as
        well)

        -Sara</comment>


XKCD again : Exoplanet names - <AUTHOR> http://xkcd.com/1253/

<comment><USER2>
      HD 40307 f : New Jersey VI

I looked up this planet [https://en.wikipedia.org/wiki/HD_40307_f](https://en.wikipedia.org/wiki/HD_40307_f)

      It still gets more heat than Venus gets (like Gliese 581 c),
      and it has more gravitational potential than Venus has.
      HD 40307 f is more likely a super-Venus than a "super-Earth".

Great, so it's an uninhabitable sweat box that's unlikely to contain any intelligent life. Name seems appropriate.</comment>


I Learned to Care Less About Art – and It Got Me My First Six Figure Salary - <AUTHOR> https://medium.com/@unlocking/i-learned-to-care-less-about-art-and-it-landed-me-my-first-six-figures-job-b1ba2e74f33f <comment><AUTHOR> I find people struggle to be bold in the beginning. Did you have this childlike quality beaten out of you once you became and adult as well?</comment>


Cheating Is OK - <AUTHOR> https://brendancahill.io/brensblog/ukraine <comment><USER2> I approach this very differently in my job. Part of my work is training operators of nuclear power plants on their procedures and reactor principles and then testing them to evaluate their knowledge on a periodic basis.

If everyone at work is sharing work on evaluations, then all it tells me is that someone in the building has the requisite knowledge, which I hope is a very disconcerting thought to anyone living in a country where nuclear plants are operated.

This united front you describe is great for addressing large problems, but applying it in this context is a barrier to individual growth.</comment>


Why he is there and I am here - <AUTHOR> http://thestartuptoolkit.com/blog/2013/12/1888/

<comment><USER2> In general, I've found it a bit more helpful to think "Where do I want to go and what is the clear next step to a place closer to there than where I am today?" rather than "Why am I not like this other person who I am not like?" It's less disempowering and more actionable.

Bully for the gentleman who lives in Costa Rica. His success in no way makes you worse off. If you presently do not have a software business, and you want to some day have a software business, there's a very short list of things I could recommend to you. Writing software and selling software are at the top of the list.

If you want to run a software agency, your two tasks are stuffing the pipeline and delivering engagements. If you don't have an engagement yet, find an engagement, preferably one which will provide you a client/project that has citation value in dealing with new clients. You then go on a cycle of stuff pipeline to bursting / hire new employees to deliver engagements / stuff pipeline to bursting / etc.

</comment><comment><USER3> Well... sorry, but without more details, that's just fluff.

* How did they handle the stuff they weren't good at?

* Was this tested with other people? Is it possible to apply the method to people who were previously doing stuff they weren't good at and see results?

* With a startup, that does not have much money, the founders are responsible for doing everything. Presumably, they are not good at all of it. What should they do?

<comment><USER4> I think he means the general field of the startup catered to his skill set, not the entirety of the project.

Also with X amount of founders presumably if one person cannot say design the site, maybe another once can. I would assume not all of his cofounders have exactly the same skill sets, but complimentary ones.

<comment><USER3> Well I'd rather not make assumptions and guesses, I want to read about how things worked out.

<comment><USER4> You are right, and my comment was fairly speculative. I see it more as a motivational piece though.

</comment></comment></comment></comment><comment><USER5> Yes, focus on your strengths. I like this quote:

"For years I have urged managers to concentrate their efforts in areas in which they are strong and to waste as little effort as possible trying to improve the areas in which they don't have much competence."

Peter Drucker (1909 - 2005), Austrian author of management-related literature

<comment><USER6> This is in contrast to a lot of recent advice on improving cognitive skills, which tells us to do things that are hard, not those we are already good at (basically the old specialist vs. generalist debate).

<comment><USER7> I think that the rationale is that if you are already good at something, you probably like to work in that area, and it won't be a chore to become even better at it, you can become more "naturally" better.

I heard in recent coaching/leadership training that, as human beings, we have a tendency to focus on our weakness or negative feedback, even if you got some positive feedback at the same time. So it can cloud you judgement on how to improve because you miss the big picture.

But it is more in an overall development sense, and is rather orthogonal to develop cognitive skills or brain training.

<comment><USER8> Comparative advantage[1] would be reason enough by itself. Why invest in becoming a good programmer if you're bad at programming if you'll probably never be as super-great at it as someone who found it easy and does it all the time? It would make more sense for you to work on something you're already really good at and trade with them to get the code you want.

In terms of the generalist vs specialist thing I'm reminded of the idea of T-shaped people. Broad general competence to allow you to meaningfully be part of the system, and deep specific competence to allow you a comparative edge.

Always end up wondering what the trade-offs are on how deep the tail of that is compared to the height of the top though.

1\. [http://en.wikipedia.org/wiki/Comparative_advantage](http://en.wikipedia.org/wiki/Comparative_advantage)

</comment></comment></comment></comment><comment><USER9> This is somewhat impotent advice, you don't just magically make money by giving up everything you're no good at. There are two reasons for this:

1) I'm good at making things. I'm bad at sales, marketing, hiring and delegation. I concentrate all my efforts on making things. Where's my 5 million?

2) You have to give it a reasonable punt. For example, there would be no professional musicians if everyone followed this advice. No one picks up a guitar or bassoon and declares themselves "good" straight away.

<comment><USER10> 1) Partner up with people good at sales, marketing, hiring and delegation.

2) You're right, «nobody is "good" straight away», there is a constant self- improvement required. Yet, one might have inclinations which would make more sense to invest in instead of stretching oneself thin all over.

</comment></comment><comment> UK-AL Except 90% of jobs want to pidgin hole you. People have very little control over what they end up doing in their jobs. The market dictates. You can't just stop doing the stuff you don't like, and do the other stuff.

<comment><USER11> I don't know too many circumstances where you can take a $5 million payout when you're working for someone else.

</comment></comment><comment><USER12> Author assumes he's just as "good" as the guy he was talking to. Such optimism may be wrong.

</comment><comment><USER13> Great quote: "Raw talent is wasted if it's busy doing the wrong stuff."

The key is figuring out what one is good at. Some people believe they are good on something, trying to prove that to peers, but they are not.

</comment><comment><USER14> Um... Strengths Finder? [http://strengths.gallup.com/110440/default.aspx](http://strengths.gallup.com/110440/default.aspx)

</comment><comment><USER15> Only doing what you're good at seems at odd with running a start-up, where almost by definition you need to fight through stuff you don't like or excel in.

If you're persistent you will eventually get to "design" your own job, but that's some years down the road. If you want to concentrate on the things you are good at _today_ , look for a nice 9-to-5 job at a company that matches your values and don't look back.

</comment><comment><USER16> This part is a little too ambiguous:

> _I wanted to know why he can pull that off and I can't. He's 42; I'm 29. I > asked what changed for him in the last 12 years. Was he always this > good?...The first thing he said was this: Yeah, I was always this good. So > were my cofounders...[but] I was also doing lots of stuff I wasn't good at. > The only thing I changed in the last 12 years is that I stopped doing those > bits. "_

I think it's possible to think that part of being "good" is knowing "good" from "bad", or, "wisdom" as others might put it. I don't think it's necessary to think of "being good" as different from "being experienced"...as the two qualities are so tightly co-dependent in something like programming/designing/business-building.

It's an important distinction to make because I don't think we have to attribute the success of young hacker/entrepreneurs to plain raw talent. Did Facebook become the biggest network because Zuckerberg was the best PHP developer in all of Harvard? I think the young people who hit it big do so because they're in a phase of life when trying big risky new things is _encouraged_ , and these provide opportunities and insights that are less available to a middle-aged person of the same raw talent.

So, if you believe in karma and a purposeful universe, there's a nice balance here...young creators have growing/hungry minds and fewer shackles...older creators have more wisdom...and so there's a great number of avenues to success for young and old.

(I'm leaving out luck/connections/privilege in this discussion, but they are obviously factors for young and old)

<comment><USER5> Regarding luck, this was here on HN recently: "What if successful startups are just lucky?" [https://news.ycombinator.com/item?id=6794612](https://news.ycombinator.com/item?id=6794612)

And the top comment (by pg): All successful startups are lucky, but they're never _just_ lucky.</comment></comment>


What you need to know about Zoom's security - <AUTHOR> https://www.iafrikan.com/2020/05/09/zoom-cybersecurity-video-conferencing-cloud-information-security/ <comment><USER2> For a alternative look at the Keybase acquisition to improve zoom security

"The whole point of the Keybase design is that you don't have to trust who owns their servers."

[https://techcrunch.com/2020/05/07/zoom-consultant-alex- stamo...](https://techcrunch.com/2020/05/07/zoom-consultant-alex-stamos- weighs-in-on-keybase-acquisition/)</comment>


Netflix records all of your Bandersnatch choices, GDPR request reveals - <AUTHOR> https://www.theverge.com/2019/2/13/18223071/netflix-bandersnatch-gdpr-request-choice-data <comment><USER2> Clickbait. Zero controversy in doing so. This article is attempting to invoke the privacy boogeyman when the data in question is nowhere near putting any of that at stake.</comment>


Shen Language will be moving to a BSD license - <AUTHOR> https://groups.google.com/forum/#!topic/qilang/e4-PcL2K2WQ

<comment><USER2> Excellent, though I fear it might be a bit too late to seriously challenge Clojure+core.typed and/or lesser degree Typed Racket. Of course Shen's type system is much more powerful, but that's probably not going to drive adoption as much as us typeful-programming weenies would like. Of course having multiple implementations running on multiple underlying platforms could turn out to be a killer feature...

</comment><comment><USER3> This is good. The last time I downloaded an implementation it was broken. I went to mess with the copy I already have after reading this and I keep breaking the REPL.

<comment><AUTHOR> The latest release of my fork of the Clojure port should work:

[https://github.com/michaelsbradleyjr/shen.clj/releases/lates...](https://github.com/michaelsbradleyjr/shen.clj/releases/latest)

At this point, it's just a tidied up release of the original author's work, which stopped at Shen 8 (version 16 is the most recent). I should also note that it doesn't seem to deal with tail calls properly in some situations, so you could run into a stack overflow here and there.

Once Shen 17 is released and I've finished reading _The Book of Shen_ , I plan to bring the Clojure port up to date.</comment></comment>