Ember Tutorial - <AUTHOR> http://ember.vicramon.com/ <comment><USER2> The more I look at Ember the more it reminds of a framework named Batman[0] I used over two years ago. It's almost a complete replica, all the way down to Ember.Object being identical to Batman.Observable.

The problem with Batman (aside from being buggy) was that it tried to do this same MVC that we use on the server on the client, and the mapping just doesn't make sense. HTTP "MVC" doesn't have state between requests whereas client-side MVC has state for the entirety of the app. Rails, for example, has a Router and Controller due to the synchronous nature of how a request comes in and gets turned into a response. The first place I see MVC JS frameworks fall apart is when they have both Controllers and Routers. Ember Controllers look like little more than Decorators. I imagine these would be called a ViewModel if named appropriately.

Over two years later, I can't help but feel Backbone (minus the underabstracted View layer, which can be easily replaced with React) got the mental model for JavaScript apps right from the start.

Ember just seems to have been marketed much better than Batman was, which is no surprise, Yehuda is good at doing that.

0 - [http://batmanjs.org](http://batmanjs.org)

<comment><USER3> > Ember just seems to have been marketed much better than Batman was, which is > no surprise, Yehuda is good at doing that.

I don't think this is fair. We use Ember at work, although I wish we used React. We started out on Backbone and it was miserable. Ember has gotten popular because it and Angular were seen as the successors to Backbone for a long time. Ember is designed in a much more thoughtful (and I think better) way than Angular.

Yehuda has done a lot of good work on Rails, Bundler, jQuery. That probably helps sell people on his projects. I wouldn't chalk it up to marketing.

<comment><USER4> > We use Ember at work, although I wish we used React.

Could you expand on why you prefer React? I have not tried React yet, but am interested to hear thoughts from someone who's used both.

<comment><USER5> I'm interested in that too. Is it fair to compare Ember and React though? It seems like they are trying to solve different issues.

<comment><USER6> Think of Angular directives, Ember components, and React components as attempting to solve the problem of web components in your view.

I'm using react right now in a rails application at work. While it hasn't totally replaced my haml views, I definitely sprinkle it in where appropriate. It does a great job of handling dynamic uis and gives a standard, easy to understand structure to my javascript. I think of it is as a next step beyond jQuery.

In my opinion, React forces you to think of your view as a hierarchy. You are forced to think about what components make up your view and what its responsibilities should be. React components also come with some standard methods in regards to the lifecycle of each components and the state of your data as it flows up and down the hierarchy of your components.

I've really enjoyed the experience thus far. I'm not necessarily a fan of putting any sort of html-like structure in my javascripts, but Pete Hunt, one of the core contributors to React, explains his reasonings quite well in many talks you can find on Youtube.

\--

Also, Khan Academy uses Facebook React in its perseus q&a system. You can view blog posts by two Khan developers about React here:

[http://benalpert.com/2013/06/09/using-react-to-speed-up- khan...](http://benalpert.com/2013/06/09/using-react-to-speed-up-khan- academy.html)

[http://joelburget.com/backbone-to-react/](http://joelburget.com/backbone-to- react/)

<comment><USER5> Indeed but Ember components are only a part of the Ember framework.

What you describe in the rest of your comment is equally applicable to Ember (if not more, since Ember goes beyond the view layer).

</comment></comment></comment></comment></comment></comment><comment><USER7> I've been working with Ember over the past few months and am still impressed with how simple and productive it makes every day tasks. Basic CRUD stuff, especially render code, is a lot less drudge work. I'm even more excited for where the community is leading the framework, through projects like ember-cli and htmlbars.

Ember is conceptually pretty massive though. A tutorial like Michael Hartl's Rails tutorial would be a huge benefit, it looks like that's what this is aiming for. Thanks!

<comment><USER8> On the other hand, I've found many things lacking in Ember.js, though most of my gripes are with ember-data, so I don't know if you're thinking of that as part of Ember.js.

A couple of examples of Ember.js-specific gripes though:

\- We have a table with one of the filters just stops working after changing the value 4 ~ 5 times. I've dug into this, but I can't really figure it out without going into the Ember.js internals (which I have done before, but the time sink isn't currently worth it). I've boiled it down to the fact that at some point Ember.js stops responding to changes on a particular attribute. Computed properties stop working sooner, but even a .observes('attribute') stops triggering after 5 or 6 changes.

I get that software is not bug-free, but how am I supposed to even debug something like that? It would be fairly difficult (and time-consuming) to boil it down to a simple test case, as this is the only place we're seeing this happen and it's in a large Ember.js application.

\- There is no case/switch statement in Handlebars. I'm left with deeply nested if/unless blocks, or tons of computed properties on controllers/views that generate this stuff. E.g.:

      {{#if valueLoading}}
        Loading...
      {{else}}
        {{#if valueLoadingFailed}}
          Error!
        {{else}}
          {{#if value.length}}

            {{#each item in value}}

 {{item}}

            {{/each}}

          {{else}}
            No Items.
          {{/if}}
        {{/if}}
      {{/if}}

vs.

      {{#if value.length}}

        {{#each item in value}}

 {{item}}

        {{/each}}

      {{else}}
        {{stateMessage}}
      {{/if}}

      ... and on the controller ...

      stateMessage: function () {
        return this.get('valueLoading') ? 'Loading...'
             : this.get('valueLoadingFailed') ? 'Error!'
             : this.get('value.length') === 0 ? 'No Items.'
             : '';
      }.property('valueLoading', 'valueLoadingFailed', 'value.length'),

<comment><USER9> 1\. Are you using Ember.computed's array methods? I tend to go with intermediately calculated arrays which I then union/diff/whatever is necessary for filters. It is also significantly faster than function-defined computed properties. The only bug I know of for this functionality was fixed in the 1.5 branch by @hjdivad.

2\. The typical pattern is lots of computed properties. They're lazily calculated, so that makes them pretty cheap.

<comment><USER8> > 1\. Are you using Ember.computed's array methods? I tend to go with > intermediately calculated arrays which I then union/diff/whatever is > necessary for filters. It is also significantly faster than function-defined > computed properties. The only bug I know of for this functionality was fixed > in the 1.5 branch by @hjdivad.

This was a single value (e.g. 'selectedItem') populated by a Ember.Select view/component. After changing the selection a number of times, all things watching 'selectedItem' completely stop firing off (until a page refresh). No idea why.

<comment><USER9> There is going to be some future work on some of the form elements. They're really not quite where they need to be.

</comment></comment></comment></comment></comment><comment><USER10> As a new comer to Ember, I am quite confused as to the necessity of the Rails portion of the tutorial. I read through the intro and the first chapter and all I could gather was that it was for the "back end". I really wish there was a great, up-to-date tutorial that was back-end agnostic so that newbies don't have to possibly learn two new frameworks at once.

<comment><USER11> Totally agreed. I went glassy eyed at "First create new rvm gemset to sandbox our gems:"

If you are a RoR person, I'm sure this tutorial is just great. But for the rest of us...

<comment><AUTHOR> That's a valid complaint. I wrote it with a Rails backend because that's a pretty popular backend choice for Ember, and they work together well.

Perhaps I can just extract out the Ember portion -- It should still be applicable regardless of the backend.

<comment><USER12> Do you even /need/ a backend though?

It would be much simpler if you keep it entirely client side, using something like Pretender ([https://github.com/trek/pretender](https://github.com/trek/pretender)).

<comment><AUTHOR> To persist data you'll want a backend. That's a fairly important piece of any application which is why I included it in the tutorial. You could ignore the Rails parts of the tutorial and create your own backend.

<comment><USER8> Persist across clients, maybe, but it's also possible to use localStorage to persist data on a single client.

<comment><USER10> You could also use something like Firebase as a datastore that could persist across multiple clients but also be implemented in javascript.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> My favourite Ember (Data) quirk:

      this.get('store').createRecord('ModelName', {
        .. attrs ..
      }).save().then(function (model) {
        // Ember.isNone(model) === true
      }, function(error) {
        console.error(error);
      });

The fix: s/ModelName/modelName/

This works sometimes, and not others. The only indication of failure is the fact that the model is not loaded from the JSON response to the POST/PUT request. It's a subtle bug. I wasted a bunch of time tracking this down through the Ember Data internals (for a co-worker, but the original bug/typo could easily have been mine).

The other quirk is converting snake case to camel case and back:

      address_1 =(to camelcase)=> address1 =(to snakecase)=> address1

Oops! We only use capital letters to determine where underscores go! ;-)

<comment><USER12> This should be quite easy to fix, one would think. If the name can't resolve to a model class then it should be very vocal about it (i.e. throw error). I think you should create an issue for it on Github if there's not one already.

<comment><USER8> The funny thing was that the _only_ thing preventing it from working (even though it shouldn't) was a one or two line change in the internal code that loads payloads into models. I actually thought that it was a bug until I realized what was happening (though it was still difficult because one of the methods that was being used is/was monkey-patched on at runtime, and therefore don't exist on any of the classes in the code).

</comment></comment></comment><comment><USER13> You shouldn't use Monaco as your only font for your pre and code elements. It comes up as sans-serif on windows and linux...

<comment><AUTHOR> Hmm.. what's a good alternative font?

<comment><USER14> font-family: "Monaco", "Consolas", "Ubuntu Mono", "whatever", "other", "fonts", monospace;

<comment><AUTHOR> Thx. Fixed.

</comment></comment></comment></comment><comment><USER15> Just finishing my first app using Ember and don't think that i'll go that route again. Speaking of which - this controller-route separation feels a bit unnatural. At least the way it's implemented.

There are lots of good parts to it - that same convention of configuration saves lots of boilerplate, data binding is usually really nice, overal separation of concerns when doing it ember-way is rather good (far from great though), but lots of small nuisances here and there make up for a dubious overall experience.

</comment><comment><USER16> Good work, bro! Main criticism is that the 1st chapter took forever though.</comment>


Ask HN: What's the purpose of the upvote - <AUTHOR>

I was just reading https://news.ycombinator.com/item?id=9237063 and it seems that there's some disagreement about the proper usage of the upvote feature.
If it's used to indicate a well thought out and structured point, then how do people convey agreement with that point?
If it's used to convey agreement, then how do we make sure that things that don't contribute to the conversation? <comment><USER2> It's used to upvote. People upvote for many different reasons. On average the aggregate of upvoting improves HN without worrying about why.

The same is true for downvoting. Downvoting becomes available above a certain karma threshold.

Abuse of either, i.e. using them in ways that are known to be detrimental to HN historically can result in various sanctions by the moderators (none of which are explicitly stated).

So vote something up if you think it should be voted up. It's that simple.

</comment><comment><USER3> "I believe this story or comment contributes to the community good in some way, and I would like to see more like this."

I _think_ comment downvotes are supposed to be the opposite of the above, but in practice it seems to be used to say "I don't agree with you," or "you don't know what you're talking about."

Mere agreement or disagreement should probably be handled with a comment, to further the conversation. You could easily disagree with a comment, but upvote it, if you thought it contributed something worthwhile.

There are Guidelines and a FAQ at the bottom of most pages.

<comment><USER4> If you're interested in the goals of the site creators/administrators (as in the Guidelines and FAQ) also have a look at pg's comments on the subject: [https://news.ycombinator.com/item?id=117171](https://news.ycombinator.com/item?id=117171) .

</comment></comment><comment><USER5> I'm a lot freer with upvotes than downvotes - I use upvotes for both agreement and good comments, but will downvote only for clearly poor quality comments / trolls.

</comment><comment><USER6> Voting affects the ordering of comments. You should vote based on how you want comments ordered.

Pro tip: If you downvote comments you don't upvote, you get twice the voting power.

(^^ or really, don't do this, treat voting more as a pavlovian thing.)</comment>


H.R.4568 – Responsible Body Armor Possession Act - <AUTHOR> https://www.congress.gov/bill/116th-congress/house-bill/4568/text?r=8&s=1 <comment><USER2> They always name bills the opposite of what it will do, or the actual affect against law biding citizens.

[https://www.ammoland.com/2020/05/below-the-radar- responsible...](https://www.ammoland.com/2020/05/below-the-radar-responsible- body-armor-possession-act/)</comment>


America's technological hegemony is under threat from China - <AUTHOR> https://www.economist.com/news/leaders/21738883-americas-technological-hegemony-under-threat-china-battle-digital-supremacy <comment><USER3> I would suggest more accurately that America has gifted it to China, through:

* Systematic attack on education and knowledge at all levels, from cutting funding, bludgeoning it with standardized testing, taxing grad students and cutting financial aid, and creating a culture where superstition and idiocy is rewarded instead of knowledge for its own sake.

* Cost accounting has wiped out basic research

* Offshoring and outsourcing have moved core competencies to others who have improved on them and made newer products. I think there are few or no LCD panels made domestically any more. How about hard drives? Chip fabs?

<comment><USER4> As an immigrant in America, one of the most jaw-dropping fact I learned about American culture is that kids getting best grades in school are often tagged as "geeks" and often get bullied, and kids all want to be "cool". Well, though it might be common sense in America, in China and other east Asian countries, if you can't get good grades, you won't get much respect from anybody.

<comment><USER5> Speaking specifically on the point of education, when I went to college I came from a backwater US school. A lot of my classmates came from elite schools from all over the world. The thing I noticed among a lot of the Indian and Chinese students is that, while they could regurgitate equations and solve problems very quickly, a lot of them would copy solutions or would have a hard time learning new concepts without massive problem sets to study patterns from.

While the US K-12 system does sucks, I don't really want to see it turn into a memorization race the way the Indian and Chinese systems seem.

<comment><USER6> I always found that a "memorization race" is table stakes. Without going through that first, there is no way you can participate meaningfully at the higher levels.

And this is true even in cases where most of the actual research is done by computers/algorithms. Being able to quickly identify impossibilities or how to solve parts of the problem, because you effectively memorized thousands of pages of maths theory is invaluable and irreplaceable.

<comment><USER5> Oh I agree, but I think memorization is necessary but not sufficient for educational success.

</comment></comment></comment></comment></comment><comment><USER7> Journalists cannot keep profiling the rise of the Chinese tech industry or its supposed move from "imitation to innovation" without focusing on how Chinese companies are entirely protected from foreign competition in their domestic market and that the Chinese government is forcing foreign companies wanting to do business there to share intellectual property with Chinese competitors.

The fact that none of that triggered WTO action points to just how broken that organization is.

<comment><USER8> > _without focusing on how Chinese companies are entirely protected from > foreign competition in their domestic market and that the Chinese government > is forcing foreign companies wanting to do business there to share > intellectual property with Chinese competitors._

The US had the same advantages early on when it was at its own growth stage to superpower, copying European inventions to bootstrap at first, and using tariffs, subsidies and such to protect the local economy, and using their diplomatic/military might later on to ensure favorable deals for their companies (even now, countries and leaders e.g. that think of trading their oil in other currencies are not staying around for long to do it).

e.g:

"[protectionist] policy was most prevalent in the 19th century. It attempted to restrain imports to protect Northern industries. It was opposed by Southern states that wanted free trade to expand cotton and other agricultural exports. Protectionist measures included tariffs and quotas on imported goods, along with subsidies and other means, to ensure fair competition between imported goods and local goods. In today's age the US is still highly protectionist, according to Global Trade Alert the US has adopted over 1000 protectionist measures since the Global Economic Crisis in 2008, more than any other country since"

[https://www.bna.com/amazon-close- breaking-n57982085432/](https://www.bna.com/amazon-close- breaking-n57982085432/)

[https://www.bloomberg.com/news/articles/2017-03-14/your- tax-...](https://www.bloomberg.com/news/articles/2017-03-14/your-tax-dollars- subsidize-amazon-are-the-jobs-worth-it)

> _The fact that none of that triggered WTO action points to just how broken > that orginization is._

Or that the power relations have changed, and its old masters are somewhat toothless.

<comment><USER7> What you're refrencing is a pactice by emerging or developing nations to protect what economists call "infant industries". None of that is applicable to China.

They don't even brother with tariffs they prohibit all competition and coerce rivals to hand over the fruits of their research. It's diabolical.

<comment><USER9> No, protectionism is not associated exclusively or even primarily with emerging or developing countries. The GP's comment talks about 19th and 20th century history, during which time Europe and America industrialized and protectionism was practically the default.

<comment><USER7> That's neither here nor there, we're discussing China's actions in the context of free trade being the global norm and having established organization like the WTO to ensure a certain level of reciprocity.

The larger point is that China is practicing extreme protectionism while benefitting greatly from free trade.

<comment><USER8> > _The larger point is that China is practicing extreme protectionism while > benefitting greatly from free trade._

More power to them, then? Sounds like a good way benefit their country.

</comment></comment></comment></comment></comment></comment><comment><USER10> Key quote:

"The most important part of the answer is to remember the reasons for America's success in the 1950s and 1960s. Government programmes, intended to surpass the Soviet Union in space and weapons systems, galvanised investment in education, research and engineering across a broad range of technologies. This ultimately gave rise to Silicon Valley, where it was infused by a spirit of free inquiry, vigorous competition and a healthy capitalist incentive to make money. It was supercharged by an immigration system that welcomed promising minds from every corner of the planet."

Even as local youth education was bungled, the flow of highly skilled immigrants and top-notch universities for wealthy and/or foreign students, helped maintain the lead.

Just look at the founders, key techies and CEOs - rare to find a WASP.

One key issue for China is that despite laxer immigration policies it is not an inclusive culture, it is very hard for foreigners to snap into a Chinese company. Language being the first obvious block. Environmental problems, free speech add to the mix - but, again, the US is hellbent on destroying those USPs (EPA under threat, ...).

<comment><USER11> Does anybody do any fact checking anymore? The claim is that the 1950's and 1960's success was due to a immigration system that "welcomed promising minds from every corner of the planet".

Bullshit.

Look at the percentage of Americans who were immigrants in the 1950-60's - 5-6%. What is it now? 12-14%?[1]

So in fact, there are more immigrants in the US than back in the utopia of the '50-60's.

Once again, a nice theory, but absolutely false.

[1][https://www.capsweb.org/todays-news/record-51-million- immigr...](https://www.capsweb.org/todays-news/record-51-million- immigrants-8-years-will-account-82-us-growth)

<comment><USER12> You actually didn't address the theory. The claim was about welcoming "promising minds". Presumably that means top acientists, engineers, etc

The current systme in America is renowned for being very difficult to get in to on a merit basis. Was this different in the 1950s? Perhaps.

Also note thatbwhen considering america in the 1950's, you'd need to look at immigration levels in prior decades. There's a lag time for kids to grow up.

I don't know if the theory is right or not. And you,ve certainly provided some data to show it *mayg be wrong. But it's far from conclusive.

<comment><USER11> I would point you towards the "Immigration Act of 1990", which created a number of ways for highly skilled workers to immigrate to the US.

Before that, a lot of the US immigration was based on family reunification.

</comment></comment></comment></comment><comment><USER13> The speed at which this has happened was essentially a gift from Western companies and governments either asleep or deliberately ignorant at the wheel. It seems incredibly short-sighted to have sold a hard-earned technological edge for a quick buck. Huawei, for instance, was essentially a Chinese government program to illegally reverse-engineer tech from American companies. And now they cry foul when their smartphones are kept out of Western markets! The nerve!

Still, it seems naïve to think the West's technological edge could be maintained forever, especially given China's massive population and penchant for being the global leader in scholarship from time to time throughout history. It's an interesting time in The West and hard not to be pessimistic about it. One specific concern I have about tech in China is the impunity with which they may pursue Eugenic human gene editing in the near future. Given The West's, uh, problematic, history with Eugenics, it's unlikely these pursuits would happen at scale again here. I doubt China would be constrained by the same concerns. And what if it... works?

<comment><USER14> Reverse engineering has never been illegal.

<comment><USER13> It went beyond just "reverse engineering", I didn't really phrase that right.

[https://en.wikipedia.org/wiki/Huawei#Controversies](https://en.wikipedia.org/wiki/Huawei#Controversies)

</comment></comment></comment><comment><USER15> Also the West has decided that cities were basically a bad idea and they should stop dead in their tracks at about 1960. Instead our productivity should be spent on artificially expensive housing costs because we can never build anything ever again.

</comment><comment><USER16> It is a logical fallacy to think of America as in competition with China for "technological hegemony". We are all humans, and should work to share knowledge with each other. It is true that manufacturing has become cheaper to do in China. This may or may not be a passing phase, just as manufacturing used to be done in Japan in the 80's. To think that we as a continent need to be "better" than China in some competitive respect, or worse still, "hold back" China, is utterly stupid. This view creates a notion of a zero-sum game out of something that clearly benefits everyone, has positive externalities. Who among us has not ordered a component from alibaba? And many of us hold Chinese equities in ADRs, or vice-versa.

<comment><USER17> Yea, I hate the "hegemony" part of this. It seems very childish and egotistical to take a stance of "We have to be #1 or else we won't be happy or let anyone else succeed". I understand there's sentiments of politics at play, but purposely trying to hold someone back or undermine them to maintain a position of being able to look down on others is damn petty.

</comment></comment><comment><USER18> It's because silicon valley is stuck in ego battles and fear and risk aversion, eyes on world domination or bust, while China is a scrappy underdog not worried about pixel perfect proof of concepts. I like their style, like smaller US markets as I remember them. Yet to visit, but the Chinese I've worked with remotely and as students/colleagues are pragmatic and dedicated.

</comment><comment><USER19> Over the course of three decades, by repetitively touting the benefits of offshoring, outsourcing and reducing all trade barriers - the policies favored by its 'executive' readership, the Economist has essentially been advocating for exactly this to happen while acting like it wouldn't.

<comment><USER20> The low trade barriers seems to have led to many US tech companies becoming dominant globally in their fields. It seems like if there were more trade barriers it would've been harder for those companies to expand in the first place.

<comment><USER19> Is the economic goal of a country to create a series of very profitable corporations?

<comment><USER20> No, obviously not but this article isn't talking about overarching economic goals. It's talking about losing technical dominance to China and my point was that the dominance seemed to have been helped by the trade practices, not hurt by them.

<comment><USER19> Except a lot of those dominant companies either A) conspicuously absent from China (e.g. Google) or B) China can sever their supply chain (e.g. Apple)

</comment></comment></comment></comment></comment><comment><USER21> FWIW, I don't think the US has much to fear. I'm working under the assumption that the US will keep their dominant position in tech, culture, and economy for at least the next 5 years. I have followed CN's gov dropping 340 BN into ML, robotics. Not worried.

For an orthogonal set of arguments that benefit the US, check 'the accidental superpower' (Geopolitics and demography make the EU and CN not likely to outdo the US all things considered; unless the US shoots itself in the foot with say a civil war)

</comment><comment><USER22> From this viewpoint, how is China in the 2010s different from Japan in the 1970s? I'm not implying that Japan executed corporate espionage to the same degree, but there was quite a bit of hand wringing, particularly when DRAM production moved almost entirely out of the US and into Japan.

It is still the case, in my view, that there is an edge granted to the actual inventors. They get first crack at monetizing their invention. Both Japan in the 70s and China today are presented as threats, not through innovation, but assimilation of others' innovation.

I'd be interested in seeing some indication that the US position in innovation is being credibly threatened. One area that does seem at risk is genetic research involving human genome. China does not seem to have the same queasy reaction that the US does to genomic experimentation on humans.

<comment><USER23> Much of the technology that kickstarted the Japanese economy's recovery was freely sold to them by American companies in the 1950s-60s, who were delighted to make back R&D costs by licensing their ideas to Japan's then-puny economy. It came back to bite them a decade later, but they had no idea that would happen.

This is different from (as another poster has mentioned) keeping your domestic market walled-off unless companies agree to share their technology with you for free. They (American firms) are making this choice in full knowledge of how competitive China is with the US right now.

</comment></comment><comment><USER24> There's more to the "hegemony" than just pure tech. Tight government control may be good for keeping the party in power, but it's not great for building trust with people outside the Great Firewall.

</comment><comment><USER25> But I don't think they are going to be next Silicon Valley soon. Their wages are skyrocketing now. Average salaries of engineers in Beijing is around $50k now. (Maybe Shanghai be similar?) This might hold them back in my opinion.

</comment><comment><USER26> Nothing wrong with a bit of competition, right ;-)

</comment><comment><USER27> Again?

</comment><comment><USER28> I'll worry when Chinese universities surpass America's in all fields - <USER2> just STEM, but in the arts and humanities as well.

Until then, America will be the leader of technological progress.

Given that, it may be entirely possible for conservatives to destroy America's institutions of higher learning, if they had their way. We need to be proactive in protecting our universities in the face of constant attacks by the backwards conservatives that seek to regress society.

The conservative goal is to transform our economy into mindless workers that sell things they find on the ground, instead of creating an economy of engineers, designers, artists, and other free thinkers.

American universities are the central identity of America. You destroy the universities, you destroy the country.

<comment><USER29> I know lots of conservatives whose desires are quite antithetical to what you ascribe to them. I'm more concerned about divisive moral high grounders.

<comment><USER28> Sucks that they don't have a voice in any political party, then.</comment></comment></comment>


Show HN: This guide is all you need to know about salary negotiation - <AUTHOR> https://fearlesssalarynegotiation.com/book/?utm_medium=social&utm_source=hackernews.com&utm_content=online+book+announcement <comment><USER2> "Don't give the first number in your salary negotiation."

Ugh, I get so tired of seeing this. I only see a few situations where this is true:

1) You really have no idea what someone in your position in your area makes.

2) You have no "best alternative", i.e., you really need this job and must take any number they give you.

For everybody else, anchor, and anchor high. You can both prepare the recruiter in advance that you will be expensive and couch the actual number in terms where it's clear you aren't threatening to walk if you don't get it. Research has shown that anchors don't depend on any context to the actual issue at hand, so you just want to state an incredibly large number in some way, doesn't have to as direct as, "I want $2.5M / year in total comp from your company." Hell, you should _want_ them to chuckle a little at your number.

If they anchor low on you, your only option is to reset hard. You have to make it abundantly clear that the number is unacceptable. The less desperate you are for the job, the harder you should rebuff a low number, ideally with a "I wish I had known that's where you were thinking, we could have saved everyone a lot of time."

Negotiating is a game. Have fun with it.

<comment><USER3> The point is that if you give a number first, there is now an upper bound on your final salary but no established lower bound. If they give a number first, there is now a lower bound on your salary but no established upper bound. A situation where your compensation can only go up is seen as more advantageous than one where your compensation can only go down.

<comment><USER4> It's a trade off. If you anchor high you're saving yourself time from the majority of companies that try to underpay you. If you don't anchor, you risk getting your time wasted but eliminate the risk not knowing what you're worth.

If you are a highly in-demand, already highly-paid developer, it is likely in your best interest to anchor high. If you are a junior level and trying to get a middle-level role, it's probably better to not anchor.

<comment><USER5> Lead qualification and research will help save you wasting time without showing your hand first.

</comment></comment></comment></comment><comment><USER6> Feedback -

Really hard to actually follow the "book". Each page is far too small, and very hard to find the right link to "next". This would be 1000x more useful as maybe 4-5 pages if not 1.

Now I assume it is like this because you want a bunch of clicks.. but I could not image hunting around trying to find all the content. It is a pretty bad desktop experience. Something 1/4 of the screen is content.. the rest is header, footer, another footer, and maybe a plug to buy your book.

<comment><AUTHOR> Thank you for the feedback - I appreciate this and it gives me some great ideas to experiment with.

I built it this way just because that's how I think of the negotiation process—a series of discrete steps.

Can you elaborate on why it's difficult to find the "next" link? You mean the breadcrumbs make it hard to find the right link? Or placement on the page is challenging? Both?

Thank you again!

<comment><USER7> You need to guide people around more accurately.

Here is a stream of thought visiting the site.

Bla bla how to read, let's get to the content, scroll down fast. Woops, went too far, now in footer. Put the content up-front when people arrive.

"PART 1", that sounds good. But that's not a link, even though it's blue (the common colour of links).

Now in part 1.

Should I follow the links in the page, no let's go with 'Next'. This looks a lot like the main page again. It is the main page. I clicked on the word after Next, I should be 'Next'! Why have two links back to your main page after the words 'Next' and 'Prev'?

[https://fearlesssalarynegotiation.com/book/salary- structures](https://fearlesssalarynegotiation.com/book/salary-structures) is basically contentless. Should I click on the links in the page, or on 'Next?' If this is like a "book", I would expect to read it by clicking through 'next', but that misses most of the content. Basically, think about how you want people to navigate through. Do you want people to work through page by page with 'Next', or jump around freely? At the moment it seems I have to swap between the two myself, and try to search out all the content.

<comment><AUTHOR> Excellent, thank you for your feedback. I've updated the main Table of Contents so that when you click eg "Chapter 1. How companies manage their salary structures", you're taken to the beginning of the chapter's content rather than an overview of the concepts in the chapter. I see how this is better.

Previous and Next are a little trickier to address, but your feedback helps me see how it can be confusing. Thank you!

</comment></comment></comment></comment><comment><AUTHOR> After my recent discussion with @patio11 ([https://news.ycombinator.com/item?id=11830598](https://news.ycombinator.com/item?id=11830598)) and the great we got, I decided to make my book free to read online.

I'm happy to answer any questions you may have. Cheers!

</comment><comment><USER8> _" Recruiters and hiring managers like to present an offer in terms of "your total compensation package" or "total comp" because that number is usually quite a bit bigger than the base salary. It often includes target bonuses, stock options, etc. I recommend ignoring target bonuses or stock options when you negotiate your salary because the real value of those things is often unknowable."_

This actually sounds like bad advice for most companies I've worked with. Many financial companies offer contract-guaranteed 1st year bonus amounts, and there's a strong expectation that in future years, if you're doing even a reasonable job, your successive bonuses will keep growing higher. In big tech firms like Google/FB, you get a guaranteed number of RSUs that vest over 4 years, which sets a floor on your yearly bonuses for at least the first 4 years. For senior employees, this bonus can be just as big as the salary itself.

Ultimately, the only number that matters is how much money you're going to get. Whether this money comes in the form of salary, cash bonus, or RSUs, is mostly irrelevant. It's good to be cynical about any unwritten promises the recruiter gives you. But going to the other extreme and optimizing for base salary, instead of total-comp, is a classic case of optimizing for the wrong metric.

<comment><USER5> It comes down to pricing a financial instrument. The expected amount of money you will get. You can take risk e.g. contract vs. permanent and startup vs big corp into that calculation, and probability (random bonus vs. almost guaranteed) into account.</comment></comment>


Apple Thunderbolt Display teardown. - <AUTHOR> http://www.ifixit.com/Teardown/Apple-Thunderbolt-Display-Teardown/6525/1

<comment><USER2> Thunderbolt is awesome, but I'm really not about to drop $1000 on a monitor.

When someone else produces a normal spec monitor with a thunderbolt connector that includes a usb hub (the audio card and speakers are nice, but definitely not required), and at a reasonable price, I'll be all over it. A docking station for the mac, FINALLY!

<comment><USER3> This. Please, somebody, take my money!</comment></comment>


RightJS - A New Javascript Framework - <AUTHOR> http://dailyjs.com/2009/12/01/rightjs/ <comment><USER2> It's easy to be fast when you are not worried about cross-browser compatibility. The RightJS $$() function is just an alias to querySelectorAll dumped into an array. queryselectorall doesn't exist in ie6, ie7, ff3, etc, etc.

My hats off to anyone with enough javascript mojo to create a library, but comparing its speed to the big boys when your library isn't usable because it isn't cross-browser compatible is negligent at best and deceptive at worst. Build in cross browser compatibility and THEN compare speed.</comment>


The Hitchhiker's Guide to Elm - <AUTHOR> http://azer.bike/journal/elm/? <comment><USER2> I've been working on a project, now at [http://www.knode.io](http://www.knode.io) for quite some time. It went from Rails to an Elixir back end with an Angular 1 frontend, then a brief experiment with an Angular 2 frontend, and finally to an Elm frontend. It is a complex project with JS interop using ports to render (a) mathematical text and (b) Asciidoc. Plus, there is a Latex-to-Html parser-differ-renderer package that I wrote entirely in Elm (2K of code).

I couldn't be happier with Elm in this project. Many major refactors: instead of the usual white-knuckle experience with prior languages/frameworks, it was, like, zen.

</comment><comment><USER3> I really liked Elm a lot, but the issue for me was that composing components is a shit show. You have to add variants to the root Msg type for every single subpage and have it dispatch to the right update/view functions.

I'm really excited about a project inspired by Elm called Yew but allows you compose components much more naturally and easily.

[https://github.com/DenisKolodin/yew](https://github.com/DenisKolodin/yew)

<comment><USER4> _I really liked Elm a lot, but the issue for me was that composing components is a shit show. You have to add variants to the root Msg type for every single subpage and have it dispatch to the right update /view functions._

Doesn't that make sense, though?

An app in Elm is some kind of state + messages that change the state. Since the state is usually too big to fit in a single structure, you break it down recursively into progressively smaller substates. These again have some messages that mutate the state.

Now, doesn't it make sense to send the "child" messages through the parents? You shouldn't command the children directly, you should always tell the parent to tell the child do this and that. At least in our [Swift, not Elm] app that makes sense, composes well and keeps the model simple to think about.

<comment><USER5> Not op, so I don't know his/her struggle. My struggle comes maybe from the syntax I'm not used to, but also it always feels like you have to keep the whole message-graph in mind to understand which message comes from where and goes where and needs to contain which data and while that type system helps, it feels like it also makes it more difficult. You cannot just run it and see how far you come, you're code just won't compile. I know, this is a good thing for bug free production code, but exploration is harder (at least for me).

Also the types become really complicated after a while since you wrap everything in some kind of message type. So your parent message contains a child message, containing some data that needs to get passed to the next view. So errors become less readable or helpful. Or I'm doing something wrong, which could very well be because I'm a bloody beginner.

<comment><USER4> _[I]t always feels like you have to keep the whole message-graph in mind_

It should be quite the contrary. When you design a piece of the app, the piece should have its state, messages and view code, so it should be perfectly possible to ignore any context, focusing just on the single piece. Just like when writing pure functions, for example.

 _You cannot just run it and see how far you come, you 're code just won't compile._

This is a known initial hurdle with expressive static type systems I think. It gets better quickly and then you won't be able to go back, feeling existential fear without the compiler watching your back.

 _So your parent message contains a child message, containing some data that needs to get passed to the next view._

This is getting too particular for me to explain/help/argue directly. In our app, for example, the main app model is either _onboarding_ , _home screen_ or _signed out_. Then it makes big sense for the main model to accept messages regarding onboarding, home screen or signed-out state. And when it receives a message related to one of its child states, it just delegates it. This makes sense conceptually and is quite natural to follow when reading the code.

I am not an experienced Elm programmer, so maybe I am getting this wrong, but what we have has worked for us well, so far.

</comment></comment></comment></comment><comment><USER6> I built [https://bellpluscat.com/](https://bellpluscat.com/) entirely in Elm. It's a database in your browser kinda like a simpler Airtable. It uses Google Drive as it's backend.

Elm let me a single programmer build this in a couple weeks with no runtime issues even after major refactoring to add new features. It was such a pleasure to work on.

</comment><comment><USER7> Are the elm overlords still hell bent on "thou shalt program our way or not at all"

Because that kind of dogmatism is a complete show stopper for languages that want to be deployed on even medium term projects.

<comment><USER7> Specifically stuff like [https://news.ycombinator.com/item?id=16510267](https://news.ycombinator.com/item?id=16510267) is a showstopper.

I maintain long lived applications. Sooner or later we __always__ have a need to call out to the host environment to work around limitations of the compiler/runtime.

Not being able to do so, and the attitudes of the core elm team that prohibit such actions, make elm a non starter for me.

<comment><USER4> Can't you just call out to the JS world using the ports feature?

<comment><USER8> Yes. Yes you can.

</comment></comment></comment></comment><comment><USER9> Great post. I welcome any alternative to HTML+CSS+JS. It's time we moved on from these [in my opinion] garbages.

<comment><USER10> Elm is in no way an alternative to HTML+CSS. It is an alternative to JS as a way of doing work client side (it does in fact compile to JS).

The 'view' functions in Elm return HTML (represented using an ELM DSL for convenience) that is added to the DOM and so then rendered using some CSS provided elsewhere in the normal way.

<comment><USER11> I have a vastly different experience: At CurrySoftware we used style- elements[1] to build a internal frontent for a client. The whole project only contains 15 lines of HTML that sets up the elm-app. Zero CSS or other HTML.

Try it out. IMO it changes everything about frontend development.

[1]: [http://package.elm-lang.org/packages/mdgriffith/style- elemen...](http://package.elm-lang.org/packages/mdgriffith/style- elements/latest)

<comment><USER10> Thank you. I hadn't heard of this and it's really interesting. What are the downsides of that approach? Is style-elements as full featured as you'd want?

<comment><USER11> It is pretty much fully featured as what you would need in any typical web- app.

One crucial thing that is missing is guaranteed browser support. That is why we only used it for the clients internal frontend. But as I understand it, this will be addressed in the upcoming 5.0 release.

Also the resulting HTML is not always as optimal as I would hope.

All in all development is just so much faster and cleaner. No need to worry about layout and style. After using style-elements for a while, HTML + CSS seem like a really stupid idea to describe layout and style.

</comment></comment></comment></comment></comment><comment><USER12> Working on an elm project now and a few months in I believe I might see the main wart if elm which is the amount of boilerplate required. I suppose that should shock no one because elm might be many things but feature rich is not one of them. I still like it though. And boilerplate might be easier to read than some bad abstraction. Still it ends up less dry than I would have liked.

</comment><comment><USER13> Disappointed that that article did not start with "Don't Panic" in large friendly letters.

</comment><comment><USER14> Unfortunately, I am unable to read the article on my phone. The code examples do not render properly. They extend off the left and right sides clipping most of the code. Some sort of word wrap or shrinkage might be better.

</comment><comment><USER15> I thought this was going to be about the email client. The that pine is not. :/

</comment><comment> crispy-jam nice@!!!!!</comment>


Making art with SSH key randomart - <AUTHOR> https://blog.benjojo.co.uk/post/ssh-randomart-how-does-it-work-art <comment><USER2> I just thought this would be an argument why "textual" fingerprints like

       SHA256:s6N0OwlTDKjDez98kZRwUGZbTYaQUArv+EYC6sigFwA ben@eshwil

are superior to the "visualized" fingerprints: They are harder to imitate by an attacker.

However, I realized this argument is invalid: If you -- as a human -- compare two fingerprints by just looking at parts of the texts/image, you haven't done a full verification and thus are vulnerable. Therefore, in principle, the kind of key authentification how it is done in modern smartphone messengers (making a photo of a visual key (encoded in a QR code or similar) where the smartphone then verifies every single bit) is the right way to go when it comes to fingerprint verification. Humans are too impatient and too inaccurate for this job.

</comment><comment><USER3> I went into this expecting to see a bunch of precompiled randomarts manually tiled to create a composite picture.

I was not expecting to learn the simple rules that underpin how randomart is generated for a hash and then to see the author discover hashes that roughly match the goal.

Happily surprised! Very cool to read.

</comment><comment><USER4> In crypto, you can dedicate a modest amount of computing power to get a "vanity address" \-- hash enough wallet keys and you get an address that starts with 4 or 5 letters of your choosing.

This is basically the same thing for ssh keys... get something that vaguely looks like some shape you desire.

Neat!

<comment><USER5> I think I just saw a side business flash past - domain squatting / personalised number plates on the blockchain...

it's actually worth a try ...

<comment><USER6> [https://blog.ricmoo.com/contract- addresses-549074919ec8](https://blog.ricmoo.com/contract- addresses-549074919ec8) [https://github.com/ricmoo/vanity- contract](https://github.com/ricmoo/vanity-contract)

</comment></comment></comment><comment><USER7> Very cool; now all we need is a proof-of-work formalization to base a cryptocurrency on. Artcoin?

<comment><USER6> [https://clovers.network](https://clovers.network)

<comment><USER8> Clovers is awesome!

<comment><USER6> Thanks :: ) stay tuned for updates!

</comment></comment></comment></comment><comment><USER9> "With that in mind though, we can brute force similar keys"

You mean actually brute force key generations until you get what you want? In that case, how's anything previous in the article worth anything?

The drunken bishop article actually performs some smart brute force searches. Maybe the author is doing something similar?</comment>


Ask HN: is Prolog special or enlightening? - <AUTHOR> In the book Coders at Work, Joe Armstrong got me curious about Prolog: "Prolog is a beautiful language but not widely used... Prolog is so different to all the other programming languages. It's just this amazing way of thinking."
Another blog post, "Six programming paradigms that will change how you think about coding", mentioned Prolog as an example of the mind-expanding "declarative programming" paradigm, which got me curious enough to start experimenting with it.
As an experienced programmer in C++, Python, SQL and other languages, I found myself thinking, "I could do all this quite easily with a relational database, or with structured data types in a mainstream language." Defining relationships between data (e.g. "likes(fred, apple)."), boolean predicates ("is_fruit_eater(X)."), etc., could be represented easily with boolean fields, boolean functions, and so on. And searching through your data for certain conditions is pretty trivial with a for loop or recursive search, with the added bonus that you know what the hell is going on algorithmically without having to read the Prolog interpreter's source code.
But: I'm a Prolog ignoramus at this point and have only scratched the surface, so I wanted to see if any Prolog veterans on here could shed some light. Is there a moment of enlightenment that comes with a little more persistence and study? Am I missing something? Can it be summed up in mainstream-language terms?
People giving advice online seem to take the attitude of "learn everything you possibly can, it can only help your programming knowledge" but with finite time on earth and a bottomless supply of information out there (look at how deep you can go into the game of chess!) that always strikes me a bit glib and uninsightful. So for someone who's walked down the Prolog road - how was it worth it? <comment><USER2> Prolog is well worth learning for several reasons. One is practical and easy to explain: Syntactically, Prolog is a very simple language with a powerful implicit search mechanism. As one consequence, it lets you _prototype ideas quickly_ , especially if search is involved in some way, which is almost always the case in practice.

The second reason is harder to explain. I can only hint at it for now, and you will understand the full extent once you apply Prolog in actual practice: With Prolog, you feel closer to the actual task. First, because you will not manage to even get started unless you manage to express your ideas clearly. Without this, there is nothing "to do" in Prolog. In other languages, it feels that you can always "do" something, such as declaring interfaces, types etc., even if it does not truly help you for the task at hand.

I have sometimes heard students proclaim: "Prolog is so hard! I could easily solve the task in Java, but I cannot solve it with Prolog." When you ask them to describe how they would solve the task in Java, they are unable to do it.

In my view, this shows that the tasks we demand from Prolog beginners are typically already _inherently_ much harder than what we demand from beginners in most other languages. There is also a reason for this: These simpler tasks would often be non-issues or at most extremely trivial in Prolog, so we eschew them entirely.

Second, you are reasoning _directly_ about terms, without any intermediaries such as pointers, references or even arrays. It's just terms, terms all the way down. They come into existence by simply _writing them_ , or by stating the properties that ought to hold, and asking the system to _find_ them. This second property is specific to logic programming and _not_ present in functional languages.

In a very real sense, this is close to the ideal of programming: We describe what we want, and the machine finds it.

Prolog has many other advantages too, such as admitting very simple yet powerful meta-interpreters, much shorter ones than are possible for Lisp, for example. The implicit search mechanism and logical variables enable such features which are missing from most other programming languages.

Finally, constraint logic programming blends in naturally in Prolog. This is a very important paradigm that is heavily used in specialized industries, making excellent Prolog skills also very marketable.

</comment><comment><USER3> _Logic programming_ is very useful and absolutely worth learning, like object- oriented programming and functional programming.

Unfortunately, the Prolog implementation of logic programming, arguably, not so much.

An alternative is to find some general purpose language which supports Prolog semantics as a library.

E.g. one example is miniKanren, which has been implemented in a number of languages, many of them Lisps but not all:

[http://minikanren.org/#implementations](http://minikanren.org/#implementations)

[https://stackoverflow.com/questions/28467011/what-are-the- ma...](https://stackoverflow.com/questions/28467011/what-are-the-main- technical-differences-between-prolog-and-minikanren-with-resp)

If you're using something like miniKanren, you've got the logic programming, plus the rest of the language in which to do other things in other ways.

The idea that you specifically have to use Prolog for logic programming is as outdated as the idea that to do OOP, you must use Smalltalk.</comment>


Ask HN: What are the possible outcomes of bombing Guam? - <AUTHOR> Seems there are a lot of gamers and military aficionados on HN.. using this tool: https://nuclearsecrecy.com/nukemap/ and other historical facts, how do you think this could be played out if you were a top General in the Pentagon. <comment><USER4> Well, first of all, either they hit or they miss. I wouldn't take hitting as a certainty.

If they miss, well, the US has more options. They don't _have_ to immediately destroy NK - not that I think that would stop a hothead like Trump.

What I'd do, from the US side: Destroy their nuclear facilities, and anything associated with it, plus decapitation strikes.

What I'd expect them to do in response: Immediately begin attacking South Korea.

What I'd do in response to that: Attack every military facility I know of in NK, and keep attacking them until they're non-operational. Also unleash everything available to help SK at the front.

What I'd expect them to do in response: Unleash everything they have.

I'd expect to win, and totally destroy the government and military of NK - <USER2> the price of a million or more NK dead, maybe that many SK dead, and perhaps 10,000 US dead. It's a horrific price, but I don't see where along the way there's a place where it can stop. As soon as NK launches against Guam, it's game on, and nobody can back down.

I wish had a better answer for that...

But there's a subtle distinction that needs to be made here. You asked about NK bombing Guam. In fact, NK has announced plans to fire a test missile to 40 km away from Guam (going over Japan on the way). If they do, that is _not_ the same as bombing Guam. In that case, first, I would try to shoot it down when it goes over Japan, and then again on approach to Guam. Second, I would announce, and carry out, an ICBM test launch that landed 40 km off of North Korea.

My rationale is this: NK is sending a clear, provocative message. They don't care about violating norms of territorial integrity, only about actual military action. Fine. Then as they do, it will be done to them - <USER3> provocation in return, with an equal message.

</comment><comment><USER5> Pretty interesting discussion going on over on /r/neutralpolitics: [https://www.reddit.com/r/NeutralPolitics/comments/6sp6x0/wha...](https://www.reddit.com/r/NeutralPolitics/comments/6sp6x0/what_strategic_benefits_would_north_korea_gain/)</comment>


How to make your IT staff unpoachable - <AUTHOR> https://insights.hpe.com/articles/5-ways-to-make-your-it-staff-unpoachable-1703.html <comment><USER2> Your employees get your best current job offer every two weeks in the form of a paycheck. The world is welcome to beat it, and you have only yourself to blame if your offer turns out to be inferior.

<comment><AUTHOR> Truly, you think that money is all that matters? I strongly disagree.

My husband has a job at a small company. There is no doubt whatsoever that he could get a 40% raise by moving elsewhere. He has no interest in doing so, and I would discourage him from even entertaining the idea. Among the reasons:

* He works on products that he feels make the world better.

* Everyone, from CEO to colleagues, say _Thank You_. Regularly. And they mean it.

* He spends minimal time in meetings. When a meeting is held, it's for a good reason. Nor, as an introvert, is he encouraged to interact with the public.

* If he wants to go to a tech conference for anything even vaguely relevant, he never gets an argument about it. Nor do they suggest he do it on the cheap. They see education as an investment in staff.

* Like a lot of businesses, his company says, "We're a family." Unlike a lot of businesses, they mean it. When the spouse of one employee got cancer, the employees created a fund (that the CEO decided to match) to raise money for one of those "make food in advance" freezer-meals companies. This way the employee and spouse could focus on her healing, not on coping with dinner.

Nor is this a matter of treating a star player in a special manner. Of the 70 people in the company, about 40 have been at the firm for 10+ years. They have extremely little turnover.

Money? Feh. The point is to be happy at what you do. And he is.

<comment><USER2> You misinterpret me. Compensation comprises both the tangible and the intangible. So does any incoming offer package. Would your husband move to another job with better pay and even better intangible contributors to happiness?

<comment><AUTHOR> First we'd have to imagine what "even better intangible contributors" would be. I'm hard put to think what those might be (for him... my own would be quite different).

This is pretty much his dream job. Yeah, it'd be nice to have more money, but he'd have a hard time trusting any offer of better intangibles.

</comment></comment></comment></comment><comment><USER3> hpe.com -> Hewlett Packard Enterprise. A very stodgy firm, no? This article sure reads like it was written by committee and copyedited by another committee.</comment>


Can 'Donate' button help? - <AUTHOR>

Was demoing an early version of my app to bunch of friends, and one guy commented, put it online for download, and put a Paypal donate button next to it. A lot of people like him, woouldn't mind donating for downloading. That got me thinking ... Can the Donation model be used to bootstrap a project? Have any of you done so? <comment><USER2> It works, but you have to have an _enormous_ number of users or a very good cause.

Even on a site with 30K users per day it brings in less than $50 per month on a site of a couple of friends of mine. It's just enough to pay their hosting so they are happy but as a business model it is a total loss.

Take the most recent wikipedia drive as an example, they have an unbelievable amount of traffic and they raise paltry little bits from their users (big corporate donors are what is keeping wikipedia really afloat).

interesting read about this:

[http://valleywag.gawker.com/5079643/wikipedia-volunteers- rej...](http://valleywag.gawker.com/5079643/wikipedia-volunteers-reject- dishonest-donation-drive)

</comment><comment><USER3> yes, if your product will generate revenue for the user. as a web designer if i'll generate revenue by using a free wordpress template i'll donate a percentage for that designer.</comment>


Y Combinator co-founder Jessica Livingston goes on sabbatical - <AUTHOR> http://www.bizjournals.com/sanjose/blog/techflash/2016/04/y-combinator-co-founder-jessica-livingston-taking.html <comment><USER2> I met Jessica when I interviewed at YC. She was very nice in addition to extremely intelligent, of course. She was smiling the entire time and made a clear effort to make me less nervous. I hope she enjoys the recharge!</comment>


Running a South Pole data center - <AUTHOR> http://arstechnica.com/business/2012/04/24/coolest-jobs-in-tech-literally-running-a-south-pole-data-center/

<comment><USER2> I'll re-post here what I posted the last time this came around:

I applied for this job. I have a PhD in physics and have some administrative experience, and I didn't (yet) have a postdoc position. The application process was very interesting---I had a phone conference-call interview with a few people in Wisconsin and New Zealand. I made what must have been a relatively short short list, because the interview was not cheap: they flew me to WIPAC, had me take a full physical (ultrasound, cardio study, chest x-rays, etc.) which is required for any winter-over position, set up a full day of interviews with science-side, tech-side, and administrative-side people, some of whom themselves had wintered over. The beer and cheese curds in Madison are great. Check out the Great Dane.

A lot of the interview was to gauge personality, and there were a lot of questions along the lines of "If someone was acting in a dangerous & threatening way, and you were in a place more remote than the space station (in the sense that there is no escape capsule or any chance for rescue) what would you do?"

The tech that keeps IceCube going is a bunch of custom-designed and manufactured blades which receive (IIRC) UDP from the sensors in the ice. A lot of processing happens at the pole, because the limited (and satellite- orbit-dependent) bandwidth would make transferring the whole dataset wildly impractical. So the "interesting" events are found on-site and sent over the satellite, while everything is also written to tape. Once the summer comes the tape is swapped out. Scientists can also query additional data to be sent via satellite if they need something specific. A few weeks later I was told that for the two IceCube winter-over tech positions, I was third choice, and that if one of the people offered the job sustains an injury, fails the psychological examination, or backs out, that I might be called on short notice. As I didn't have a job at that point, it was OK by me, but I was certainly disappointed. I'm happy in my postdoc position, but will certainly apply again when the time comes.

Had I wintered over, it would have been the smallest of small-world phenomena, as someone I know from college was one of the chefs there this winter.

Aside: I have heard that (if you get the job) they will sometimes preventatively remove your wisdom teeth / demand & provide other preventative treatments.

<comment><USER3> Really neat story, thanks for sharing!

I heard that appendices are personae non gratae at the South Pole, do you know if that's true?

<comment><USER2> I don't know, actually. That seems more invasive that taking wisdom teeth out. I can ask around if you want.

</comment></comment></comment><comment><USER4> Excellent article!

What is the profile of the people who would agree to work there? Do they do it for money? You need to live separated from social life for a year (let alone reiterating the next year), that means you're not progressing in terms of love/family. Basically your whole private life is suspended like it is in prison. Even as a solider, there is probably more private life. Is it properly compensated by the coolness of the job?

So do those sysadmins have a profile of "They gave me the choice of prison back home, so I opted for the Pole"? They are ultra-skilled for sure, since paying one excellent admin is cheaper than two average ones. So I guess the pay is 3x the SF wage? OTOH, research isn't known for paying much since it's full of passionate people who'd give up everything to be here.

<comment><USER5> Last time this story was posted there were some enthusiastic people saying they'd take the job: [https://news.ycombinator.com/item?id=8569459](https://news.ycombinator.com/item?id=8569459)

Apparently it pays $52k/y plus expenses.

<comment><USER6> If it covers all expenses and I can save at least $50k per year, I'd not mind it. Although in full disclosure, I find it very unlikely that I'd return the year after.

</comment></comment></comment><comment><USER7> [2012] Previously on HN:

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

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

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


Ask HN: What do you use to manage your knowledge base? - <AUTHOR>

I am curious about what software you use but more importantly what's your strategy for managing your overall knowledge base, TODO lists, notes that needs to revisited asap, notes that need to be revisited after x amount of time, short format notes, long format notes, articles, snippets, etc.<p>For me, I use evernote mostly for web clipping but I rarely revisit them. For short format notes, I end up having dozens of sticky notes on my desktop. Some stay there for many months until I have what I need to take action on them. As far as knowledge base, I tried many software with no success. I always feel that I am spending more time inputting data than consuming it. <comment><USER2> I have a personal wiki that's powered by Org mode.[1] My wiki contains around 1,000 documents, including all my notes and personal task lists.

I've stopped using bookmarks, other than smart keyword bookmarks[2] in Firefox. I previously had thousands of bookmarks. I now use my wiki for long- term storage of URLs, and I use a feature-rich Firefox extension named Session Manager[3] for short-term storage of unprocessed URLs that relate to topics I plan to study in the future.

Before I started using a personal wiki, my notes were stored in files of various formats, and the files weren't linked in any way, which in retrospect is crazy because many of the subjects I've studied are very closely related.

I can't imagine not having a personal wiki at this point, and almost immediately after I created one, I strongly regretted not doing so sooner.

At some point, I plan to convert my notes from Org files to HTML so I can publish them to the web. I plan to use Middleman[4] to create the site template because I like Haml and Sass. I just need to find the time to identity all the sensitive information in my notes so I can filter it out before publishing the documents.

EDIT: I use a small paper notepad and pen for notetaking when I don't have access to Emacs. I process the notes on my notepad daily.

[1] <http://orgmode.org/>

[2] [http://support.mozilla.org/en-US/kb/how-search-from- address-...](http://support.mozilla.org/en-US/kb/how-search-from-address-bar)

[3] [https://addons.mozilla.org/en-US/firefox/addon/session- manag...](https://addons.mozilla.org/en-US/firefox/addon/session-manager/)

[4] <http://middlemanapp.com/>

</comment><comment><USER3> I've started putting together a toolkit based around Evernote and Asana:

\- All notes go into Evernote, no matter how small

\- I drive my tasks (including responding to e-mail) from Asana

\- I've written some Applescripts to pipe flagged mail (and eventually meetings) from Outlook to Asana

\- I'm working on some Chrome extensions to help me track time on Asana tasks and also keep me on top of what's "in flight" or what I was working on when I got interrupted. The idea is to eventually build out some reporting so that I'll be able to look back on the week and see what I've accomplished and how long I've spent on various topics

<comment><AUTHOR> Cool. I'll check Asana out.</comment></comment>


Endlessh: An SSH Tarpit - <AUTHOR> https://github.com/skeeto/endlessh <comment><USER2> Are tarpits still of use these days? I sort of figured that even modern script mass attackers have gotten professionalized and sophisticated enough that they can deal with trivial timeouts and the like. I could see actual honeypots still being of use for researchers or blue teams at organizations that are real targets, and ML might even open up some interesting new ways to make those more engaging for longer. But a tarpit doesn't seem like it'd cause bother for drive-by or APT, the former are all about volume so if something takes more than a few seconds just skip it (and maybe flag it as a tarpit for punishment) and an APT will instantly recognize it too.

For individuals and smaller orgs I've sort of felt like keeping your head down, running a wg/ssh bastion with a non-standard port maybe along with single packet auth or even plain old port knocking to reduce log spam from random drive-by is more effective and attainable for places without any sort of dedicated security or even constant in-house IT staff. Running a tarpit on a VPS seems like it'd fail to bother most these days, and running it on an actual IP seems like at best it'd have no effect and at worst if it ever actually held up a scanner and the operator noticed they might decide to direct some actual attention to that IP, or at least throw a mild ddos at it for a bit. Am I wrong or out of date on that? I'm all for sticking it to bad actors and efforts to reduce the economic incentives, but in 2020 tarpits strike me as kind of obsolete with some risk to boot.

<comment><USER3> For individuals and smaller orgs the easiest and by experience the best practice is to use a certificate (or generated and never to be reused password) for ssh authentication, install server monitoring, and then simply observe if the spam from random drive-by causes enough resource drain that would validate further work. Most likely it won't.

Running a tar pit is a bit like installing a trap on a bike in order to teach bike thieves a lesson. It won't really reduce the problem, but for a lot of people the idea of vengeance gives a bit of a warm happy feeling.

<comment><USER4> _> Running a tar pit is a bit like installing a trap on a bike in order to teach bike thieves a lesson._

It's more like approaching a thief and persuading him to steal some bike "just around the corner", then guiding him around endlessly. While he's following you, he's also not stealing anything from anyone, his attention (which is naturally finite) gets drained - even just a little bit - to the benefit of the community as a whole. It's not necessarily about vengeance.

<comment><USER5> Tangent story. Two friends of mine went backpacking to Amsterdam, short pants and all. When they got out of the train in the evening, a friendly guy approached them and asked if they were looking for a hotel. They said yes, so he told them to follow him. Delighted to be greeted in this way, they did.

First they went down the regular path up Damrak to get to Leidseplein, but slowly and imperceptibly the streets were getting narrower and narrower, until they finally reached a dead end. That's when the guy whirled around, flipped out a small pocket knife and wheezed to them, "Gimme all your cash! NOW!"

The guys looked at each other, and then looked at him, and then one of the guys calmly told him, "Look, we're two guys, and you're just one. Even if you get one of us, the other will beat your head in. You can't win this."

The mugger looked puzzled for a moment, but then he retorted, "Ok, give me _half_ your money then, and nobody gets hurt!" Not wanting to be the first guy who got stabbed, they agreed that, "Fine, we'll give you half! But only if you promise to not stab us." And so the deal went down, and they had finally arrived in Amsterdam.

<comment><USER6> People will approach tourists a lot like this in central and south america, but the end game tends to be to take the tourist to an inn or restaurant where they get a commission for taking them.

I've never gone with anyone anywhere but very public spaces. But I actually have found some real gems tucked away off the beaten path this way.

<comment><USER7> A friend and I took a day trip to Morocco many years ago while backpacking through Spain and experienced this. A local guide approached us who came across as pretty legit and had a driver. We had a good time being shown around to different stores and it was pretty clear that he was getting a kickback from the places we went. Had some nice mint tea, and a pretty good meal later.

There was a slightly dark time in the middle though, where my friend and I were sure we were going to be mugged and left for dead when we were driving further and further from the city. I've never experienced anything quite like it before or since. We both looked at each other, and in an instant with a single expression we were both able to convey that "I love you and we're going to die". We were totally relieved when it turned out they just wanted to show a scenic view by the sea, while showing us a lot of very rich mansions along the way.

Was totally surreal, though, and I'm not sure how lucky we were.

<comment><USER5> Danish Louisa Vesterager Jespersen (24) and Norwegian Maren Ueland (28) were killed and decapitated by ISIS terrorists on a trip to Morocco in 2018. They were found near the Atlas mountains. The murders were filmed and put on the internet. 18 men were since arrested by Moroccan police and charged with terrorism.[1]

[1]: [https://en.wikipedia.org/wiki/Murders_of_Louisa_Vesterager_J...](https://en.wikipedia.org/wiki/Murders_of_Louisa_Vesterager_Jespersen_and_Maren_Ueland)

<comment><USER5> Somehow factual information like that is always downvoted, but criminal and terrorist activity is important information when considering where you want to travel in the world, so you should take it very seriously.

Case in point, I travelled with my friends through Serbia during the early 2000's. Now, we'd spoken with our country's foreign ministry, and they told us that it was relatively safe to travel in the North of the country. At the time, we were adviced to avoid the South of Serbia because of small gang clashes still being ongoing. We avoided Romania as well, since a lot of car jackings had been reported at the time.

After driving for a very long time, we got tired, and parked at a forest road in the darkness. It was pitch black, so we figured no one would come there. But after a while, I heard a car stop down at the main road, and two guys moving closer to our car on the gravel. This prompted me to reach for a small screw driver I had laying around, just in case.

When they arrived at the car, they knocked on my window, and peering to the darkness I noticed that they were actually police officers. They wanted to know what we were doing there, so I explained to them that we were just trying to get some sleep for the night.

Then they asked me, "Did you see the boarded-up gas station further up the road?" I nodded, and he continued. "Yeah, well, last week a gang came by there and shot the whole family dead, mother, father and two kids. That's why the place is boarded up. Listen, guys, this place isn't safe. So please come with us, and we'll show you a lit parking lot in the nearest town. You can sleep safely there, under the lights."

Needless to say, we accepted their escort, although it was far more easy to sleep in the darkness rather than under a street light.

Then there's the story of my boss who ignored advice to not go to Egypt during some troubled times, and ended up in a firefight as the bus in front of him was lit up by a hail bullets. He thought he was going to die, and he very well could have if he'd gone with the front bus.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> Reminds me of the dungeon I built for web crawlers to have fun collecting email addresses at [https://darkwiiplayer.com/bot- dungeon](https://darkwiiplayer.com/bot-dungeon) xD

<comment><USER9> Does it only go to level 100?

<comment><USER10> It seems to go to as many characters as you can fit in the URL. Each new character after /bot-dungeon/ is a new level.

Pretty clever!

</comment></comment></comment><comment><USER11> I'm sure this was fun to put together and it seems like it's fun for people to talk about, but you can put this along with fail2ban, port knocking, and nonstandard SSH ports in the back of the attic and just (1) turn off password authentication entirely and (2) put SSH behind WireGuard. Even if you don't do step (2), step (1) eliminates the rationale for all the silly stuff people do to obfuscate their SSH installs.

<comment><USER12> Could you elaborate on WireGuard part? Do you mean that users must first VPN, and only then can SSH, or something else?

<comment><USER11> Yes. This is how SSH access to prod works in most large companies: you have to be behind the VPN to get it.

<comment><USER13> You know this but I'm just throwing it in for people who don't and aren't working on large company things:

You can give yourself a WireGuard-powered, Single Sign-on, secure overlay network between, say, your phone, your laptop, a DO droplet and an AWS instance near-instantly and for (currently) free with tailscale.

By 'near-instantly' I mean it takes almost no effort to set up. It takes me longer to get my dotfiles right on a new host.

<comment><USER11> It is disgusting how good Tailscale is. I mean that I am literally welling up with disgust thinking about it.

</comment></comment></comment></comment></comment><comment> Lex-2008 discussion of a blog post about this tool: [https://news.ycombinator.com/item?id=19465967](https://news.ycombinator.com/item?id=19465967)

</comment><comment><USER14> One I made in async Rust: [https://github.com/Freaky/tarssh](https://github.com/Freaky/tarssh)

I currently have 22 clients stuck it in across three machines. When I started out it was more like a thousand, so seems they've largely adapted.

</comment><comment><USER15> Great idea!

I'm not sure we should be writing new network connected daemons in C though.

<comment><USER16> > I'm not sure we should be writing new network connected daemons in C though.

In general, yes. However, in this case--no, that's not helpful advice--because this program doesn't actually receive input from clients! Kind of hard to trigger exploitable behavior on a program that only sends _output._

<comment><USER17> _Kind of hard to trigger exploitable behavior on a program that only sends output._

It wouldn't suprise me to find there were still possible exploits

<comment><USER18> Explaining, since you were downvoted without a proper reason:

While _everything_ is possible, most exploits happen on buffer overflows on user-received custom data. and since this is not allocating any buffer to receive anything (besides internal connection structures that are filled by the OS), the attack/exploit surface on this one is really tiny, if existent at all.

</comment></comment></comment></comment><comment><USER19> I have to admit that I tried this and it was rather lackluster. Log output:

[https://pastebin.com/4FTHRF3f](https://pastebin.com/4FTHRF3f)

Not a lot of activity over the time I ran it, and I know that the port gets hit more than that. I had a much better time when I ran a honeypot with Kippo:

[https://github.com/desaster/kippo](https://github.com/desaster/kippo)

It was much more useful as it gave me a great list of IP's to block from all my systems ;)

<comment><USER20> The top of the readme for that repo advises to use the fork: [https://github.com/cowrie/cowrie](https://github.com/cowrie/cowrie)

</comment></comment><comment><USER21> The tarpit approach is a double-edged sword. Sure, you're keeping some script kiddie's machine locked up (maybe), but you're also keeping socket connections open and wasting resources on the machine they are targeting. A much more efficient approach is using fail2ban and a firewall to just drop traffic from offenders.

<comment><USER22> Tarpits aren't really a defense mechanism. They're meant to waste attackers' time and study their techniques, making attacks more expensive.

It's sort of like those YouTube channels where they waste phone scammers' time in an entertaining way. [0] Obviously, the easiest thing for the callee to do is hang up the phone, but their goal is to make phone scams less profitable.

[0] [https://en.wikipedia.org/wiki/Jim_Browning_(YouTuber)](https://en.wikipedia.org/wiki/Jim_Browning_\(YouTuber\))

<comment><USER23> > where they waste phone scammers' time in an entertaining way.

This can also be automated, so the defender doesn't even need to waste their own time on it. Eg: [https://old.reddit.com/r/itslenny/](https://old.reddit.com/r/itslenny/) .

</comment></comment></comment><comment><USER24> Hah, I love endlessh.... been running it for a few years now on one of my digital ocean droplets. Better to fuck with these bots. My personal record was somewhere around 23 days having one stuck.

</comment><comment><USER25> What got my inspired here is, if a simple delay strategy can make attack harder, why not add this as a common feature in SSH?

It can be called "Initial Connection Delay": Once a new TCP connection is established, wait for an uncertain number of n seconds before read and respond to the handshake request.

</comment><comment><USER26> One of the simplest ways to block unwanted connections is to filter on client id. I haven't seen anyone willing to change it even though I've blocked libssh, sshgo, and paprika.

Of course, this functionality is only available in non-standard SSH servers such as the one from Bitvise.

</comment><comment><USER27> This would have been fun to put onto production machines. We had a botnet that was running ssh bruteforce with 10s requests per second with unique IPs. It stopped after we disabled password auth.

<comment><USER28> Wait, I think I'm an idiot - does disabling password auth entirely prevent openssh from generating a password prompt?

<comment><USER29> yes

<comment><USER28> Whoops, silly me / more coffee needed. All my servers have:

      PasswordAuthentication no
      ChallengeResponseAuthentication no

so sshd never generates a password prompt.

They all run on a non-standard port, and it's somewhat rare to see more than one unique IP address connection attempt, but every few days you see a few hundred in sequence from a script too dumb to notice.

</comment></comment></comment></comment><comment><USER30> This is like a self-administered "slow lori attack" then - making it easier for an attacker to keep connections up until things start getting tight on port 443.

<comment><USER31> I can imagine this is so easily overcome by the attacker. Why would they even need machines that take 10 seconds to return a single line over SSH?

<comment><USER32> Tarpits trap dumb animals. An intelligent attacker won't fall for it, but they aren't meant to.

</comment></comment></comment><comment><USER33> [https://github.com/carlmjohnson/heffalump](https://github.com/carlmjohnson/heffalump)

<comment><USER34> This seems like it would use a lot of bandwidth?

<comment><USER33> Oh, it's a terrible idea. It's basically a practical joke.

</comment></comment></comment><comment><USER35> I'd rather have a trusted common list of known abusers' IPs. But I think that's harder to maintain.

<comment><USER36> That's called a DNSBL, and there are many of them, mostly for email spam though.

[https://www.dnsbl.info/](https://www.dnsbl.info/)

<comment><USER19> What I find infuriating is when an admin gets the bright idea to block all connections from IP's that are in _mail_ dnsbl's. It's a great way to alienate people from using your services. I can't remember which company was doing it, but a customers API calls to a vendor failed because the vendor blocked the IP, which was blacklisted somewhere.

Here's the kicker: The server wasn't even used to send mail and hadn't been for a long time. So we had to apply for a delisting from a mail blacklist for a server that didn't send mail so that a customer could use an API.

The admin thought they were being clever, but instead they were just being _difficult_.</comment></comment></comment>


DeBroglie – Generate tile-based maps using wave function collapse - <AUTHOR> https://boristhebrave.github.io/DeBroglie/ <comment><USER2> Oh also here is the original creator of the algorithm that this implementation is based on:

[https://github.com/mxgmn/WaveFunctionCollapse](https://github.com/mxgmn/WaveFunctionCollapse)

Even more examples up there.

</comment><comment><USER3> I wrote a js wave function collapse implementation earlier this year and really enjoyed the process and its results. Constraint support is a feature I'm still looking forward to adding in the future, so it's pretty neat to see how others have tackled similar things.

This algorithm is really amazing -- it's effectively very similar to a markov chain to generate map/image data.

<comment><USER4> > The coefficients in these superpositions are real numbers, not complex > numbers, so it doesn't do the actual quantum mechanics, but it was inspired > by QM.

I'm not sure how to think about this algorithm. Is it just applied statistics?

<comment><USER3> I've never done any applied statistics that I know of, so I'm not sure!

For a 2D map the loose layout of the algorithm is this: construct a 2D array of blank tiles. Choose a tile at random from the set of most-constrained tiles (this is currently all of them as they are all equally unconstrained) and give it a value according to some distribution. Constrain its neighbors' potential values and update whatever system you use to track most-constrained-tiles for selection, then repeat until no unset tiles remain.

Depending on the complexity of the distribution (# of tile types and absoluteness of neighbor relations), you may end up with a contradiction where an unset tile has no possibilities. At this point you could progressively backtrack, throw the whole set away, or fudge something, depending on what matters to you in life.

You can end up with some very cool things!

The problem has some neat aspects to consider in how to represent tiles, how to track constraints, how to efficiently update your selector, how to design your distributions, etc! There are a ton of avenues to explore.

I make no claims on the goodness of this example or its implementation, but I wrote a small game to use/test my wfc code here: [https://wcarss.ca/jabiru/](https://wcarss.ca/jabiru/) \-- the maps generated are entirely outputs of the algorithm.

</comment></comment></comment><comment><USER5> I think the article title here is a little wanting... I was expecting something a little different.

<comment><AUTHOR> For background, here is an earlier HN thread about wave function collapse.

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

</comment></comment><comment><AUTHOR> I suggest checking out the "Features" page:

[https://boristhebrave.github.io/DeBroglie/articles/features....](https://boristhebrave.github.io/DeBroglie/articles/features.html)

</comment><comment><USER6> This is really neat. The stylization of the hexagonal tile sets reminds me of a tabletop game I played years ago called Heroscape. Is there any chance that it was inspired by that?

<comment><USER7> Not sure about the inspiration, but I believe it's these:

[https://opengameart.org/content/pixel-hex-tilesets- enhanced](https://opengameart.org/content/pixel-hex-tilesets-enhanced)

</comment></comment><comment><USER2> Been working with this implementation of WFC in Unity and it's been a lot of fun. The game Bad North that just came out also uses this technique heavily for 3D island generation.

</comment><comment><USER8> This is really neat. Did you create this for a game?

<comment><USER9> Author here. No. I saw some neat stuff from the author of WFC[1], and realized it combined perfectly with another proc gen algorithm I'd designed earlier[2]. Hence why this is the only implementation I've seen with non-local constraints[3]

[1]: [https://github.com/mxgmn/WaveFunctionCollapse](https://github.com/mxgmn/WaveFunctionCollapse) [2]: [https://www.boristhebrave.com/2018/04/28/random-paths-via- ch...](https://www.boristhebrave.com/2018/04/28/random-paths-via-chiseling/) [3]: [https://boristhebrave.github.io/DeBroglie/articles/features....](https://boristhebrave.github.io/DeBroglie/articles/features.html#constraints)

</comment></comment><comment><USER10> Pedantic note: wave functions do not collapse; decoherence occurs.

</comment><comment><USER11> Not directly related, but for People interested in fundamental physics, classical mechanism is becoming very relevant for explaining particles.

      «in the deterministic collapse theory of 2016 [29] the nonlocal absolute phase constants of the wavepackets were taken as hidden variables (cf. [30]). Collapse occurs when two wavepackets spatially overlap and satisfy a mathematical criterion, which demands that their phase constants very nearly coincide. The wavepackets then collapse to the overlap volume. In a measurement this mimics the action of a point particle. The phase constants are pseudorandom numbers, in the sense of the deterministic chaos theory, and the Born rules are derived under the assumption that their distribution is uniform.   »

     « Physicists report that quantum behavior can be explained with classical physics for a single particle, but not for multiple particles as in quantum entanglement and related nonlocality phenomena ("spooky action at a distance" ["gruselige Action in einiger Entfernung" (german)],[344] according to Albert Einstein) »

[https://www.eurekalert.org/pub_releases/2018-10/thni- wii1011...](https://www.eurekalert.org/pub_releases/2018-10/thni- wii101118.php)

And another hidden variable theory explain quantum entanglement.

Thus, classical mechanism deterministically explain ALL of quantum mechanics ! What still needs to be done is to unify those three local hidden variable theories and wouldn't that create the first theory of Everything ? A thing that quantum mechanics will never by design be able to do by being incompatible with general relativity.

Let's be clear, probabilities distributions (quantum mechanics) are a Nice map of the territory. But the map isn't the territory ans the territory IS superdeterministic like classical mechanics.

Also, I believe that local hidden variable theories are deeply underresearched because mainstream scientists have not updated their belief on them since 40 years... I guess too that many quantum scientists are afraid of dropping the Nice absurd Idea of free will...

<comment><USER12> I thought Bell's theorem ruled out local hidden variable theories? [https://en.wikipedia.org/wiki/Bell%27s_theorem](https://en.wikipedia.org/wiki/Bell%27s_theorem)

<comment><USER13> From [https://en.wikipedia.org/wiki/Pilot_wave_theory#Principles](https://en.wikipedia.org/wiki/Pilot_wave_theory#Principles)

> _The theory brings to light nonlocality that is implicit in the non- > relativistic formulation of quantum mechanics and uses it to satisfy Bell 's > theorem._

[Disclaimer: I don't like pilot wave theory.]</comment></comment></comment>


Don't be a hero: Giving up is good to do   - <AUTHOR> http://www.37signals.com/svn/posts/386-dont-be-a-hero-giving-up-is-good-to-do <comment><USER2> The general form of this is everything takes longer than expected.

On NerdTV, <http://www.pbs.org/cringely/nerdtv/shows/> Max Levchin repeatedly makes the point that there's a difference between something being _hard_ , and something being _valuable_.

Valuable things were probably hard to do, but there are plenty of things that are really hard but won't help your bottom line.

</comment><comment><AUTHOR> I always try and be a hero and like DHH says, its bad.</comment>


Rest in peace, Autumn Radtke, we'll miss you - <AUTHOR> http://www.techinasia.com/meta-ceo-autumn-radkte-commited-suicide/

<comment><USER2> So sad. I met her in 2012, she had generously treated me with dinner, drinks, and time from her busy schedule. She seemed so interesting. Been a year I wanted to invite her back but we were both busy all the time... Now it's too late. We lost a great CEO and beautiful person.</comment>