skysight-inc/HackerNews huggingface dataset:
I truly hope this will make all NSA employees that have worked on mass surveillance infrastructure come to understand the importance of privacy, and reconsider their participation in the similarly intrusive but far more large-scale crimes that their own organisation is guilty of.
If you copy your standard library's memset in a separate DLL that is not the standard C library, the compiler will not even see the code during compilation, so it has to compile a function call.

Although I'd like things to behave this way, I don't think this is true. The C standard library was incorporated into the language spec for C89. The behaviors of the named functions within it are specified, and the compiler is allowed to inline it's own version (ignoring your custom code) and then optimize out the inlined portion.

So while it's possible that the external linkage approach still works with certain compilers, it's not portable. I believe you are OK with the external approach if you use a non-standard name (my_secure_memset_pretty_please()), but that just shifts the problem to forcing the compiler to generate your external function without making the same dangerous optimizations.

In the end, I fear you are left with three options: blind faith, non-standard language extensions, or switching to a more secure language (likely assembly). If there are other options, I love to hear about them.
One of my kids started with Codea on an iPad 1 (and it still runs on that ancient hardware today!) and is quite pleased to be able to tell people she can code in Lua. Overall, it's extremely well done. However, I think it gets hard to work through high-level logic -- you start off writing code in the draw() function, doing things once per frame draw... getting to a more abstracted level has been difficult in Codea.

However, her school does some Scratch every so often, and she's taken to that too. Scratch exposes lots of levels of abstraction, and the visual editor approach makes it easy to experiment with different ways of doing things. She's done several school projects as Scratch games. (Which, to me, is way better than gluing crap to pasteboard.)

I've tried to get her started in Unity -- I teach a Unity class to new hires at work -- but it's been uphill. Too abstract, too conceptual, too much surface area. And C# has too much syntax that gets in her way.

Lua is a better language for her. But Scratch is even better: no syntax, just ideas. Also, Scratch has a lot of localizations. So, give Scratch a try!
How is Rust incomplete and too complex (especially "incomplete")?

Compiler-enforced-correct manual memory management may not be the right choice for every project, of course, but I think "too complex" is too strong of a way to say that. That implies there was a simpler way Rust could have achieved the same goals, and I've never seen anyone suggest one that works.
Someone correct me if I'm wrong but I think not using the JVM makes deployments much simpler. At least that was one of the benefits a team at Amazon stated about switching to Go while I was there
It's an interesting language test, of how easy it is to understand an open source project.

Looking at github, the lines of code are usually easy to understand in C and java. What's difficult is how the parts of the project fit together (which is never documented). Does Go help with that?
Introducing more arbitrary jargon isn't going to make the distinction any more clear to a layperson, but if you do choose a neologism "libre" is just plain awkward.
> Go won’t let you abstract yourself in the foot.

What a brilliant sentence.
>why does the government care about the neighbours of their employees???

I think that's so they can ask the neighbours questions.
For instance, the Gnu Public License serves the needs of Oracle very well and quite possibly helped MySQL AB be salable to Sun and thus to Oracle.

Most of us who use MySQL are limited by the GPL, whereas Oracle has the right to use it in other ways, license it to specific customers on different terms, etc.
Sinapps – Create your website with a social network
I've been through this multiple times. Basically they just come out to your neighborhood and ask your neighbors if they've noticed anything suspicious going on. Strange behavior, odd visitors, unexplained affluence, etc. Takes all of 5 minutes. If it were my job to vet people, I suppose I'd be doing the same sanity-checks to make sure I wasn't dealing with an unstable person: drug addict, wife-beater, etc.
Front End Developer at Playtech in Hammersmith – Job
>Many critics I find though, fall into the second bucket. The answer to those critics is always the same: “Go is just not for you”. Some people see this attitude as stubbornness from the community, aversion to improve which will doom Go in the long run. They just don’t realize that some people want different things.

This trivializes all critique to "to each his own".

