skysight-inc/HackerNews huggingface dataset:
To be clear: Free Software does not object to commercial activity. Copyleft requirements happen to get in the way of some commercial activity, which the FSF and related community finds objectionable for reasons unrelated to its commercial nature. Stallman opposes "noncommercial" requirements in licenses, no FSF license has these, and such clauses are reason to call a license "nonfree".
Engineer working on Hack here.

It's complicated.

If you use partial mode, which doesn't enforce that every function is fully typed, then it's trivial to break the type system by just using an untyped function. In order to ease conversion, we just assume the programmer knows what they are doing with untyped functions and let anything pass.

If all of your code is in strict mode, then we believe the type system to be sound. We haven't done any formal proof of this of course, and there have been plenty of bugs in the past. But that's the goal.

Some types are enforced at runtime -- just like PHP5 enforces class type annotations on parameters. However, at least for now, the runtime doesn't do a lot of the clever things with the type system that the static typechecker does. It's much more conservative with using the type information, and doesn't do things like check generics at all. (At least right now! We probably will change this in the future.) This means that we can play a little more fast and loose with the type system in the static parts; we want it to be sound, but it doesn't have to be right now; it's not going to cause a JIT crash or anything.

There are more details on the modes here: http://hacklang.org/manual/en/hack.modes.php
This article isn't computer code, it's an editorial.
I don't really get why this is the second paragraph on the page of a language though. It's like touting the jar command in an overview of Java.
My impression is that Facebook mostly write their stand-alone services in Java or C++, and are using PHP only where they're "stuck" with it due to a large existing code base.

Do you think Hack is a good language to start a new project in, compared to non-PHP languages? Are you using Hack for things besides the main web page?
Oh, I have nothing against new ideas in programming languages, and I think the more "researchy" programming languages are invaluable to the community in the insights they provide on what works and what doesn't. I was simply responding to the befuddlement that the industry prefers languages that adapt ideas slowly, rather than those that are cutting-edge.
Depends on how you value your time. If you have time to spare, buy crappy old PCs with Vista license keys on Ebay, "harvest" the license keys, install a nice shiny Ubuntu and re-sell them as Computer (No Windows) on Ebay again.

Might even be that you'll get a better price for a computer without windows than for one with vista.
It's probably time to upgrade clients like that to Windows 7 Professional, and have them run their old apps in XP mode. That's the free Windows XP VM that came with Windows 7.
I'm not sure what to think of the language (other than the fact that it looks very similar to Typescript); but, as for your comment, suffix the word lang and you're golden : golang, dartlang, hacklang.
Generics, lambdas, type annotations. This looks awesome, seems like the next generation for PHP programming.

