skysight-inc/HackerNews huggingface dataset:
> Rust is very expressive.

Compared to what? C? That'd be true but rust is really complex and verbose which takes away its expressive powers. Just compare Rust code to Scala/Haskell/OCaml/Elm code and you'll see.

> The main benefits of functional programming languages is contained with Rust's Iterator trait...

Then you should look up for modern FP languages because iterators and similars aren't a part of modern FP languages.

Also, you should take a look at the following paper to understand the difference between the types of polymorphisms: http://lucacardelli.name/papers/onunderstanding.a4.pdf
Yeah I suppose YMMV. I work mainly with JS on a video player which uses no frameworks. I still lean on MDN a lot and use SO for learning new things, but I've learned to rely on myself and my teammates to solve problems and where that isn't enough, to look through Git issues and documentation. I've developed my own standards of "goodness" which helps me come up with solutions. It also helps that SO does not have answers to 99% of my problems (how do I make HLS videos upswitch faster?).
Facebook Acquires Eye Tribe for VR Eye-Tracking
> And it lets one write plain old ES6, a luxury in this age of TypeScript fascism by psychopathic ex-JBoss villains.

This opinion is one of the many things that are wrong with the JavaScript ecosystem today. Static typing as provided by TypeScript is a safety net, not "fascism".
I wish items like this got more attention. It's my opinion that all the hoopla over self driving cars is masking other really important modes of transportation. If the cost was low enough, it would be far more efficient to ride an E-Bike to your destination if it was in close proximity, especially for community to work. Of course there are trade-offs, but I can't help but think about how much this would alleviate traffic congestion, how this could contribute to someone living a more healthy lifestyle, and the impact on someone's happiness of riding a bike instead of being in a car.
For me the best thing about Rust is that I can create beautiful APIs that are hard to misuse.

With ownership rules I can enforce logic of how my API is supposed to be used, e.g. "you can call this method only once", "you can use that object only until you call destroy() on the parent" can be enforced at compile time. Same with levels of thread-safety of my code. Users of my libraries don't need to RTFM to use them correctly.
> Unix is polyglot by design; that's a feature and not a bug.

No it is not. Unix was always built around C with other languages as an afterthought, even late in its development. Here are some quotes from my copy of the UNIX time-sharing system: UNIX Programmer's Manual revised edition from 1983:

"System calls are entries into the UNIX supervisor. Every system call has one or more C language interfaces..."

"An assortment of subroutines is available... The functions are described in terms of C, but most will work with Fortran as well."

"The three principal languages in UNIX are provided by the C compiler cc(1), the Fortran compiler f77(1), and the assembler as(1)."

Saying that Unix is a "polyglot" operating system makes as little sense as saying that Symbolics machines were "polyglot." Symbolics had better C and Fortran development environments than Unix but it does not change the fact that it was a Lisp machine. Unix is a time-sharing system with a C standard library, C memory management conventions, C calling conventions, C stack layout, C process memory layout, C linking and loading. Working against any of these conventions is possible but very awkward.
food hockey!
Team at Rice builds machine to transform the way we vote
Laracasts has a great (and free!) video series on getting started with Vue 2.0 if anyone is interested: https://laracasts.com/series/learn-vue-2-step-by-step
I back you up on this. I'm about 10 years in my career, and I use SO more and more. Because, conceptually, I know what I want to do. Last night it was trying to use the asyncio library for Python 3 to use sockets. I know what I wanted to do: async, accept, listen, read and write to sockets. But how, _specifically_, do you do that with python 3 ? Don't know and dont care. Ask SO or find someone's blog howto and be done with it. For better or worse, I dont use books at all anymore. What I find is that they take the long way to go about things. The more I learn, the more I just want to see EXAMPLES. I dont even want to read a single word "about" topic X, I just want to see topic X in use.