That some people "want different things" doesn't mean all things people want are equally valid.
Harassment, bomb threats, syringes, doxxing and sock puppet accounts have happened: they don't become 'false' because you support the politics of the people that commit them.
I think it can help with that in the sense that Go packages don't have complex boundaries and the type system is simple and self-contained. You don't have to trace an inheritance hierarchy to understand any given type, so a project of multiple packages is generally easy to understand just by reading each piece independently.
Oh! That's what caused 60 Hudson St to be, err, 60 Hudson.

https://en.wikipedia.org/wiki/60_Hudson_Street

A ridiculously high percentage of the Internet flows through that building, which was once Western Union's HQ.
is there any drag and drop free tools or games about building games?

The first order help a young person needs is being taken seriously and encouragement in their process of discovery. The important conversation isn't "Use this" in it's strong or weak forms. It's the default StackOverflow comment: "What code have you tried? What error are you getting?" (perhaps in a weaker form, perhaps not, depending on the child).

Let the child own the process and understand that the most likely outcome statistically is that the actual process of creating a computer game will turn out to be unattractive as it is to a first approximation for everyone. Making games is hard for highly intelligent adults - much harder than writing a Rails app.

The mistake that I find easy to make with my own child is an unwillingness to let their interest unfold in its own time as part of the growing process. Adult interests and behaviors and skills take years to develop. The twelve year old boy will be radically different intellectually in two years...or even one. It takes patience and a long-term view and an understanding that many of a child's interests are passing. Some come back, most don't, and what tends to come back are interests that they find themselves sharing with friends. To put it another way, your nephew's English comprehension could be orders of magnitude better in five years. His understanding of mathematics most certainly will.

For concrete advice:

Provide high quality resources - the sort of durable tools and books and websites that one would give to an adult. The interest that wanes in a month at twelve may be rekindled for a year at thirteen and arise from hibernation to become a career choice at twenty four...and there sitting on the bookshelf is a weaker form of The Art of Computer Programming for games.

Good luck.
Yes it's an awkward situation wishing someone who has passed a happy birthday but I strongly disagree with this statement that no one cares or reads the messages. Yes, I know people who are annoyed by it and they are welcome to hide the date, but I read every message people leave for me on my birthday and am glad to sometimes be able to take a little time out of my busy life to reconnect with people with this excuse.
So your critical ISS controls share a network with internet browsing endpoints. Nice!
"Between C and Java" hits it very well, I'd say.

When I jumped ship from C to Java, Java's object orientation wasn't exciting to me, and its exception handling is an acquired taste.

But dynamically growable, garbage collected buffers are something I'd missed for a long time. And the simple ability to concatenate strings without first reserving space for the result. Oh, and hash maps! Remarkably versatile data structures, those.

Coming from C, Java was a delight. Java would have a lot more trouble dragging me away from Go.
I also recommend Game Maker, it's an excellent tool for what you need, you can make fully functional games quickly with only drag and drop, and when you learn enough you can dive into the code and do much more (if needed).
Talk about one helluva beachhead.
One Weird Trick to Get Rid of Blackheads
> it looks like Go hits a sweet spot between C and Java?

If your sweet spot is 90~95% java and 5~10% C.
I'd recommend starting at code.org to learn the basics of programming (loops, etc.) and learn how to make basic games like flappy bird:

http://studio.code.org/

Then depending on his interests and abilities, there are various beginner-friendly tools for making games below, from easier to harder and free to commercial.

I would talk with him first about what kind of game is he interested in doing. Something like flappy bird or an arcade game, or modding minecraft, etc. If you make it about learning to program for programming's sake, he may get tired of it quickly and not be interested in programming again for a long time, if ever.

free:

https://www.tynker.com/

https://scratch.mit.edu/

https://www.gethopscotch.com/ (ipad)

http://www.toyengineapp.com/ (ipad)

http://twolivesleft.com/Codea/ (ipad)

http://www.stencyl.com/