Can I embed it? Or extend it via compiled binaries written in C/C++?
I don't think it's impossible, you just need to combine as much as you can in your limited time in a move.
Aside: I purchased the professional edition of VueScan (http://www.hamrick.com/) about as long ago as Windows XP came out, and it is still supported for upgrades. Better than bundled software, works on multiple platforms with every scanner I throw at it. One of my best software purchases ever.
100% of our web front end developers use Hack now. This has been an organic process of growth over the past year, by which I mean our engineers are using it because they like it and see value in it, not because there's someone standing over them with a big stick :-)

The biggest learning step for our engineering teams was to treat type errors from Hack as actual logic errors. We have a collection of "linters" that provide advice on code style and other nice-to-have factors. Some people (quite reasonably) initially thought of Hack errors as lint-like stuff that it was safe to ignore, when in fact they indicate real logical inconsistencies in code.
It's pretty cool, but not useful for games due to performance limitations (especially for mobile devices).
Just a heads up that the search page seems to be 404'ing.
Show HN: SellAFile – Sell a file using your Stripe account
Say I'm starting out with an entirely new project and want to leave the legacy of dynamic typing behind. Is there a flag available to enforce the use of type signatures, causing Hack to throw a compilation error when they're omitted?
Yep, we're happy to be inspired by good ideas when they're obviously the right path to walk.
Google to reportedly kill Voice, integrate it into Hangouts
Orange buttons boost online sales
Actually the restrictions are imposed by copyright law. A license is used to lift away these restrictions.

I would agree about public domain, if it existed everywhere in a usable manner.
To the extent that the Underground Railroad inhibits would-be slave-owners from making money, it's anti-freedom.

Note that I'm quite emphatically not saying these are exactly the same thing, but pointing out by example that there are other factors that can clearly be far more important.
Yes, "<?hh // strict" at the top of a file will do the trick.
Perhaps Sublime Text 2?
Do what you want to do. If you want to write software and make it available for others for free, go for it. If you want to sell it, that's fine too.

You're confusing free and Free. My job is writing Free Software, but you can't get all of it for zero monetary cost, since it's not online except for clients of ours (and nobody has ever asked us for the source).
Average American can no longer afford “average-priced” new car or truck
Oops! Thanks - we're fixing it now.
I think the main difference is that Kotlin fully embraces the current Java ecosystem, and makes integration with it seamless, while Ceylon rejects it and seeks to replace it with something new. Personally, I prefer Kotlin's gradual approach to Ceylon's revolutionary one.
Who said anything about trivia? Asking trivia is pointless and any company dumb and/or lazy enough to base their interviews on trivia deserves the bad hires.

While we're at it, who said anything about monads and bloom filters? The former aren't really data structures or algorithms, the latter would hardly qualify as "the most fundamental data structures".

Also, I don't remember saying anything about the irrelevance of writing readable code and flexible-yet-specific tests.

In short, you're certainly disagreeing, but apparently not with me.
Russian roulette: the invasion of Ukraine [video]
I have, and there is meaningful discussion that happens on reddit. And Fark. And other sites that are capable of mixing humor with commentary. HN just seems to take itself too seriously and people making jokes is generally frowned upon, to the detriment of the community. Jokes may not add anything to the conversation themselves, but a) they make the community more welcoming and friendly, and b) they may open up the door for further discussion.
I just use it for web browsing, email and presentations. I'll be switching to Samsung's new Chromebook 2 next month.
It's an interesting concept, thanks for the response.

Speaking of parsing, I was made aware of http://www.tagnifi.com/ I think elsewhere in this thread (I have no affiliation with them whatsoever). They appear to parse XBRL - probably in much a similar way as you do (although, I think they offer just raw data rather than the screening tools you do, so slightly different purpose/target). Just thought I'd share in case you found in interesting/useful.
Imagine a world where all software adheres to the tenets of Free software. Our freedoms would continue to be egregiously curtailed by website Terms of Service Agreements at, Contracts with the service providers of hardware devices, Firmware restrictions like UEFI safeboot, and legal straightjackets like software patents. I dont understand how the philosophical underpinnings of just the software are really all that effective in guaranteeing any sort of freedom without also having all the other freedoms we're already denied.
How humans work are giving insights on how to plan projects
Compromising the lock is different than choosing the type of lock.
The name "Free Software" is bad. The explanation is confusing. The idea that you can have a class of software that is Free but not GPL is confusing, and I'm not sure what he means unless he is just saying you can use other copyleft licenses.

The obvious practical reality in our society driven by money is that if your product must include its source code then you may have some big problems making money or maintaining whatever competitive edge you had.

Whatever your license says or the law says, if the source code is available its a good chance some people are going to copy your software and distribute it for less.

Also, as far as old-school copyleft components (such as GPL, not LGPL), if including the component in my software means that I have to distribute the full source of my application, that means that I go from having a product that is only available by purchase to a product that someone can compile on their computer for free.

The reality is that we live in a monetary society and people aren't always honest. And insisting that source code be distributed with proprietary software is not compatible with business.