I'm about ready to write my own manifesto about why man pages are worthless. When I do, I'm going to blog it and submit it here. I don't even know where to start about man pages. They are reference material, but totally useless at showing you how to use the tool. even though they tell you what EVERY dash-this and dash-that option means, you can STILL screw up by not ordering them properly, forgetting a required dash-this, or not formatting the arg properly (information that is either omitted completely or buried in thousands of words inside the man page, but could be explained concisely with one simple example). the corollary is also true: examples are so effective (in my opinion) that they could go ahead and omit the "dash-this and dash-that" from the man page, and I could likely infer what those options mean just by seeing the example, or an example with a one sentence comment saying "recursively scan directories" (and I see -r). the letters often don't correlate to an actionable-thing that the tool does, the man pages don't cover the most common, useful way that tool will be used, giving equal weight (or rather, equal ambiguity) to arcane, never-used options. They take 100 words to explain what a 10-word example could show. I honestly don't recall the last time I read a man page and actually found what I needed.
The ugly unethical underside of Silicon Valley
You really think that "in real life" the police just arrest whoever is the first suspect and don't investigate farther? That has not been my experience.
I don't think a small ad hoc study would be taken seriously. The dynamics here are institutional.
When someone fully re-implements khash in Rust and publishes the library, that will become a question which merits consideration.

Meanwhile, from the task description: Please don't implement your own custom "hash table" - it will not be accepted.
Good point. Anything is better than the office driven computer classes. The PI does indeed provide strong educational benefits to improve insights at the electronic level.

My only complaint, and weighted by the fact that the rpi team did deliver on most feature, quality and cost while so many ventures failed to even finish prototypes, is that the SoC is a monster. So no kid will ever use it to go further than python and gpio. A stupid forth CPU would be as good for electronics, but also teach some mathematical programming ideas (recursion, trees), basically the whole computing fundamentals.

Maybe my idea would have failed.
Getting started with Node.Js
What code did you use to make it print that error? I only get that error if I access the array directly with a subscript (i.e using the constant 4 instead of 4 stored in the variable 'a').
From Secretary to Software Developer: The Hard Way
I can never decide if enforcing (effectively) final is a good feature or a bad one. Sure, you cannot shoot yourself in the foot with these limits, on the other hand you loose all the power of real closures.
Completely different experience here. N6 worked fine when I bought it about a 1.5y ago, then, when updating, turned on phone encryption (can't be turned off) and it's been a painfully slow ride ever since. Camera's glitchy and veeery slow. It's been getting to the point where I'm on the brink of throwing it against a sidewalk at times ;)
Agree! I think in this case these drawing have a lot of implementation details. It is actually the pattern table, the palette etc.
If two threads independently mmap the same file, what is the thing that Rust forces them to synchronize on?
The article says

> Women, however, did not seem to be distracted by the rock music, and none of the three tracks made any difference to performance or speed.

etc.
Compared to C++ even Java looks good.
Undoubtedly. However there are three sets of data you need to a functional system: Training Data and Validation data sets (a lot of sources exist already) and the data set you want to get insights from (Novel data sets usually).

These of course work together in reinforcement scenarios.

So for example if you want to build a tool that tells you what kind of objects are in any given image you can use ImageNet to Train and Validate your CNN. At that point you have a classifier. But for an actual useful application you need a user to submit new images to actually give some kind of valuable output.

It's that second data set that is super hard to get - because it's novel.
Hey, thanks for checking it out. Glad you like it!
You still can. Impressive bit of engineering.
I've heard that people with hyperhydrosis have a lot of trouble with biometrics devices as well as smart phones. If your skin is too moist it just kinda gums up the works.
[Posting sort of anonymously] My spouse and I will probably never see eye to eye on porn. I agree that it's a bigger issue, but do I need to address it?
That's true, but it doesn't typically work out of the box. Postfix on debian and ubuntu, for example, won't allow relay through localhost....unless it's sasl authenticated, which requires work.

So, yes, you can, but software like Wordpress includes a default configuration that works for most people without additional work...piping to /usr/bin/sendmail.
A feed to watch an An Altair 8800 computer?

http://www.insecam.org/en/view/376032/

This is...puzzling...

Edit: Ah... it says "You can play Zork and Ladder on this computer and watch as the LED flashes !"
GI tract blockage is an ugly way to die.
The Age of Analytics: Competing in a Data-Driven World (full report) [PDF]
Yes, but they completely undermine the appeal of JavaScript for getting things done quickly and easily for the JS-competent. If I wanted to write my JavaScript as bureaucratically as one writes Java or C#, I'd just use those languages.

Also, Angular 2 claims to be TS vs. ES6 agnostic, but practically, all documentation and resources are TS-orientated. That's more what I meant by fascism.

As far as the language premiums offered by TS: if I otherwise had to write ES5, I could see the value. With all the improvements offered by ES6—sure, type safety is not among them, but alas—I don't see any reason to use TS.
Research reveals crab is vegetarian at low tide, carnivore at high
Viners THEN and NOW
Huh. As a software professional I stopped blaming the user for that a looong time ago.
Let’s use const Here’s why
Ah ok since there are already people that drink then let's make heroine, that is orders of magnitude worse than alcohol, legal.
I tend to forget how many junkie-huggers there are on HN.
The union avoids requiring an allocation for, say, returning a Result.
Shareasale Page 6
not sure about leasing but too late to modify the comment re opendoor :)
I don't even understand why you'd want to remove functional programming from a low level language like Rust. Its focus on zero cost abstractions and LLVM's optimizations mean that functional patterns like map or filter are most often inlined with your function at the call site, combining their overhead with the caller's stack and optimizing the code down to a single loop that is far less likely to have a cache miss or branch misprediction. This gives you complete control over performance and it's really easy to write your own iterators/operators to tweak the final result.