a little more advanced (text instead of graphical programming), works in browser to make HTML5 games:

http://www.playmycode.com/

windows only:

http://research.microsoft.com/en-us/projects/kodu/

commercial:

http://www.learntomod.com/ (mod minecraft with visual programming)

http://gamesalad.com/

http://www.yoyogames.com/studio

https://www.scirra.com/construct2
What are you talking about? I'm 33 and I've thrown everything out and started over with new platforms, tools, libraries, and languages several times in my career so far. I haven't slowed down at all after getting married and having kids either... I've just gotten much better at recognizing dead ends early and not wasting time on stuff that doesn't matter.

This age trope seems to be from some early days when technology did move slower and people expected to spend their entire career working on the same technology. I've never had that expectation.

Anyone who thinks experience is worthless is an utter fool. My work hacking on an F# JavaScript compiler directly translated to doing massive CoW in-memory snapshots using immutable data structures in C#. My early work with SQL and transactions informed my approach to using atomic CMPEXCH to do optimistic in-memory commits, giving the entire app database-like MVCC transactional semantics.

All of that has been invaluable now that I do iOS development full time. Swift's approach to value types and mutability are natural fits to a wide range of things (like undo stacks and concurrent background processing while publishing consistent changes to the UI). Different platform, language, tools, etc but the experience was far from wasted. Hell, having done manual memory management back when iOS was an after-hours hobby project gives me the tools to find memory corruption bugs and diagnose crashes in an hour that some struggle with for days. Even within iOS there has been massive change and upheaval. There again, experience with generics in C# pays off.

