Hub Git Wrapper - <AUTHOR> https://github.com/github/hub <comment><USER2> I'm quite fond of of Ingy's git-hub command, [https://github.com/ingydotnet/git-hub](https://github.com/ingydotnet/git- hub), which also gives you most of Hub's features, along with much, much more. E.g., the the ability to manage things like a repo's collaborators, issues, etc. from the command line. And it's a normal git extension command, so you run it as `git hub clone foo/bar` or `git hub issue-new` or `git hub pr-list` which feels like a better point of integration.

Edit: And per some concerns elsewhere in the comments, there's also a --dryrun parameter to ensure that it's going to do what you want it to do. ;)

</comment><comment><USER3> Thanks to hub the friction to contributing is much lower for me. That's how I contribute back to projects on github:

        hub clone user/repo
        cd repo
        git checkout -b my-contrib
        # ... fix fix fix ...
        hub fork
        git push -u zimbatm my-contrib
        hub browse # Opens browser on my fork
        # Create PR with comment in browser

<comment><USER4> Just a note, you can simplify your workflow even further by using `hub pull- request` . If your PR consists of a single commit, it'll even pre-populate the PR description for you (if not, it helpfully lists the commits included in the PR in the comments of the PR/commit message).

</comment></comment><comment><USER5> Node GH [0] seems to do a few things better including the plugin architecture allowing integration with JIRA and others.

[0] [http://nodegh.io/](http://nodegh.io/)

</comment><comment><USER6> I once tried to PR from hub.

It sent the PR from my branch on my fork to master on my fork. Obviously I wished to PR against the original thing I forked from.

I just stick to the web interface now.

<comment><USER7> What you needed was to use the options -h (head, ie. the feature branch) and -b (base, ie the upstream master) eg.

        git pull-request \
          -m "I added an awesome feature"\
          -b baserepo:master\
          -h myfork:feature-branch

<comment><USER8> The GitHub web interface defaults to the PR-to-upstream behavior though, so this is at least an inconsistency; I would argue it is a bug.

</comment></comment></comment><comment><USER9> I've been using Hub forever. It's a lovely bit of improvement over raw git, at least for Github-based projects.

</comment><comment><USER10> hub pull-request is my favorite feature. It cuts the actions down from many mouse clicks to one command in terminal.

</comment><comment><USER11> > hub is best aliased as git, so you can type `$ git <command>` in the shell > and get all the usual hub features.

World domination feels imminent.

<comment><USER12> I know I don't like doing it that way. I use `git` (actually, I have `alias g=git`, so I actually write `g`) directly for most things, only pulling out `hub` for GitHub-specific things.</comment></comment>


Ask HN: Why do companies use recruiters to narrow down potential candidates? - <AUTHOR> I was wondering why software companies let recruiters decide which candidate is good or bad for a given role?
I'm talking about the very first selection. I've interviewed a lot of candidates and usually we (engineer/hiring manager) get a very narrowed list of 2-3 candidates max for a role.
Let's say I don't have a specific keyword in my Resume. Does a recruiter know I can do the job still based on my experience? For instance, I put "Oracle, XML, Data bases" and the hiring manager said to look for people who know SQL. Well, guess what, the d*mb recruiter don't know anything about Data bases so he/she will pass.
And that's the easy part, skills... it gets worse when it comes you professional experience. For example "I built a Web Server from scratch on top of Apache" and the recruiter said to look for someone who's familiar with the HTTP protocol.
If I never wrote "H T T P - P R O T O C O L E" in my Resume I'm screwed... <comment><USER2> 2 reasons

1\. There are lots of people a given company considers unemployable(rightly or wrongly) and a recruiter helps weed out these candidates.(has a degree, has 4 years of experience, and has 2 years of java, etc...) This is probably low value but a lot of companies don't even want to bother with the hassle.

2\. Lots of companies don't feel comfortable poaching from other companies. This is the best way to find new candidates, because the average employed developer is a better candidate than an average unemployed candidate. So they hire out this "dirty work" and relationship building to other companies that specialize in it.

But as a piece of related advice, it's easier to add "http protocol" to your resume than to fix the the very broken hiring system we have in tech.

</comment><comment><USER3> Yes, about five 9's of recruiters don't understand the tech on the resume or the job description. That _may_ prevent them from responding.

But in general, they rely on you to self-qualify. So they are far more likely to call you and run through the list of requirements verbally so you can tell them if you have them or not. That also gives them a chance to pitch other jobs. Of course, if you say no to something the hiring manager said was a must have, you disqualified yourself, but that's on the hiring manager, not the recruiter.

This comes from being in a tight labor market. Think of it this way: how often are you contacted for jobs you're totally unqualified for, but they think you are? In this market, I see that a lot more often than the opposite.

</comment><comment><USER4> They believe recruiter X understands the role and company well enough to do the grunt work of reading through and filtering down candidates without disrupting everyone's work flow until it gets to the final set of candidates.

They are small enough that they cannot justify developing and maintaining internal recruiters who can do it better.

They believe the recruiter's pitch that they know the industry and have databases of people to search and reach out to and so can speed up the process to find a qualified and interested candidates.

Because apparently it is generally good enough for the executives that are making that outsourcing decision.

Some combination of all of the above

</comment><comment><USER5> They're using recruiters wrong. We generally don't use recruiters to _filter_ candidates, but rather to _find_ them for jobs where network-based recruiting fails and candidate flow to public postings is poor in terms of volume or quality.

We give them top-level criteria ("mid-level iOS developer", "entry level data scientist"). Any further criteria are very unambiguous and easy to assess in a 5-minute discussion if not off a resume ("has used Python for at least a year in a professional capacity"; "has shipped at least one app to Apples App Store"). They send us a trickle of resumes. _We_ decide which resumes suggest the candidates are qualified enough to phone screen (usually about a third to a half).

For the best of those, we phone screen and issue a simple technical assessment that gives us an idea of the candidate's baseline skills. Then we dive deeper if we need something specialized (e.g. deep knowledge of a specific protocol.)

We also give our recruiters feedback on why we decide not to hire a candidate (e.g. "he seems like he'd need an environment with more structure" or "she knows HTTP like the back of her hand, but we need someone who's used JavaScript since 2003".)

The recruiters use that feedback to inform what other positions they send the candidates resume to. And they use other clients' feedback to help decide who to send to us. Our best recruiter has few enough candidates that she can only send us a few per week for any given position.

But she knows them really well - what they're want for their careers and in terms of process and culture; what other companies have determined are their strengths and weaknesses; where they are in the interview process with other companies and what they think of those companies; and of course, what they think of us.

And she knows us well enough that (for instance) we're one of the first places she'll send a resume for someone who's self-taught and looking to leave the freelance life, and no longer bothers us with the resumes of people with CS PhDs who insist on having a project manager and Gantt charts for everything they do.

If your recruiters are using spray-and-pray and have so many candidates that they have to machine-filter their resumes by keyword instead of knowing their candidates personally, you need to find better recruiters. The ones who get a position description from you and then screen-scrape LinkedIn to "find" "candidates" are just wasting everyone's time.</comment>


Aaron Swartz Legal Defense Fund - <AUTHOR> https://free.aaronsw.com/ <comment><USER2> Now let me see if I got this right:

      1. Brilliant programmer gets chance of a lifetime.
      2. Turns that into lots of money early in life.
      3. Decides to change the world in his own way.
      4. Consciously & purposefully breaks the law.
      5. Has a webpage to get others to pay his legal bills.

I've never met Aaron but I've always enjoyed his writing and looked forward to meeting him one day. But there is something seriously wrong about this.

Aaron should man up, take responsibility for his actions, and pay his own bills.

And if this is his idea of changing the world, perhaps he should reconsider his choices and find a better way of paying it forward to other brilliant programmers who never got the breaks he did.

<comment><USER3> 1) I don't think Aaron made more than six figures from Reddit. Soon after acquisition, he went on walkabout, and then he got canned. He probably got some money, but did not vest most of his share.

So, don't worry - he's poor enough for your pity and support.

2) As to your second line of thought, that we should punish him because he consciously broke the law... I disagree with anyone on this forum who says that Aaron didn't know the potential consequences of his actions, and therefore should not be punished. But I also disagree with you.

This was a victimless crime, and the only ones pursuing it are some relentless G-men. Where is the corporation or person that has been wronged? Who, in the public, wants to pillory Aaron? What did Aaron gain? Do we really need to make an example of him, so this doesn't happen again? Is this really good a use of taxes?

My reaction is just shame and disgust... I mean, really? This brilliant kid is going to jail because of civil disobedience? Just so we can show there is still a book than can be thrown?

<comment><USER4> From the prosecution's vantage point --- and please stop for a minute and consider that perspective even though there's no chance you'll agree with it --- this was _not_ a victimless crime.

As the prosecution sees it, Aaron broke into a service and took information that JSTOR charges 5 figures for access to with the intent of putting it on a file sharing network and thus destroying the commercial value of that information. If you read the indictment, the prosecution's vantage point seems to show that Aaron did this _with the intention of destroying the commercial value of the information_ , because he opposes the commercialization† of that kind of information.

The prosecution's charge is that Aaron deliberately set out to harm an organization because they were incompatible with his own ideology.

† _JSTOR is a nonprofit but you get the drift_

<comment><USER5> > _"The prosecution's charge is that Aaron deliberately set out to harm an > organization because they were incompatible with his own ideology."_

Sort of like how Rosa Parks decided to harm an organization because it didn't agree with _her_ ideology. I mean, we're a nation of laws, she should have just sat where the bus driver told her to, am I right? Do we even have to debate the idea that sometimes laws are dictated _to_ the people, not _by_ the people?

Thankfully there are people who are actually willing to take action, rather than shilling for the powers that be. Academic research by public institutions _should_ be free, in both senses of the word.

