skysight-inc/HackerNews huggingface dataset:
The problem is this is an issue with any comparison of hex digit strings. It's a possible issue with any hash function not just MD5.
I've met far more developers who would add some extra tech to the stack without a lot of deep thought about the actual consequences of doing so, than those who would either not do that, or discuss it with peers/senior devs/mentors etc.

If you give developers carte blanche permission to add whatever they feel is necessary, you're using your business success/failure to teach them. That is wrong.

As the CTO, the author's primary responsibility is to make sure the right tech decisions/solutions are made. It sounds to me like he's doing exactly that.

If an experienced, "responsible" developer thinks they can make good use of tech X, surely he/she will understand that there is a standard process to have this new thing approved for use, and then it can benefit the entire company.

If you can't identify to someone else why you think tech X should be used, what problem it solves, what process it makes more efficient, etc, then you're probably the wrong person to be making a decision about adding new software to the stack.

Any "engineer" (I really bet actual engineers love how software developers have co-opted that term) who is "responsible" as you put it, and wants to add software to the stack, will surely discuss that plan with at least someone, right?

Or maybe not. Maybe you think every developer should be allowed to make grand architectural changes to a platform worked on by 200+ other staff at their own discretion? If so I suspect somehow, that your reply is just a knee-jerk reaction to a place that expressly prevents cowboy-developer antics before they begin.
There is ample genetic evidence of the Eastern European origin - I am interested in this as well. Any sources?
Although historically closures have required GC, both C++ and Rust have implemented a design for closures without that requirement (and the latter manages to retain memory safety while doing so).
This also happens with (quite common) high templar vs ghost duel. Both have ability to instantly kill the other type, with the same range. When you move them further than that range, and order both to use that ability on each other - the unit that was produced earlier always wins.

It's not game breaking, but players noticed this.

To avoid such problem with marines shooting (this would be game-breaking, because marines make up bulk of terran armies for most of the game) - there is miniscule random factor added to delay between shots for each marine.

If it was important enough - they would fix the high templar/ghost problem the same way.

BTW in e-sport games (like Starcraft) - finding such bugs and abusing them creatively is part of game. For example mineral-walking is legitimate techinque to micromanage your workers, used even in low-level matches, and it's caused by workaround of bug in Starcraft 1.
Equal as in égalité[1], not similarity.

[1] http://en.wikipedia.org/wiki/Liberté,_égalité,_fraternité
Show HN: Get alerts when your cron fails
Novaroma – Auto Download Tv Shows, Movies and Subtitles
Aha! Moving parts are failure-prone because of friction. And friction happens when something's changing under you. Which means mutation. Nice analogy ;-)
Thanks for the positive tone!

Regarding annotations, the "Fast & Cheap" paper contains the following:

The language uses carefully chosen default capabilities
to minimise the required annotations. In addition, the compiler guides the programmer as to which annotations should be used, infers annotations locally, and performs automatic recovery in some circumstances. As a result, when implementing LINPACK GUPS (in app. F) we require just 8 capability annotations and 3 uses of recover in 249 LOC. In approximately 10k LOC in the standard library, 89.3% of types required no annotation.
I agree with pretty much anything you said, but I disagree on humans being poor runners. We are amongst (if not THE) most endurant runners on the planet. Humans have been known to defeat horses in long races [1]. As for running on the heel, this is more of a modern shod runner curse than a natural instinct or predisposition.

[1] http://en.wikipedia.org/wiki/Man_versus_Horse_Marathon#Winne... (might be anecdotic, but still somehow revealing)
This sort of thing stems from fundamentally different ways of thinking about the task of programming, depending on what kind of problems you're tying to solve. Let me sketch some categories of programmer:

Mathematician: primarily concerned with numbers and the stateless universe of mathematical objects. Primary audience for functional programming.

Roboticist: because "control systems engineer" doesn't trip off the tongue. Primarily concerned with physical machinery. Trained on things like Kalman filters and lift controller state machines. Would like the certainty of functional programming but tends to write sphagetti assembler instead in order to reduce interrupt latency.