Functional programming gets a bad rap for performance and clarity (of the generated assembly) because most of them have gigantic runtimes like the JVM or Haskell but the way it is implemented in Rust is quite a bit different.
I read this quote somewhere and its helpful:

The problem with threading is, shared mutable state. Most functional languages solve the issues with threading by eliminating, mutable. i.e. Only allowing "shared <strike>mutable</strike> state". Rust solves the issues with threading by enforcing mutual exclusion of either, shared xor mutable. i.e. Only allowing, "<strike>shared</strike> mutable state" or "shared <strike>mutable</strike> state".

> does Rust's ease come via the compiler catching errors for you, or are there mechanisms in the language itself that protect you from the pitfalls of concurrent programming?

Yes, the Rust compiler catches and responds with (very helpful) error messages, when "the rules preventing pitfalls of concurrent programming"[1] are broken. Rust has a powerful type-system, and a borrow checker[0], it does not have special mechanisms in the language related to concurrent programming. The powerful type-system + borrow checker, happen to additionally solve the pitfalls of concurrent programming.

[0] Both the powerful type-system, and the borrow checker, are extremely useful for other reasons not related to concurrent programming.

[1] "The rules preventing pitfalls of concurrent programming", are not defined by the compiler, but rather by the stdlib. Similarly, (session types)[http://munksgaard.me/papers/munksgaard-laumann-thesis.pdf] are a cool way to solve "the pitfalls of protocol programming". Again, nothing explicitly in the language regarding protocols, however, is solvable by a Rust library because of a combination of the powerful type-system + borrow checker.
Hi

Could you please refrain from doing that?

> Ok, but to me it was ok as it was a link to more content: resolution, discussions with the author opened by the author of the discovery: dawid_golunski.

https://www.reddit.com/r/netsec/comments/5kot1a/phpmailer_52...
Is this managed by an individual or is it something open-source that can be contributed to?

Edit: Nevermind. Found https://github.com/clarkgrubb/hyperpolyglot
On the other hand, I don't see why so many people think that battery life is so important. I charge my phone all night and almost all day at the office. If you have a desk job, I can't imagine running into battery life issues very often.
When you can fit a rust program that works as a voice-changing dictaphone into 1K of flash on a Cortex-M0, get back to me
I guess that means most of the complaints against vim & latex are then complaining for complaining's sake. (Not necessarily disagreeing, though...)
There's also a 28-page Executive Summary (PDF):

http://www.mckinsey.com/~/media/McKinsey/Business%20Function...
That's an odd example, given most video games are written in memory managed languages for performance reasons. Typically an allocation pool would be used for that case because there's some bound to the number of simultaneously allocated objects and each object has a homogeneous memory footprint.

It's also odd because you're replying to a well-known game designer.

That said, there are allocation-heavy workloads for which GC is well suited.
This is like the difference between a bare Atmega and an arduino.

The wemos has a programmer on it, a USB port, etc. It is based on the ESP, but it is a lot more than just an ESP.
I think it is no exaggeration to say that until Eelco Dolstra's 2006 PhD dissertation there is nothing worthwhile to mention: http://nixos.org/~eelco/pubs/phd-thesis.pdf
Then that's just back to the situation today with passwords/passcodes. The answer is rate limiting.
> Honestly, I feel safer writing in Rust than I do Java. Even Java has its footguns, especially with mutable state being shared across threads.

Apart from big differences between Java and Rust like memory management (not just GC vs. lifetimes but also stack allocation), approach to threading, and Cargo vs. Maven, Rust is so much nicer in the seemingly little things like:

* UTF-8 everywhere instead of UTF-16 everywhere.

* Unsigned integers.

* Bytes from I/O being unsigned by convention.

* Ability to bake plain old data into the data segment of the executable with genuinely no run-time initialization.
For static analysis to check for best practices, there aren't any free tools that come to mind that give you easily digestible info without usually doing some manual reversing and a lot of extra knowledge. HBGary once created a tool called FingerPrint that provided some of this extra info but that tool disappeared. I extracted out a lot of what it does into YARA signatures: http://0xdabbad00.com/2011/01/09/fingerprinting-using-yara/

The original purpose of HBGary's tool was for fingerprinting malware, but what it really was doing was just extracting out info from malware author's build environments that could be learned from the executables they created.

Other things you would want to check for though are:
- Are the executables code signed?
- When run, look in ProcessExplorer (for Windows) to see if it runs with DEP/ASLR/CFG/x64 and ensure every DLL it loads has ASLR and CFG.
- Run with wireshark on and ensure any network traffic is HTTPS.

There are thousands of ways for all these checks to give incorrect information with regard to whether the developers follow best practices or not, but if you do enough steps they'll add up to a decently accurate understanding.
I was under the impression that RSA was first, but I guess I was wrong.

DH is a key exchange algorithm, not a general public-key encryption algorithm. So, as far as I understand, TLS would work, but the others I listed would not.
The problem is that experience isn't very useful without feedback. And managers and interviewers get so little feedback about how well they do as interviewers I would imagine they don't improve much.
"i'm seeing two (obvious) bigger picture trends here that this story reinforces.

1. Digital authentication for purchasing is moving towards non-transferable biometrics ( i cant divulge my thumbprint like i can my pin )"

Unfortunately, your thumb print can be replicated and used. Check out this news story - police actually 3d printed a murder victim's finger to unlock their phone - http://www.theverge.com/2016/7/21/12247370/police-fingerprin...
Ribbon is brilliant. When nicely designed and really needed (in certain applications and only them!) it is the most important GUI evolution of the last years.
I guess the real question is:

"Why have foosball (table football) become so popular among management of software development companies?"
I've had similar thoughts. Rust does a really good job of asking, are you really sure you want that shared mutable state? It's possible to break out but I've found the friction involved has guided me towards better solutions.
> Absolutely agree that some MS degrees are pretty much less rigorous cash cows by now, that allow students to skip the fundamentals such as data structures, operating systems, and compilers.

At what point do we not consider operating systems and compilers "fundamental"? What percentage of CS/programming jobs require deep knowledge in these arenas?
These were useful, thanks.

Friend ended up going with haproxy -- didn't feel comfortable operating 3rd-party code in their core infrastructure.
there are billions of cats, they are totally useless, a big loss of energy, and damage for environment (they kill birds, lizards, bees, ..)
Could you, please, elaborate. In my opinion zero-cost abstraction is nothing but a catchy meme.

Could you provide an example, so I would try to implement such a wonder in one of classic languages I know, like SML or Scheme?
Glad I'm not the only wemos fan here. I like the original D1 better, though, since it fits all of the shields build for arduino (like the screw shield, which I've been putting on everything lately).