> _"the prosecution's vantage point seems to show that Aaron did this with the > intention of destroying the commercial value of the information"_

Of course they will claim that, what else would they argue?

<comment><USER4> Huh? Rosa Parks didn't set out to harm the Montgomery Bus Line. She just took the "wrong" seat.

It's funny that people can play the Anti-Godwin without even really knowing who Rosa Parks was; at least you can assume the people who invoke Hitler actually know why Hitler was evil.

<comment><USER5> > _"Rosa Parks didn't set out to harm the Montgomery Bus Line. She just took > the "wrong" seat."_

And Swartz didn't set out to harm JSTOR commercially. That's only the view of prosecutors, which is completely expected.

Are you being deliberately obtuse? The point of bringing up Rosa Parks is that you make claims like, _"We are a nation ruled by laws, not people. It is not up to Aaron Swartz"_. Substitute Aaron Swartz for Rosa Parks/Gandhi/whatever other examples people have brought up, and you should see what a ridiculous statement that is.

> _"It's funny that people can play the Anti-Godwin without even really > knowing who Rosa Parks was"_

What's really funny is that, between calling opposing ideas "dumb" and "retarded", you've managed to conceal from most of the HN community the fact that you're really an arrogant blow-hard.

<comment><USER4> Yes he did. He even posted a manifesto saying it.

<comment><USER5> Funny, because I see him repeating, over and over, that the purpose is to set academic research free. It's called the "Open Access Manifesto" for crying out loud, not "Let's bankrupt JSTOR!"

And it's _that_ idea that myself and other "retards" here are able to get behind, _despite_ the fact that he broke the law to try to accomplish it, and will likely suffer consequences.

<comment><USER4> Only on a message board are these two dots hard to connect. Because after JSTOR's whole database is made public, people will continue to pay JSTOR because they're nice guys.

<comment><USER5> > _"Because after JSTOR's whole database is made public, people will continue > to pay JSTOR because they're nice guys."_

Because Universities and research facilities are going to download the JSTOR torrent as opposed to purchasing access, just because it's available, right?

That sounds a lot like the argument the record labels and MPAA make. I can't remember, do people still pay for music and movies?

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> They really should include some sort of background or link on this page. For anyone else that has little idea who he is or why he needs money: <http://en.wikipedia.org/wiki/Aaron_Swartz#JSTOR>