Plumber: someone who would like to build a system by joining together parts. Perpetually disappointed by how hard this is. Labview is the archetype system here, although a lot of web framework/"stack" talk shows this kind of thinking.

Bureaucrat: someone for whom the records are the primary concern. Tends to build systems which look like CRUD but actually embed a complex workflow which is divided between humans and computers.

The thing is, only the mathematicians are really comfortable hiding all the state in the world behind monads. "Plumbers" might be the next easily persuadable, as FRP maps quite well to this way of thinking, as does map/reduce. But there isn't quite the tooling to enable building software out of pieces joined by pipes.

In the electronic and bureaucratic control systems, changing state is the point of the program. The thinking revolves around state, when it should be updated, and what it should be updated to. Stuffing this all behind a monad results in unnatural-feeling programs. There's a hybrid point where you have a "state" part of the program and a pile of "next state" logic which is basically the only way to write Verilog/VHDL - and it's hard to learn and not so naturally expressive.

Perhaps the way in is something like C++'s "const": you take a language that isn't functional and mark parts of your code as non-state-modifying, making it easier to subject them to formal reasoning.
I like this one a lot:

Entry[Square] = BLANK; // Could be moved out of the loop

Maybe I'm reading too much into it, but this type of thinking makes me smile. The guilty perfectionism, "this can be improved."

Were I from Singapore, I'd be happy to see it in the person in charge of my country.
Stopped being interested after reading "It's deadlock free!", "because Pony has no locks at all"... yeah but actor X waiting for actor Y which waits for actor X is a deadlock. It's not a matter of lock primitives, it's a matter of software. (yes, x-comment from reddit)
As an Indian, believe me when I say this: "We already have good internet". Our data rates are extremely cheap. I paid less than 1 INR per day (it costs more to get a cup of coffee, which costs around 5-10 bucks) while using Opera Mini on a Nokia dumbphone.

India has progressed beyond the point where rich corporations need to help our country. We have amongst the world's largest telecom industry and usage statistics. Everyone owns a cellphone, and more and more people are realizing the benefits of a smartphone (Whatsapp primarily, which is way cheaper than SMS).

A basic android smartphone costs 100 USD in India. If a person can purchase a smartphone that costly to "access the internet", they are rich enough to afford a data plan (which costs around 3 USD/month).

No, we should not be celebrating this.

(I hope this did not come across as a rant, slightly furious now).
Show HN: Pick colors from image or color wheel
Mostly it seems like overkill to run a ssh server + client to get a local terminal.
> most British IT businesses end up becoming consultancies

> [programmers/designers/ops] marginalized as second class citizens

I think these trends were probably true in the past, and were driven by the investment environment in the UK.

10 years ago, early-stage investment was pretty hard to come by in the UK and investors were hyper-focussed on companies that could show early revenue. As a result, many entrepreneurs were forced to bootstrap, and consulting revenue was the only way to make ends meet.

However, things are clearly changing. We've had some breakout successes this year (Transferwise, Funding Circle) and some new entrants in the early-stage funding landscape (Entrepreneur First, Mosaic, Hoxton et al). Investors seem more willing back young, technical founders pursuing riskier projects.
>> Find a defined amount of cruft that needs to be fixed backwards incompatibly, so you do not take 15 years for it or fail completely.

Python 3 have some traction, but the project's start wasn't that different compared to Perl 6... :-)

>>Perl 6 will have issues, too. Are you going to change them all at once again and take another 15 years for Perl 7?

The Perl 5 side has a heavy emphasis on keeping backwards compatibility. You have to declare the newer Perl features to use. I assume a similar path is planned for Perl 6? [Edit: And as cygx pointed out, the grammar for the language is dynamically extensible.]
Well, they're easy, convenient, and have subtle downsides: difficult to test code that depends on them without machinery to reset the seed, potential problems in a multithreaded environment, may be used in ways that do not produce evenly distributed outcomes, and for CSPRNGs a whole other bunch of crypto downsides.

