skysight-inc/HackerNews huggingface dataset:
I've spent the past couple weeks thinking about what framework I want to use to build static sites. I've primarily used Middleman, or Jekyll when working with collaborators (think of Middleman as Jekyll but with no restrictions -- i.e. You don't have to use Liquid and you can write plain old Ruby objects and include them as with a typical full-stack app).

I used to do Ruby because of Rails work...now I do my work exclusively in Python and Node. I thought it'd be worthwhile to move to a new framework just so I don't have to juggle so many languages on a daily basis. Lektor (Python) is exciting and I'll check it out as a way to build client sites...but it's not quite as flexible as Middleman (to be fair, Lektor is very new)...Pelican looks good as well...but for now, I think Middleman hits the perfect spot for speed of deployment and hackability (it recently extricated itself from sprockets so that you can incorporate webpack.js or whatever asset build system you like), even accounting for Middleman's and Ruby's slow speed of execution versus the hugely popular Hugo (static framework in Go)

The truth of it is, is that once you've picked up Ruby, nothing feels quite as nice as a scripting glue language. I haven't kept up much with updates to the language...all I know is that yesterday, I finally updated my Ruby environment manager (rbenv)...it had been 2 years...and changed my system Ruby to 2.3.1 (from 2.1.5)...I had to update a few version numbers for dependencies, but otherwise, all of my old projects worked with barely a hitch...and it took me no time to get into writing custom plugins for my next Middleman site.

It does seem that the excitement over Rails and Ruby has ebbed, if you look at Github stats and Stackoverflow's latest survey. I am curious to see where the language can go from here, or how it can make a strong niche for itself besides Rails. but of all the "old" languages that I sometimes have to come back to, Ruby has been the most welcoming.
I also published a blog post[1] about Elixir 1.3 a little while ago, which is partly complementary to the official one.

[1]: http://tuvistavie.com/2016/elixir-1-3/
Thanks! We updated the link from https://github.com/elixir-lang/elixir/blob/v1.3/CHANGELOG.md.
Honestly, I bathe in idiocy because it works. One of the "tricks" I've picked up is that if I'm being tailgated in town or someone is otherwise driving next to me and won't stop I'll turn off traction control and "light up" the rear end of my car. Everyone 'scatters' at that point. A lot of people don't understand this driving style. I look like a complete idiot, but people pay attention to the idiots. They watch them, they hang back, thus making the idiot a lot safer. My car stops from 60 to 0 in 97 feet. It takes someone in the average sedan nearly twice as far. The further I can keep those people away from me the better. When I'm driving I'm engaged. I drive a low fast sports car which requires full engagement. This makes me the safest person on the road no matter how bad I look to other drivers. This is a key concept when on a motorcycle as well. If you are blending in by being "good", no one is paying attention to you. If you are driving a loud bike, speeding up and slowing down aggressively, popping wheelies, and otherwise behaving like an ass, you are visible. Scare those around you and those around you will give you room and on the road and room is king.
So any processor that ever touches data that came from an IoT device is an "IoT processor"?
I agree with the author's advice, but a part of me can't help but feel that "picking your battles" is a sign of a poorly functional team.

The entire premise behind "picking your battles" is that battles are expensive, and hence, you can't afford to fight every battle. But in a highly functioning team, bringing up suggestions and points for discussion shouldn't be expensive. It should be natural and fluid, with every person in the team expected to voice suggestions and concerns whenever they see them. In a team where people aren't constantly trying to jockey for position, where people are open to discussions without getting caught up in their egos, having people bring up suggestions freely is of great benefit to the team and the project.

Maybe the real question that needs to be asked isn't how to "pick your battles", but rather, how to build an organization where people can contribute suggestions and concerns, without getting themselves dragged into a battle.
Study: Raspberry Pi could help farmers better manage crops
I think one of the biggest blindnesses of our field is scaling (and I'm not sure quite why). This leads to an enormous amount of effort at roughly the same scales of some good ideas decades ago. (I think my background in molecular biology -- which continues to a very small extent -- helped this a lot. At some point one has to grapple with what is more or less going on and why it more or less works so amazingly well.)

What would a programming language be like if we actually took the many dimensions of scaling seriously ... ?
Ask HN: How do you take notes other than using paper?
Hi all,

going trough college, it struck me that notes are still mostly a pen and paper business. At least, that is my experience, as well as my colleague's, for anything that is not plain text.

I found that there is no app that allows me to quickly mix together text, math formulas, code, images, sketches, graphs, and other kinds of media (yes, yes, I hear you invoke the mighty LaTeX... but can you write correct LaTeX on-the-fly?).

I would like to tackle this problem by building a platform for storing and sharing your personal knowledge, and it would help greatly to hear other people's insights on this matter.

So, what I am asking is: do you take complex notes with a computing device?
If yes:
how? what method, device, app?
do you re-process your notes offline?
would you like some functionality that you don't have in your system?
If not:
what is missing from current technology that would allow you to do so?
would you want to upgrade from paper to a computer or tablet application that suits your needs?

Thank you!

p.s. In case you want updates on this, check back on http://taquino.it in a few months or send me an email (see HN profile)
> I agree with the author's advice, but a part of me can't help but feel that "picking your battles" is a sign of a poorly functional team.

This is true, but practical. Most people will never work on a functional team.
Even more bugs in Smart Contracts, and how to fix them
> No. One cannot refuse a whiteboard test.

I completely disagree with you on this. If a whiteboard test is such a strong turnoff to a candidate that they won't want to work at the company because of it, and they're willing to make the highly unusual move of refusing the test, then telling the interviewer about it and ending the interview early is the polite thing to do. As an interviewer I don't want to waste my time - and my team's time - by interviewing someone who certainly won't work out.

Candidates should feel comfortable saying no to anything at any point in the hiring process - of course with the potential consequence that the hiring process stops right then and there. But they shouldn't be expected to do things that make them uncomfortable or violates their personal beliefs. Should a candidate who doesn't drink alcohol be expected to have a beer if their interviewer proposes it? Should a candidate with strong religious beliefs be expected to violate them in an interview setting? What's the reasoning behind thinking that a candidate should always agree to a whiteboard test no matter how strongly they oppose them?

Look, the author of the post - the guy who refused the whiteboard test - does come across as cranky and difficult. He certainly should not have been surprised that the interview ended. And, for the record, I think feeling _that_ strongly about whiteboard tests is a little extreme. I just think that if something is a deal breaker for you as a candidate the polite thing to do is to let everyone know up front - ideally before an on-site so you can end things earlier rather than later and save everyone time.
I experience the exact same thing. I get an idea for a side project, get really excited about it, think about all the great things it could do, work on it like crazy for a weekend, and then never touch it again. I got to a point where I got really frustrated with myself that I can't finish anything. So this past Saturday I picked a really small simple project I had and said to myself "No matter what, I'm doing a ShowHN before I go to bed." So (after some hesitation) I did [0]. It really helped knowing that the HN community doesn't tear down ideas or projects. And while this was not a big, badass, super cool project like some others, it does feel good to have finally put a project out there.

Based on this I would say, define a small simple project that you can finish before losing motivation or succumbing to fear of failure, and then just get it out there. You will receive valuable feedback and learn a lot. You have little to fear as the HN community seems to shine at not making you feel embarrassed about what you've made. At least this is the impression I got from watching previous ShowHNs.

[0] https://news.ycombinator.com/item?id=11930331
I guess we've reached a point where you can tell when you are looking at establishment-mandated discrediting of a fellow programmer via "community volunteers" aka shills, but are afraid to call it, because you fear you might be next.

So I will say it: This is mostly bullshit. If he did something wrong, file charges, instead of this one sided character assassination.

Aside: Listen kids, dont live in fear. Its better to burn out than to fade away.
How about some good old consensus?

Battles are not the way to go, regardless of the stakes. If you feel the direction a project is going in is not to your liking you can always quit. As soon as you start phrasing things in terms of battles, winning, losing and so on you're going to end up very frustrated and potentially toxic to the rest of the team. A good team member knows how to make their objections heard without engaging in confrontational tactics and will be able to present their reasoning in non-confrontational fact driven terms.

And is able to accept that they do not always get what they want. If that happens too frequently then maybe ask to be transfered to another team or maybe leave for another company.

But leave the war and associated terminology and attitude out of it.

I've had someone in our little group at TT who would approach each and every little item like a battle and I was very glad when he moved on, it's fairly easy to destroy an otherwise winning team when someone starts to treat the process of software development as something that can be won or lost.

There is work to be done, and if we do it well we all win, and if we mess up then we all lose.
Flat earthers are a totally different thing. The shape of the Earth is a fairly simple physical fact about the universe. To deny it is to essentially deny even the most basic human ability to gather facts.

Perpetual motion and FTL travel are about physical laws, which are not known in full. We've got some really good theories with a lot of data to back them up, but the facts lie in the data, not the theories. The theories are subject to refinement and replacement as better data is obtained.

It is not known that perpetual motion or FTL are impossible. It is believed that they are impossible, because the best theories to explain current data say they are impossible. But there is room for new data and new theories.

It was not all that long ago that it was "scientific fact" that atoms were indivisible (that's what the word means, even), that velocities add linearly, that light propagates through a fixed medium, that matter is conserved, and that gravitational force is proportional to mass and inversely proportional to the square of distance.

I also don't see much "acceptance" of FTL as physical fact. I see it accepted a lot as a story device, but that's just because it's handy for making entertaining stories, not because there's any basis in physical fact. There's some "acceptance" of FTL as physical fact in that people don't completely rule it out, but that's entirely justified.
The paper is on the arXiv: http://arxiv.org/abs/1511.06526
Applying this advice could quickly turn a functional team into a non-functional one.
To solve travel stress, couples should vacation together but fly alone
I think the concern is less that it's a good tool, and more that it's one invariably receives emails with attached documents that open well only in Excel.
Yet. Who wants to take bets on how long it will be before they get their start a points system and start offering an uber credit card? I'm guessing a year.
Everything we know tells us that energy being conserved is a fundamental limit, but we don't know everything. For example, exotic physics that allows us to pull energy from the cosmological constant itself is still a theoretical possibility. Maybe there is some exotic aspect of reality that could violate energy conservation.

My point being that, yes, these two are comparable, which is what the claim you are replying to said.

In fact, belief in FTL is sillier that violation of conservation of energy. We have no evidence for FTL of any kind. We do have some reason to believe that conservation of energy is in fact violated at cosmological scales by the increasing rate of expansion of the universe. (Perhaps future understandings will resolve this apparent violation with a more complete picture of "energy", but at the moment, what we know of as energy is not being conserved at that scale.)
http://www.isrubyfastyet.com/latest.log

I agree with you. The latest "nightly" log was taken in January 2015.
This research allows us to train our models faster, which so far has translated into better application level performance, e.g. speech recognition accuracy

Great. Far-Eastern Echelon does dot cn. Thanks a lot for that, Greg.
In that situation, the correct thing to do is get 1-2 people fired, or go find another job. Life is too short to work with people that incompetent.
That was the goal of the project. Quote www.ethereum.org: "One of the many advantages of having a robot run your organization is that it is immune to any outside influence as it’s guaranteed to execute only what it was programmed to."

"Ethereum is a decentralized platform that runs smart contracts: applications that run exactly as programmed without any possibility of downtime, censorship, fraud or third party interference."
MongoDB World 2016: The Big Reveal
My understanding is that the dupe detector doesn't work all the time.
Yep. Common as hell though. Not only do I know many who've explicitly told me about such attacks, but basic statistics indicates that many people we know have been attacked, regardless of them telling us. (Of course people often don't speak up when attacked, because the rest of us are generally complicit in maintaining that culture, for example shaming or silencing targets.)
John Carmack had an interesting take on AR. His feeling is that AR is a more difficult problem to solve, and for artificial objects to blend nicely with reality you'll probably need to redraw the entire field of vision anyway. By this reasoning, VR is a necessary first step along the way to the development of AR.
Maybe fire, maybe target the offers to people you actually want to leave. There is probably fallout involved in that one as people figure it out but is it more/less than your top people leaving?
Excellent analysis on that here: http://theindicter.com/the-weaponising-of-social-part-1-the-...

It seems we have going through a regression where extrajudicial mob justice is becoming acceptable again.
You don't need that. Time dilation already does that for you. There is no apparent limit to subjective velocities.
Netatmo’s security camera now conveniently uploads videos to Dropbox
Honestly, if there are that many battles in a developer's day, it's a sign of mismanagement. Some bad company leaders think that the right thing to do is constantly have people negotiate over silly details.
Please read about SQL injection[0]. Not using a library that escapes your strings is how Bobby Tables[1] ruins your production database.

[0] - https://en.wikipedia.org/wiki/SQL_injection#Incorrectly_filt...

[1] - https://xkcd.com/327/
Most graph databases are not optimized for speed. Specific indexes for optimization are missing, while they have been researched by computer scientists. As you said, using a random RDBMS will probably be faster.

Having that said, currently the big benefit of graph databases is ease of use.
I think this is a really great article. It's unfortunate that people see a word like "battle" and assume that it is meant aggressively. It is just a theme for highlighting the reality that developers and designers disagree all the time. When you work with intelligent individuals who are passionate about what they are doing, there are going to be strong opinions. These situations can get intense, and it is exceedingly difficult when the other party thinks less of your opinion - like because you're a girl. Solid article on a tough topic.
How does dgraph compare to orientdb? I remember looking into orient a while ago and really liking it.
There's good cause to be careful about this kind of pedagogy. This kind of thing is made possible by strong ethic in a school of "all for one and one for all," shared by the faculty and the administration, and accepted by students and parents.

If it's just a "good teacher" or two in an institution that doesn't have that ethic, using more advanced students to help less advanced ones can exploit both groups.

Now, many public school teachers have to practice "guerrilla excellence" so it's a complex problem. But a kiddo who gets algebra doesn't necessarily get teaching it.
Thanks for the answer! It seems like there's a distinction here between exploring how models can/should be built (a mathematical/philosophical task), helping people create and understand these models with computers (a design/engineering task), and using these models to formulate and test hypotheses about ourselves and the world (a scientific task). Maybe the lack of science is because we haven't figured out the math/philosophy/design/engineering parts yet!
Luxury yacht Charter Greece
Generating Fake Email Addresses with PostgreSQL
> How about some good old consensus?

My concern with consensus, is that most teams are comprised of a single or two senior people supported with a larger number of less senior people.

If consensus is the protocol-de-jour, your service/product/offering suffers in the mid-to-long term (as well as alienation of the senior people whom you want driving).
Having finished high school, a little over a year ago, I cannot understand how this can be beneficial in any way. We began pre-algebra in 6th grade and a large majority of kids did Algebra I 7th grade, possibly a harder class like Geometry, depending on how ahead they are. Sure, you could delve deeper into each topic, but when your classmates, are still struggling with basic Algebra, how much time does your teacher have to focus on giving you extra work?

The accelerated kids would essentially be forcibly held back. The curriculum at my high school for the normal accelerated student was Algebra II, Trig/Calc A (calc I), calc BC (calc II), then calc III, and we had students even more accelerated than this. Starting at Algebra I in high school, would essentially shift everything back two years.
I should tell my own wiki software story. It's not a free software story, sadly.

It's 1995, and I'm working as a contractor for a large multi-national telecommunications company. My co-workers on the 24/7 support team have been gathering useful emails sent out by the other IT staff. They had worked on a Perl script to assemble these text files into a single big HTML page, located on our internal web server. When you got a new useful tidbit (such as how to partition the disk space on this class of server), you'd have to re-run the script to generate the new page.

Shortly after that, I learned about HTML forms, and submitting them and generating a response. The Aha! moment occurs, and I decide to make an interactive version of this "notes db".

450 lines of Perl later, I had something that resembled other early wikis, with a couple notable exceptions.

It didn't occur to me to create a markup language to make writing the wiki pages easier. You had to know some basic HTML. Links between pages were possible, the script searched for anchor links and replaced 'NOTESDB' with the actual server URL upon rendering a page for display.

A hierarchy was enforced. You could (and should) link between documents, but it was expected that each page had a parent page, and could have multiple child pages, all of which were always listed before the start of the text. The notion of a flat namespace (as was with Ward Cunningham's wiki) was antithetical to how I thought things should work. It is interesting to contrast my thinking at the time to the flow of history since.

I was rather proud of that bit of code, and it was in use for years after I had left the company. I didn't learn about other wiki software until a couple years later.

I should have asked permission to release it as free software, but that didn't occur to me either. I'm not much of a promoter, so I don't know that I would have been able to build up a community around it anyway.
How to improve your debugging and testing skills
Even a great team can be dysfunctional. It's crazy to pretend like a software team will not have disagreements from time-to-time.
Paypal seems to have a long and ugly history of aggressive-yet-incoherent legal interpretations.

They lock down donations to any unpopular group, and refuse to release already-held funds. They freeze Kickstarter campaigns as soon as someone says the word "fraud", and cause the exact damage they're trying to prevent by tying up all the funds so neither backers nor creators can get the money.

They're incredibly capricious, and as far as I can tell have taken the stance that overcaution is always acceptable.
> Honestly, does any one believe that the reason of taxies being sparse or terrible is because the taxi companies doesn't give a shit? If they could make more money by having cars on the road, then why shouldn't they work towards that?

No, they were sparse and terrible because of the medallion system limiting the supply.
Excel is a great tool, but its graphing ability leaves a lot to be desired. I feel that graphing in Excel has gotten worse as they have tried making it easier to use as well. I'm 99% sure the graphing engine in Office 2007-2016 is the same one as in 2003 and earlier, but all of the damn menus they have added slow down the graph making process so much. If you are trying to use Excel to make a graph for a reasonably technical audience you are going to need to make a lot of tweaks to the graph to make it acceptable, and tweaking each part of the graph takes dozens of clicks where it used to take one or two.

I personally think that Excel is one of the best tools I have ever used. I do about 40% of my work in Excel. I graduated from college with a degree in biology, and I spent hundreds or thousands of hours in Excel manipulating data and graphing. Excel can and will graph almost anything you need to graph, but anything more complex than the simplest line graph requires getting creative with the formatting of your data and how you use series and data sets. The maximum complexity of a graph in Excel is technically restricted by the 254 series limit, but creating a graph with 254 series will probably take the better part of a week.

So ultimately, Excel isn't a bad tool, but when graphing it's a bit like using a shovel to dig a hole. It has a time and a place, but at a certain point using an excavator will be faster, safer and less expensive than digging the hole by hand.
OpenAI: “The following companies have donated access to their products”