skysight-inc/HackerNews huggingface dataset:
I have been experimenting with e-bikes over the past few months and converted a standard BMX to an e-bike over the last weekend. They are unbelievably good. You have to try one to understand how much fun they are.

E-bikes have the potential to revolutionize urban transportation, particularly in European cities but we are being stopped here by heavy regulation.

To be road legal in most European cities an e-bike needs to
1. Be less than 250 watts, and:
2. Only work when you are actively pedaling, otherwise it should come to a halt and,
3. Stop powering the user once it reaches 25kmph.

If you break any of those rules you need to have a motorbike license and have the e-bike licensed (which is practically impossible). These restrictions are unnecessary and heavy handed. There should be some flexibility in the law allowing someone to use a low to medium power e-bike without being forced to pedal and being let drive at a reasonable speed. Every bike used is a car off the road. I've written to my local transportation minister who replied to say that they have no intention of changing the law anytime soon which is a real shame.
The safety features of Rust are core to the design of the language, that's what makes it so effective. It essentially takes part of what makes the design of pure functional programming so safe and makes it highly performant and pragmatic for a systems programming context. An implementation detail would be like the intricacies of better code generation, which is not at all key to Rust.

Granted, it's "C fast," but the whole point of the safety features is that they are intrinsic and pervasive to how the language functions so that the programmer is not allowed to make certain kinds of mistakes that C and C++ are totally fine with and will generate crashing code for. It's not just about making unsafe programming practices safe through better compiler practices, it's about stopping the unsafe programs before they reach the compilation step.
If you search ESP8266 you'll find boards like that too, from more suppliers and in more form factors.
Want to See the Ball Game? Scan Your Iris First
Thanks for writing this Aline. As a recruiter for almost 20 years, I wish I had access to all my data and then the time to compile it, and anecdotally I'd expect the finding about MOOCs would be similar.

The most selective of my hiring clients over the years tended to stress intellectual curiosity as a leading criterion and factor in their hiring decisions, as they felt that trait had led to better outcomes (good hires) over the years. MOOCs are still a relatively recent development and new option for the intellectually curious, but it's not much different than asking someone about the books on their reading list.

Unfortunately, demonstrating intellectual curiosity often takes up personal time, so someone with heavy personal time obligations and a non-challenging day job is at a significant disadvantage. One could assume that those who have the time to take MOOCs also have time to study the types of interview questions likely favored by the types of companies represented in this study.

Thanks for continuing to share your data for the benefit of others.
I think that's perfectly fair. Rust isn't the best language for everything. Not everyone writes databases, codecs, filesystems, kernels, protocol implementations, etc.
FWIW, you can avoid allocation in Rust by limiting yourself to libcore, which doesn't know about allocation. Stick the #![no_implicit_prelude] attribute on your module and now you can't use anything from liballoc or libstd without an explicit `use` directive.
This argument is only valid in a theoretical environment. In reality, the microphone on a phone is not as sensitive as those used for Alexa/Google Home. Additionally, if your phone really did record and transmit everything you said the battery life would be horrible. A giant microphone plugged in to the wall and connected to wifi actually makes it very practical for mass surveillance.
> i cant divulge my thumbprint like i can my pin

You divulge your thumb print when you grab ahold of a glass at a restaurant or a door handle in a public space.
Because interviewing skill is how you get a job.

If I am looking for a job, I care a whole lot about what would make me better at getting jobs.
Most pedagogy, over time, gravitates toward what's easy to measure, not what's valuable to learn. So we've been very lucky in hiring by network even though we kinda feel terrible about it. On the other hand we're hiring more women now too as a result, not least because women are now much more conscientious about managing their network of other female developers than men.
Brian Beckman: Don't Fear the Monad [video]
The radiation method of preparation may have been too much for Winston Churchill, who preferred his vermouth “glance across the room at the vermouth” or, to “whisper the word ‘vermouth’ over the glass,” [0]