Doing full stack development, writing JS libraries, wrangling with CSS... It's all been valuable experience.
Dark Theme extension for Django Rest Framework
Not the parent, but I've read many comments here on HN from users who feel that if a language doesn't include an HTTP server in the standard library, it's not ready for production work. Ridiculous, of course, but that may be what the parent is referring to.
Oh Say Can You See
I have used SML, OCaml, Haskell, and many other languages, and I like Go, and use it for almost anything I do these days. So your statement is false. The only thing I did like more in functional languages was writing compilers (which ironically happens to be what I'm doing now in Go).
'The worst breach of personally identifying information ever'
Didn't Stallman habitually refer to a certain disk operating system as 'MS-DOG'?
You keep using the words "ECC patents" as if they meant something. If you used the term "computer patents", your comments would be semantically identical.

Key agreement based on the elliptic curve discrete log problem isn't patented.

Straightforward, efficient point multiplication for elliptic curves --- the foundation of the ECDLP --- is not patented.

The the DLP-based DSA algorithm, which was invented at NSA, is not patented. Every browser uses it.

The elliptic curve variant of DSA, ECDSA, is not patented.

Fast floating point math mod 2^255-19: not patented. First published by a rabidly anti-patent researcher.

Elliptic curve point compression --- sending just the x, not the y --- was patented. Most researchers believe the patent was invalid; lots of very popular software ignored it. The patent has since expired.

Edwards curves? Bernstein claims to have invented Edwards curve cryptography, after being in the room when Harold Edwards published them.

Using elliptic curves in random number generators as a key escrow system? Certicom does appear to have a valid patent on that. So maybe that will cramp your style a bit.

I could keep going, breaking down binary extension fields, 3-party DH, ratchets, specific multiplication ladders, but that would defeat my point, which is that the most important, most mainstream, most typical uses of ECC --- the only things anyone should be doing with them --- are all unencumbered. That you can generate a first-principles binary extension field curve without tripping over a patent hardly matters. But it's also true.

Please stop spreading FUD.
Well, it's a very common complaint (and I found it to be true when I tried my hand at Rust) that the lifetimes and general scope management can make your life hard -- and certainly harder than conventional GC languages. Rust, as a core language, has a lot more concepts to grok compared to Go or even Java.

As for incomplete, I mostly refered to the tooling and the available library ecosystem. Even Go lacks there, and Go is an order of magnitude better there than Rust. That said, despite the recent 1.0, the language is also heavily worked upon in several aspects (internals etc) and it doesn't seem that it's a "complete" offering that just happens to do incremental improvements, but a "we got an 1.0 out of the door, but we've got work to do to make it more mature".
http://learntomod.com

My kids and I have tried it and we like it a lot. Lots of tutorials and ideas. Easily worth more than $30/year.
I disagree, I think it's better to have a term that requires explanation than a term people will misinterpret. There's an existing connotation of free as $0 that you have to combat, rather than a simple new word/term to define.
From https://www.themuse.com/advice/the-muses-successful-applicat...

For each founder, please list: YC username; name; age; year of graduation....

Wow, I wouldn't have expected them to be so blatant. Not illegal, since YC is not hiring people, but, wow.
They collect the info in order to obtain anything a foreign operative could use to blackmail you. The kicker? OPM also stores the results of the Polygraphs. Were they accessed? I don't know.
Like the pragmatic way of reinventing software because they are of the "wrong" license.

Or are we talking about the pragmatic way of not updating software for several years because of licenses?
Introduction to WebKit Content Blockers
Or, if you're experienced and "old", you realize that all the technologies you mention can be picked up in about a week or two (for all not per technology) and are essentially just rehashing old ideas that you already have years of experience with.
You realize how with little effort you can pick up new things and recognize the stupidity of youth who write posts like this.
And you write way better code than most young people because you understand what matters and it's not knowing some specific framework or tool.
I write open source application security software (e.g. https://github.com/paragonie/easydb) and use a very permissive license to encourage the wider adoption of better practices.

I don't care if I make some schmuck billions of dollars off my work while I suffer through poverty (which won't happen from a simple DB library), I care about making the Internet more secure, even if only a little.

(My motivation was this blog post http://www.thoughtcrime.org/blog/saudi-surveillance/ by moxie)

However, for everything else, I'm inclined to use GPLv3 / AGPL and offer commercial licensing under MIT for companies (h/t 'patio11) instead.

Just my $0.02
Go seems to be attracting a lot of developers from Python, Ruby and Node because Go offers them the easy path to getting started that they place a premium on, combined with speed, but relatively few people from the order-of-magnitude-larger JVM world. Coming from Java I like that there's a very similar language that I can use for command line applications (a JVM sore-spot) or a simple daemon -- both because it doesn't require warmup and can be delivered as a single native binary -- but I just can't think of giving up the JVM's deep monitoring, low-overhead deep profiling[1], polyglotism[2], dynamic code loading and hot-swapping, and the awesome hacking power that comes with runtime bytecode manipulation[3] for long-running, important server applications.

[1]: Java Flight Recorder is the most powerful low-overhead profiler I've ever seen.

[2]: We use Java, Kotlin and Clojure all in the same project.

[3]: The ability to inject ad-hoc tracing code into your server and then take it out -- all while the server is running at full speed -- or to shadow binary dependencies so they don't clash, or to use (or write) a time-travelling debugger is like having magic powers. Bytecode manipulation is ultimate hackability.
Rewriting is (almost) always a bad idea. (and you're planning some kind of a rewrite, since the new system will replace the old one)

Let's assume that Team A will work on the newer version, while Team B will continue to work on the old version.

Team A will start working and implementing stuff. Team B will keep working on the old project and add new features. Team A will need to keep up and add new features that Team B added, and so on.

> Those members are eager and passionate to contribute
ANYONE is eager to contribute to a brand-new project!

--------

How I'd do it?

1) Incremental changes on existing product. Unless you're using some ancient programming language and you have troubles on finding programmers (or you have some licensing options, or the product is locked on a certain platform; e.g. is written in obj.C and you want it ported on Windows and/or Linux), probably this is the best approach. If the system is too big to add features at first, start improving existing code. Clean up. Add unit tests. Clean up even more and start adding features.

2) If you're set on rewriting and this is the only option to consider, feature-freeze the existing project and move all developers to the new project (every once in a while, pull a developer to fix critical bugs _only_). Don't pull the same developer twice in a row though and don't ask them to fix trivial stuff.