More complete background: [http://arstechnica.com/tech-policy/2011/07/reddit- founder-ar...](http://arstechnica.com/tech-policy/2011/07/reddit-founder- arrested-for-excessive-jstor-downloads/)

</comment><comment><USER7> I don't necessarily disagree with the motives behind Aaron's actions, but if you're going to break the law in what may be perceived as "civil disobedience," you need to be willing to "do the time," too.[1]

I'm neither encouraging nor discouraging people from donating, but I do think that it's a little off-putting that Aaron's taking what could have been a selfless, martyrdom-filled act of civil disobedience and then changing it into "silly mistake," from which he's asking for help recovering.

[1]: 'Doing the time' as a turn of speech. I doubt Aaron would get actual jail time for this. Then again, I am not a lawyer.

<comment><USER8> This was not civil disobedience, which involves publicly breaking a law in order to demonstrate that it is unjust. Swartz, lacking the courage of his convictions, tried to commit a crime in secret. Now he wants us to help him pay the piper! Despicable.

<comment><USER9> When you impact JSTOR and the entire MIT network the way he did, it's hardly "in secret". Something like a stream of one million continuous JSTOR downloads 24/7, significantly impacting the entire MIT network, is going to go unnoticed?

His JSTOR use was heavy enough to draw an IP ban. Yet he continued. I fail to believe he was really trying to hide - he knew his actions would be noticed. Network admins would see what was going on. And even in the wiring closet, putting a bike helmet over his face? That's not exactly covert.

JSTOR would know something was up - the IP ban was probably automatic but still I would guess the folks administering their servers would have noticed a huge spike in activity from MIT.

MIT would know something was up. Their network admins are not asleep at the wheel.

Seems to me, it was no secret what he was doing. He did not try very hard to conceal it. (Or maybe you think he was supposed to hold a press conference or at least call the TV news first?) With the way he went about this, it's no wonder he got caught.

Moreover, he already knew he had an FBI file from the PACER incident. So it's not like he couldn't imagine the FBI getting involved.

Then again, I could be wrong. Maybe he really is that stupid.

</comment></comment></comment><comment><USER10> If you want people to donate to your cause you need to do a couple things:

1\. Include some background on why I should care. 2\. Provide some level of assurance that this page is actually linked to the issue at hand and isn't just a phishing scheme.

<comment><USER11> #2 seems reasonably certain, since aaronsw.com has been Aaron Swartz's domain for a while now. As for background: <http://news.ycombinator.com/item?id=4528083>

</comment></comment><comment><USER12> Why are they prosecuting a man for publicly making available beneficial scientific knowledge that the public have effectively paid for? Is personal gain of a few companies really more important than education, and should it really be enshrined in law?

</comment><comment><USER13> I'm not willing to donate. Aaron's goal may have been noble, but his actions are indefensible.

<comment><USER14> I agree. He was extremely foolish and arrogant at best. I don't think this belongs on HN.

Also didn't he make a ton of money selling Reddit?! :/

<comment><USER15> Could either one of you please explain how "his actions were indefensible" or how "he was extremely foolish and arrogant at beast"? Appreciated.

<comment><USER14> Come on. If you download millions of files that obviously aren't supposed to be downloaded en masse, and then release them publicly, you're going to get in trouble. Common sense.

He knew what he was doing, and hew knew what he was doing was wrong. Doesn't seem terribly smart to make enemies high up.

<comment><USER16> > He knew what he was doing, and hew knew what he was doing was wrong.

He might have known (and even the extent of this is not clear) that what he was doing was illegal.

But that doesn't mean it is wrong, law and morality are two very different things.

Me and many others would argue that what he did was almost a moral imperative, he tried to free human knowledge (mostly paid by tax dollars!) from the artificial monopoly of some corporate leeches.

And if you need more arguments for this, just read up on what Thomas Jefferson had to say about it: <http://harmful.cat-v.org/economics/intellectual_property/>

<comment><USER14> If something is illegal, and you do it, you are at risk of being prosecuted.

If you believe something shouldn't be illegal, then campaign to get the law changed!

Are people video-camming movies in cinemas "just freeing human knowledge"? Were wikileaks publishing secret sensitive hacked info "just freeing human knowledge"?

I don't need any more arguments, because I absolutely disagree. If you believe a law needs to be changed, the way to get it changed is not to start breaking it. We live in a civilised society here. It's this kind of "political activism" I detest.

<comment><USER17> > If you believe a law needs to be changed, the way to get it changed is not > to start breaking it.

On the contrary, history shows it to be one of the few effective methods.

You're saying that Rosa Parks was wrong when she refused to go to the back of the bus. The underground railroad was wrong for refusing to comply with fugitive slave laws. Ghandi was wrong for breaking the laws imposed by the British.

We live in a civilized society precisely _because_ many people have disobeyed uncivilized laws. It's actually one of the hallmarks of our civilization that we can draw a distinction between what's right and what's legal.

<comment><USER14> Well, agree to disagree. I do not think breaking the law, bullying, protesting, etc are good ways to behave.

<comment><USER18> Another good example is "Boston Tea Party" [1]. It was one of the catalysts of the American Revolution.

[1] <http://en.wikipedia.org/wiki/Boston_Tea_Party>

<comment><USER19> One of the causes of the Revolution was lack of representation and a means to change the law. Now that we have a representative government as a result of that war, one might hope we would use it.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER20> Is it just me, or does that payment box look kind of dodgy? I think there's a reason that so many people use PayPal and services like it—people trust a familiar face. But this one doesn't really have any padlocks or any details like address or zip code or anything, and just looks out of character for a checkout page.

As a person that knows about Aaron, I know it can be trusted, but it might not be the same for others. Just a reaction that the folks supporting Aaron might want to be aware of.

<comment><USER21> I get what you're saying.

One company who got around this hurdle was App.net(piggybacking on the Stripe/Visa/Mastercard brand). I'm assuming this is another implementation of Stripe.

<comment><USER22> It is the official Stripe payment tag. <https://stripe.com/docs/payment_tag>

<comment><USER23> It would be really nice if there was somewhere on that payment tag to click to verify it at stripe.com.

</comment></comment></comment></comment><comment><USER24> I wish someone would make a KickStarter for legal stuff.

I've seen enough of these that it could be a real business. (Ex: help pay for a defense against some government intrusion, or RIAA overreaching, or to bring a case to challenge an unconstitutional statute, or to overturn a dumb pantent, or whatever).

It could even evolve into a platform for the political moneybomb we've seen before. (A bounty for the first person to introduce some bill, for example: patent reform.)

<comment><USER25> Actually, a Kickstarter for legal defense is a good idea.

<comment><USER26> It is a good idea. Unfortunately, the Obama administration is STILL fighting for indefinite detention powers[1] even after Judge Forrest's NDAA ruling[2]. The owner and users of a legal defense kickstarter could be at risk of indefinite imprisonment without trial if a cause was somehow linked to 'terrorism'.

1\. [http://www.huffingtonpost.com/2012/09/14/ndaa-case- indefinit...](http://www.huffingtonpost.com/2012/09/14/ndaa-case-indefinite- dentention_n_1885204.html)

2\. [http://www.google.com/hostednews/ap/article/ALeqM5h_ZWg1DMub...](http://www.google.com/hostednews/ap/article/ALeqM5h_ZWg1DMubxpzgZlf58WFOZN415A?docId=560c3298937e445ca6cb325e18c3ab8b)

<comment><USER4> You have to be pretty dumb to believe that the owners and users of a legal defense Kickstarter could face indefinite detention.

The myriad of utterly retarded message board arguments you could hide behind to make this claim are so obviously numerous and complicated that I'm not touching this thread with a ten foot pole. Just chiming in to say, "no".

</comment></comment></comment></comment><comment><USER27> If people want to help Aaron, I'd recommend a political strategy as well as a legal one. I'm not a lawyer and certainly no expert on this case, but my sense is that there is something political going on or one of the prosecutors sees this as a big career boost. For someone without a criminal background like Aaron it would seem very much out of the norm to continue escalating the charges as they've done, rather than move toward a plea bargain.

These prosecutors work for the Obama Administration, and ultimately the President. The President has certainly courted the tech/internet vote, and I think some internet activism in this case is worth a shot. But it would need to be done basically _right now_ (i.e. before the election). Are the prosecutors going to drop the charges? No. But some political pressure could improve whatever the terms of a plea deal are.

Disclosure: Aaron and I briefly worked at the same non-profit organization many years ago. But we were essentially in different departments, so while we met once or twice I wouldn't say I know him personally.

<comment><USER4> Good plan. Because surely a Republican-controlled DoJ would be much more lenient about the Computer Fraud & Abuse Act.

<comment><USER27> I can't tell if you are being sarcastic or not.

My underlying assumption is that Obama is more than likely going to win re- election. FiveThirtyEight has him at 75% likelihood to win, and intrade bettors have him at 66%. But even if he wins, he'll have much less reason to pay attention to the views of the reddit demographic after the election than he will before. So Aaron's supporters should start working this right away.

Same goes with Congress by the way, if a member of Congress could be enlisted to help (what's the Congressional districts for Aaron's hometown and current residence?)

<comment><USER4> Even in Nate Silver's analysis, Obama is at his apex coming out of the convention. There are 6 weeks to go, the election turns on 3-4 states, and Romney has tens to hundreds of millions of dollars to spend.

But the Internet told you that Obama's going to win, so as far as you're concerned, the election is over, and it's time to start playing games with it to make stupid points.

<comment><USER27> Well that's not very nice.

</comment></comment></comment></comment></comment><comment><USER28> What are we defending Aaron Swartz against? (Sorry for being a boob)

<comment><USER29> [http://www.guardian.co.uk/technology/2011/jul/21/aaron- swart...](http://www.guardian.co.uk/technology/2011/jul/21/aaron-swartz- indicted-hacking-charges)

</comment></comment><comment><USER4> Is Aaron incarcerated?

<comment><USER29> I don't believe so; the "free" in the URL seems a bit cheeky. The trial is scheduled for February 4, 2013.

</comment></comment><comment><USER30> From the indictment: JSTOR is a not-for-profit (=no tax liability?). JSTOR charges universities annual subscription fees as high as $50,000.

Are we told anywhere what JSTOR's actual costs are for scanning documents and serving PDF's? Yes. Someone provided a link to details of JSTOR's budget in the other Swartz thread. Very interesting. They appear to be some very well paid "librarians" (archivists). And lo and behold, they are trying to figure out how to make Google bucks. Seed the Google index with links to JSTOR articles that sit behind a paywall, then charge $10 or more for a la carte access. (Can you feel the desperation?)

Sounds great, they can piggyback on Google, maybe run some SEO, do some behavioural tracking and all that. But there's just one problem: this is library material. Library as in the kind that is funded by grants, taxes, tuition or endowments. Non-commercial. And even more, does Google Scholar show ads? Do they charge anyone for access?

I'd put my money on projects like archive.org or publicresource.org, who charge nothing, before I'd bet on these guys. Sadly, this criminal case may really be all for nothing. Because businesses like JSTOR will likely fail, not because of kids like Swartz, but because they simply are not as smart about technology as the folks who run sites like archive and publicresource.

</comment><comment><USER31> He would've got more donations had he put the papers he downloaded online sooner, rather than get busted with 4 million. A journalleaks site would be much more useful than wikileaks.

</comment><comment><USER32> I think that he's an arrogant little bastard and a few years in the slammer is just what he needs to teach him about the consequences of hubris.

</comment><comment><USER33> You forgot to accept Bitcoin.

<comment><USER34> The guy that uploaded the JSTOR papers last year after Swartz was indicted, Greg Maxwell, accepted bitcoin donations.

[http://www.techdirt.com/articles/20110721/11122615195/aaron-...](http://www.techdirt.com/articles/20110721/11122615195/aaron- swartz-indictment-leading-people-to-upload-jstor-research-to-file-sharing- sites.shtml)

</comment></comment><comment><USER35> See also <http://thecostofknowledge.com/>

I feel the state of academic publishing is essentially, a hustle. People being divorsed from community feedback and their own rights as authors is farcical.

</comment><comment><USER36> What? No kickstarter?

</comment><comment><USER37> They could not get Assange, hence...</comment>


Elon Musk and Bezos used to be just like you, says Y Combinator's Daniel Gross - <AUTHOR> https://www.recode.net/2017/12/6/16728982/daniel-gross-y-combinator-cue-apple-ai-machine-learning-kara-swisher-casey-newton-decode-podcast <comment><USER2> They both likely have IQs of at least 145, it seems, which is in the top 0.13% or higher. Just like the rest of us, indeed.

[https://www.quora.com/Who-is-smarter-Elon-Musk-or-Jeff- Bezos](https://www.quora.com/Who-is-smarter-Elon-Musk-or-Jeff-Bezos)

[https://en.wikipedia.org/wiki/Standard_deviation#Rules_for_n...](https://en.wikipedia.org/wiki/Standard_deviation#Rules_for_normally_distributed_data)

</comment><comment><USER3> I'm pretty sure both of them came from monied families?

Or is that the point?</comment>


Announcing F# Support for .NET Core and .NET Standard Projects in Visual Studio - <AUTHOR> https://blogs.msdn.microsoft.com/dotnet/2017/11/15/announcing-f-support-for-net-core-and-net-standard-projects-in-visual-studio/ <comment><USER2> Niiiiiiice.

Suave microservices with Owin plumbing running on dotnet core containers is one heck of a nice platform.

I know it's going to take a minute for all the niggling issues to get worked out, and the community to catch up, but I see this as a major watershed moment.

</comment><comment><USER3> This is great! Glad to see .NET Standard "in the box" in VS for F#.</comment>


Deep learning works like brain? - <AUTHOR> https://mobile.twitter.com/stochastician/status/999753434386518016 <comment><USER2> I read that in this months mit tech review</comment>


Max Planck Society Discontinues Agreement with Elsevier - stargazer-3 https://www.mpdl.mpg.de/en/505 <comment><AUTHOR> Just a note that we have asked the European Commission to investigate Elsevier for abuse of a dominant market position: [https://zenodo.org/record/1472045](https://zenodo.org/record/1472045), and also now Education International (32 million members, 400 member organisations) are taking the fight to them through academic unions. [https://bit.ly/2PPjwRK](https://bit.ly/2PPjwRK)

<comment><USER2> I wish people would work on the systemic issues of access, rather than acting like Elsevier is somehow uniquely responsible. If Elsevier disappeared overnight, there would still be the other 84% of the market.

Efforts like the above just lead to the open access movement getting co-opted by anti-capitalists, which hurts progress.

<comment><USER3> Overview of distribution of costs by 5 main publishers -- Elsevier share is larger than all other 4 large publishers combined:

[https://oa2020.org/wp-content/uploads/pdfs/B14-12-Lidiia- Bor...](https://oa2020.org/wp-content/uploads/pdfs/B14-12-Lidiia-Borell- Damian.pdf)

</comment></comment></comment><comment><USER4> I'd encourage all active researchers who support the move to open access to sign the following petition: [http://michaeleisen.org/petition/](http://michaeleisen.org/petition/)

It basically tells funders that you support them to negotiate better open access deals, even if that risks limiting the number of venues you can publish in.

</comment><comment><USER5> Every nail in Elsevier coffin is a great news, paywaled scientific publications is an archaic, dystopian and shameful legacy that should never exist in a first place.

<comment><USER6> I agree with the sentiment but I do think the service journals provide was once worthwhile, before the web, as disseminaters of academic knowledge. Universities paid a subscription fee for physical copies of journals, allowing their employees to keep up to date with what was happening in the world of science. Once the web took off the proposition was no longer good value, as scientists could bypass publishers. It just took two decades for academia to change the habit of a century.

<comment><USER2> This is something I hear all the time about publishers, and it used to resonate with me, too, until I started to work for a publisher and realized how much goes into the system we have beyond just putting manuscripts online. The real eye-opening thing for me was talking to editors and seeing all the behind-the-scenes stuff that they do. They have to know enough about their field to know what's worth sending out for review in the first place, manage the review process so that you don't have nasty, unhelpful reviews or personal vendettas getting exercised, manage ethical concerns, deal with authorship disputes, etc, and that's just the review piece of things. There's a whole information infrastructure behind the scenes making sure that once something is published that it can be found, indexed, searched for, aggregated by author, connected to the data and code and protocols and other entities that it mentions... I mean, I've been at this for 8 years and there's still so much I don't know.

All that just to make the point that the value proposition is still very much there, though I'll agree publishers could do more to make this apparent.

<comment><USER6> That's true, but I'm not so sure all of that is still really necessary with the way science dissemination is chaging. In computing science for example the de-facto standard is to self-publish papers on arXiv where there is no peer review prior to publication (beyond arXiv's moderators who check papers are properly categorised, formatted, etc.). The "peer review" comes in the form of the community reading and citing or not citing papers in later publications.

You could argue that publishers only ever needed reviewers - and all the administration baggage that you mention that comes with it - because they had to choose what to compile into each paper issue that would be mailed to subscribers. If we remove the concept of "issues" and just have everyone self- publish on arXiv, a lot of the value you mention regarding journals is no longer needed.

Of course, everyone publishing on arXiv has downsides. It's no longer easy to just read Nature/Science/Physical Review Letters/etc. to find the best research in the field - some other mechanism will be needed to show scientists the best papers without them spending huge portions of their time reading - but I am sure we will find solutions to these problems in time. In fact, with some of my astronomer colleagues it is also pretty normal for them to spend an hour each morning skimming through 10 or so new papers posted to the arXiv.

<comment><USER3> > but I am sure we will find solutions to these problems in time.

Solutions have been found -- overlay journals:

[https://gitlab.com/publishing- reform/discussion/issues/94](https://gitlab.com/publishing- reform/discussion/issues/94)

</comment></comment></comment></comment></comment><comment><USER7> Glad to see interest in Elsevier is declining.

[https://trends.google.com/trends/explore?date=all&q=elsevier...](https://trends.google.com/trends/explore?date=all&q=elsevier,sci- hub,libgen)

<comment><USER8> Interesting to see the long-term decline, but to be fair, I don't think many people who are looking for a particular paper would start by Googling the word "elsevier." They _would_ , however, Google "scihub" to find out their latest hosting domain.

</comment></comment><comment><USER9> _The Max Planck Digital Library has already set in place mechanisms to address the content needs of its researchers when Elsevier shuts off access at the beginning of January._

What is it? Sci-Hub?

<comment><USER4> Most other DEAL subscribers rely primarily on inter-library loan, I think.

</comment></comment><comment><USER3> How to make journal bundles ("big deals") fair and promote quality? [https://gitlab.com/publishing- reform/discussion/issues/100](https://gitlab.com/publishing- reform/discussion/issues/100)

</comment><comment><USER10> Isn't Elsevier just borrowing credibility from scientists and institutions, I mean, they could all self publish, because it is still their names that lend credibility to these reports, data and papers, not this aggregator/publisher?

</comment><comment><USER3> Good time to change publisher...

[https://blog.scholasticahq.com/post/journals-declaring- indep...](https://blog.scholasticahq.com/post/journals-declaring-independence- from-corporate-publishers-past-and-future/)

[http://languagelog.ldc.upenn.edu/nll/?p=22162](http://languagelog.ldc.upenn.edu/nll/?p=22162)

[https://declaring-independence.org/](https://declaring-independence.org/)

</comment><comment><USER11> They ll still keep publishing in elsevier journals though

<comment><USER3> Certainly less in the country where Elsevier has such fantastic reputation :)

</comment></comment><comment><USER12> > Researchers at the 200 institutions supporting the DEAL negotiations have > consequently foregone access to the Elsevier platform and are broadly making > use of alternative routes for their research needs.

I wonder what "alternative routes" those are... /s

<comment><USER6> In many cases the library service of these institutions can still obtain copies of journal articles via inter-library lending or individual purchases. Yes, researchers will probably bypass this and use Sci-Hub simply because it's quicker, but Elsevier can't argue that universities _expect_ researchers to obtain Elsevier journal articles illegally.</comment></comment>


SpaceX to Launch Falcon Heavy Rocket Nasa Kennedy Space Center, 5:35pm [Live] - <AUTHOR> https://www.youtube.com/watch?v=DPfHHls50-w <comment><USER2> This is the launch from April 11th, not live now.</comment>


What George Washington Could Teach Start-Ups - <AUTHOR> http://cynthiakocialski.com/blog/2012/02/08/what-george-washington-could-teach-start-ups/

<comment><USER2> Based on one novel? Wow.

Kind of scary to have real blood and war paralleled to tech startups really.

Its a bit like ad execs memorizing Sun Tzu. Or worse, the credit given to the Internet in Egypt whilst now nobody talks about the daily struggle still there.</comment>


Measuring people power - <AUTHOR> http://www.economist.com/news/international/21621816-measuring-people-power

<comment><AUTHOR> It would be very interesting to look at these numbers in the context of the relevant population (what percentage of the population demonstrated?) and to analyze the level of violence or conflict or even the duration of the protest.</comment>


Dear Continental Airlines, you have a broken funnel - <AUTHOR> http://savagethoughts.com/post/3942020844/dear-continental-airlines

<comment><USER3> A great example of why the funnel is often a completely incorrect, inadequate, and even misleading metaphor for measuring conversion.

Example: "I'm having trouble optimizing the last step of my funnel." Did the first four steps of your funnel consist of showing pictures of naked women while the last step prompted the user to refinance his house?

Unless the steps of your funnel are real, meaning they actually represent bounded, uni-directional escalations of qualification and purchase intent (think a 3-step shopping cart checkout), then thinking of the 'flow' that way is defeating.

What Chris is talking about here makes a lot of sense, and to my mind boils down to something like this: the airline's win comes through offering the greatest perceived value to the customer, so tread carefully as you unbundle low-cost, high-perceived-value features for a small (unguaranteed) marginal gain.

Setting false expectations is pretty egregious as well, and in addition to losing the good will that would have been generating by offering the DirecTV for "free," the airline generates ill will that could, of course hypothetically, result in angry blog posts being written and shared.

Here's the funnel for an airline: be amazing, underpromise and OVERdeliver, and book flights like a mofo.

Loyalty is no longer post-purchase.

The next time I fly across the Atlantic I will fly Virgin, the next time I make a restaurant reservation it will be Bondir, the next CSS I write will be in Sass, the next phone I buy will be a Samsung, the next vehicle I buy will be a Toyota, the next time I go to NYC I will take a Bolt bus.

I am 100% sure about these purchase decisions, and I have never flown Virgin, never eaten at Bondir, written in Sass, used a Samsung phone, bought a Toyota or taken a Bolt bus.

How do I know these are the right purchase decisions? Because I trust my friends' experience, and a delighted customer turns into a priceless evangelist faster than we often realize.

</comment><comment><USER4> As much as I'd like this to happen, I bet they would sell fewer tickets. A certain number of travelers sort ticket results based on price. If they added even just a few dollars to each leg to pay for perks, they would push themselves down on the results page and sell fewer tickets.

<comment><USER5> yes! Wanted to say exactly that. Esp. with aggregate sites like kayak, priceline etc. this will push them lower in the results

</comment></comment><comment><USER6> Or sell tickets $3 cheaper than your competitors, advertise "Watch DirecTV on our flights (quiet voice: for a small fee)", differentiating on ticket prices versus in-flight amenities.

I may be mistaken, but I was under the impression that's what lead to airlines charging for drinks, meals, etc: it allowed them to lower ticket prices.

</comment><comment><USER7> My understanding of TV-on-Continental is that it's mostly a venture of LiveTV (unit of JetBlue), the company that installs the equipment.

"We're providing most of the capital and we're retaining most of the revenue," Nate Quigley, chief executive of LiveTV, told Reuters. [http://www.reuters.com/article/2008/01/29/continental-tv- idU...](http://www.reuters.com/article/2008/01/29/continental-tv- idUSN2959189520080129)

</comment><comment><USER8> Flight search engines rank by price, not by amenities. Add $3 to your fare, and you are instantly at the bottom of the search results.

I think airlines should just let you use frequent flyer miles for this. "Watch DirecTV in flight and earn 700 miles instead of 1400 miles." But this, I imagine, would be bad for load factors.

</comment><comment><USER9> I think the telling thing in this article is the author doesn't mentioned how he chose that flight. From his narrative, it seems he only learned about the DirecTV as he boarded.

If he went to a travel site and chose the cheapest one, then he already knows why this is a bad idea.

</comment><comment><USER10> As much as I hate the nickel-and-diming that the airlines are doing right now, I can't see any alternative. The aggregator web sites (such as kayak.com) don't indicate to the buyer that the higher price comes with added value.

Until that happens, price will be the only criterion, and it will be in the airlines' best interests to make it as low as possible.

I believe this very issue was the reason that American Airlines pulled its fares from Orbitz. AA is trying to escape from the race-to-the-bottom price war and focus on delivering different value offerings to buyers at ticket purchase time.

</comment><comment><USER11> I don't know of a travel site that presents pricing the way The Economist did in the example from the TED talk. As a traveler I've never seen mention of TV options (paid, free, or otherwise) before booking.

The only way this works is if I already know about amenities. For example, I know Jet Blue has free TV, even though I've never flown on a Jet Blue flight. But that has more to do with word of mouth marketing than it does funnels or pricing pages.

</comment><comment><USER12> For many people (sometimes myself included) the choice for keeping yourself occupied on the plane is to buy some magazines, books or games before getting on the flight. This not only costs more than $6, it's often not as satisfying as watching TV to boot. In the realm of "last ditch get something to keep yourself occupied for 4 hours", $6 for TV is a great deal.

</comment><comment><USER13> A similar approach is being piloted in the UK on certain train lines - <USER2> demand media streaming called Volo (<http://www.volo.tv/>). Its expensive, you have to pay for headphones and their content is mediocre. Train prices have consistently raised from year to year.

<comment><USER14> From volo.tv:

"travellers in the FGW entertainment carriage"

"We've also made it easier to pay. No need to login, simply buy your ticket for £1.75 from the ticket office, by telephone or from the comfort of your seat!"

It says you pay £1.75 for a ticket. So this sounds like a way to get a seat if you're on board a busy train even if you've not booked in advance. Last I looked you paid £1 each way for a seat reservation which makes the marginal cost 75p, cheaper than buying a newspaper.

</comment></comment><comment><USER15> The problem wasn't the $6 for Direct TV.

The problem was that it was presented in such a way that it seemed like a hustle. People would rather do without than think they've been taken advantage of.

Just announce the price _before_ passing out the headphones. That's all. Conversion will increase without spending another nickel.

<comment><USER16> Continental could have already tested this, of course.

Most people will take free headphones, including those who initially have no intention of _paying_ for TV. Most people will be too embarrassed to ask for headphones when bored during mid flight, especially if they've already refused them and told the air hostess they have absolutely no intention of paying such an outrageous fee.

Not telling people the price until they've decided they want something is just savvy marketing.

It's a hustle when you have to pay more than $6 to print your boarding pass for the flight you've already paid for [http://www.ryanair.com/en/questions/how-much-does-it-cost- to...](http://www.ryanair.com/en/questions/how-much-does-it-cost-to-use-the- online-check-in)

</comment></comment><comment><USER17> TV? How quaint. Can I hook my iPad up to it?</comment>


If Peter Thiel were on Amazon's board, Jeff Bezos wouldn't ask him to leave - angry-hacker https://techcrunch.com/2016/10/20/if-peter-thiel-were-on-amazons-board-jeff-bezos-wouldnt-ask-him-to-leave/ <comment> angry-hacker In the light of latest stories of Thiel and Trump, does anyone else feel disgusted how Brendan Eich was treated?

It looks like Thiel is a special boy and since everyone knows him in tech world, diverse opinions are ok, as long as you have connections.

I'm not blaming Thiel here, but it's funny to see the hypocrisy.

<comment><AUTHOR> _" In the light of latest stories of Thiel and Trump, does anyone else feel disgusted how Brendan Eich was treated?"_

The only difference between Thiel and Eich is that the former has a more attractive profit-to-pain ratio, and thus is defended from the mob.

</comment></comment><comment><USER2> No reason why he should.</comment>


The first people using your product are an amazing breed - <AUTHOR> http://leostartsup.com/2012/06/the-first-people-using-your-product-are-an-amazing-breed/ <comment><USER2> I would add that one must also _facilitate_ feedback - which I think is separate from (and has a separate response rate from) sending out a "what did you think?" type email. Plus, if you wait to contact me, I may have forgotten the details of what I discovered. I emphasize to all my project teams: you are only a "new user" once. That time is magic, so pay attention and stick your hand up if something smells funny to you.

Further toward that facilitating feedback point, I may be a visionary, but I don't want to spent 15 minutes creating a Bugzilla account and trolling through whatever gawdawful bug submission process your project has. I will send an email to firstname.lastname@example.com, I will for sure use a "submit feedback" button from within the app or webpage[1], I will use a "contact us" form on your website, and I might send a tweet if that's the option of last resort.

I said all of that to say I wholeheartedly agree with the article's premise, but please ensure that you have greased as many of the paths of information ingress as you reasonably can.

1 = With the assumption that such an action will carry with it contextual information: where I was, what browser, maybe some session information - basically the same reason anyone uses the "send report" button from a dead Android app

</comment><comment><USER3> Good points.

I've seen people tune their apps for these early adopters, talking about how they've got their "viral coefficients" at the correct rate (via product improvements, design, marketing efforts, etc).

Then, by induction, they think the same metrics will hold true once they launch to the general public.

Then they launch and are surprised to find that the numbers don't apply to later categories of users.

I'd be curious if there's a model to solve for that problem.

<comment><USER4> If you've not read it yet I would strongly recommend <http://en.wikipedia.org/wiki/Crossing_the_Chasm> for more on this.

</comment></comment><comment><USER5> For MVPs, I have seen this particular situation (it's a B2B scenario). Your customer will use the product with their customers or users. So the MVP has to be 'good enough' for not just your early adopter customers, but for their customers as well.

Challenge then is that _their_ customers/users may not be the same early adopter types. A work-in-progress app may reflect poorly on your customer.

MVP has a lowest common denominator aspect in this case. As in, what would be acceptable to your customer's customers/users? Seems to raise the bar on what is needed for a minimum viable product.

</comment><comment><USER6> The first people are amazing if you are solving a problem point that they've been 'suffering.' That's a good signal to have. :)

</comment><comment><USER7> A marketing university student told me this a few years ago. Post something interesting or stop posting. If you're running a business, educate yourself on all the aspects of how they work. If you're already running a business and this is news to you, find a day job.

</comment><comment><USER8> Nice article. It's just what I needed to read today :)</comment>


"The simplicity of GitHub's pull request has killed the GPL" - <AUTHOR> https://github.com/PerfectlySoft/Perfect/issues/131 <comment><USER2> "Open Source" developer does not get the point of free software.

News at 11.

P.S.: AGPL isn't the GPL.</comment>


Ask HN: Should i quit? - <AUTHOR> tldr; 23K € in the bank, minimal living expenses. 3-5 years runway. Should i quit my non-developer job now, and start working on a not-yet-conceived SaaS business or at least seek a developer job abroad? Or should i weather it out until i have something definitive going in parallel to my job?<p>Much more info here: http://pastie.org/private/fgdermsyhgjemx2otmwbpq <comment><USER2> Note, that you might not qualify for unemployment benefits if you left your employer voluntarily, which leaves social benefits. To get those you probably have to disclose any money you have on bank accounts. The job/employment office also forces you to actively look for a new job (go to interviews, maybe interview trainings, explain why you didn't take another lower-paying job they offered you, etc). Depending on country of course. You talk about severance. I thought that is only paid during larger lay-offs (if the company wants you to resign).

One option might be to look for a paid internship as developer in a company. The company I worked for has done that. You'd have to accept a lower salary, basically start at entry-level, for 6-12 months. It will give you contacts and experience in the field you want to work in.

<comment><AUTHOR> All valid points, thanks.

In my case, it would be possible to arrange my resignation to appear as a lay off. Currently there are no eligibility criteria for unemployment benefits other than how long one has been employed.

Severance, at least here, is paid as long as one is laid off and has been working for the same company for a number of years. So, i would be getting some for sure, but i am also owed a few salaries so that would be a significant chunk of money in my bank as well (~5K). Severance could be another 4~8K.

A paid internship would be very interesting, unfortunately there are no programming/web dev jobs locally. At least not advertised. Even if there were, i'm not sure i would like to work on an anachronistic tech stack, which would most likely be the case. Food for thought though...

</comment></comment><comment><USER3> Don't underestimate the anxiety that monetary stress will bring if you don't win the SaaS startup lottery in your anticipated time frame (in my experience the rule that it always takes twice as long and requires twice as much money as expected holds true). I commented on a similar post on how I dealt with it when I left the cushy corporate tech world 12 years ago:

Note: I had more savings and it's easier to find a tech job in the US than the PIGS, so adjust the numbers a bit per your situation.

> Thought I'd share a simple budgeting tool I used to help alleviate/delay the > inevitable monetary stress. I first decided how much of my savings I was > willing to spend on the sabbatical. I then divided that amount into three > buckets. The first was small and was my fun bucket (I think mine was b/w > $3-$5k). I worked my ass off and it was time to have a little fun. The > second bucket is the oh-shit-its-time-to-get-a-real-job-again bucket. I > assumed it would take me at most 3 months to find the right job, so this > bucket equated to 3 months living expenses. That leaves the remainder for > your "core" second bucket. When I was spending from this bucket I never once > thought about what I'd do AFTER the sabbatical because I knew I had that > covered financially. I simply focused on the sabbatical itself and had an > amazing experience.

[https://news.ycombinator.com/reply?id=8053243&whence=item%3f...](https://news.ycombinator.com/reply?id=8053243&whence=item%3fid%3d8052053)

<comment><AUTHOR> > Don't underestimate the anxiety that monetary stress will bring if you don't > win the SaaS startup lottery in your anticipated time frame (in my > experience the rule that it always takes twice as long and requires twice as > much money as expected holds true).

Thank you. I'd imagine my anxiety could very well be worse if things were tanking. On the other hand, i feel a sabbatical would greatly benefit my mental health. But the next step, after the sabbatical, would be uncertain.

</comment></comment><comment><USER4> I was roughly in the same position as you couple of months ago. I was working in the banking industry for almost 2 years, but always had a thing for IT (start learning programming when I was 13+ but made a mistake when choosing career). What I did was I start planning for 6 months, and in those 6 months I try to improve my CS theory for interview purposes and start doing personal projects (finished projects, something tangible that you can show). The projects should have some sort of complexity just for the sake of telling the interviewer that you are capable of doing/learning whatever that you are applying for.

I don't have much of a saving at that time, roughly 4-5 months worth of saving and I did one freelance job at that time. I quit without having another job in line. It takes courage and some stupidity to be honest haha but I've got through and managed to secure couple of dev jobs. It depends on you, for the SaaS part I prefer to have some thing going first and quit my job as I've seen friends who've done that quit, and only start after that and failed. I prefer to have things going first and quit. Note that in my country, economic is alright and people are hiring so might want to take that into account as well.

<comment><AUTHOR> > _What I did was I start planning for 6 months, and in those 6 months I try > to improve my CS theory for interview purposes and start doing personal > projects (finished projects, something tangible that you can show). The > projects should have some sort of complexity just for the sake of telling > the interviewer that you are capable of doing /learning whatever that you > are applying for._

Interesting, thanks.

</comment></comment><comment><USER5> If you have trouble with anxiety and depression you should consider getting treatment.

The natural thing to do is get exercise. You should get the equivalent of at least an hour a day of intense cardio. Military organizations make soldiers do it because it helps them cope with the stress of being in a war zone, which is worse than whatever you are experiencing.

Another thing to do is to get into a "support group" of some kind. This isn't necessarily formal, but if you want to become an internet entrepreneurs you should be regularly meeting with developers, hustlers, or anybody who can help you get perspective.

Finally there are the SSRIs and related drugs. These actually work when used properly. Used properly means your doc intelligently selects one for you, you keep in touch with your doc to make sure you get the right dose, and if it doesn't work, you get something else.

Try these things _BEFORE_ you quit because your SaaS business may increase your stress level even more.

</comment><comment><USER6> I've seen two of these in Ask HN in the past week. I just want to say it's not as easy as building a SaaS and then customers will come knocking at the door to hand their giant stack of cash. We've been working on it or 5 months and are just now getting traction and we are in an established space. Marketing and getting people to sign up has been the toughest part of it all even with better/more features and easier to setup. Just something to be thinking about from our experience.

Even living frugally (I've been doing the same), that seems like a very long runway with the modest burn rate. I think ultimately you should figure out what will make you happy and go with your instincts. Some people are happy being employees for most of their lives while others such as myself have the entrepreneurial fire always eating at them and can't be satisfied in corporate environments.

<comment><AUTHOR> Thank you for your insight.

Building a profitable SaaS is very, very difficult, and can be soul crushing, i am aware of this (that's why i find people like @patio11 very special). On the other hand, working at a dead end job can be equally soul-crushing.

> _ultimately you should figure out what will make you happy and go with your > instincts_

I'm slowly driven towards the same conclusion, but it's easier said than done. Stepping outside the salaryman nest, especially when jobs aren't easy to come by locally, let alone paying well, is scary.

</comment></comment><comment><USER7> Really depends on your personal situation. 23K goes away pretty fast especially in non-funded ventures. But then again, doing something in parallel rarely takes off.

Ask yourself: \- How much do I stand to gain (whats your share of equity) \- Who will seed fund the venture (23K is not going to be enough to live and fund even your prelaunch activities) \- How quickly will you make your first sale. Better yet can you book pre-sales. This leaves you with a much cleaner milestone/deadline. In that case you can take some unpaid leave instead of quitting and see if you can hit that milestone.

</comment><comment><USER8> Find customers first, atleast 10 paying ones. These customers should be non related (no family, friends, close contacts). Then you can declare some sort of product market fit. Depending on your market, this could take anywhere between 3 months to 2 years. Once you have had you have to concentrate on building a repeatable sales process. If you are non developer trying selling first and building later, and don't leave your job until you have some confidence in product/market fit.

</comment><comment><USER9> A "developer job abroad" may be just as bad and soul crushing as the job you have now, even though it may pay more money; so be careful about that.

Quit the job, go travel around, stay in youth hostels, make friends etc. Find a country ( or even better, a city in your own country ) that you like. Have a good time. Most important is to make friends though.

</comment><comment><USER10> I would wait until you have something worth quitting for. Not sure why your not looking for a developer job if you can develop though. or start freelancing at night until you have some good skills and contacts for a business.

</comment><comment><USER11> Work on your project on the side AND take that developer job abroad.

A SaaS can take years to build to a point where you can even get in to see a real, live seed or angel investor. Live now and keep coding for your future.

</comment><comment><USER12> Being the cautious type, I myself would reduce working time and start developing in my spare time until I have something to show potential customers.

</comment><comment> Alex-Galapagos do it while you're working..</comment>


A spin lock in C that does not require a machine level exchange instruction - <AUTHOR> https://github.com/keithgabryelski/spin-lock

<comment><USER2> (EDITED; misread algorithm earlier.) No, sorry, that doesn't work. Consider the following sequence:

1\. A sets g1 = A

2\. A reads g2 = none

3\. A reads g1 = A

4\. B sets g1 = B

5\. B reads g2 = none

6\. B reads g1 = B

7\. A sets g2 = A (read in #3)

8\. A reads g1 = B

9\. A retries

10\. A reads g2 = A

11\. A succeeds

12\. B sets g2 = B (read in #6)

13\. B reads g1 = B

14\. B reads g2 = B

15\. B succeeds

You also are missing memory fences, which are needed to ensure proper ordering of memory operations. (Otherwise the processor is free to speculate reads and delay writes between cores.) See [https://www.kernel.org/doc/Documentation/memory- barriers.txt](https://www.kernel.org/doc/Documentation/memory-barriers.txt) for a thorough explanation.

<comment><AUTHOR> the order you supply here can not happen (at least if i understand what you are saying)

if step #9 happens then #10 will be skipped by the "if (state->g2 == SPIN_LOCK_NO_LOCKER) {"

what am i missing?

<comment><USER3> Thread A sets g1 to A (line 31), thread A enters the "if" statement (line 32), thread A reads the value of g1 and is about to write that value to g2 but gets pre-empted (half of line 33).

Thread B sets g1 to B (line 31), thread B enters the "if" statement (because A hasn't yet written g1 to g2, line 32), thread B reads the value of g1 (half of line 33) and writes that value to g2 (the other half), then does its tests and returns OK.

Thread A sets g2 to A (the other half of line 33). Thread A does its tests and notices that g1 != g2. Thread A returns to the top of the loop and notices that g2 == A (line 22). Thread A returns OK.

This is assuming that reads are strongly ordered between processes and cores, and that code executes in-order, none of which is true.

</comment></comment></comment><comment><USER4> Hello dear Keith,

I can see a few problems with this code, please consider the following constructive criticism.

      for (;;) {
        if (state->g2 == locker_id) {
          return;
        }
        while (state->g2 != SPIN_LOCK_NO_LOCKER) {
          if (spin_wait_callback != NULL) {
            spin_wait_callback();
          }

You don't need this 'continue', the loop will do that just fine without it.

          continue;
        }

The following four lines are problematic:

        state->g1 = locker_id;

        if (state->g2 == SPIN_LOCK_NO_LOCKER) {

Imagine the consequences of a task switch _right here_.

          state->g2 = state->g1;

This if does nothing.

          if (state->g1 == locker_id) {

And you're going to do the following if without all the extra conditionals above when you do not return from here the next time you iterate through the loop. So all that extra testing of state->g1 above does nothing.

            if (state->g2 == locker_id) {
              return;
            }
          }
        }
      }

I think I can see what you're trying to do here but once you fix the basic problems with the code and you test it under very high load locking and unlocking a resource you'll find that fairly soon two threads will be accessing the resource at the same time.

Try a very tight loop that locks a counter, does a load, increment, store on it and then unlocks the counter again. Keep separate tallies per thread and use a third thread to keep track of the expected sum and the actual sum.

That should show you reasonably quickly why atomicity in the basic operation of acquiring a lock is a base requirement.

Locking issues almost never show up when you are running lightly loaded on a single core. But the lack of ensuring all cores see the same information, that race conditions can't occur and that instructions are executed in the right order will show up with a terrible certainty under load on multiple cores.

<comment><AUTHOR> so, the attempt here (line 32 which you believe is problematic) I think can be pre-empted.

if thread 1 is pre-empted by thread 2 and thread 2 is able to get to the same point (line 33) then G1 will be equal to 2. both threads will assign G2 = 2 and thread 2 will win the race -- thread 1 will loop and begin to spin again.

have i missed something?

<comment><USER4> Yes, task switches unfortunately do not happen at the level of 'C' code but between machine instructions!

Run your compiler -S and save the output, then try to reason through the consequences of a context switch in between every instruction with multiple threads contending for the lock. And have a look at the manual for your CPU to learn about out-of-order execution and cache coherency between multiple cores / cpus.

Some interesting reading on the subject:

[https://www.kernel.org/doc/Documentation/memory- barriers.txt](https://www.kernel.org/doc/Documentation/memory-barriers.txt)

If you want to do this entirely in userspace and you must avoid atomic instructions for some reason consider abstracting out your locking to a separate process and use IPC, first come first serve.

</comment></comment></comment><comment><USER5> Both the compiler and CPU will reorder operations. Proper locking requires a memory barrier which will prevent both CPU and compiler from doing that. For more information I recommend reading up on double checked locking. DDJ had a good pair of articles the first where they presented the faulty algorithm, the second where they talked about why it was broken.

C/c++ doesn't have many guarantees about operation ordering. [http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLo...](http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html)

</comment><comment><USER6> There seems to be an implicit assumption in this code that writes which one thread makes will be seen by other threads in the same order. This is not the case on modern architectures. You need both compiler and machine-level memory barriers to ensure this. C's "volatile" keyword does not provide either.

The Linux kernel guys wrote an in-depth explanation of why volatile doesn't work for this use-case here: [https://www.kernel.org/doc/Documentation/volatile- considered...](https://www.kernel.org/doc/Documentation/volatile-considered- harmful.txt)

</comment><comment><USER7> For real solutions to this problem, see:

[http://www.di.ens.fr/~pouzet/cours/systeme/bib/dijkstra.pdf](http://www.di.ens.fr/~pouzet/cours/systeme/bib/dijkstra.pdf)

[http://phoenix.goucher.edu/~kelliher/cs42/sep30.html](http://phoenix.goucher.edu/~kelliher/cs42/sep30.html)

</comment><comment><USER8>
        if (state->g2 == SPIN_LOCK_NO_LOCKER) {
          state->g2 = state->g1;
          if (state->g1 == locker_id) {
    		if (state->g2 == locker_id) {
    			return;
    		}
          }
        }

You need to insert memory barriers between the writes and the reads. Without, on systems with multiple cores, other cores may not see the state changes in program order, which will make it possible for multiple threads to conclude they won the race.

[http://en.wikipedia.org/wiki/Memory_barrier](http://en.wikipedia.org/wiki/Memory_barrier) [http://en.wikipedia.org/wiki/Weak_consistency](http://en.wikipedia.org/wiki/Weak_consistency)

<comment><USER9> More importantly, the explicit barriers are needed on ARM chips where writes are permitted to be reordered with reads.

<comment><USER8> Also PowerPC and any other weakly consistent architecture, natch.

</comment></comment></comment><comment><USER10> The example code he provides doesn't even compile:

         real_test.c: In function 'main':
         real_test.c:14:10: error: too many arguments to function 'spin_allocate'
         spin-lock.h:20:32: note: declared here
         real_test.c:16:3: error: too few arguments to function 'spin_lock'
         spin-lock.h:19:13: note: declared here

Easy to fix, just annoying.

</comment><comment><USER11> It seems like this is just storing a thread id in some shared variables a few times and double checking that your id "made it" and you win the race. My understanding of why this doesn't work is without atomics or memory barriers, what you read might not reflect what another core has in its cache, and when you write, it might not be immediately visible to others. So while in your thread's view of the world you might have successfully written those 2 words and won the race, it might not matter to the other guy. Though this depends on the consistency model of the CPU. The table here comes to mind: [http://en.m.wikipedia.org/wiki/Memory_ordering](http://en.m.wikipedia.org/wiki/Memory_ordering) \- my memory is that x86 is generous in how much it lets you get away with this, you might have more trouble running on say, power.

</comment><comment><USER12> Here's a copy of the functions in question so that it's easier to see what people are talking about:

      void
      spin_lock(struct spin_lock_state *state, int locker_id,
                void (*spin_wait_callback)()) {
        for (;;) {
          if (state->g2 == locker_id) {
            return;
          }
          while (state->g2 != SPIN_LOCK_NO_LOCKER) {
            if (spin_wait_callback != NULL) {
              spin_wait_callback();
            }
            continue;
          }
          state->g1 = locker_id;
          if (state->g2 == SPIN_LOCK_NO_LOCKER) {
            state->g2 = state->g1;
            if (state->g1 == locker_id) {
              if (state->g2 == locker_id) {
                return;
              }
            }
          }
        }
      }

      void
      spin_unlock(struct spin_lock_state *state, int locker_id)
      {
        state->g2 = SPIN_LOCK_NO_LOCKER;
      }

</comment><comment><USER13> I know how to do a spinlock in pthreads, and have done it using a while loop and what I hope was an atomic instruction.

What is a `machine level exchange instruction`?

<comment><USER14> > What is a `machine level exchange instruction`?

[http://en.wikipedia.org/wiki/Compare-and- swap](http://en.wikipedia.org/wiki/Compare-and-swap)

</comment></comment><comment><USER15> I'm confused why the description refers to it as a "user level" spinlock. Are there some architectures where exchange is a privileged operation?

<comment><USER16> compare-and-swap instruction itself may not be privileged operation but user space spin-lock seldom work in user-space (it's dangerous at least), because a user thread could be preempted.

<comment><USER4> What's even more dangerous, on a single core machine or one that is lightly loaded without any aggressive contention for the lock it may even _seem_ to be working.

</comment></comment></comment><comment><AUTHOR> a reasonable primer: [http://en.wikipedia.org/wiki/Spinlock](http://en.wikipedia.org/wiki/Spinlock)</comment>


Singapore's radical new public transport plan - <AUTHOR> https://govinsider.asia/smart-gov/exclusive-singapores-radical-new-transport-plan/ <comment><AUTHOR> I thought this was very clever, it feels like Singapore naturally runs it's self with a startup like culture.</comment>


Arend: Theorem Prover Based on Homotopy Type Theory by JetBrains - <AUTHOR> https://arend-lang.github.io/ <comment><USER2> Wow, JetBrains has a whole HoTT and Dependent Types Research Group: [https://research.jetbrains.org/groups/group-for-dependent- ty...](https://research.jetbrains.org/groups/group-for-dependent-types-and- hott)

<comment><USER3> Why would they be working on something like this? Is it useful for JetBrain's line of work? I mean it is cool, but it makes me curious as to why.

<comment><USER4> I think formal methods may take off sometime in the future, hopefully not too distant from now. But this has been a thing since the mid 90s, and tools might still not be mature enough.

I did a whole MSc in Formal Methods about a decade ago, and I think abstract interpretation, model checking and axiomatic specifications are ready for prime time now. Exotic type systems and theorem provers are still a bit costly to use, but have achieved some spectacular successes like seL4.

I guess JetBrains wants to be in this space once things mature.

<comment><USER5> The reason I'm so excited about this development is that it's a commercial product-focused company putting a level of effort into polish and refinement into this domain. The lack of that kind of polish is an enormous inhibitor to adoption and acceptance of these classes of tools.

Most, not all, formal methods tools are a tire fire of incoherent UX, bespoke Byzantine runtime requirements, and scattered piecemeal documentation & tutorials.

Which makes complete sense when you consider where they originate, what they're typically used for, how they're maintained, and who their subset of end users are. You have to _reeeeaaaalllly_ need to reach for one of these tools to put up with how bad they are, and the population of developers who have that need is significantly smaller than the population who could derive some value & benefit from the methods were they not also unnecessarily painful to use on top of their already being conceptually challenging for the uninitiated.

Their niche status becomes self-perpetuating. A company like JetBrains making a move like this might stand a chance of breaking the logjam.

</comment></comment></comment></comment><comment><USER6> Wow, I am delighted to see this!

However I cannot find a precise reference for the chosen type theory.

E.g., is univalence a theorem in their type theory? I presume it is given that they say their language has "syntax similar to cubical type theory" but I could not say for sure.

What I'm looking for is a reference containing the actual typing rules, like this one for Coq: [https://coq.inria.fr/refman/language/cic.html#typing- rules](https://coq.inria.fr/refman/language/cic.html#typing-rules)

rather than the syntax of the language used for building these terms.

<comment><USER7> Yes, I came here to say precisely that. It looks like it has about the same things available as coq as far as syntax is concerned, so what are the differences?

<comment><USER6> Well they claim it is a HoTT (thus presumably univalent) and furthermore has higher inductive types, neither of which exist in Coq's CIC.

For example, they emphasise that function extensionality is a theorem here: [https://arend-lang.github.io/about/arend-features](https://arend- lang.github.io/about/arend-features) (not true in CIC).

It would just be nice to see a list of the rules.

Still I don't want to get hung up on this; the rules must exist somewhere and presumably will become more discoverable. The project looks superb.

</comment></comment></comment><comment><USER8> Wow. Finally a prover with serious IDE support.

I always believe this field would be very useful and evolving steadily in the industry. It just doesn't attract eyeballs like machine learning and blockchains.

<comment><USER9> > It just doesn't attract eyeballs like machine learning and blockchains.

... yet. The next AI Winter is right around the corner. While there has been seriously amazing work coming out of ML, in industry there is an insane amount of resources being put into completely BS ML systems. Outside of FAANG there are many "fancy" ML projects in industry that are just continually accruing massive technical debt, and for no good reason. The number of deep neural networks being used for problems that can be solved with radically much more simple (and easier to debug and maintain) techniques is astounding. Right now there is a boom in complex and fragile a systems made by teams of PhD in non- engineering fields that don't know anything about system or software design.

In a few years these complex systems will need to be maintained and fixed and it will quickly become apparent that the vast majority of these projects are a huge business liability with minimal financial or engineering benefit. Expect a huge back lash against predictions coming from complex, non-interpretable linear algebra heaps.

The pendulum will swing back, and likely pretty hard (as always probably too hard). I'm not sure theorem provers will be the winner, but the general class of understandable, predicable, and explainable things will become more popular. It is quite possible that "my tool proves things are stable and work" will be a big sell in the next wave of tech.

<comment><USER10> I'm genuinely curious - can you give some concrete examples of what you consider to be such BS ML systems?

It would be fun in a TheDailyWTF way :)

<comment><USER11> AI Circus, Mid 2019 Update [https://blog.piekniewski.info/2019/05/30/ai- circus-mid-2019-...](https://blog.piekniewski.info/2019/05/30/ai-circus- mid-2019-update/)

Stories of AI Failure and How to Avoid Similar AI Fails in 2019 [https://www.lexalytics.com/lexablog/stories-ai-failure- avoid...](https://www.lexalytics.com/lexablog/stories-ai-failure-avoid-ai- fails-2019)

How IBM Watson Overpromised and Underdelivered on AI Health Care [https://spectrum.ieee.org/biomedical/diagnostics/how-ibm- wat...](https://spectrum.ieee.org/biomedical/diagnostics/how-ibm-watson- overpromised-and-underdelivered-on-ai-health-care)

Automakers Are Rethinking the Timetable for Fully Autonomous Cars [https://www.designnews.com/electronics-test/automakers- are-r...](https://www.designnews.com/electronics-test/automakers-are- rethinking-timetable-fully-autonomous-cars/93993798360804)

<comment><USER10> Just what I need for my work commute, thanks! :)

As an aside, my worry with AI/ML is that we're creating these giant, un- debuggable systems that can't be fixed when specific problems arise. Every time I see complaints about YouTube/Facebook/<some other company> giving nonsense recommendations to people I think "How would they even fix that? Do they even know how their recommendation systems work?".

One of the great things about software is that when something is broken, you can go right in there and fix it. With ML, I can imagine getting to a point where our only option is to take the black-box we've created to therapy and hope for the best.... :)

</comment></comment></comment></comment></comment><comment><USER12> I can't tell if this is JetBrains trying to develop its own version of Microsoft Research, or if this is the humble beginnings of a project like Kotlin that it aims to put its weight behind. Both would be cool (and indeed it could be both), but the latter would be truly exciting and a potentially a huge leap forward for theorem proving and formal verification.

<comment><USER13> This is a research project. At this time there are no plans to invest into it on the same level as we're investing in Kotlin.

<comment><USER12> Ah I figured it probably wouldn't be the same degree of commitment as Kotlin given the disparity of demand. Are you at liberty to say whether this is a project JetBrains hopes to eventually use in a production capacity for its own work?

<comment><USER13> I'm not in contact with the research team and don't know which practical applications they have in mind, but as far as IntelliJ is concerned, we don't have any current plans to use the results of their work.

</comment></comment></comment></comment><comment><USER14> For those who want to understand what Homotopy Type Theory is, here is the "standard text" free to download or online:

[https://ncatlab.org/nlab/show/Homotopy+Type+Theory+--+Unival...](https://ncatlab.org/nlab/show/Homotopy+Type+Theory+--+Univalent+Foundations+of+Mathematics)

<comment><USER15> Though note that it is not simple to understand; it will take quite a lot of real work to grok, unless for some reason you already know about univalence.

<comment><USER16> The trouble with HoTT is that it has very little to offer in regards to making it easier to prove the correctness of programs expressed in Hoare logic (which is ~99% of all computer programs).

<comment><USER17> They are not mutually exclusive:

\- Use HoTT or any other type theory as a logic / foundation of math.

\- Use Hoare logic to reason about programs, using your logic / foundation of math to deal with inferences that are not given by the rules of your Hoare logic, i.e. for Hoare's "Rule of Consequence".

There are several ways of connecting the two. One is Hoare type theory [1]. Another is using Characteristic Formulae [2, 3].

[1] G. A. Delbianco, A. Nanevski, Hoare-Style Reasoning with (Algebraic) Continuations.

[2] L. Aceto, A. Ingolfsdottir, Characteristic Formulae: From Automata to Logic.

[3] A. Chargueraud, Formal Software Verification Through Characteristic Formulae.

</comment></comment></comment></comment><comment><USER18> I found the language reference and see how to define types and expressions, but I can't find any examples of what proofs would look like. Has anyone dug in enough to link to an actual proof of something?

The documentation for \lemma ([https://arend- lang.github.io/documentation/language-referenc...](https://arend- lang.github.io/documentation/language-reference/definitions/functions#lemmas)) suggests that you would just write Prop-typed functions, which is very tedious to do manually and even with automation is IMHO inferior to Coq-style tactics, which are themselves often inferior to Isabelle's Isar-style proofs.

<comment><USER19> [https://github.com/Odomontois/Tincat](https://github.com/Odomontois/Tincat) Not exactly you asked for but the only one I know.

<comment><USER18> Thanks. The only lemma in that repo is the following (in Cat.ard):

        \lemma op_is_revertible (C : PreCat) : op (op C) = C =>
          path ( \lam i => \new PreCat {
            | Ob => C.Ob
            | Hom => C.Hom
            | id => C.id
            | o => C.o
            | l_unit => C.l_unit
            | r_unit => C.r_unit
            | assoc => \lam {a} {b} {c} {d} f g h => (inv_inv (C.assoc f g h) @ i)
          }
          )

I'm not 100% sure what's going on but it looks like this would be a one-liner in Coq, something like (hand-waving here):

        destruct C; auto using assoc, inv_inv.

So... yeah. Not enough data to come to a final conclusion, but I do wonder why people keep building more systems of this kind.

<comment><USER20> > I do wonder why people keep building more systems of this kind.

Not a lot of languages have higher-inductive types which is the main advertised feature here. At least they're missing in Isabelle and Coq.

That's also orthogonal to the matter of automation/metaprogramming, which, from the lack of mention, doesn't seem to be their focus right now. There doesn't seem to be anything fundamentally in the way of Coq-style tactics either if they really wanted to build that on top of what is presented here.

<comment><USER18> True, there are probably no theoretical obstacles. But there is a huge implementation effort, and judging from other new proof assistants that started out without tactics, I wouldn't hold my breath.

Unless you desperately need exactly this kind of fancy logic, if you actually want to get stuff done, you would choose a different system. That's not great if they are interested in wide adoption.

</comment></comment></comment></comment></comment><comment><USER21> A tutorial or a few example of proofs would be nice. How does the experience differ from using Coq?

</comment><comment><USER22> Again the question: Why is this useful?

Is this just for programming language research? What kind of projects would you want to use this language for?

<comment><USER23> The premise of an axiomatized system is that you can "mechanically" check proofs. So you can also invert the question and ask "Why the hell do we still prove things by hand?".

The answer to that is that there are no good tools and no universally accepted common notation that is amendable to automatic proof checking yet. Those are problems that projects like this want to solve.

I applaud the effort really; it's hard work, and people tend to ask more critical questions ("What is it good for?" "Theorem proving is for academics only") than for any other type of program.

<comment><USER24> I gather you understand the topic, but I'm still left wondering: who is this for, and what will they do with it?

E.g.: Is the hope to make something all mathematicians will eventually use? Is it targeted at a relatively narrow mathematical field? Is the audience instead programmers looking to prove things about algorithms they're working on?

<comment><USER23> > I gather you understand the topic, but I'm still left wondering: who is this > for, and what will they do with it?

'Understand' is a big word. I've played around with Idris (which is a Haskell- like programming language that supports Homotopy type theory as well). I have a grasp of the underlying mathematics but don't really understand the stuff deeply.

Yes, I went on a bit of a rant and totally ignored your (totally reasonable) question. Theorem proving and proof checking are quite niche, both within computer science and mathematics. In computer science, the idea is that you can formally prove the correctness of computer programs to avoid software failures and have very robust programs. In mathematics, the ideal is to have

      1. A universal language for proofs
      2. A database of computer-verified results
      3. Easy verification of new results

It's a mighty interesting topic, and unfortunately, I've also found it quite difficult to get more than a shallow understanding of it.

</comment></comment></comment></comment><comment><USER25> Kuklev @ Göttingen turned his research into a plugin? Great! Can we get one for VSCode as well please?

</comment><comment><USER26> JetBrains has been gaining a lot of stock with me lately. I recently discovered that Rider is an extremely compelling replacement for VS2019 (for C# codebases), and this kind of news is going to keep them on my radar for the foreseeable future.

As another poster said, it seems like they are trying to build their own version of Microsoft Research. It is also entirely feasible JetBrains wants to build out these concepts to further enhance their core products. Detecting and executing refactor opportunities across complex, strongly-typed codebases could have some synergy with this research and tooling.

<comment><USER27> Rider is basically taking Resharper (their VS extension that has been around for years) and merging it into their own IntelliJ IDE platform. It removes the performance and integration limitations and is fantastic to use.

</comment></comment><comment><USER28> This is extremely exciting as very few functional languages have good IDE support. I'm quite excited to see how building in IDE-support from the get go would help things.

<comment><USER29> Slime is quite capable. Just a few curves to get involved.

<comment> dan-robertson The IDE features of slime are quite different to the ones one would want in a theorem prover. In particular many functional languages that aren't CL have strong type systems (so you'll want feedback about the types of things) and poor introspection (so something like swank isn't so easy).

A language like Agda does have good emacs support and can do useful things like help you fill in holes. But every speed bump on the way to setting up a theorem prover is important because the target audience isn't necessarily programming experts who will go through a lot of pain so long as they can use emacs at the end of it.

</comment></comment></comment><comment> UK-Al05 These sorts of new functional languages coming out will be a boon for jetbrains. Imagine doing program synthsis in an ide?

</comment><comment><USER30> Knowing nothing about Homotopy Type Theory and looking at the language only for the way it looks:

1) Nice to see that the pipe is only a | and not |> like in Elixir. One character is better than two (and a Shift key.)

2) {- comment -} probably comes from another language (which one?) but I'm always surprised by the cleverness of language designers, even when there is no need for it.

3) The backslash before the keywords is a backslash, pun intended. Why is that necessary and why did somebody even think about it? Cleverness fails designers sometimes.

4) I like that this-is-a-valid-identifier. This_is_slower_to_type because of the shift keys. ThisIsNotMuchFaster.

Then I'm also wondering what the language is being used for now. Somebody else asked the same question and got downvoted but it looked like a honest question. Is it still borderline to research and will maybe influence mainstream languages or are we already unknowingly using some program written in Arend on our machines or somebody's else server?

<comment><USER31> 3) Backslash before keywords looks inspired by TeX to me.

<comment><USER32> I actually kinda like the idea. The concept of (limited set of) "reserved keywords" always annoyed the mathematical purist in me.

On an unrelated note, this-is-a-valid-identifier also in Lisp, but weirdly enough, the parens "( )" require shift. I think Lisp should use "[ ]" as parens because they do not require shift on modern keyboards.

<comment><USER33> You mean, modern _English keyboard layouts!_ Square brackets require alt(gr) on my keyboard. Seriously, most European layouts are ridiculously coding- unfriendly.

<comment><USER30> Probably because coding was invented (and most of it still is) on an English keyboard.

I switch the layout of my non English keyboard in all coding windows and my fingers know what to press there.

</comment></comment></comment></comment></comment><comment><USER34> _" Classes are just records with additional functionality, which makes them into a haskell-style type classes."_

But (IIUC) without coherence?

<comment><USER35> Good point, but never seen typeclass coherence with dependent types (in either Coq or the various versions of the Agda design). Not sure for Isabelle.

<comment><USER34> I'm not sure I can name another language with coherence, dependant types or not. To be fair, even GHC is half-hearted about it.

</comment></comment></comment><comment><USER36> i'm a little confused. Is this BY Jetbrains as the title says, or by another company? Its using the same style as the Jetbrains website and and says "By" but also says Arend?

<comment><USER37> JetBrains is a company and they made a product called "Arend"

<comment><USER28> Is this actually an official product by JetBrains though? The github repo shows majority of commits by a single person. This looks more like a 20% time project by an engineer at JetBrains.

<comment><USER38> It's in JetBrains Incubator.

<comment><USER39> [https://research.jetbrains.org/groups/group-for-dependent- ty...](https://research.jetbrains.org/groups/group-for-dependent-types-and- hott)

</comment></comment></comment></comment></comment><comment><USER40> Chuckle. What an odd choice to use HTT for a JetBrains theorem prover.

</comment><comment><USER41> deleted

<comment><USER42> Apache 2.0: [https://github.com/JetBrains/arend- lib/blob/master/LICENSE](https://github.com/JetBrains/arend- lib/blob/master/LICENSE)

</comment></comment><comment><USER43> Too bad it is Java. What about using proper, native compiled language? Like Rust, or OCaml.</comment>