[0] http://rogerbourland.com/2006/07/31/my-drink-of-choice-a-dry...
Intuition is pretty hard to document.
By manually changing it you've overridden the dupe post check.
I posted this Nintendo article 5 days ago. https://news.ycombinator.com/item?id=13240858 https://www.nintendo.co.uk/News/2016/December/Take-a-look-be...

It can be seen in the search: https://hn.algolia.com/?query=https:%2F%2Fwww.nintendo.co.uk...
What is a safe speed to drive when you take into account that the yellow light may last from less than a second to 20 seconds?
Obama administration prepares sanctions for Russian election meddling
what about their teeth ? I've heard, at least for dogs, that the crunchy dry food helps keep their teeth healthy
I am not sure what using an object vs using a struct with an enum + a union has to do with allocation. My C++ is rusty (no pun intended).
Hi,

Your English is great; I understand you perfectly. But stylistically, there are issues that give you away as a non-American; from that, people may incorrectly infer that you may be bad at English. Americans and our arrogance. There's a classic joke.

What do you call someone who speaks two languages?

Bilingual.

What do you call someone who speaks three languages?

Trilingual.

What do you call someone who speaks one language?

American.

Here's a rewriting of your intro paragraph. By the way, the writing is very good; it's just that the mechanics and grammar are distinctly non-American.

* * *

I am 32 years old and started programing at age 14. I am self-taught and programing is far from being a passion, it is my life. Through the years, I programmed using QBasic, QuickBasic, Visual Basic, C++, C, HTML, JS, CSS, PHP and Python. These days, I only use the last six.

I live in the Democratic Republic of the Congo, in the heart of Africa. In my country, developer jobs are quasi-nonexistent. My wish is to work remotely. But, many remote jobs I find online require being a USA resident.

My wish is to have an employer approve me working, even for three months. I learn quickly and I can add new languages to my fingers if required.

Thank you.

* * *

Changeset

1. Don't abbreviate "years old" to "yo"

2. Change "since age 14" to use "at age 14"

3. Change "a self learner" to "self-taught"

4. Change "through the time" to "through the years"

5. Change "programed" to "programmed"

6. Remove comma before beginning the list: "I programmed using" instead of "I programmed using,"

7. Change "actually" to "these days" and add a comma.

8. Spell out numbers under 10: change 6 to "six".

9. Change "six last" to "last six"

10. Capitalize Democratic and Republic and add the definite article, "the".

11. Change to "quasi-nonexistent". Nonexistent is a word so you don't need to hyphenate non-existent.

12. Don't capitalize "Jobs" in the middle of a sentence.

13. Change "being USA resident" to "being a USA resident". We use "a" as the indefinite article here, rather than "an", because "USA" is pronounced with a consonant sound.

14. Don't capitalize "Wish" in the middle of a sentence.

15. Rephrase "accept me working for approval"

* * *

The voice in your writing shines through, and that's something many people really struggle with. So just work on the rules of American English and you will improve rapidly.

One more thing to note: in France, they add a space before punctuation marks with two parts (!;:?). We don't do that in English.

Send me an email if you want!

Peace,

Zack
I don't think the parent is talking about problems with shadowing.
The curious history of the clothespeg
I don't like this analogy as much as you because it misses a hundred years of industrial innovation that took the bike from a novelty to the most common form of assisted transportation on the planet. Rust isn't the bike, it's the factory that was built with the best manufacturing techniques from dozens of other factories combined into one. A bike (the software you're trying to make) is still a bike no matter who makes it but this new factory can make them safer, faster, and cheaper.
You're right, but you're making my argument for me. Nobody is interested in seeing a motorcycle beat a bicyclist, or a horse outrun an Olympic sprinter; they're interested in seeing what a human being can do, unaided, pushed to the limits of what a human can do. We already know that we can outperform an unassisted human using technology.
Can you elaborate more what makes you think Rust isn't an expressive language ? And what feature your «functional programming language with low-cost abstractions» has that your miss with Rust ?