Banning RNGs from e.g. avionics control systems sounds more like a good decision than a bad one.
As far as I can see the prefix is not sufficient, a single non-digit character in the tail fails the conversion (and the equality check): http://3v4l.org/ctASF (vs http://3v4l.org/5FvJu, exact same strings but for the last character replaced by a digit)
Sorry if I'm ignorant, but what is an unlimited page hierarchy?
I had a dig around, you are right that transport of lithium is relatively negligible in the energy budget (back of an envelope calculations suggest around 0.5 kwh for a 1 kwh capacity battery), transport of other material such as nickel is actually more important, but even when you add them all together it is only maybe a couple of percent or so of the energy involved.

It seems that the drying process is the one to target as it accounts for around 50% of the energy budget and uses big electric ovens. Electric ovens are something that respond very well to economies of scale though, given the losses are a function of the volume versus the surface area, so you could see significant reductions there with a factory this size.
Dimensional analysis to the rescue.

The space of physically meaningful equations is vastly smaller than the space of all possible permutations of variables and operators.
I'm pretty sure they wouldn't pay out even if he wasn't a factor. I think they'd try to claim that him being there makes the insurance invalid.
Isn't "map" the proper CS term rather than a dictionary?
Looks more like C than idiomatic C++ at a first glance.
Singapore's Prime Minister Lee Hsien Loong Shows the Source of His Sudoku Solver
> Perhaps the way in is something like C++'s "const": you take a language that isn't functional and mark parts of your code as non-state-modifying, making it easier to subject them to formal reasoning

Or even better, you do the opposite: non-mutable is the default case, and you use special keywords when it's not.
> What would be the cost of installing "a DSL line" for the 600k+ villages in India?

Worthy

> without central electricity supply.

If you have electricity for a base station and charging phones, you also have for pbx and copper wire.
Scala on Android seems promising.

There are also lesser known alternatives such as Kotlin (by JetBrains), and you can use Groovy too.

There's a very nice testing framework in Groovy, by the way: https://code.google.com/p/spock/ - and you reportedly you can use it on Android too (I didn't try it myself yet): https://github.com/pieces029/android-spock
> Unicode is great, but standard library APIs should understand each other without the need to call decode.

If one "standard library API" generates integers and an other consumes strings, would you expect the second one to take the output of the first one without conversion?
Yes, but then you need either bash or zsh. It won't work on bare sh (or on dash, which is the default /bin/sh on Debian and derivatives like Ubuntu).
Javascript seems destined to eventually dominate the "scripting" language space. It just has unstoppable momentum now. The pace of evolution of the language and the implementations puts Perl, Python, PHP and Ruby in the shadows. And I say that as someone that really likes Ruby and is happy enough writing Python.
First Hackatrain in Holland Gets You from Amsterdam to Tech Open Air in Berlin
I think byte code compatibility is gone now, its supports the current and previous versions only.
2g Internet in India already has high penetration, with most urban areas (any place with >10000 population) having 3g access.

I am not sure about DSL lines, but BSNL (Indian public telecom operator) has faced this exact issue 10 years back when telephones (landlines) were becoming commonplace in India. We got a personal phone somewhere in '98 I believe. It only took a few more years before the telephone lines had reached Dangoli (which is my remote native village).

Today, the very same village boasts of multiple telecom operators (cellular). We have done this in the past, and we are doing exceedingly well even today.
The Netherlands now has its very own Hackatrain. The Hackatrain is a train in which 50 teams of 3 hackers will be brought together to build innovative solutions to make travelling by train more pleasant. Departing from Amsterdam, the Hackatrain takes off on July 14th from Amsterdam and has the Tech Open Air festival in Berlin as its final destination.

While on the Hackatrain, technology students, developers and startup-entrepreneurs are challenged to develop applications within the theme ‘Technology, Innovation and Mobility’. De Nederlandse Spoorwegen (Dutch Railways) will provide participants with the necessary open data and API’s. Experts from Ordina will give some solid advice. Potential participant can sign up until June 19th
Management Team