Now, I believe that the current form of the structural aspects of society related to business and the monetary system are ultimately incompatible with the truthful holistic application of science (technology) and with ethics in general. We need to fix that. Until we do, copyleft isn't practical for many products.
I mean this is the obvious answer, but I don't find it holds muster when considering open source projects like Linux and gcc, two projects who are immensely more complicated and are entirely Free.

I just wonder what it is about visualization that lends itself to monetization.
I don't think that's the case.

I prefer BSD/MIT/Apache over the GPL because I don't have to worry about legal issues in regards to library integration with binaries that I may build. Why should I have to make sure that I'm using LGPL versus GPL, etc? Its much easier just to use, and license, software that is under BSD/MIT/Apache.
It's immature to "hack" company culture. There's only doing it right. Here's a good article by Zappos' culture coach David Vik: http://bit.ly/Z84nHv
So the service is ad sponsored like those services? And is mining data to target that advertising? I can't see any of that, but if you explicitly compare yourself to that sort of service without specifying otherwise it is an assumption many will make and won't be happy with.

Without some obvious sign of how the service intends to fund itself a lot of people will walk away assuming that it is advertising and/or mining (which they won't like for their invoices), that it will go away as soon as some unknown reserve runs out, or that it will suddenly become expensive once they are dependent on it. They won't believe "we never intend to charge" (they've heard that before and it hasn't always been true) and won't email you to ask (they just head off on their merry way).
In all seriousness - with modern software, there can be all too small a gap between bleeding edge and end of life.

A piece of software might be supported for 5 years. But perhaps it's 4 years into that period before the new version is available and considered stable enough to use. That gives you less than a year during which you have to upgrade - including any other changes, integration testing etc.
I've often been amazed the car-dealer industry has lasted this long. It's all too often based on deception, disrespect, intimidation, and rip-offs - from the showroom (overcharge as much as possible), to the trade-in aspect (under-charge using the same tricks ... go figure) to the financing (bury the overcharging in extra years of interest paid), to the garage (a skilled mechanic will often still charge far less than the dealership for the same service).

No, not every dealer works this way. Just the majority. If Tesla can make a change to this phenomenon, then good riddance to bad rubbish.

As an aside, this (long) story from Edmunds gives outstanding insights to how dealerships work, and what options are available to consumers.

http://www.edmunds.com/car-buying/confessions-of-a-car-sales...

It's fascinating to see how racial profiling comes into the mix. An ethnic group - according to dealers - will be known to have bad credit, or to pay the overcharged price no matter what without a fight, or (as dealers claim of white people) chiefly car-shop online and come armed with information looking for the best price.
Objective C: C is too low level and C++ is too static.
Innate ability may be a large factor in programming success. See: http://blog.codinghorror.com/separating-programming-sheep-fr...

If true, it would explain the apparent contrast between many programmers' attitude of "C'mon, this is easy! I can't believe they pay me to do this." and non-programmers view of coding as abstruse and frustrating.
So less than half the purchase price of WhatsApp? These are the deep pocketed interests on the other side of the battle?
Dell? HP?
Seriously.
Fragmentation can be a powerful tool when you're a large player in a market. Consider the "embrace and extend" strategy.
It needs a neutron source to start fission, but once it's going, in theory it can self-sustain as Th decay genearates radio-isotopes. Furthermore it can breed fissile fuel with thermal neutrons, which is generally seen as an advantage.

The neutron economy, however, is very slim. Several of the intermediate decay products are neutron absorbers. This is why you see a lot of proposed liquid thorium reactors, there are various proposals to use chemical reactions to remove neutron absorbers from the fuel while the reactor is running (something that would be challenging with a solid reactor).
The best thing in the post is Launch Your Startup button that takes you to the registration form on rockthepost.com. Nothing new, really.
It looks like you've done a good job with closures, type inference, etc...

Would you consider adding even more expressive features like algebraic types or hygienic macros to the language?

Also how likely do you think it is that typical PHP will eventually be overtaken by HHVM? I'm hoping it will!
Yes and no.
Yes, because TypeScript is bringing a type-system to a dynamically typed language and so did Hack.
No: because Hack is bringing some additional language features affecting the runtime. Modest changes for now, but we intend to carry on in that direction.
I understand this adds a lot of overhead by creating an interface and authentication for each service.

A new interface for each service, sure, but if your services only need to be deployed internally, some sort of authentication layer could be overkill.
Cool animated visualizations of various sorting algorithms
Upon page inspection, the actual website (Not visual.ly link) is here: http://sorting.at/
I am baffled as to why you'd build your castle atop a crumbling foundation.

I have wondered why FB didn't use a proper language with proper typing to begin with. I mean, I "understand" logistically: they already had a giant codebase in PHP, migrating a codebase is expensive, and it's difficult to hire and train 1000s of hackers in e.g., OCaml. (They do have some OCaml people, but they are outliers. OCaml was my favorite thing to write there, though it didn't afford some of the same niceties and interactivity as the PHP code they had, only because the support was down by several orders of magnitude.)

But at the same time, layering FP with a home rolled static type checking server (??) is bug prone and is certainly yak shaving (which they have time and money to do). Now they've written (1) a compiler to C++, (2) a compiler to VM byte code, (3) a corresponding runtime for each, (4) extensions to PHP, (5) a type checker, and (6) an inference engine. That's a lot of stuff. And in the end, it's still PHP, which is duly disliked. (Though Facebookers don't seem to care. The prevalent attitude toward it is that "PHP, as it's coded here, is mostly like C++, and that's OK.")

Writing correct type checkers and inference engines is kind of difficult. They seemed to take the approach of just building onto it incrementally until it just seems to work. That approach led to many bugs in many cases that just simply aren't thought of when one is trying to build inference engines by hand, as opposed according to theory. Type checking and inference is an area ripe with theory and attached formal, mathematical semantics. Standard ML's standard is perhaps the most infamous; it's a collection of mathematical statements about the language. That way, the compiler is now almost an engine to prove your code is correct. I don't see how the same guarantee can be made with something that is just cobbled together.
Such defeatism. Some people are violating our privacy, so we should just give up on the whole notion?

My worry about abuse of this data goes beyond public officials. I think the right to privacy is worth protecting, even in the face of changing technology.

If these are the choices for the future, and I really hope we can do better, then you'll find me living the hermits life somewhere in the mountains. Enjoy spending all your days watching what others do to make sure they're not screwing you over.
Possible bug report: http://i.imgur.com/XwEiPVI.png

The bug is the two "4"s sitting on top of each other in the left column.

I did that by first sitting a 4 on top of a 2:

4
2
64 16

Then dropping a 2 down on the column to the right:

2
v
4
2
64 16

Then finally sliding that 2 left one before it had a chance to settle:

4
2 2<-
64 16
And how about Codemirror?
It's mainly used for monospace code editing and it's missing a UI and editing widgets, but the configurability and maturity should blow everything else out of the water.
A demo showing it's not only usable for monospace fonts in a single font-size:
http://codemirror.net/demo/variableheight.html
Marketers – How to Stay on Track With Your Blogging Schedule
Because this is tremendously important to the usability of the language.

One of the reasons that PHP has been such a success is that you can simply save a source file and reload a web page to see what's going on.

The server-based typechecker that runs instantaneously is what makes it possible for Hack to replicate this experience: you save a file and reload a web page, but you have the safety net of a typechecker that told you about your type errors as soon as you saved the file.

I can't overstate how important this instant feedback is: it's really the thing that distinguishes Hack from working in a more traditional compile-based static language.
The conventional ATM experience only works because we have already gone through the pain of identifying ourselves to a bank, usually by sitting across the desk from another human being and filling out forms, during business hours. We often have to wait for an ATM card to arrive in the mail afterward. I think it's incredible that I can now go to a bar at 1AM for the same service. Plus beer and pool.
Imagine a small gadget (that would fit under the kitchen counter) that would take your plastic waste and recycle it into a polymer of some sort that can be used as material for 3d printers. Then you can recycle your plastic waste and turn it back into other things. This sort of stuff will make plastic truly valuable (which I think it is) and people will stop littering.

Now I don't know much about plastics so I can't say if that's possible or not.. it would be nice if it was :D
I don't see how that could not be a compiler error. The case b = 10 is more interesting because, as far as I can tell, it shows the differences between compilers that do two-phase lookup correctly and those that don't.

This seems to be a rare case where GCC is in the right, but I'd have to double-check the standard to be sure.
"especially the older ones"

Why especially the older ones?

I'm not objecting to your claim, I'm interested in your reasoning.
Hi Bryan, I know most people know you from your prolific work on many great Haskell libraries ( Criterion, Attoparsec, Aeson, ...). Did Haskell have any role in the development of Hack? Looking at the code base it seems like the type system is primarily written in ML, what made the team decide to use OCaml over Haskell?
Those are fair enough comparisons. In fact, I think you've hit upon something there. If the idea of someone benefitting from your work in terms of money bothers you then BSD/MIT/ISC licenses seem bad. Personally, I'm fine with it. Apple takes FreeBSD userland and makes money? Ok! We still have FreeBSD. Someone incorporates OpenSSH code into a non-free for-profit Windows program? Ok! We still have OpenSSH.
Or if you thought for a minute before rushing to write code, you would reflect that any temperature that is a prime number in both Celsius and Fahrenheit must be an integer in both Celsius and Fahrenheit, and therefore must be a multiple of 5 in Celsius.

Unless you count -5 as prime (and you don't, or you would have noted that -5C = 23F is prime on both sides), there is only one prime number that is a multiple of 5...
How many employees do dealers have in Texas, versus Tesla? Now do you get why politicians get on their knees for special interests?
Don't confuse market cap and purchase price. And I would never use Facebook's ridiculous overpayment as the basis for valuing other companies.
Could you recommend an affordable web hosting for an e-commerce website?
Thanks in advance!
The long wait times and multiple trips may explain why there are such long lines in so many pictures of Bitcoin ATMs.
My apologies if this is slightly inflammatory, but in my opinion preferring BSD-style licenses over copyleft licenses is both selfish and elitist (or classist, if you will).

It's an attitude which says that as long as the elite class of techies get freedom to do as they like, that's good enough. The freedom of the end-users does not matter, even to the point that when Free Software advocates ask developers to take their end-user's freedoms into account, that request is met with outright hostility.

It's a very selfish and one-sided type of freedom. Freedom for us, not for them. Freedom to oppress, monetize and lock-in the peons who don't know how to code.
Magnusson-Moss already prevents manufacturers from denying your warranty based on who does the service. We don't need protectionism for the dealerships.
We're told that the software profession must be made more accessible, and that programming should be taught to all children. Great, I agree. No child without the command line!

Let's also consider another industry: cars. Car ownership per capita in the US is greater than the rate of households with Internet access -- 0.769 versus 0.748. [1,2] So professions related to cars have greater impact on people's lives, on average, than professions related to computers.

Furthermore, most car owners would agree that maintenance is expensive, very expensive. Not to mention the fact that most mechanics are men. Nobody has proposed that everyone should be a mechanic, let alone a mechanical engineer. The President has not called for more mechanics, more women mechanics, or for relaxed visa requirements for foreign mechanics. These things would be seen as ridiculous.

Until programmers form a regulated professional body, with its own lobby, they will continue to be singled out by the various lobbies of the IT and social justice industries (strange allies).

[1] 240 million car owners in a population of 312 million, in 2011. http://wardsauto.com/ar/world_vehicle_population_110815

[2] 74.8% in 2012. https://www.census.gov/hhes/computer/publications/2012.html