In my experience Rust is really close to OCaml in term of expressiveness. I don't know what feature Scala or F# have that Rust doesn't.

The only major thing I can think about is Higher Kinded Type in Haskell. They are indeed cool and there is work underway to add HKT to Rust (but nobody is sure yet if it's possible though).
Thus the rule oft forgotten in the UX circles - if your user has no alternative to switch to, they will learn the interface.
I second that recommendation. It's what PreScheme, Ada, Chicken, and Nim did among others. All brought benefits in practice.
> There may be exceptions, but this is absolutely the rule for AAA titles. Studios could never make their money back if they targeted only users with discrete GPUs.

Only 17% of Steam users have an Intel card. Not sure how you came to that conclusion :)

Let's see the most successful games of the year:

- Battlefield 1, needs at least GeForce GTX 660 / Radeon 7850 with 2GB of VRAM. Will not start on Intel.
- Call of Duty: Inifinite Warfare. Same requirement.
- Overwatch, actually runs on Intel HD 4400. Needs at least 660/7950 to run well

etc. :)
Exceptions have high cost so I don't see where you are coming from. Rust's RAII goes further along than C++'s. C++ is playing a game of catchup to steal the move semantics from Rust.
Actually Mon Mothma was played by the dead-ringer for Caroline Blakiston, Genevieve O'Reilly.

She also plays Mothma in a deleted scene in Episode III.
Yeah - I own one of these. The ribbon spun both screws - very convenient.
A fresh page load (no cache) of a medium article downloads close to 1mb of assets in 11 seconds on my home ISP connection.

It's nice, but it could be faster. Considering medium is just displaying text posts, there really is no need for so much cruft.
I suspect they meant divest. They can't get rid of the thumbprint like they can an insecure pin/etc.
Building Anticipation
Yeah, Toptal. One of the least professional interview experiences I've had. Didn't bother doing their coding exercises. Life is short.
If there ARE mitigating factors then they need to be examined and understood! I'm not sure why you feel safe assuming that CIN/COUT is always an explanation.

It's extremely easy to say, "Oh those people are fat because they're sedentary." Re-examine this though, because it's a variant of a common "you get what you deserve" mindset that plagues health issues for many people contracting conditions that cause society to look down on them.

It's also untrue that obesity didn't exist in the 50s, however even if it was less prevalent ... it's simply not true that people were substantially less sedentary in the extremes back then. If anything, employment was MORE demanding of a sedentary lifestyle.

It's probably a combination of multiple factors including things like available diet options, a reduction in habits like smoking with proven weight reduction side effects, etc. Is it really unimaginable that a virus makes people on certain diets more prone to obesity, requiring substantially more work to reduce weight?

What's more, given that employment is a precursor to survival in our society and it is difficult to obtain and maintain employment while obese, it seems to behoove us to examine every avenue we have to make sure we can resolve those conditions regardless of value judgement about lifestyle. A strictly capitalist analysis of the situation suggests preventative and accessible care will be substantially cheaper and more productive than the "let them die of poverty-related complications in the streets" approach should people fall out of where the system can reach.
Whether or not Evan sees this, I hope he knows I'm thankful for him and his work. Vue is the only front-end framework I will ever consider (up to this point).

For the most part, I think front-end frameworks are overused. Like, Uber's freight page — why the hell are they using React? My gut tells me some internal tooling bootstrapped setup, but something else tells me "because it's cool, and it's not cool not to use it."

The appeal just isn't there to me. Developers (and c-level execs) seem to care about how hot their stack is, rather than how practical their stack is. I guess my liberty comes from being self-employed, and being able to make my own decisions. I don't want another thing to have to learn/document/support/break in my pipeline. I just want everything to work as fast as I need it to work, when I need it to work.