Jim Zemlin, Executive Director
Amanda McPherson, Chief Marketing Officer, VP of Developer Programs
Mike Woster, Chief Revenue Officer
Steve Westmoreland, Chief Information Officer
Laura Kempke, VP of Collaborative Projects Operations and Marketing
Russell Farnell, VP of Finance and Human Resources
Angela Brown, Sr. Director of Events
Jennifer Cloer, Sr. Director of Communications & Community
Philip DesAutels, Sr. Director of IoT
Dan Cauchy, General Manager, Automotive
Mike Dolan, Sr. Director of Strategic Programs
Clyde Seepersad, General Manager, Training and Certification
Karen Copenhaver, Legal Counsel
Andy Updegrove, Legal Counsel
Dan Kohn, Senior Strategist

14 non-coders (and who knows what lies underneath) being paid to keep 5 engineers paid?

Linus Torvalds
Greg Kroah-Hartman
Till Kamppeter
Richard Purdie
Janina Sajka
I've found exactly the same thing.

As someone writing applications using Python 3, I found the switch to be easy and I haven't had any problems with libraries. I've switched from some of the old ones I was using to more modern alternatives that are being actively developed.

It annoys me that there are people on Python 2 that haven't really tried to make the switch and stand on the sideline shouting insults at Python 3. It's a tremendously self destructive thing to do for all involved.

To anyone looking to get started with Python, there's no real reason to start with Python 2 these days.
Toner wars, right?
Here is where the cultural differences comes into play. In a particular culture, there is an usually semi-well defined set of protocols that assists us to decipher the non-verbal communications. But in a global village, I find it easier to give everyone the benefit of doubt.

Why? Because to me it feels, we are mostly rational people and at the end of the day we don't want to do anything that will hunt our consciousness. So we will always try to balance out our good and evil.
This is great, I've been looking for a good introductory resource for SQL in a while!

One thing, though, there's a mistake in exercise 3. While it says "Find all the titles directed by John Lasseter", only a "SELECT * FROM movies" query will make it go green, while "SELECT title FROM movies" (as would be expected from the wording) does not.

Is this Open Source?
The author does mention Second Deployment Syndrome. And Perl6 most definitely is a 'second system'.
As evidenced by using Java in the first place, and considering C# for Android at one time ("If Sun doesn’t want to work with us, we have two options: 1) Abandon our work and adopt MSFT CLR VM and C# language, or 2) Do Java anyway and defend our decision, perhaps making enemies along the way")?

Or choosing Groovy-based Gradle as the main build system for Android?

Or not integrating Dart VM into Chrome?

Unlike Microsoft in their evil era - their policy has changed a lot since - they don't seem to be pushing forward their own standards and inventions at all costs, they seem very pragmatic about it.
Product hunt invitation
hello guys,

i need a product hunt invitation. any help would be great..

thanks!

veyselirlanda@gmail.com
Well, I did use node.js a couple of times for stuff that would normally be a shell script. Like simple scripts spawning some processes and killing them on certain events. But I don't think I'd use a JavaScript shell. sh seems more writable for shell usecases. But if there was a powerful js shell comparable to zsh I might! Something like emacs shell where you can use a kind-of-bash syntax and elisp at the same time would be cool.
My impression is that the biggest impact MM had since becoming CEO of Yahoo! is the change in perception at the level of Wall Street, journalists, and analysts. "She must know what to do. She's been so high in Google ranks" By no means I'm implying that MM doesn't have a plan and some signs can be seen here and there from a customer perspective: better iOS apps, a budget for Flickr, more users through the acquisition of Tumblr, etc. But at the end of the day, what matters for Yahoo! the company is this:

> In eight of the nine quarters that Yahoo has completed since her appointment, its display-advertising revenue has seen a year-over-year decrease.
The question wasn't about functional programming per se, but about lexical scope.

"let" keyword in ES6 allows Javascript to have "lexical" style scoping (with some caveats due to JS legacy).

That said, several ways of scoping a variable can be had in functional programming. Have a look here for some more explanation with regards to Common Lisp:

