Andrew Yang qualifies for first DNC debate with 65k unique donors - <AUTHOR> https://www.axios.com/andrew-yang-2020-democratic-primary-debate-6b64b6c5-b256-4056-8385-3d108038cd25.html <comment><USER2> Another topic Yang brings up frequently besides the Freedom dividend is retraining.

Automation in retail, driving, etc. has the potential to make jobs obsolete at a rapid pace. Rather than trying to fight to save jobs that can be done by machines the idea is to retrain people in these industries to do things machines aren't good at.

The idea is to not slow down progress but also not abandon people who happen to have built a life in a dying field.

<comment><USER3> He does frequently bring up retraining, but in the context that government- sponsored retraining programs have between a 0% and a 15% success rate. E.g. the graduation rate for former military employees who then go to college is 0%.

So retraining isn't a solution to jobs being lost by automation and even if we get significantly better at retraining it's still probably not a solution.

<comment><USER4> Are there any retraining programs that have more than a 50% success rate? Has retraining ever been a realistic option for job loss? Seems more likely the next generation would make up for the lost jobs on paper

<comment><USER5> I always hear about these "retraining programs" but I've never met anyone who has done one. Where do these programs even happen? What are they training people to do? Is it offered to people who file for unemployment or meant to be more proactive?

<comment><USER6> I teach data science at a masters programs (University of St Thomas graduate programs in software in the twin cities) and we have some students who are part of retraining programs. Apparently if a big company lays off a significant chunk of workforce and off-shores it, there are programs funded through corporate taxes that the laid off workers can use to go to school. The students in my anecdotal experience (2 semesters so far) are pretty good. I think there must be more than one such program because some students required a sign off from me but others didn't. It's just a few students that I know of so it's not a super large scale but it's nice to know that such programs exist at least.

<comment><USER5> Very interesting, thanks for sharing. I'm pleasantly surprised to hear the programs include such high-level courses.

</comment></comment></comment></comment></comment></comment><comment><USER7> Prediction: UBI won't go anywhere, because it has a branding problem. If we rebrand it as a Negative Income Tax it may actually go somewhere.

<comment><USER8> That's what the "Freedom Dividend" branding is all about!

<comment><USER7> I don't think that's good enough. Dividend still have a connotation that you are getting a handout.

<comment><USER9> UBI is a handout is it not?

<comment><USER10> 300M people x $1000 per month.

Where does that money come from? (taxes?). What will stop inflation from just negating that 1000 gain?

UBI doesn't have a political problem. It has a math problem.

<comment><USER11> Let's look at the other side. 65% unemployment.

Everyone is homeless, or starving or both.

These people used to spend 100% of their paycheck at Walmart, local grocers, fast food. Now they spend 0.

So big retail/fast food shops close, more jobs lost.

UBI puts money in people's hands --the people who spend it all in their own local economy.

They can do more to get some of that back through taxes so it's more like 'recycling'. People with money aren't going to commit crimes to feed their family. People w/ rent/food/health ins are happier, more productive, less stressed, and more motivated to work on self-betterment.

Hell, if I had an extra 2-3k/month from a UBI program, I'd quit freelancing and go all in my SaaS I'm building which if it's successful could have at least 10-20 new jobs created. How many other entrepreneurs could have better success if they didn't need to put in 50-60 hours a week on their day job?

You can say it'll never happen, because you think everything will always stay the same, but that's just not the case. 40% of jobs never to be replaced by 2030 is a solid estimation.

What is your suggestion with what we should do w/ that sector? You can't retrain when there aren't jobs for them to retrain to. Should we just euthanize anyone who hasn't worked in the past year or two?

</comment></comment></comment></comment></comment></comment><comment><USER12> You qualify for the debate by getting the right number of _donors_? Wow ...

<comment><USER13> How would you propose a network select candidates for a debate?

<comment><USER14> I thought traditionally it was polling numbers. But maybe that was just the RNC clown car from 2016...

<comment><USER15> The DNC is using two criteria for qualifying for the debates. One is the traditional polling above 1% in three separate recognized polls. The other is a minimum number of donors (65k), with a minimum of 200 in each of 20 different states.

Meeting either criteria qualifies a candidate for the debate, and should the field of qualifying candidates grow to more than twenty (gods forbid) priority is given to candidates that meet both and then by polling average.

<comment><USER2> 65k donors doesn't seem like a lot especially since there's no minimum contribution. So raising $65,000 can put you on the DNC debate stage regardless of how you poll?

A GoFundMe could raise more than that.

<comment><USER16> How easy do you imagine it is to get that many people to put their name on a list saying they want you for president?

<comment><USER2> Exponentially easier than polling 1% nationally.

<comment><USER16> The comparison was to a random GoFundMe, not national polling. Besides, the field is limited to 20. A candidate may still have to meet the polling threshold depending on how the field does.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER17> The Republican field had daytime and nighttime debates in 15. But that meant that the daytime people only debated with daytime people trying to get a spot on the nighttime. The debates were horribly crowded too.

The best situation would be something like n-fold cross-validation. With 20 candidates you have 1140 possible arrangements for three-way debates. You have what, 40 to 60 weeks to converge on a candidate? Enumerate those 1140 arrangements, pick M integers from a lottery with white balls and hold weekly debates, preferably all over the country.

For any given candidate, his probability of being on any single debate is 14,26% [0]. The probability that he's in at least one of 40 debates is 99,78%. If this happens, give this candidate an extra slot in the very last debate before primaries.

[0] [https://www.wolframalpha.com/input/?i=1%2F20+%2B+(19%2F20)*(...](https://www.wolframalpha.com/input/?i=1%2F20+%2B+\(19%2F20\)*\(1%2F20\)%2B\(1%2F20\)*\(19%2F20\)%5E2)

</comment><comment><USER18> I'm currently reading Yang's book _The War on Normal People_ and it is kind of terrifying. I highly, highly recommend it in preparation for this presidential race, whether or not you're a Yang supporter. There is a great deal of food for thought. (full disclosure: I'm a Yang supporter and donated twenty bucks)

So, a few observations about him as a candidate. First, I think he's the only candidate really looking outside the box. It seems to me the political debate in this country is basically liberals saying the solution to our problems is more 1960s welfare and 1970s regulation, and conservatives saying the solution is less 1960s welfare and less 1970s regulation. We're stuck with a 50 year old model for the domestic responsibilities of our government.

Andrew Yang is one of us. He's from the startup community, and has seen up close how disruption works. He understands technology, and he understands numbers. And what he sees as a result of this understanding is grim - tens of millions of working-class and middle-class jobs slated for obsolescence in the next couple of decades, and no real alternatives in place for those about to lose their livelihoods. The social implications are terrifying. Don't like his UBI solution? Come up with something else, or commit to ignoring the problem until there are bread riots.

Another thing that strikes me is how he comes across. He reminds me of two important recent politicians - Barack Obama, and Bernie Sanders. Obama, because he's so clearly a _nerd_. It's such a rare pleasure to listen to a politician that I think is actually much smarter than me and not pretending otherwise. And Bernie, because Bernie's superpower isn't his policies - it's his integrity. You _know_ deep down that Bernie isn't lying to you. I get that same vibe from Yang, and that's a very powerful thing these days.

Anyway, just some observations.

<comment><USER19> The goal of government is to create the most stable, safe, and happy environment as possible for as much of the population as possible. What about the startup community, who obsessively chase endless growth, "innovation" and "disruption", makes you think they would be good at achieving that goal?

<comment><USER20> That's in fact not the stated purpose of the government at all. It is not a utilitarian construct.

<comment><USER18> We, the People of the United States, in order to form a more perfect Union, establish justice, insure domestic tranquility, provide for the common defense, promote the general welfare, and secure the blessings of liberty to ourselves and our posterity, do ordain and establish this Constitution for the United States of America.

There you go. Stated purpose of our government. And I think several of those clauses apply to using UBI as a solution to our rapid economic dislocations.

</comment></comment></comment></comment><comment><USER21> I gave money to Yang for this because I think having an Asian American on the stage would be a good thing for the debate.

</comment><comment><USER22> The neoliberal media is already trying to paint him as the white nationalist darling candidate[0]

It is getting ridiculous.