I've managed just fine (as have many, many others) with just dropping in Turbolinks if I need "fast". HOWEVER, I will say that when the business requirements mentioned "get it close to real time" and "lots of moving parts on this [controller/page]", I ditched my janky-ass jQuery hackjob and went to Vue. And I'm really, really glad I did it.
> Unfortunately, demonstrating intellectual curiosity often takes up personal time, so someone with heavy personal time obligations and a non-challenging day job is at a significant disadvantage.

This is true, and one of the things that tends to stack disadvantages against people who are older in the industry. There's a good correlation between free time and age in some ways, as people get to mid-career they tend to marry, have kids, and so on. Maximum free time comes during college and immediately after, for many people.

Valuing intellectual curiosity also tends to mean that this curiosity is valued over direct experience, which is what the older more time-strapped people have to offer relative to younger people who are doing the MOOCs.
Anyone for whom this is a concern should probably consider divorce.
The Trends That That Defined 2016: A Year of Click Roulette
>I don't even understand why you'd want to remove functional programming from a low level language like Rust

Because I want a simple to read language?

It's not all about performance. C++ doesn't have bad performance and is safe, yet isn't used in Linux, nginx, or OpenBSD.

Why?

I've heard here how every team has their "subset" of the language that they use.

So you're trying to unseat C from it's perch. Fine. I understand, it's too easy in C to have memory errors and pwn computers.

But if you want to fix that by forcing people to switch to a different paradigm, it aint gonna happen.

Out of the top 10 programming languages on GitHub, most (by far) are imperative.

If someone would make a safe C, there can be hope in convincing Linus to slowly switch.

Now? There's 0 chance of that happening.
> The OS clearly seems to be going in the direction of Smalltalk or a Lisp machine as an environment. What would it look like, or what would be the limitations of a merged OS/programming environment with something like a single SQLite DB as the filesystem?

MUMPS, most 4GLs, RPG on the AS/400. I have not programmed in any of these but have heard a lot of bad things about them. Also I think it is a mistake to say the the OS is going in the direction of Lisp/Smalltalk. If anything, Linux containers/Docker is more like the IBM VM mainframe operating systems.
Go back and take a gander at the question mark in the comment you're criticizing, and the lack of one in the comment I'm addressing.
I agree about the web browser, but unfortunately there's a tradeoff between features and stability. A browser from 2016 has to do way more than a browser from 2006 or 1996. It's supporting much more of the world's interaction now, in a very literal sense. So we have gained a lot, but it comes at a cost.

Both Firefox and Chrome have had severe stability issues, and I hope that when this period of rapid web evolution subsides, there will be a rethinking and consolidation.

I believe Douglas Crockford said that the period of stasis after IE6 and before Firefox was the one of best things for JavaScript, and I think there is something to that argument.

Although I would ask you -- improved along what dimension? Everything is a tradeoff.

I agree that software is much too buggy and slow. As far as being "bloated" and complex, I used to be part of the church of simplicity, but I've come to realize that the use cases for computing are just very diverse. Though I would like to get all these features without the associated instability and performance drop (i.e. paying for what you don't use).

Bjarne Stroustrop expresses this well; he says he hears this all the time: "C++ should be a much smaller and simpler language. Please add this tiny feature I'm missing". I think there's a lot of truth to that.

I'm working on a shell [1] because it's a language that connects other languages. It's the glue that makes some of the complexity manageable. And it's also the language closest to the OS other than C -- you might call it the "second language" that boots up on any system.

Shell is of a horrible legacy mess too. It's an instance of failure by success, much like PHP.

I think the reason for the mess is that piling new crap on top is easier than fixing and replacing old stuff. It's much easier to write a new language than to replace an old language, and probably more fun. A lot of my blog is basically software archaeology.

If people want things to be better, they have to roll up their sleeves and dig into the systems that people ACTUALLY USE and fix them, rather than just proposing "revolutionary stuff" that only adds to the pile.