http://stackoverflow.com/questions/463463/dynamic-and-lexica...
How to increase 3x your contact-center performance on mobydick
That sounds... interesting. So if A1 is on a different segment, but has a faster link (less congestion?) to A3, than A2, even if it takes 1000t time to send the first message from A1 to A2, and only 10t+t time = 11t time to send a message, from A1 to A3, and from A3 to A2 -- the plan is to guarantee ordering of messages m1, m3 at A2 (delaying m1 at least 989t)?
C/C++ SonarQube plugin based on Clang is out
> You could pass a global state in and out of every function in your program, but why not make that implicit?

Because making it explicit allows you to reason about what a piece of code does without inspecting every little part of it for the global state it touches.
Globals and, more serious offense, braces on newline!
Perl, Python, and PHP: or why PHP just sucks because I can't figure out its benefits and Python 3 sucks because change and Perl sucks because Perl. Every language solves some problems well and some not so well. Why does everyone (figuratively) bash other languages simply because they aren't quite right for your particular use case??
Can you raise a child on Skype?
For context:

This is a simplified example derived from one that the author apparently got from an older discussion started by Peter Van Roy [1] that both of them were involved in (and which I happened to read back in the day).

The argument here is about modularity, namely encapsulating internal state within a module without exposing that state to the outside. (For example, so that one can introduce a module-internal auditing mechanism or a cache without altering the module's API.)

Peter Van Roy, of course, is one of the principal authors of Oz, so he may have some natural bias, but I've always found the argument persuasive.

For testing and validation purposes, one will obviously need to use appropriate techniques (e.g. specifying and validating state invariants).

[1] http://lambda-the-ultimate.org/classic/message9361.html
There is also the issue that internet.org is exclusively available to Reliance customers. You want free internet? Well, you will get it, but you have to accept the shitty telecom policies (non-internet) that reliance brings with it.

Reliance is also known to be trigger-happy ISP, with lots of censorship issues. (Reliance also owns a media company, and often bans torrent websites right after a release of their own films).
22 Fintech Apps Coming to Apple Watch
Cutting calculation accuracy can trim power needs of supercomputers
Apple Watch and Finance: Developing Apps for a Wearable World
> most wanted a practical language they could "get a job" with

This was me in college. Especially early on, I kept hounding my professors why they weren't teaching a particular language (e.g., C++) or toolchain (Visual Studio). It wasn't until well after I graduated that I appreciated the distinction between using tools and making tools---and that my professors taught me the latter.
It is way more relevant than you think. At some point, someone is paying for these devices (running where? Home networks? Cheap VPS? Turn-key application hosting like webfaction?) and most importantly, someone is paying for the storage of photos and videos.

It is pretty much like wordpress. And while I can see some of the more tech-savvy running this out of their home server, most people would want to have this in an actual datacenter, and they would need something on the order of hundreds of GB of storage. Unless you piggyback on other services (flickr for photo storage, youtube/vimeo for video), I don't see this costing less than $10/month. Even removing the cost of storage, $5/month seems like the lower bound.

So, how do you finance the operational costs? If you tell me there are people willing to pay $12-15/month to get out of facebook, I'd say there is a business. Otherwise the numbers will never match and this idea of a private cloud will always be some hackers's wet dream.
Well, all languages translate to machine code eventually, but that doesn't make all languages equally easy to understand.

Specifically, some people try to understand code by mentally stepping through it. IMO that's a lot easier in imperative languages than in Haskell. In imperative languages, you step down one line at a time, and loop back in easily specified places. In Haskell, on the other hand, you need to imagine graph reduction in your head. That's already pretty hard for most people, but it gets worse! You can't mentally step through a Haskell function in isolation, because the sequence of graph reduction steps depends on what the caller will do with the answer.

That's not just a theoretical difficulty. Take a look at this thread: http://lambda-the-ultimate.org/node/3127. A bunch of programming language researchers and long-time functional programmers are looking at a six-line Haskell program implementing the Sieve of Eratosthenes, and cannot figure out its big-O complexity. I can't, either.
Please consider the time it takes for a new language to be fully developed and to take hold. These major revisions are simply new languages, because they _break backward compatibility_.

Except, um... PHP.