Wouldn't recommend it is a straight replacement, though, since it uses 3v logic, instead of 5v. A lot of stuff wants to see 5v, so you'd need a logic level shifter to use the wemos stuff as a drop in replacement for the arduino.

Only one analog pin, also.
Hi Steve,

We've met at Rails conf, in Tel Aviv many years ago. You seemed nice, so I'm motivated to try to give you my 2c.

I believe Rust can be more than safety but right now it isn't as you are imagining it.

I've started off in the demoscene in the early 90's, and so I've had my share of assembly, C, and C++ as a kid. I've built demos, games, generative 3D art with 8-64kb executables, without access to Internet or any form of proper knowledge, and it's funny how scared I am of attempting this again today when I'm much older, and much, much more experienced. I think one of the scary factors are the time-to-value ratio: I'm used to several orders of magnitude more productivity, and have much less time.

I think the most important take away from my background story that you can adopt is - make Rust playful. Fun is a a base element for curiosity, it what drives us where we're the most receptive - when we're kids - to learn, to experience, and to understand what will in be our toolbelt for the next dozen years.

Make rust playful. Make a game framework. Make it build on a mobile device. Make it build on a Pi (without docker, and the entire diarrhea of toolchain you have to use). Make it build for the Arduino. Cross compile it to Javascript (for fun!).