[1]: http://www.oilshell.org/blog/
Types are probably subsumed in his definition of programming languages. 1955 FORTRAN had static types, at least distinguishing INT and REAL. I think CHAR came later. 1958 LISP had dynamic types (list, symbol, int).
Excellent, thanks. Great error message.
Still don't talk to the cops?

Nope. While you're busy playing "what if...", I'm dialing a lawyer. Should that trained professional advise talking to the adversarial trained professionals, then I would do so, and not before.

I don't how it is where you're at, but in the U. S. cops have demonstrated time and again (and I've seen with my own eyes) that they are not concerned about truth and justice, but arrest and conviction rates. I'm not walking into that scenario running my mouth without professional advice.
In addition to the points that this author makes connecting risk profiles to work options available to potential technical co-founders, let me add an orthogonal issue that impedes people from signing on to the high risk proposition of building the 'great idea' that someone else has generated.

For someone with a technical background it feels really hard to judge whether the other person, the one with the business vision has the combination of sales, marketing skills together with hustle and perseverance to really pull off the customer acquisition side of the equation.

This is the technical co-founder's fear that he/she will build something really great that meets the vision but the whole business development side of the equation will suffer. In various corporate settings I have met too many sales people who talked a good game but ultimately had more excuses than results. In a start-up I don't have the luxury of a sales team that is big enough to take up the slack and gradually weed out the people who cannot deliver.
Safety is definitely part of implementations at least as much as it is a property of languages. The baseline measure of that is with compiler error messages. Classically bad(as in, this is what you'd get in many environments circa 1980) error messages just terminate and say "error code 100", and then you'd go look in your reference manual to figure out what error code 100 meant, because the system was too crude to have actual error printouts. Maybe you'd use a machine code monitor, or roll your own trace logs. So you'd be mostly in the dark as to what is wrong and how to fix it, and debugging was default-hard rather than default-trivial, shaping the entire nature of the programs you wrote towards easy wins that would not break catastrophically.

Rust, on the other hand, has invested so much into its error technology. It tells you what the offending lines are, the type of error, and gives a best-effort to point out the underlying issue causing the error. It guides you towards a code style that best exploits the nature of the errors, allowing you to take "risky" moves that only the compiler can successfully guarantee, and in-the-large, to an architecture that follows the grain of the compiler instead of fighting with it.
As a beginning Mandarin student myself, four weeks of classes means absolutely nothing about fluency in the language (assuming the students are native English speakers). It's a very difficult language to learn, and four weeks doesn't have you engaging in unscripted conversations with fellow students. The low n is understandable, but only four weeks of classes is pointless.
I think e-bikes are going to have the same issue that scooters and mopeds have (and even bikes too) - safety. If you live in a city, you are going to have to be riding near cars, and it is simply a fact that a collision is much worse when you are on a bike or scooter than when you are in a car. A minor fender bender in a car could be serious injury on a bike or scooter.

Everyone I know who commutes to work on a bike has been in an injury accident, ranging from bad cuts and bruises to broken bones and brain injuries. When you combine the basic lack of courtesy from car drivers, the inability to see bikes compared to cars, and the exposed nature of a bike rider compared to a car, the danger is simply too great for many people (myself included) to take.

Unless we get lots of dedicated bike roads where you never have to interact with cars, I don't see how this problem is solvable. As ebikes get faster and more powerful, the danger is going to increase rather than decrease. This is the same reason I don't ride a motorcycle; while it would be efficient and quicker to commute on one, they are simply too dangerous.
It really depends on what sort of business you're in.

If you're doing application development then UI performance is usually good enough using modern runtime environments and libraries. When this is true being able to release features quickly is the most important metric.

But if you're working on a 3d game engine, writing a web browser, writing code on an embedded platform or writing a database then performance itself is a feature. Being lazy with allocation or your choice of algorithms is a really expensive mistake that will hurt your bottom line.
Bat chat: machine learning algorithms provide translations for bat squeaks
Even if prints were unique, the heuristics upon which we match them to a given input isn't perfect. It is an guesstimation.