-------

Additional lecture (in no particular order):

- http://www.joelonsoftware.com/articles/fog0000000069.html

- http://programmers.stackexchange.com/questions/6268/when-is-...

- http://onstartups.com/tabid/3339/bid/2596/Why-You-Should-Alm...

- https://www.lessannoyingcrm.com/blog/code_rewrite_cautionary...

- http://programmers.stackexchange.com/questions/6255/have-you...
Backup and Restore is back in Windows 10
Im sure there was a USB backdoor open somewhere. So who's fault is it if the US can't protect its own data? Blame others! That seems to be the way they operate!
What on earth were you thinking?

To expand a bit on that: any job that requires you to list the names of random people that you've had contact with in the past should be avoided like the bloody plague, there is nothing that those people have done to warrant you putting their name into some form and subsequent database with unknown consequences for the people you decide to list.

They're not sheep to be offered up on the altar of your ambition to rise up in the ranks, absolutely nothing good could ever come for them. So if the penalty is perjury just walk, that way you don't perjure yourself.
How life imitates chess- Garry Kasparov (book review)
NixOS would be awesome on the server, but I'm worried about security updates. Debian/Ubuntu have a lot of resources and protocols set up for this; for users like me, I can follow the mailing list where every package updated with security fixes is announced, and the updates seem to meticulously follow announcements about known vulnerabilities. How is NixOS in that regard?
Yep. They are great. Some of the better ones allow for moving a window to another desktop easily too. Perfect for that, "but I need this for a minute" type use cases.

There is a trend toward minimalism going on. I'm not sure it's to our benefit.
The part about Oscar Wilde reminds me of another story of attribution, relayed by Dr Jerry Pournelle: http://www.jerrypournelle.com/archives2/archives2view/view24...

> Someone recently asked about the origin of the description of DC/X as "landing on a tail of fire the way God and Robert Heinlein intended rockets should land."

> Although I've used that often, it's a case similar to the time when someone at dinner said something clever, Oscar Wilde said "I wish I'd said that," and someone else said "Don't worry, Oscar, by tomorrow you will have." The origin is Dr. Arlan Andrews...

I would assume Oscar Wilde never said that either. :)
Guerrilla Fashion Show in Metro Los Angeles by Titelle [only on Holyvent]
I'd add the caveat that learning new paradigms can take longer than a week, e.g. "client-server" in all its guises, OO or functional programming, databases.

But once you learn a paradigm, variations on a theme tend to take "about a week or two", and almost all this new stuff is variations on existing paradigms.
I see. I guess I didn't really see much of a use case for random colors with constant variation of contrast. The demo does a pretty good job of demonstrating a compelling use case though.
That's not really my sweet spot, but if it have such a strong inclination towards Java, then would it be much easier for Java programmers to move to Go compared to C programmers?

And, what about python programmers, how would Go be for them?
That is just it though, is not a stupid attitude because the market that cares about this sort of thing and buys games is very small. Most of the complainers on HN do not play games. Over 95% of machines using the steam platform are windows.
rms himself has advocated for permissible licenses to encourage wider freedom (e.g. in the case of libogg).
I thought the most interesting observation was somewhat buried, specifically the way the author closely links intelligence to anxiety. That has a ring of truth to it.
Wow lucky you your nephew is interested in learning. Go for pacman, but before make sure he plays a bit so he gets kind of addicted to it. Then to spark his curiosity ask him questions about how he thinks it works, something like this: http://www.exploringbinary.com/how-i-taught-third-graders-bi...

Have fun! :)
The truth often has the curious property of both being funny and offensive.
Among other things, an unnecessary VM layer if all you ever run on is x86.
Does Java meet the criterion you're describing here?
They could? More like they are.
Embedded Linux Conference Europe issues call for papers