Often I try my hands at C and C++ again. When I do that, I'm not disappointed. I see a comforting place where I've spent my childhood at (and with C++ - some of my professional life). I'm happy with how C++ evolved and how CMake works. I'm not happy because productivity didn't change for the better that much. It still requires around the same amount of time to build things in C and C++ as it did years ago.

Where I do see a change is with Go. It gives me the same comfort, with an insane productivity factor. It also had fun baked in from the start - it can run on mobile, it can run games, and it can compile to what ever I want without a fuss.

I hope my thoughts will make a real change. I really do think this is the missing part with the Rust story.
They are getting cheaper and yes, they are great. I have a e-twow scooter. It has a 450w motor. I think that an e-bike would be better because the wheels are bigger, but for some reason there are only 250w bikes.
In the Bay Area, with traffic, an e-bike can be just as fast as driving.

I used a Specialized for about a week, the level of effort was the same as walking, and almost as fast as driving (rush hour).
Due to the rate limiter, it was <10% faster than I could achieve myself on a bike.

I would wholeheartedly recommend it to _anyone_ currently driving to work, it's a LOT cheaper than a car.

Personally, I went back to a regular bike, I wanted the exercise and found the rate limiter (19mph without a motorcycle license) to be too frustrating.
Those prices are absolutely insane. I bought a $100 craigslist bike, added a kit like this http://amzn.to/2i8xhts for $250 and another $100 for some cheap lead acid batteries. (Similar lithium batteries would have been about $400). So I paid $450 total and it got me back and forth from work 7 miles away ever day for 2 years before I moved and sold it.
Dockerizing your Application
I was unaware of that - I stand corrected :)
This is why I didn't invest in theory, I wanted to feel the music. It happens once in a while and I can surf the music's surface for a minute totally free. It's a bit crazy but in these moments the brain really sees things like smooth hills and if you're tuned in, you're like a ball rolling in these, picking a bit where you'd like to roll next, or maybe bounce because why not.

There's a thing you get after a while on drums, the internal clock becomes stable. You can play whatever, if you feel you don't make sense, a part of your mind is still ready to catch the groove as if you never played outside the click.

In Harmony there's a similar sensation, you don't care about the note, any note on any chord will taste something, but you learn to swerve back into the harmonic movement if you think you're turning into noise, or if you want to express something sweeter to the ear, depending on your emotions and the overall flow.

I believe to learn that, the best way is to play off. Off time, off key. And feel what it is to lock in again. Then play on that sensation.