[0][https://www.vox.com/2019/3/11/18256198/andrew-yang-gang- pres...](https://www.vox.com/2019/3/11/18256198/andrew-yang-gang-presidential- policies-universal-basic-income-joe-rogan)

<comment><USER23> That article doesn't seem to be trying to paint Andrew Yang as a white nationalist. It literally quotes him disavowing support from white supremacists and their beliefs.

It does say that his popularity on the internet extends to 4chan, where racists make racist memes about him, and it quotes a tweet[0] by him regarding a New York Times article[1] about death rates among white people, but I don't really see that as white supremacist.

[0][https://twitter.com/andrewyangvfa/status/1010207553324806150](https://twitter.com/andrewyangvfa/status/1010207553324806150)

[1][https://www.nytimes.com/2018/06/20/us/white-minority- populat...](https://www.nytimes.com/2018/06/20/us/white-minority- population.html)

</comment></comment><comment><USER24> The Superdelegates are OK with it, I guess... or are the Superdelegates (AKA supercitizens) still a thing since the 2016 fiasco?

<comment><USER25> They still exist, but they now only get to vote on the second round if the first round fails.

The biggest problem with them from 2016 wasn't their actual vote, it was that many media outlets (including Google) listed Superdelegates non-binding preference as a delegate in the totals, making one candidate seem far ahead before many states had even voted.

Unclear if that issue is resolve, because it is up to the media. This article as a screenshot from 2016/discussion:

[https://www.snopes.com/fact-check/sanders-vs-clinton- delegat...](https://www.snopes.com/fact-check/sanders-vs-clinton-delegate- count/)

</comment></comment><comment><USER26> Ha ha ha ha, no. He qualifies for the first debate because the DNC allows him to. If they didn't want him there, they'd bend and rewrite the rules to prevent it. Witness Larry Lessig's experience with this:

[https://www.google.com/amp/s/www.vox.com/platform/amp/2015/1...](https://www.google.com/amp/s/www.vox.com/platform/amp/2015/11/2/9659014/lawrence- lessig-quits-presidential)

<comment><USER27> My recollection is that Lessig was pretty clear from the start that he was running just to raise the prominence of his position on campaign finance, not to actually become president. IIRC he said he would resign after passing one bill.

I can see why party leadership would choose not to participate in what was, from their perspective, a stunt--not a serious campaign for the White House.

<comment><USER28> The point is that they changed the rules out from under him.

<comment><USER29> It's correct that they changed the rules to exclude him and most people don't like that in principal. But it's also true that he was not a serious candidate because he said he wanted one bill passed and then he'd resign the presidency, and that one bill wouldn't make it through congress anyway.

<comment><USER30> > that one bill wouldn't make it through congress anyway

To be fair to Lessig, if the single issue "pass this bill" candidate was actually elected President, congress would feel a lot of pressure to comply.

<comment><USER31> To be fair to accuracy, members of Congress who campaigned against the bill (as any who planned to oppose it would likely to be forced to of a major party nominee had it as their entire platform, since the question would be undodgeable) would face no meaningful pressure to vote for it, as their constituents would have weighed and accepted their opposition.

<comment><USER30> Yes, anyone who is elected actively campaigning against the bill would presumably not feel any pressure to vote for it.

</comment></comment></comment></comment></comment></comment></comment><comment><USER32> Andrew Yang is popular for his promotion of Universal Basic Income ("UBI"). I've had success framing UBI as monthly compensation from government for the portion of natural space which has been reallocated to private ownership. In that regard, UBI could be funded though a national land value tax and though copyright/patent fees, both being government granted monopolies, carved from what would otherwise be public space.

EDIT: One of the common critiques of UBI is that it's a "give away". Instead, I see UBI as a payment for natural rights (to walk, hunt, eat and sleep where ever one wishes) that are taken by society though its allocation and enforcement of private property. Hence, in my view, the concept of private property and UBI are intrinsically linked. Given this frame, what this natural right is worth is an important discussion to have -- should society provide basic shelter and sustenance in exchange? Free market perspective gives us an option, it could just be cash without any strings or requirements. But importantly, it's not a "hand out", it's compensation for a taking.

<comment><USER33> I think you're being downvoted for the mental gymnastics you're attempting to haphazardly tie UBI to your personal obsession with land taxation.

</comment></comment><comment><USER34> This is the guy whose site showed 65k after you changed your local date/time to the debate date, correct?

<comment><USER35> It's actually reasonable. There's a little animation that show "live" updates to donation value.

If you were to implement this, would you have every active client update live on the actual amount of donations, or would you just calculate the trajectory from past donations?

Unless the user is going to keep the browser tab open for days on end without reloading, this is going to be a fair and efficient approximation of the actual value.

<comment><USER34> I don't disagree with you, querying for every page served could easily get out hand.

Strictly speaking, I didn't even write the comment above. Someone else did, it got censored, and I found that disgusting, so I copy pasted and posted it. You can find the original at the bottom if you have showdead.

</comment></comment></comment><comment><USER36> Change the rules please.

or don't and I'm giving Matt Christman a dollar.

</comment><comment><USER37> Is he a stalking horse for UBI, _ahem_ Freedom Dividend™?

<comment><USER38> What?

<comment><USER37> Apparently, testing revealed that "Freedom Dividend" polled higher with conservatives than "Universal Basic Income". So, in a ham-fisted wide appeal play, he's rebranded UBI as "The Freedom Dividend"

[https://www.yang2020.com/policies/the-freedom- dividend/](https://www.yang2020.com/policies/the-freedom-dividend/)

––

This brings us to our second point, which is a conjecture that such a move has a sniff of witting or unwitting use as a test candidate, not for serious contention of nomination, but as an indicator of conservative support for such a concept. ("stalking horse")

</comment></comment></comment><comment><USER39> I have a different spin on UBI to address automation. I proposed that any human job done by an automaton must be backed by a license holding human. And humans can only own a single license. But a license is something that you are - not something that you own (no sell/transfer/inherit). So for example to "build" a truck driving automaton, you must also "hire" the license holding human.

<comment><USER40> it's a clever mechanic, but recursively... what if you want to automate automaton creation? must you then develop a licensing body for automaton creators? and who will administrate this most important committee?

<comment><USER39> it automaton licenses all the way down ;)</comment></comment></comment>


The W3C doesn't understand password security - <AUTHOR> http://lists.w3.org/Archives/Public/site-comments/2014May/0002.html

<comment><USER2> Considering the quality of the site I'm not surprised</comment>


If. Then. Throw. Else. WTF? - <AUTHOR> http://www.yegor256.com/2015/01/21/if-then-throw-else.html?2015-03 <comment><USER2> Eh, it's a matter of opinion here.

Personally, I like the explicit statement that EITHER all of this OR ELSE all of that will happen:

        if (x < 0) {
            throw new Exception("Nonnegative numbers only!");
        } else {
            return 10 ** x;
        }

This reads clearly: if x is less than zero, then throw a new exception; otherwise (that is, "or else"), return 10 to the xth power.

The other nice part about this is that it guards against the case where in the future I decide to have my "guard clause" log an error some other way instead of throwing an exception...and forget to ensure that my guard clause exits the function cleanly. Consider this snippet in your proposed style:

        if (x < 0) {
            throw new Exception("Nonnegative numbers only!");
        }
        return 10 ** x;

If I were to later change this to:

        if (x < 0) {
            logger.error("Nonnegative numbers only!");
        }
        return 10 ** x;

I now have to remember to go back in and add a return or something in my guard clause to make sure that the rest of the function doesn't execute.

Yes, this example is perhaps contrived, but I find every little bit of safeguarding to reduce cognitive overhead helps. :)

Ideally, I think, a type system that could help me out here would be useful (so that I could express my function as accepting a _nonnegative_ number rather than just accepting a number), or else operation contracts of some kind for the method so that I don't have to manually sanity-check my input, but almost no languages have such features (at least, as of yet).</comment>


Reviewdog – A code review dog who keeps your codebase healthy - <AUTHOR> https://medium.com/@haya14busa/reviewdog-a-code-review-dog-who-keeps-your-codebase-healthy-d957c471938b#.j5h9hxtlc <comment><USER2> Don't mind the idea, hate the name.

Code review != linting.</comment>


Reconciling Mozilla's Mission and W3C EME - <AUTHOR> https://hacks.mozilla.org/2014/05/reconciling-mozillas-mission-and-w3c-eme/ <comment><USER2> >We have come to the point where Mozilla not implementing the W3C EME specification means that Firefox users have to switch to other browsers to watch content restricted by DRM.

Then so be it. If Mozilla's mission is to improve and defend the "open" web, then EME should never have been considered for implementation. We shouldn't sacrifice our goals for the sake of market share.

<comment><USER3> I've been using mozilla since forever. I believe in The Mission.

If I went to view media and a message told me it wouldn't work because of DRM, I wouldn't switch browsers to view it. "The medium is the message," and the message you get from DRMed media is rude and uninviting.

<comment><USER4> > If I went to view media and a message told me it wouldn't work because of > DRM

Not that I'm defending their actions, but I think it's worth pointing out that out of the box, this is exactly what will happen when you try to view DRM'd content. The Adobe decoding crap is a separate download that won't ship with Firefox; Mozilla is neither implementing nor distributing closed-source code.

The hilarious thing is that they are trying to avoid having the decrypted content "fall into the wrong hands" whatever that means, but it still has to pass through user-modifiable code before the user sees it anyway; they even show it in this diagram: [https://andreasgal.files.wordpress.com/2014/05/cdm- graphic_6...](https://andreasgal.files.wordpress.com/2014/05/cdm- graphic_620x920.png)

It almost makes you wonder whether they acknowledge that what they're doing is futile and absurd, and they just hope those in charge of licensing won't notice.

</comment></comment></comment><comment><USER5> This is a separately published version of the article being discussed in [https://news.ycombinator.com/item?id=7744771](https://news.ycombinator.com/item?id=7744771)

</comment><comment><USER6> Very good short term decision (possibly inevitable) but rather risky long term. They might end up digging their own grave. They were the only (slim) hope of scuppering this platform. Now they are at the mercy of whoever controls it and no contract will save them once the platform is the only game in town and they are expendable.

...I'll get my tinfoil hat.

</comment><comment><USER7> Guess that makes bug #923590 a RESOLVED WONTFIX.

Edit: right on the spot...

<comment><USER8> To save others the search: [https://bugzilla.mozilla.org/show_bug.cgi?id=923590](https://bugzilla.mozilla.org/show_bug.cgi?id=923590)

</comment></comment><comment><USER9> > There is also a silver lining to the W3C EME specification becoming > ubiquitous. With direct support for DRM we are eliminating a major use case > of plugins on the Web, and in the near future this should allow us to retire > plugins altogether. The Web has evolved to a comprehensive and performant > technology platform and no longer depends on native code extensions through > plugins.

That sure is some spin there after they just finished describing the _plugin architecture_ of the binary-blob CDM.

<comment><USER10> I also thought it was an odd thing to say, since the CDM itself is a plugin.</comment></comment>


Robots won't just take our jobs – they'll make the rich even richer - <AUTHOR> https://www.theguardian.com/technology/2017/mar/02/robot-tax-job-elimination-livable-wage <comment><USER2> This seems like a fairly obvious conclusion. With few exceptions, the highest paid jobs require the highest cognitive abilities. As robots replace cognitively demanding jobs, then instead of splitting the "cost" of labor with the laborer, the owner of the equipment will simply pay for the cost of a robot and keep the rest.

This is the more immediate threat of AI. And there's no obvious way to avoid it because any responsible business owner will always replace a more expensive, lower performing unit with a cheaper, higher performing one.

There may be plenty of jobs but they will increasingly bifurcate between lots of low paying ones and fewer high paying ones.

</comment><comment><USER3> not too surprising, this is the outcome of all forms of automation technology.

</comment><comment><USER4> The leftist editors of this site are fail to see the big picture. Robots will replace human workers because of rising healthcare costs and an aging population in developed coutries (we are already seing this in Japan). A tax on robots would impact the economy of the country that does this, for the robotic workforce will move elsewhere. We should really replace government workers with robots because gov't expenditures in many countries account for more than 30% of the GDP.

 _If you put the federal government in charge of the Sahara Desert, in 5 years there 'd be a shortage of sand._ \-- Milton Friedman

<comment><USER5> So human workers shouldn't incur healthcare costs and/or age, so as to keep their jobs?

We should really replace lawyers and financiers with robots, as those professions are only a drag on the economy.

If you put the federal government in charge of the Department of Defense, in 5 years, there'd be a shortage of wars.

</comment></comment><comment><USER6> But wouldn't there be jobs to make, fix, manage robots ?

<comment><USER7> Low paid, scarce jobs, even outsourced. Why keep an expensive engineer on call when you can just swap a robot out, ship it to its manufacturer for repairs and just keep production going, no matter what?

<comment><USER6> Sure , would it not be more of an extension (although agreeably an extreme one) of computers, vending machines, self serve checkouts, self driving cars etc ?

<comment><USER7> And soon enough, programmers and even CEOs. Given enough time, everyone can be replaced. What will you do then?

Sweep the streets? there's a robot for that.

Clean toilets? Self-cleaning toilets can be built.

Cook food? There's a robot for that.

Look after other people's kids? Other people won't have a job either to be able to pay you.

> Ian: Your scientists were so preoccupied with whether or not they could, > they didn't stop to think if they should.

Jurassic Park</comment></comment></comment></comment>


More Americans Support Aid When Told Puerto Ricans Are U.S. Citizens - <AUTHOR> https://fivethirtyeight.com/features/more-americans-may-support-puerto-rico-aid-as-they-learn-theyre-u-s-citizens/ <comment><USER2> This shouldn't surprise anyone. It's basic psychology that should be taught in school.

[https://en.wikipedia.org/wiki/In- group_favoritism](https://en.wikipedia.org/wiki/In-group_favoritism)

Edit: And it's something to keep in mind with politics. The other side is not nearly as evil or stupid as you think they are, nor is your side as righteous or clever.

Edit 2: It also fuels racism and xenophobia.

Edit 3: Which reminds me, PG's essay on identity: [http://www.paulgraham.com/identity.html](http://www.paulgraham.com/identity.html)

<comment><USER3> > This shouldn't surprise anyone. It's basic psychology that should be taught > in school.

Sure, but maybe they should also teach that Puerto Rico is part of the US in school?

</comment></comment><comment><USER3> One wonders how that number would change if informed that Puerto Ricans don't pay federal personal income tax?

<comment><USER4> They do pay other taxes though. And they're missing many benefits that they'd get if they were a proper state.

<comment><USER5> And they have had opportunities to begin the process to fully opt in and haven't done so.

[https://en.wikipedia.org/wiki/Puerto_Rican_status_referendum...](https://en.wikipedia.org/wiki/Puerto_Rican_status_referendum,_2017#Previous_referendums)

We should help because they are people hurting but lets not mischaracterize the dynamics of PR/USA relations.

<comment><USER6> The article you links to reports that Statehood won the 2012 referendum (majority voted no to current status, and Statehood got a majority of votes for the alternative status), which Congress chose to ignore, and overwhelmingly won the single-stage 2017 referendum.

So, no, the issue is not "they have had opportunities to begin the process to fully opt in and haven't done so".

<comment><USER7> The 2017 """referendum""" was a push poll, not a binding referendum or even a fair and objective opinion poll.

<comment><USER8> What do you mean it wasn't fair or objective?

<comment><USER3> Opinion polling put Statehood at 52%, with a 3.2% margin of error. Sounds close, but the referendum had 3 choices, and neither were very close.

It seems like those opposed to Statehood realized they'd lose as they split the vote, and ran a boycott campaign, effectively turning it into a yes/no vote on statehood, with the fringe benefit of claiming all non-voters as on their side, which going by 2012, is a free 20 percent of the vote.

For better or worse, there's not really an objective way to evaluate this state of affairs =/

<comment><USER6> We could do what we do with every other election, and treat nonvotes as irrelevant to the validity of the outcome unless they result from people being improperly prevented from voting rather than voluntarily abstaining, whether in protest or otherwise.

<comment><USER3> Obviously "what we do" is influenced by Congressional makeup and how PR alters it, but that's pretty much what the diff between a binding and non-binding referendum means in practice.

And maybe forcing the issue is a bit too colonial, optically.

<comment><USER6> Yeah, it would be a bit "too colonial" to respect the results of either of the last two status referenda, or the multiple requests of the elected governing bodies of PR to abide by the previous one; clearly, maintaining Puerto Rico's subject status with no vote in the federal government that it is subject to despite all those things is the _non-_ colonial thing to do.

Or...maybe that's the exact opposite of what is going on.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Another fun twist would be to see what effect there would be if you mentioned that no one from Puerto Rico voted for Hillary Clinton in the 2016 presidential election.

</comment><comment><USER10> Yet the US gives generously to multiple disasters around the world. We send aid, money, and often the US military to help out. This little study is done by Morning Consult, where the 80% study was done by Pew - so I'm a little confused by a direct comparison. I wonder what the exact wording of the questions was (personal vs government money perhaps)?

</comment><comment><USER11> I wonder if a european country can become a US state one day. You know joining the US as an alternative to the european union.

<comment><USER12> I can't think of any European country that would wish that fate on their citizens.

<comment><USER11> It is uthinkable by many and it is a very hypothetical question. I am not even sure if the US would want to have a soil so far away from the "mainland" :-)

<comment><USER6> The nearest bits of Europe aren't that much further from the US mainland than Hawai'i is. (Ireland to Maine is a hair farther than Hawai'i to California.)

And the US certainly has non-state territories even further away.

</comment></comment></comment></comment><comment><USER13> When can we start investing again in education...

<comment><USER9> Anyone have a good estimate the total amount of money spent in the name of education in the U.S. in the last 50 years? I'd be interested to see the total pre-k through university graduate school, including both public (local, state, federal) and private.

<comment><USER14> Not a direct answer, but as someone working in this space, I'd like to also mention that while more money in education is probably good, I doubt it does anything. There are structural and cultural problems in the education system in the United States that cannot be solved with money.

</comment></comment></comment><comment><USER15> U.S. Citizens with their own baseball team?

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

<comment><USER16> Plenty of U.S. citizens have their own baseball team. Mine is the Seattle Mariners (and they STINK).

<comment><USER15> I wasn't rooting against the Mariners in the world baseball classic.

<comment><USER15> Seriously, I think it was literally USA vs. Puerto Rico. They also compete _against_ USA in the Olympics. Now I'm not saying don't help them out, I'm just saying..</comment></comment></comment></comment>


Cython 0.23 released - <AUTHOR> https://groups.google.com/forum/#!topic/cython-users/lfq9CtqGdzY <comment><USER2> Cython is amazingly productive for me. I am so happy to write typed pythonic code.

If there's one thing missing it's more people showing off their Cython style and tricks, like how they do macros (since it's not supported in the language), when to turn off safeties, and balancing pure python with typed.

For instance, I like C macros in header files, but I've played around with using a jinja2 pipeline in my setup.py to write cleaner looking pythonic code, and have done generics this way.

more posts like the one using cymem would be welcome.

<comment><USER3> Using Jinja2 for macros is an interesting idea. You could try cog instead? [https://www.python.org/about/success/cog/](https://www.python.org/about/success/cog/)

Currently I don't do any macros at all, although the temptation is definitely strong. I have some code that could otherwise be more generic than it is.

I guess a quick tip/pattern would be to use structs as data containers, with a cdef class defined as a "shell", to provide access, but not actually hold the data.

Advantages of this over standard cdef class: Data is contiguous in memory; Data can be stack allocated; Data can be stored in C arrays or C++ containers; Data can be created without GIL.

Advantages of this over numpy array: More Pythonic syntax (i.e. data.attr, instead of data[column]; No fussing with memorybuffers, compiler declarations etc; Data can be created without GIL

Disadvantages: More code

(I wrote that cymem blog post -- I'll write up this pattern as a post when I get a chance.)

</comment></comment><comment><USER4> To answer the question, that came up:

Yes, the 0.x number also put me down at first. But I am using this tool now several years, since 0.13 or maybe earlier and did never find a bug or problem.

Cython is great, in-spite of its version number!

I also inspected the generated code several times and it looks rock-solid. Also one big advantage (for me): It can produce code that runs equally on 2.x and 3.x versions (there are some limitations, though, like several really outdated versions are not supported any more).

</comment><comment><USER5> People should really think about the message a 0.x version number is sending. This project is 8 years old. Why is this still 0.x?

<comment><USER6> I'm the guy who started the Cython project and made up the name, so here are some random remarks that don't answer your question. Not only is Cython about 8 years old, it started as a fork of Pyrex ([http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/](http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/)), which is itself over 11 years old, since I remember using it in 2004 when evaluating languages in which to implement [http://sagemath.org](http://sagemath.org). The people who did the most work on Cython on probably Stefan Behnel and Robert Bradshaw (who was my Ph.D. student). I had to sort of twist their arms to get them to be involved in the project, and they both still only do it in their spare time basically for fun. Despite Cython being an incredibly useful and powerful tool for certain specific problem domains (e.g., for SageMath it is critical), and being very heavily used in some scientific python applications, there's no company behind Cython and few people involved in the project are interested in publicity. Cython is an open source labor of love and an extremely useful tool. People that know Cython very well, know how amazingly powerful it is, and have watched many other attempts to solve similar problems come and go over the years.

<comment><USER4> I agree, that it is extremely useful, since before I knew Cython, I implemented some Python C extension modules by hand. That can become rather ugly and costs much sweat.

Today, I can use Cython. Or when I need even more speed, than I use Cython as wrapper-generator for a pure C module, that is still much, much easier to implement, as when I would have to do the wrapping work myself.

Cython is really enormous useful and precious to me!

Thank you for it!

</comment></comment></comment><comment><USER7> If you use Python for anything remotely performance sensitive, I highly recommend giving Cython a shot. The trick is to find your computation- intensive inner loop stuff, move it off to its own module, add types, and go. It makes your build a little more complicated (i.e. most Python projects have no build process at all) but if you're in the niche where it's useful, it's damned useful.

Here what it does. Take a look at this Python code:

        import math
        def distance(x1, y1, x2, y2):
            return math.sqrt((y2-y1)**2+(x2-x1)**2)

It looks simple, but it's doing a lot behind the scenes. It respects __sub__/__add__ metamethods, respects and promotes between floats/longs/ints and even Bignums, it has to do a __getattr__ on the `math` object to find the sqrt function in the first place, etc (and can't cache that because this is Python so you may have changed it in between calls). After every one of these calls, a Python exception is checked for, and many reference counts are incremented and decremented. Every now and then, the interpreter checks to see if it's time to release/reacquire the GIL and if any OS signals have come in. And it does all of this by compiling Python to bytecode and running that through its interpreter.

Here's the same code in Cython:

        from libc.math cimport sqrt
        cdef double distance(double x1, double y1, double x2, double y2):
            return sqrt((y2-y1)**2+(x2-x1)**2)

Cython takes that code and compiles it to this C code (a bit simplified):

        #include <math.h>
        double distance(double x1, double y1, double x2, double y2) {
            double a = y2-y1;
            double b = x2-x1;
            return sqrt(a*a+b*b)
        }

So now instead of running through dozens of intermediate internal Python functions, you're just loading the numbers into your FPU and doing the computation there.

Of course, you've given up all of your Python dynamicness. Now this won't work with Bignums, it can't be monkey patched, and now you have a compiling step to running your Python code. You can do this to your existing code one function at a time, so you don't have to give those things up for your entire project, just where it matters. And where performance matters, it's a godsend

I ported a small number of pieces of reddit to Cython. Here are some simple examples:

* [https://github.com/reddit/reddit/blob/master/r2/r2/lib/db/_s...](https://github.com/reddit/reddit/blob/master/r2/r2/lib/db/_sorts.pyx)

* [https://github.com/reddit/reddit/blob/master/r2/r2/lib/utils...](https://github.com/reddit/reddit/blob/master/r2/r2/lib/utils/_utils.pyx)

* [https://github.com/reddit/reddit/blob/master/r2/r2/lib/mr_to...](https://github.com/reddit/reddit/blob/master/r2/r2/lib/mr_tools/_mr_tools.pyx)

* [https://github.com/reddit/reddit/blob/master/r2/r2/lib/wrapp...](https://github.com/reddit/reddit/blob/master/r2/r2/lib/wrapped.pyx)

As the underscore naming implies, these are only selected performance or compute sensitive functions factored out of their normal non-underscore Python modules which generally wrap them. These functions were coming up disproportionately in profiling because they're called very often and/or do a lot of arithmetic, and afterwards they are entirely nonissues. Often something like a _sorts.pyx:_confidence call got over 25 times faster.

I've also talked about the downsides in a thread here[1]. Go in knowing that stuff too, but after my excellent experience with Cython I'm a True Believer.

[1] [https://www.reddit.com/r/Python/comments/2xlya2/anyone_willi...](https://www.reddit.com/r/Python/comments/2xlya2/anyone_willing_to_share_experiences_of_cython/cp1ct6a?context=3)

<comment><USER8> It's also provides great benefits for quick scripts.

I had to write a one-off parser for a big csv file, that needed to be parsed lots of times, and fast. Pure python solution was taking a few minutes, so I decided to give Cython a try. Installed, read the docs for a few minutes, converted my parser's inner loop to cython, and the duration went down to a few seconds.

<comment><USER9> The "%%cython" magic for the IPython notebook is great for quickly prototyping cython code in the context of a larger Python workflow. You can also view a nice annotated HTML performance report with "%%cython -a".

</comment></comment></comment><comment><USER10> Does it support/is-compatible with the new python type hints?

</comment><comment><USER11> I'm glad to see that this import project continues to get updates.</comment>


Show HN: Blockchain for software engineers - <AUTHOR> https://github.com/benstew/blockchain-for-software-engineers <comment><USER2> 150+ helpful resources captured on my two year journey from web dev to blockchain engineer

</comment><comment><USER3> Thanks for your sharing!</comment>


Now hiring: companies move away from outsourcing to control their IT destiny - <AUTHOR> http://arstechnica.com/business/ <comment><USER2> One important thing that people forget is that if you move to outsource something, you still need some way to do quality control and oversight of contractors who have little incentive in your success. Accounting for this often blows away the cost benefit in my experience.</comment>


Kill the Password: A String of Characters Won't Protect You - <AUTHOR> https://www.wired.com/2012/11/ff-mat-honan-password-hacker/ <comment><USER2> That is because people do passwords wrong. Just make your passwords 40-60 characters of a common natural language statement with a random non- alphanumeric character at the end. That is really hard to brute force and easy to remember.

Unfortunately, this simple solution won't work on archaic legacy systems that force stupid password rules and max lengths.

<comment><USER3> The average person cannot remember more than 8 characters. So a 40-60 character string of random characters, many of which we rarely use naturally is not really feasible :)

<comment><USER2> That is so completely not what I said. I bet my grandmother, if she were still alive, could easily remember this 63 character password:

I wish I could walk my grandchildren to school when it is cold%

<comment><AUTHOR> We all can memorize a handful, but not 50 of them. That approach is cute, but it doesn't scale.

<comment><USER2> I really do not see the difference between that, mnemonically speaking, and a random smattering of 8 special characters.</comment></comment></comment></comment></comment>


Biker Protestor 'Throttles' Traffic Around FCC Headquarters - <AUTHOR> https://gizmodo.com/biker-protestor-throttles-traffic-around-fcc-headquarte-1822561036 <comment><USER2> Many people have pointed out time and again that the only way to convince politicians on this issue, or any issue where they receive substantial funding, is to make them feel the pain points personally. I'm not making a judgement call as to whether they simply do not understand the plight of those affected, or don't care unless it hurts them personally.

However, this concept betrays the actual feelings of large companies like Google and Netflix that claim to be Pro Net Neutrality. They've had over a year to implement a "Congressional access slowdown" protest, and have done nothing of the sort to demonstrate the issue to congress. People should recognize that these companies will benefit from slow lanes in that they can afford faster ones, while upstart competition cannot.

</comment><comment><USER3> "Biker" doesn't sound right. I was expecting a bearded man on a Harley.

How about a "Cyclist"?

<comment><USER4> Bicycles were there before motorbicycles, and in many countries with robust bicycle culture people think of bicycles first when they hear biker.

</comment></comment><comment><USER5> As a cyclist, I'm wary of "blocking" the lane as a form of protest. Many drivers seem to believe that the only reason a cyclist would take the lane is to annoy drivers, and this reinforces that thinking. This encourages thinking that dangerously close passes ("punishment passes") are justified. To these drivers it doesn't matter if a cyclist is avoiding an illegally parked car and is leaving the bike lane only briefly, etc. I would have preferred that the protester made some sort of checkpoint instead.

<comment><USER6> As you wish.

In this post, you imply an adversarial relationship with drivers, declare them to be bad, and yourself a victim of people who are just trying to get to work.

<comment><USER5> No general adversarial relationship was implied. That's why I said "many drivers" not "drivers" or "all drivers". Fact is that only a relatively small fraction of drivers are bad, but the ones who are cause a disproportionate amount of harm.

For what it's worth I didn't have a problem with your other post aside from it being vague. I dislike when people claim to have a problem with something I said but don't explain what their problem is.

</comment></comment></comment><comment><USER7> Why not link the original article instead of this sad spamageddon?

Original article: [https://thenextweb.com/creative/2018/01/29/net-neutrality- ac...](https://thenextweb.com/creative/2018/01/29/net-neutrality-activist- throttles-street-outside-fcc-building/)

</comment><comment><USER8> So, in conclusion, the government had to come in to prevent profiteering on a shared public resource important to commerce and heavily subsidized by tax dollars.

Wow, it's shocking how good of a metaphor this is.

</comment><comment><USER9> "Restoring your automotive freedom" \- I love this analogy. This is a great way to explain the issue to the masses

</comment><comment><USER10> Childish, silly and I enjoyed watching every minute of it.

</comment><comment><USER11> Brilliant stunt. This is the correct way to use pranks/humor to make political protest. Props to that guy.

</comment><comment><USER12> pretty funny. reminded me that burger king did an ad about net neutrality:

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

</comment><comment><USER13> This page is dead, if you're not from USA.

"I got Sorry, we couldn't find that page" until I turned on my VPN and tunneled via USA.

</comment><comment><USER14> This is pretty damn funny.

<comment><USER15> "Bikes may use whole lane for poetic protest"

</comment></comment><comment><USER16> That thumbnail is priceless: A man with a goal!

</comment><comment><USER17> So far, all of the gloom and doom scenarios from the repeal of net neutrality have failed to emerge. More people have been inconvenienced by the pro net- neutrality protesters than have been harmed or inconvenienced due to ISP action post-repeal.

These net-neutrality protesters are akin to the anti-fur protesters running around throwing blood on people. It may make them feel good about their virtue and that they are doing something, but it is unlikely to change minds.

<comment><USER18> > _So far, all of the gloom and doom scenarios from the repeal of net > neutrality have failed to emerge_

How quickly do you expect these things to happen? Overnight?

This isn't Hollywood. The moment the decision is made storm clouds don't appear overhead to signify the ominous direction that things have gone.</comment></comment>


Don't Be Afraid of Pain - <AUTHOR> https://www.nytimes.com/2018/07/11/well/dont-be-afraid-of-pain.html <comment><USER2> "We know that worrying and giving attention to pain ultimately increases it. Staying active and moving is better than rest when it comes to chronic back and neck pain."

This, this and this!

Hurt my back while working out in the gym and got scared since people in my family has been dealing with chronic back pain which has limited them in their life. So What did I do? I stopped working out. Took a long break and only did light exercises like the plank and other stuff. My issues stayed with me for some years until I decided to take up lifting again and dedicated myself to re-learning the lifts with focus on form and doing a strength program.

Also a good read on pain:

[https://startingstrength.com/article/aches-and- pains](https://startingstrength.com/article/aches-and-pains)</comment>


Philosophies for Software Engineers - <AUTHOR> http://softwareengineeringdaily.com/2016/02/12/10-philosophies-for-developers/ <comment><USER2> Please don't let things like "Apple makes $1.8MM per employee" get to you. It leads to stupid decision-making. Yes, the company is making more money on your efforts than it is paying you. It's called business, you take inputs and add value to them and sell them to other people who will turn around and do the same thing. If you had capital to throw into a business venture then you'd do it too.

I met a guy a few weeks ago who'd moved over from California. He wanted to learn how to code, and told me his story. He was a business sort who went into business with a software developer. The dev did good work, and the business guy managed to get it funded. Just when things started picking up, the dev decided he wasn't getting enough of the pie and bailed, destroying the entire enterprise. He wanted to learn how to code so that this wouldn't happen to him again.

So I'm giving him an hour or so a week to show him how web development works so that he can code a prototype himself. Then he can get funded and hire employees rather than deal with the emotional vagaries of software developers. I don't blame him at all.

Business guys are typically going to make more money than the coders are, it's pointless to fight this. The better route is to go into business yourself and capture the value yourself. The reason is that the business side is the human side, and humans are harder to deal with, ultimately, than computers are. Also, humans have money and computers do not.

<comment><USER3> _> Apple: $1,865,306 per employee_

Also, that Business Insider article is an inadvertent IQ test for people who want to regurgitate their figures. That $1.8 million number is _revenue /#employees_ and not _profit /#employees_. Using profit calculation of $53B/98k is ~$500k. Since, a fully-loaded FTE in Silicon Valley is ~$250k, the ~$500k doesn't look that insane.

If a writer copy&pastes stuff like that into their own essay without critical thought, don't be surprised if it taints the rest of his essay. For example, the " _you are not a commodity_ " is not fully reasoned out. In the essay, it's just an empty platitude/affirmation instead of explaining _why_ some programmers are treated as commodities and _how_ to differentiate themselves to avoid that categorization.

<comment><USER4> If you use profit/#employees, then you're double-counting. The employees' salaries are already taken out of profit. That's why it's not fully disingenuous to consider revenue instead.

$500k of profit generated per employee sounds excellent, but it's also omitting other capital costs made by the business. Essentially, none of these benchmarks can give you the complete picture.

</comment></comment></comment><comment><USER5> > _After you have spent enough time in the first tier of the intellectual > strip mine, we will make you an SDE 2, where you can do slightly higher > level refactoring for $150k a year, which will make the giant company $5 > million. This is what is called an arbitrage._

I've been a programmer my entire career, and so my interests align with this ideology, but quite frankly it is offensive to call junior software dev work an "intellectual strip mine", and to assume a priori that your salary will return 10-20x multiples in value to the company.

The reality is that it is highly non-trivial to derive economic value from programming. You have to be able to sell _something_ in significant volumes. That is the value the company is bringing to the software engineer. How much value any particular employee brings to the organization is impossible to calculate. Certainly the engineers will bring efficiencies that are impossible to get any other way, and perhaps they enable the entire business. But you can say the same about the sales people, the biz people, the product people; even the much-maligned marketing people may be essential to keep the revenue flowing.

There's a huge bias in any industry to overvalue your own work over that of other disciplines, simply because by definition you know more about it than what those other departments do. There's something I find really off-putting about a lot of abstract whining about how underpaid developers are. Sure, some are underpaid, also some are overpaid NNPPs, but as a whole we are doing way better than the vast majority of careers in the world right now.

All this is not by way of saying you should be satisfied with what you're given, but rather that you should pull your head out of the sand and recognize how the world works: you don't get paid what you _deserve_ , you get paid what you _negotiate_. And negotiation is a skill you have to learn. If you don't want to learn anything about business and you just want to write code, then you should expect to be taken advantage of. If you want to capture more value you create, the first step is defining that value, and you can't do that unless you understand the business. From there you can have honest conversations with your employer on more equal footing, and decide to either stay or leave. This business knowledge will also enable you to start your own company with a much greater chance of success than the majority of startups with purely technical founders who start with a build-it-and-they-will-come mentality.

<comment><USER6> It probably works like that in the corporate world. But then again, most corporations today are pretty much like taxi companies waiting for their own Uber to put them out of business. The company of the future is rather a platform running on the internet. Any company that looks more like a collection of politicking corporate offices instead of an internet platform, is just a dinosaur waiting to get wiped from the face of the earth. The logic and rationale in things like Uber is totally different than what you have described. Uber does not "overvalue" the work of its devs. The essence of what it does, is created by its devs. Furthermore, there are pretty much no other departments in the business. These other departments are all just automated or outsourced distractions. They are not supposed to disturb the core business.

<comment><USER5> What an interesting dichotomy you have painted: internet platform versus politicking corporate office. This is exactly the kind of myopia I was referring to where a software engineer thinks everything that is not tech is bullshit. In fact there is a huge range of ways to succeed in business, and while all are helped by efficient technology to varying degrees, technology is not the primary driver of value most of the time. You can bet your career that Uber leadership is spending every waking minute figuring out how to gain structural advantages to solidify their position—the tech is easily replicable and becomes more so every day.

In any case though, you seem to be putting some words in my mouth since I never said anything about Uber's valuation of its engineering. My point was much more universal than that and had absolutely nothing to do with the corporate world or anything else. Employers pay their employees what they feel they have to. Uber pays them more because they need the best and the market is very competitive, but there is absolutely no link to the bottom line.

<comment><USER6> > technology is not the primary driver of value most of the time

Most probably. My advice is just that it is a bad idea for a software engineer to work in an environment where technology is clearly not the primary driver of value.

> Uber pays them more because they need the best and the market is very > competitive, but there is absolutely no link to the bottom line.

Without internet platform, there would be no Uber at all.

It would be like saying: "Their warships are not the essence of the Navy. The Navy wants the best ships, but there is absolutely no link to winning naval battles."

<comment><USER5> > _It would be like saying: "Their warships are not the essence of the Navy. > The Navy wants the best ships, but there is absolutely no link to winning > naval battles."_

No, it wouldn't be like saying that at all. We are talking about the link between profits and salaries, not assets and objectives. If you can't understand that there's nothing more I can really say.

</comment></comment></comment></comment></comment><comment><USER7> As an old guy, let me share with you which of these I think was the biggest lesson for me:

\-- We do not need to be lead by business people.

MY new rule for startups - the big engineer should be the CEO. You can have a CTO and other engineers. You can have a VP of bizdev or sales. But the big fish needs to be an engineer if you are a tech company. If you are making biotech the big fish needs to have biotech engineering. If you are manufacturing, then the big fish needs to be a manufacturing engineer.

The number one mistake I see startups make (especially when they are started by younger people) is taking some type-A business school graduate and making him the CEO.

This is the cause, ultimately, of most of the failures of startups I've experienced (and I've worked for, founded or worked with a couple dozen.)

Or, as a second order function, type-A business school graduates who have never started a company or worked a real job but do instead work for a VC firm, forcing bad decisions on your company.

Most of the fights between founders are because business guys are forcing bad decisions on the company.

The problem is, business school doesn't teach YOUR business. It teaches general business concepts. These are not difficult for engineers to master.

IT's impossible for these business guys to master engineering. (Yes, 30 years, still haven't seen that- the best ones just find an engineer they trust and get out of the way.)

As an angel investor, if your CEO isn't a geek, I'm not putting my money in. And if you look at the "successes" where this is the case, it's usually an arbitrage opportunity (Eg: somewhere just piling a bunch of money behind a halfway competent business model with half way competent employees is going to make money because the situation is the result of a structural inefficiency, usually caused by government: uber for example.)

<comment><USER8> Agreed. The main problem is you can lie and game the VC's. "It's called future-selling and everyone does it", a biz-guy once told me. It's not a lie, we are "hacking the interview". Coders like hacking, right ? You see, just rebrand "lies", muddle the context and now your type-A biz co-founder can say anything while his engineer co-founder sits their quietly wondering if this really is normal. I've also heard "I'll stop doing that if it makes you uncomfortable" but once it is part of a person's personality, it can become pathological. They don't even know when they are acting this way.

The disconnect comes from engineering environments where there is no Alpha and Beta mindset, only varying degrees of competence. Trust your instincts and conscience. The VC only has a limited time for due-diligence.

<comment><USER9> This is a great article on that which calls it "investor storytime:"

[http://www.theatlantic.com/technology/archive/2014/08/advert...](http://www.theatlantic.com/technology/archive/2014/08/advertising- is-the-internets-original-sin/376041/)

I still agree with MCRed's points. Just, as you said, have to watch out for the games people are playing that seem to be working for whatever reason.

Note: There was another link I had about one company getting crazy valuations where author showed they're basically telling investors what they want to hear. It broke down the tactics then showed they work too often. Can't find the link.

</comment></comment></comment><comment><USER10> "If we aren't in control, it doesn't change anything whether or not we assume that we are in control. But if we are in control, it would be very hazardous to our well being to assume that we are not in control"

I love the logic of this argument - it has so many applications - think about applying it to the climate change debate.

<comment><USER11> [https://en.wikipedia.org/wiki/Pascal%27s_Wager](https://en.wikipedia.org/wiki/Pascal%27s_Wager)

The fallacy here is that there is no downside to belief and that finite losses spread over infinite scenarios are still finite.

Applied to controlling one's own destiny, the issue is that there is a middle ground between having no control and having complete control. Obviously it is a waste to believe you have no control and to do nothing. It is also a waste to believe you have control of everything: I'm not going to control the weather or other people's moods, so it is a waste of effort to even attempt to do so.

The question, then, isn't _if_ we can control our destinies, but _how much_ we can control. Identifying the areas in which your effort would produce a desired effect is paramount. Though of course, due to our population size, you'll always find people who bet it all on black day after day and made that moonshot due to their unfounded yet devoted belief that the universe would unfold the way they wanted it to.

</comment></comment><comment><USER12> Outright rejection of the fact that life, including your career path, is in part chance-based is dangerous. A sizeable chunk of the part that isn't isn't in your control either, it's controlled by your environment and the people who populate it. If an asteroid struck, and we were all made redundant, you would not have 'lost' \- a large example to illustrate a subtle point.

Believing otherwise is the kind of self delusion that leads to mid-life crises: when the religion of You crumbles and a desperate scramble for a new faith begins.

Life is, in part, a lottery. Failure is fine. Failure is to be expected. Don't read in to it in the context of your self worth, but look at it objectively and see if anything is to be learned. Take risks and accept reality, and never reject the truth, especially when it's staring you right in the face.

</comment><comment><USER13> > Don't believe the one-size-fits-all interview process with whiteboarding > problems. These serve to grind away your individuality and make you feel > like an assembly line worker.

In my experience, the interview process with whiteboarding problem can go one of two ways. One of them is the "find what we think is the textbook solution to this toy problem" way. The other is the "communicate to us as you attack this toy problem so that we can understand your thought processes, problem- solving approaches, and your experience with these topics" way. Only one of these is really objectionable.

<comment><USER7> I think both of them are, because none of the problems are really good for explaining your thought process. In fact, it is a contradiction to try and think about a solution to a problem and to give a dissertation on how you're thinking about the problem. You can do one or the other, and in the latter case you have to have solved the problem previously.

What I do is ask people about a problem they have solved and get them to teach me about it. If I learn something then it's a good result.

Asking people to solve a trivial problem AND let you into the inner workings of their brain-- normally a non-verbal activity- isn't testing their abilities.

<comment><USER14> It's not about giving a dissertation. It's about collaborative problem solving. Granted, the interview is rather artificial and considerably more stressful, but you use the same skills when talking about how to solve a tough problem in front of a whiteboard.

</comment></comment></comment><comment><USER15> 11\. Make Tests, really. Make automated tests, even if they are slow, make them. trust me. make them regardless what anybody says or regardless the project size. the extra time it takes will outweight the time you would need later.

</comment><comment><USER16> These are not philosophies.

</comment><comment><USER17> > 1\. You do not have to prove yourself.

> Software is a new field and nobody knows how to do it. If someone says you > are unqualified and therefore you must do maintenance work, you should > question that person. We have an upside down system where the people who are > paid the least do the crappiest work. They tend to be young and naive.

Software development has been meticulously studied for over 40 years. From Dejurka, 'Goto's considered harmful' to Parnas, 'On the Criteria To Be Used in Decomposing Systems into Modules', Design patterns, academic studies, Pair Programming etc.

> 2\. You are not a commodity.

Your HR department has a list of 'potential hires' to replace any position in your company at a moments notice. The quickest way to build a bad reputation is to think you are not replaceable and act accordingly.

> 3\. Software engineering is an art and a science but rarely both at once.

> The planning and design process is an art, but once the requirements are in > place you can proceed more deterministically.

No matter how brilliant you architecture and plan is there will inevitably be new requirement or changing requirements that cause you to continuously revise re-architect and re-write large part of your code base. Both design and Implementation are a messy evolving process.

> 4\. You are not your job.

If you do not love this then its not for you. Thats true in many professions and Programming is no different.

> 5\. The world is a distributed system.

I could not parse any overall point to this passage.

> 6\. You are not a lottery ticket.

???

> 7\. Choose action over planning. Talk is cheap and execution is scarce.

> This is why nobody cares about your ideas, they care about seeing your > prototype. John Mayer said that all he had to do to become successful is > finish his songs.

Writing a plate of spaghetti code that does some neat thing is not what makes you an employable dependable developer. Writing clean well documented well though out efficient code that meets the specifications is what does that. That take planning and discipline.

> 8\. Software engineering is full of lies and people who will try to take > advantage of you.

This is a bit psychotic.

> 9\. You are not your credentials nor your past.

You very much are. You do not necessarily have to be an Academic golden boy but you will be judged by your previous experience and projects.

> 10\. As a software engineer, you can take career risks aggressively because > your downside is fundamentally capped.

That works out great unless you have to pay 2500$ rent each month or buy food and clothing for your children etc. Not everyone that writes software is a 19 year old trust fund baby...

<comment><USER6> > Your HR department has a list of 'potential hires' to replace any position > in your company at a moments notice. The quickest way to build a bad > reputation is to think you are not replaceable and act accordingly.

Things are probably the other way around. Don't take the job if you think that you will be easily replaceable. In that case, take another job.

> you will be judged by your previous experience and projects ...

Never apply for a "job". Always apply for a project, or rather, do your own project, if you can.

What matters, is what the project at hand is all about, and if you have the ability to do it. Discussing unrelated issues about credentials or unrelated previous experience, is a sign that the person in front of you has time to waste; his own time, but also yours. That is a red flag.

<comment><USER17> > Things are probably the other way around. Don't take the job if you think > that you will be easily replaceable. In that case, take another job.

So if you apply for a position at Google and they offer you a job that suits your skill set and background you should not take the job because Google potentially has a list of thousands of people they could replace you with? wat?

> Never apply for a "job". Always apply for a project, or rather, do your own > project, if you can. What matters, is what the project at hand is all about, > and if you have the ability to do it. Discussing unrelated issues about > credentials or unrelated previous experience, is a sign that the person in > front of you has time to waste; his own time, but also yours. That is a red > flag.

If you apply for a position and the company is not interested in your experience or previous projects then I'm fairly confident of two things. a) The company is a sweatshop and burns through junior developers like tissue paper to flame. b) The work you will be doing will be the worst sort of low skill crap work that no one with a half way decent resume and experience wants to do.

<comment><USER6> > So if you apply for a position at Google and they offer you a job that suits > your skill set and background you should not take the job because Google > potentially has a list of thousands of people they could replace you with? > wat?

Yes, exactly. If it is trivially easy to find thousands of people with your skill set and background, there is something wrong with that skill set and background. You will need to work on it, because these things are an accident waiting to happen.

> a) The company is a sweatshop and burns through junior developers like > tissue paper to flame.

Not really. They have a real problem and they cannot readily find someone to solve it. And then you come along. Now the problem may finally get solved. This is how it best works. If not, there is something wrong with the entire situation.

> b) The work you will be doing will be the worst sort of low skill crap work > that no one with a half way decent resume and experience wants to do.

If you do not have a pretty much unique selling proposition, you will indeed compete at the bottom of the market. You need the ability to solve a particular type of non-trivial problems and you must preferably have been specializing for years in doing that. People in your field understand what the value proposition is, and there is no need to endlessly debate this with them first.

Google do not use the technology in which I specialize. One day they may, but at the moment, they don't. So, I would never run into them, when occasionally looking for a project (once every 3 - 5 years). The day that Google starts using this technology, they could indeed try to ask me for an interview, but why would I prefer them to the established players? Am I replaceable? Yes, but Google are even more replaceable. I will have done fine for years, before they decided to enter the field too. Who exactly is the one that is replaceable here?</comment></comment></comment></comment>


Amazon Scout - <AUTHOR> https://www.amazon.com/scout/ <comment><AUTHOR> Pinterest competitor by Amazon.</comment>


Mining Crowd Feedback For The Gems - <AUTHOR> http://www.techcrunch.com/2008/07/15/mining-crowd-feedback-for-the-gems/ <comment><USER2> Why is this news? A company asked for feedback from their users? Stop the presses!

This is one of the least insightful posts ever to be listed on TechCrunch, and is obviously only included because of Arrington's investment in Seesmic. I'm not a TechCrunch hater like many, but there is absolutely no merit in talking about the internal software improvement process employed by Seesmic in an identical way to thousands of companies everywhere.</comment>


Compare GitHub repos, with ease - <AUTHOR> http://repocompare.io/ <comment><USER2> Where is the "compare" part?

<comment><AUTHOR> You can see common repositories numbers side by side. Were you expecting something else?</comment></comment>


R-trees – adapting out-of-core techniques to modern memory architectures - <AUTHOR> http://sebastiansylvan.spaces.live.com/blog/cns!4469F26E93033B8C!224.entry

<comment><USER2> Probably as or more important than hierarchical memory performance, a big reason and the main motivation for using an R-Tree is to store "data objects of non-zero size located in multidimensional spaces." (<http://www- db.deis.unibo.it/courses/SI-LS/papers/Gut84.pdf>)

In particular, a lot of other spatial indexing strategies that work well with points (kd-trees, quad/oct-trees, bsp-trees) get cumbersome when you adapt them to deal with objects that can span across multiple nodes, particularly if the objects in question are dynamic.

For those who don't give a hoot about ultimate raw speed but want to store and retrieve 2D spatial things conveniently, I've been working on an open source pure python R-tree implementation: <http://code.google.com/p/pyrtree/>

(I also have a WIP implementation in straight C, following a "packed" approach with node compression and tree flattening, focusing on a build-then-query workload rather than a fully dynamic one. Release TBD, maybe dependent on interest since the python version works well enough for my immediate needs.)

<comment><USER3> If the kind of query you are interested in running is a "K Nearest Neighbor Query" (that is for a give point give me the K nearest objects) you should also consider looking at metric trees. To have a metric tree you must have a metric function which takes two objects and returns a distance between them. The distance must satisfy:

       1. d(x, y) ≥ 0 (non-negativity)
       2. d(x, y) = 0 if and only if x = y (identity of indiscernibles)
       3. d(x, y) = d(y, x) (symmetry)
       4. d(x, z) ≤ d(x, y) + d(y, z) (triangle inequality).

Metric trees can be highly useful for data which is either highly dimensional (ie having greater than 3 or 4 dimensions) or non dimensional (like strings for instance DNA sequences).

The M-Tree is probably the most generally useful metric tree: <http://en.wikipedia.org/wiki/M-tree>

If you data is static or only updated very infrequently you should use an MVP tree. It is probably the best static structure, closely followed by Sergey Brin's GNAT structure.

MVP Tree: [http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.43.7...](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.43.7492) GNAT: <http://infolab.stanford.edu/~sergey/near.html>

Finally for some data (like strings) it can be very expensive to calculate the distance function. Therefore, there is another set of structures which relax the triangle inequality and are "near metric" trees. These can be useful for pruning your search space.

For more info on metric data structures see: [http://www.amazon.com/Foundations-Multidimensional-Metric- Da...](http://www.amazon.com/Foundations-Multidimensional-Metric-Data- Structures/dp/0123694469/ref=cm_cr_pr_product_top)

<comment><USER2> Agreed. Also: R-trees don't do so well as you add data dimensions. (This is partly received wisdom; my rough understanding is that the empty volume in each node becomes cavernous and nice splitting becomes much less achievable.)

Another reference dump: If you haven't seen them I found spill trees a nice extension of metric trees for certain types of problems (CV anyone?); found via surfing links from some forgotten HN article: <http://books.nips.cc/papers/files/nips17/NIPS2004_0187.pdf>

</comment></comment></comment><comment><USER4> Cache is the new RAM, RAM is the new disk....

</comment><comment><USER5> To make it easier to follow the post, do read through the slides that are linked in there.

As an aside, I was dreading having to download a .pptx, but Office Live will display it with a slick web-based viewer. Nice.</comment>


Ask HN:  Have you noticed that link submissions rank higher than non-link ones? - <AUTHOR>

Link submissions rank higher than non-link ones with the same number of upvotes and submission time.<p>What is the formula used to score each type for ranking? <comment><USER2> Take a look at the source code ;-)

</comment><comment><USER3> That sounds like a very good idea, a feature rather than a bug.

<comment><AUTHOR> It's also very easy to get around by submitting links.

<comment><USER4> And if someone is obviously gaming the system, their submissions should be flagged.

I don't see anything wrong with the current method. I value submissions with links to content higher than someone submitting a random question, or attempts at using HN as their blog.

<comment><AUTHOR> Why is a link to a blog post any better than the same content in a non-link?

<comment><USER4> You're assuming "the same content" which is not what happens. There is no inherent reason I can pinpoint, but from experience, posted blog posts are generally better than someone using HN as their blog.</comment></comment></comment></comment></comment>


A year and a half with Alexa - <AUTHOR> https://medium.com/@sawaba/a-year-and-a-half-with-alexa-amazon-echo-9d04e0e2041b#.7m710asve <comment><USER2> The key to get _magic_ from Alexa long term will be get unsupervised learning working on it, and then shared back across the entire Alexa user base. The Brazilian real to USD is a great example. If by the 3rd try it gets the right answer, it should notate that and equate the first 2 questions as similar ones. I am surprised it couldn't catch the first 2. The word2vec output should be fairly similar.

</comment><comment><USER3> "In fact, I've had to avoid turning into 'that guy'. I encourage my family to use Alexa, but then I started admonishing them for not recalling the precise sequence of words that unlocked the dusty tomb filled with knowledge of exchange rates and types of currency."

Its interesting that in the last 30 years we've gone from unworkable text adventure interfaces to the same unworkable interface in verbal form instead of typed/read text. A lot of his story reads as a parody of an Infocom game but spoken instead of typed.

</comment><comment> jmcdonald-ut I'll add my two cents on top of the author's. I have both the Amazon Echo and the Amazon Tap. This article was spot on. I'm perhaps less forgiving than the author. If Alexa can't answer a question on the first try I'll just give up. When Alexa does answer a question or a request she usually does a phenomenal job and it's just really cool. It really feels futuristic.

Echo is cool, it can be pretty useful, but it hasn't realized its full potential yet.

I bought the Tap as a portable speaker to take with me on bike rides with friends. Well I took it out the other day and the minute it lost WiFi connection it just wouldn't work. I'm sure this was a problem on my end, but I had already paired the devices and I wasn't going to spend time fiddling with it while I was out with friends.

EDIT: Also it doesn't happen too often but Alexa has definitely accidentally triggered. It even woke me up at 2 AM after the power went out temporarily to tell me that it had no WiFi.

<comment><USER4> We've only had our Echo a couple weeks, but we've already found that characters named Alexa in TV shows are a problem, and that at least once it has responded to something that wasn't "Alexa" from the TV. So yeah, it definitely has false positives.

</comment></comment><comment><USER5> I don't know what the hell is going on at the author's house, but I have both an Xbox One (with active Kinect) and an Amazon Echo in the living room, along with two kids, and I can count on one fist how many times either of them have activated accidentally. That is to say, zero.

<comment><USER6> I occasionally have it activate accidentally. Maybe once a week on average. Usually when the TV is on or when my wife and I are talking. For how much the TV is on in the room where she is set up this in not too bad.

</comment></comment><comment><USER7> Consider that Google and Apple get those questions right at the first time; so it's not that we need to wait for science from the future to have a "working" digital assistant in the home; we just need one from one of those two company. And if that still paired with my Amazon account for the shopping pat, it'd be great :)</comment>


No, inheritance is not the way to achieve code reuse - <AUTHOR> http://littletutorials.com/2008/06/23/inheritance-not-for-code-reuse/

<comment><USER2> In my experience the pitfalls of inheritance are something you have to really see for yourself in practice, so it generally takes even very good developers years to really develop the intuition around when to use inheritance and when to use composition. Inheritance is a blunt tool that's easy to use, while composition is trickier and requires more skill and foresight to use correctly. There are also more different styles of composition that accomplish slightly different things, so you have to know which one will work best for your problem. My personal experience is also that many people just don't understand compositional models as readily either.

One of the big problems, though, is that inheritance is much easier in most programming languages than composition is. Java, for example, has absolutely no support for composition or delegation, whereas inheritance requires a single keyword. C++ has multiple inheritance, which you can kind of re-purpose for the sake of composition, but it's still not very elegant and tends to just exacerbate the misuse of inheritance instead. Ruby has a pretty elegant mixin model, and you can pretty much do whatever you want in Javascript if you're willing to roll the solution yourself (I confess that my Python knowledge is more limited so I have no idea if there's support there), but the most mainstream OO languages require you to really fight them in order avoid using inheritance inappropriately.

</comment><comment><USER3> I think this is yet another argument against JavaSchools. The article mentions roles, which are a very powerful way to compose class fragments into classes; usually much more cleanly and reusably than inheritance. Unfortunately, Java doesn't have Roles (or Traits; same thing), so you just can't teach it. Instead, you have to teach hackish workarounds that don't even work. The choice of "a real language" to teach computer science means that you can't actually teach computer science. Instead you teach Java.

It's a shame that students have to begin their programming careers by working around bad tools.

Anyway, I think everyone with a degree in computer science should at least be able to write programs in Smalltalk, C, Lisp, and a dynamic language (Perl/Python/Ruby). Let them learn .NET and Java in trade school. They are of dubious educational value.

</comment><comment><USER4> This makes an important point that too few people understand. "Inheritance of implementation" is a rare trick. It's something appropriate to only a small fraction of problems. I constantly see people trying to use inheritance as an extension mechanism (i.e. "just inherit from this class to use the library"), and it's just a disaster.

<comment><USER5> Yeah. I think Apple's Cocoa framework is a good example. Instead of inheritance you use delegates to modify class behaviour. Subclassing is 100% possible but not very often required because of the delegate pattern.

</comment></comment><comment><USER6> Takes him a while to get to it... "The reasons for using inheritance are modularity, separation of concerns, clear representation of concepts, categorization and polymorphism." Exactly.</comment>


Microsoft Office 2007 fails OOXML conformance tests with 122,000 errors - <AUTHOR> http://www.groklaw.net/article.php?story=20080421091129596 <comment><USER2> OOXML is truly an awful format. I've been neck deep in the 6000 page spec for the last couple months implementing it for our product.

There's fun things like trying to remember what nvPicPr, spPr, cNvPicPr, cNvPr, nvPr, cNvSpPr each mean, and quirks like different uses of the same tag being in different namespaces for no apparent reason (<http://openxmldeveloper.org/forums/thread/2931.aspx>)

The sad/scary thing is, even if ISO manages to beat OOXML into a half decent format, Office 2007 already implements this pseudo-OOXML format, which will become the de facto standard. If you want to work with the millions of copies of Office 2007 and the billions of fake-OOXML documents already out there, you'll have to develop specifically for it, not the ISO approved spec. Yet Microsoft will claim they're the same.

It will be like IE all over again. It's a huge mess.</comment>


Home Network Segmentation: A Must in the IoT Era – CKD3, LLC - <AUTHOR> https://www.ckd3.com/blog/2018/10/15/home-network-segmentation-a-must-in-the-iot-era <comment><USER2> I see two practical issues with network segmentation:

1\. It breaks broadcast/multicast, e.g. for your phone discovering your chromecast. A number of IOT devices need to be on the same network as the devices from which you want to use them.

2\. It's way too complicated for novice users to set up, so it cannot be vital for making IOT devices secure.

Personally, I like to keep all my devices (whether IOT or not) patched (ideally because they're auto-updating). That way, if a lightbulb gets hacked, it can't get to my backup drive either.

That being said, I do think there's some value in throttling bandwidth for IOT devices. It'd need to happen automatically (which makes it hard), but would nicely prevent DDOS attacks.

<comment><USER3> The problem is the lightbulb that was sold once and didn't receive any patches since. Auto or not...

</comment></comment><comment><USER4> > According to a 2017 study, North Americans have an average of 13 devices per > person. That means a family of four has an average of 52 devices on their > network.

Um, what? No it doesn't. The average devices-per-person over all people and the average devices-per-person over all people belonging to a household of four are totally different statistics. You could have an individual average of 13 devices per person at the same time that a family of four has an average of 0 devices.

Behold my five-person population:

        Loner: 65 xboxes

        Luddite Pa: nothing
        Luddite Ma: nothing
        Luddite Grandpa: nothing
        Luddite Son: nothing

Does anyone else think that... maybe... there are some devices which a single person is moderately likely to own one of, but a family of four is vanishingly unlikely to own four of?

<comment><USER5> I imagine "13 devices" does not necessarily mean exclusive ownership, either. I have a TV, but it's the same TV that everyone in my household has, so a straightforward multiplication of "people * devices" doesn't totally work.

</comment></comment><comment><USER6> Why can't you just segregate your network with VLANs? I don't see the need for multiple routers.

<comment><USER7> Having two distinct routers and physical devices just isolates each network that much more. A single device is still exactly that at some point, and in such cases there is always the possibility of an exploit that could compromise the device fundamentally.

I think the author is just advocating for a very locked down approach but I agree it is not feasible for most folks.

</comment></comment><comment><USER8> Cybercriminals?! What a poorly written article. Multiple "firewalls" in a home and nothing about VLANs?

That being said, it is good practice and something I've implemented in my home - thankfully my Unifi / pfsense setup makes this very manageable.

</comment><comment><USER9> I've had my home network setup like this for years, though with VLANs instead of seperate physical routers.

I've got :

* LAN - where my wife and i connect our laptops/phones.

* SERVERS - for my NAS and a couple of small servers.

* DMZ - just a single server sitting here.

* KIDS - Where my kids and their friends connect their laptops/phones. It's a semi guest network, as it only allows traffic to the internet and a few devices on the IOT network, printers, Apple TVs, etc.

* IOT - Internet of trash, only allows connections to the internet. Only network that allows uPnP. Has multicast repeating on for ChromeCast/Apple TV.

* GUESTS - you guessed it.

DMZ is the only VLAN that can be accessed from the outside. Each VLAN from the bottom up allows access from the VLANs above, with the exception of the guest networks. Nothing can access KIDS, IOT and GUESTS.

KIDS can access a couple of devices on the IOT network like printers, Apple TV, ChromeCast, AirPlay devices, IOT and GUESTS can only access the internet.

My UniFi network then creates 4 Wifi networks as well, one for LAN, KIDS, IOT and GUESTS.

<comment><USER10> Are you using USG or an edgerouter? I've had trouble with broadcast based access for printer and Chromecast Discovery. Curious as to how you've resolved that issue.

</comment></comment><comment><USER11> most home routers are capable of hosting more than one access point, they are also capable of different VLANs and IP pools. You shouldn't need a second router.

For your phone to control your TV you'll most likely need to punch a hole in your segregation to make avahi work. Also any app that controls any of your devices will most likely want a direct connection at some point

Your printer is just as vulnerable as any IoT device.

Yes its a good idea, but its really not simple to do in practice, unless you are used to running your own network. Also with the creeping rise of IPv6 you'll need to change how isolation is done _again_

</comment><comment><USER12> Interesting aside: My whole life people were ridiculing me a bit for having 2 desktop PCs and a server on my home LAN.

Now it's turned around, and in my flat (2 people) I have 2 desktop PCs, a handful of laptops (obv. only 0-2 in use at the same time), a NAS, 2 Kindles, and 2 Android phones. Oh, and one XBox 360 that's hardly in use.

Compared to this infographic or that study with the 13 devices per person.. Sure, I might own 13 devices with a mac address, but half of them are only switched on once per year...

As I don't use the Xbox for streaming, it might make sense to move it to the Guest Wifi, same as the Kindles. Maybe even the phones. But all in all, my devices are Windows, Linux and BSD boxes that are hopefully kept up to date.

TLDR: What's an IoT era? ;)</comment>


PEPP-PT contact tracing standard push could lead to fight Apple and Google - <AUTHOR> https://techcrunch.com/2020/04/17/europes-pepp-pt-covid-19-contacts-tracing-standard-push-could-be-squaring-up-for-a-fight-with-apple-and-google/ <comment><AUTHOR> Original title did not fit in the field: "Europe's PEPP-PT COVID-19 contacts tracing standard push could be squaring up for a fight with Apple and Google" Hope this change did not editorialize it too much.</comment>


Dear Pinterest, adios muchacho - <AUTHOR>

I "signed up" for pinterest long time ago, just being curious about what's new. Anyway, I keep seeing this message from time to time:
"Please confirm your email. If you did not receive an email, you can change your email address or we can resend the email. (Also check your spam folder!)"
So, muchacho, is it normal to bother me with emails about my friends who joined, weekly bs, pins, bla bla, even if I didn't confirm my email address ?
PS. account deactivated.
PS2. I got an email about "reactivate", I want to delete it, not deactivate... <comment><USER2> All I know is the Zendesk problem they had, and never to provide information solicited via e-mail. The confirmation must just be a formality- they've already got you.

</comment><comment><USER3> This is why Nuuton features account creation sans-email. Plus it hath no newsletter.</comment>


Show HN: Noauth SSH server for remote port forwarding; like ngrok, but using SSH - <AUTHOR> https://www.serveo.net/ <comment><AUTHOR> I built this to try to get most of the advantages of both ngrok and ssh -R at the same time. Like ngrok, you get an https subdomain that anybody can hit, but there's nothing to install—you use your SSH client to connect.

Next I'm working on an SSH-delivered terminal GUI for inspecting and replaying HTTP requests to match more of what ngrok does.

<comment><USER2> Great stuff, I was trying to find something like this for days. Is there any other website, where I could keep track of new features?

<comment><AUTHOR> This is all at the moment! I'll add a changelog to that page.</comment></comment></comment>