skysight-inc/HackerNews huggingface dataset:
I worked in PHP at Box for about 3 years. This article does a great job of reflecting my sentiments on the language. In particular, I'm glad to see that the author recognizes that there are some glaring issues with PHP that aren't tradeoffs in favor of something else - they're just warts.

That said, PHP is really good at what it does - providing a framework and environment for serving web requests efficiently and easily. I find developing in it very fluid once you know how to avoid the warts. A lot of the flak that PHP receives as a language revolves around the fact that it doesn't actively discourage developers from doing bad things, and sometimes the language itself does some crazy stuff (as shown in the article with the divide-by-zero behavior). I think this is a huge shortcoming of the language, especially as code bases and teams grow and your organization needs to depend on the language more and more for safety. That said, I still don't hate working with it. Sometimes I rather enjoy how quickly I can develop in PHP, and how reliable it can be if you know how to operate it.

I think in all, it was a bit of a slog to get to the point where I am with PHP today - to the point where I understand its strengths and flaws, but ultimately I think it does have a place in modern webapp development. I think Hack and HHVM are excellent spiritual successors to what PHP tried to (is trying to?) accomplish, and that they do a great job of hiding or eliminating some of the warts of their parent language.

Kudos to the Slack team for being pragmatic about their approach to the technology, and hey again to all of my former colleagues working there!
Command line utility: find files matching a pattern under a directory (DLang)
Joel Spolsky Talks About Building StackOverflow and Values Developers Care About
So you want to influencer a Redditor?
You would not know that GNU Emacs has a shitty UI, if people would not tell you.

> Take the energy you would use doing that, and put it into making your system that much better.

It's not easy, but people are/were doing it: CMUCL, SBCL, McCLIM, Mezzano, the commercial Lisp systems like LispWorks and Allegro CL, ... all of them were/are efforts to bring some of the ideas/features. People were even developing emulators for the various Lisp Machines to make some of the old software runnable. MIT open sourced their original Lisp Machine software.

One of the most important things currently is to preserve the history of these and other machines / operating systems / applications. So that they are not lost and people can study them and learn. Lots of stuff is already lost.
You aren't that weird. My daughter had a touch screen laptop and she also preferred Windows 8 to Windows 10 and missed the charms and the swipe in. I, however, could barely use her computer because of all the fingerprints!

Windows 8 on the "desktop" was a carrot for all the computer manufacturers who decided, that year, to put touch screens on everything.

A better strategy for Microsoft would have been to call it Surface OS and release it just for tablets (and phones) and focus on Metro and have the desktop as a cool add-on for their tablet OS. For the desktop, they should have done a Windows 8 that was more like 7 yet still have Metro but more as an add-on. This wouldn't have helped you as much but it would have been better for them overall.
Yeah I initially linked the .com then thought people might appreciate seeing the product, rack and its open source repo more :-) Weirdly when I set it up, it looked like with only a small change or two to our existing docker-compose.yml it "just worked", but the funny thing was once it was running I couldn't quickly manage to find the web service exposed anywhere to actually test... but it deployed painlessly and showed up running in several ec2 instances and a load balancer in our AWS console! Oh, that't another point, unlike Flynn, Convox is AWS only, so it's more opinionated/less flexible, but for many people that's not really a downside if you only plan to run it on AWS for now anyway. It's also built by a bunch of former Heroku engineers, including David Dollar (https://github.com/ddollar)
Waiting to see the price list. AWS + VmWare is gonna break the sky.
It is spherical and it is the distance light could travel in the 13.7 billion years since the big bang, or more precisely since when the universe got cold enough to allow electrons and protons to form atoms which in turn made the universe transparent to light and which occurred about 400,000 years after the big bang. Note that the radius is about 46 billion light years and not only 13.7 billion light years because the universe continued to expand while the light was on its way to us. This also changed the frequency of the light and so the light emitted at the edge of the observable universe at the time of recombination is the cosmic microwave background we receive today.
Can you give us a few of your favorite windmill resources?
After Reagent + Hiccup, I'm ruined. Nothing feels as natural as a full, general-purpose language (Clojure) combined with a natural keyword-based DSL for styling:

(defn right-cell [& body]
[:td.right.aligned body]) ;; renders <td class="right aligned>{...body}</td>

(defn person-row [{:keys [name age] :as p}]
[:tr
[:td name]
[right-cell age]])

(defn person-table [font-size people]
(let [heading-size (* font-size 1.6)]
[:div
[:h1 {:style {:font-size (str heading-size "em")}
"People List"]
[:table.ui.basic.table
[:tbody (map person-row people)]]]))

(defn main []
[person-table 2 [{:name "John" :age 21} {:name "Sally" :age 22}])
Don't see c/c++ target in the roadmap, which seems like an ideal use case for typed python besides correctness. Thoughts?
The authors main complain was that it takes two minutes to start the emulator. And I agree that it is a Pita. But as a mental exercise or fun experience, you should 1) Picture it in your head 2) Make a plan 3) Write it down 4) Read through it and fix errors 5) Test it on the emulator.

You could start with a small ten minute fix, then work your way up. The feeling when it compiles and just works on the first try is amazing.
If you treat your employees like machines, the customers will inevitably sense it in your products.
This definitely fails a basic "smell test", I don't think the author has the most honest intentions at all.
Great question!

We designed Flynn to solve a bunch of the common problems around running apps in production.

This means that we're working full-time just on the automation and stability of your production environment. As you grow and scale, Flynn will scale with you and provide integrated features without any additional effort.

Here's an incomplete list of things that Flynn provides out of the box:

- Automatic high availability. Everything in Flynn is highly available, as long as you are running three or more servers. Additionally, it's designed to fail gracefully, so even if there's a network partition or some hosts fail, everything will keep working if at all possible.

- git push deployment, after installing Flynn you can run `flynn create && git push flynn master` and your app will be automatically built and deployed.

- Polyglot apps. Want to deploy a Phoenix app written in Elixir? You can do that just by specifying the appropriate buildpack. Everything else works exactly the same.

- Zero-downtime deployment with release management and easy rollbacks. If a new version or configuration variable causes the app to crash at boot, Flynn will automatically detect this and stop the deploy before any traffic hits it. Deploying new versions of the application does not cause user-visible downtime.

- Easy app configuration. `flynn env set FOO=bar` rolls out a new immutable release with the configuration change. You don't have to edit any files, and you can roll it back later with `flynn release rollback`.

- Built-in HA databases. `flynn resource add postgres` configures your app with a PostgreSQL database in a cluster that is highly available and already configured with replication and safe automatic failovers. You can do the same to get a MySQL or MongoDB database.

- Automatic load balancing and TLS. Flynn automatically load balances HTTP and TCP traffic, and supports HTTP/2 out of the box. You can add a TLS certificate with a single command, and all changes to the routing configuration happen immediately without restarts or downtime. Want to send a subpath to a different app? You can do that in a single command.

I could go on and on like this, but you probably get the idea. Of course, it's probably possible to build every feature of Flynn that you want using your configuration management tool of choice, but that would be a huge amount of time not spent developing the actual applications that you want to deploy with it.
But if you're solving/addressing a problem efficiently, you should work out a solution where the event space can be mapped such that events classed 'typical' should far outnumber events classed 'edge.'

Yes it's never going to be perfect when trying to overlay a closed system of logic on the open system that is the universe, but we've shown ourselves pretty capable at getting to good enough.

In this case it is a question of what is "good enough"? Meaning, what are we trying to accomplish?

I'd always been mostly ambivalent toward abortion but thinking about it more recently, it does seem quite the tragic and brutal practice.

I'm inclined to believe you that no one does it for fun, at least in retrospect. I think there is a problem of too much of a glib attitude about it from the SJW/Tumblr types which hides a lot of the torment an abortive mother is likely to feel after going through with the procedure.

I'll repeat:
What is it about our society that compels women to do this?
I am not him, if you ask this.
I'm currently hesitating between PHP and Node.js for a new side project and I'm leaning towards PHP simple because I could do it 50% faster due to my experience with it.
I work on PHP at my day job (in a public company), before this, I came from Ruby, and .NET before that.

I'm convinced the reason so many successful projects use PHP, is not because of any inherent nature of the language. I think it's the people who use it. They just don't care. A successful project needs to be started by someone that cares just enough, but not too much.

If you're programming in PHP, you're not running around talking about "convention over configuration" giving talks, or trying to make your code beautiful. It's a garbage language, and you know it. But it allows you to get something up and running, so dang quick. You're failing while the other guy is still updating his gem file. You're advertising while the other guy is trying out some fancy new deploy script. You're incorporating feedback while the other guy is just starting to get to work. When he finally fails, he's used up half his runway, whereas you, the guy who didn't give a fuck about your code has gotten past that first failure, and are finally getting some traction.

Hopefully, the next guy to join the company will clean up your shit. The other guys code may not look like shit, but it doesn't solve any useful problems... so they never got the chance to hire that next guy.
Accuracy of Wrist-Worn Heart Rate Monitors
Browse JavaScript pages with JavaScript disabled
I read some of the convox docs a while ago, and the idea I got is that it is an alternative, open heroku implementation which is nice but you're still locked to Amazon AWS (and its prices)
I'd love to hear about any trouble you ran into while trying Flynn so that we can fix it! Feel free to send me an email: jonathan@flynn.io

Convox is a great pick if you want to use AWS-specific services for your entire stack. Instead of using portable open source components, Convox uses AWS services wherever possible, and acts as a lightweight coordinator to combine them into a platform.

Flynn has no external dependencies on cloud features, so you can run it anywhere, whether that's on your laptop, AWS, Google Cloud, a VM somewhere, or bare metal in a colo or private datacenter. We also include RDS-like highly available database appliances so that your whole stack is portable and you are not locked into a single hosting provider.

edited to add: We didn't know about this post until Bitmatica posted it, this is just a great post from a happy user, not planned Flynn marketing!
Elixir and the Phoenix framework work like this, with a process spawned per request.
Somebody sack the writer ;) - so, OK, I doubt I'd argue the toss if it were an interview situation. But when writing a comment or documentation I think I'd take inspiration from the documentation for either of these two fine systems.

OS X: (OK, so I lied about the "fine" part)

The stat() function obtains information about the file pointed to by path

Windows, here the VC++ CRT - fantastically poorly described, if you ask me, though of course you shouldn't be using any of this POSIX shit on Windows, so if it confuses anybody enough to make them go and find FindFirstFile then it can only be a good thing:

Get status information on a file
This is my least favorite part. As soon as your program gets more complicated the amount of repeated parsing, compilation and setup you need to do for every request causes massive speed and structural issues.
If you want a Cambrian explosion of apps using Microsoft infrastructure and ad networks) if you're still in that business), just write QuickBASIC for mobile. That compiles to native code. Not a joke. Windows RT and all windows Mobile editions would have had an honest chance if Microsoft still remembered how to use its heritage instead of pushing for bleeding edge architecture astronaut frameworks every two years.

Compilers and interpreters are supposed to simplify development and automate as much as possible. don't make people learn new bibles of APIs every time an executive gets on stage to announce new products and software.

Give the simple, obvious stuff a try once in a while. Get back to BASICs.
I think "okay" looks better than "OK".
> So what's the catch?

About 2-3 orders of magnitude in performance. That’s the catch.

And it’s the reason why even with PHP you use things as opcaches, cache database results in external daemons, you use process pools with fastcgi instead of actually creating new processes, etc.

And hacking those things on top of PHP make your program even worse to reason about than just using a daemonized system with actor framework.
People sitting next to each other are more likely a group and going to perform the same action because of this. Two people decide to watch a movie together or two people decide to get lunch on the plane rather than before getting on.

They need to control for tickets bought together.
I'd like cross-distro packaging to become much easier. Most projects that bother to provide Linux binaries at all typically only do Ubuntu packages. That's fine with me, as I use Ubuntu, but it would be great if there was some new packaging format that worked across distros, that would be so ridiculously easy to use (from both developer and user sides), that there would be practically no reason not to do it. I guess this would require some definition of what libraries are included in the system and things like that, but the few popular distros today are quite similar anyway.
Well HHVM is quickly losing ground to PHP v7 in terms of speed. I'm not sure which is "fastest" any more, but IIRC it's close enough that if you want to switch for the "speed boost" I'd argue it's not worth it.

In terms of Hack as a language, it's very similar to the JavaScript->TypeScript relationship. It's still mostly PHP, but it doesn't quite get the new PHP features as quickly, and there is the chance that there could be incompatibilities in the future which could cause new PHP code to start looking and acting differently than Hack code.
>>Why are there no other "competitors" in this space?

There are. Any language that supports either fastcgi, or runs as an apache plugin (or similar) functions in the "each request starts new" space. There's certainly others, but Python and Perl are both good examples.

Starting new with each request does, of course, mean lots of re-work that shouldn't have to be done with each request. It does initially keep complexity down, but at scale, the applications I've worked with have to use a shared cache (like acpu) to avoid that rework and meet performance goals.
Why Bob Dylan Shouldn't Have Gotten a Nobel
Thanks Jungberg!
One of the most common hurdles for frontend developers getting started with Relay (or GraphQL in general) is that you need to build a GraphQL backend first before you can do your first query and start building. That's why we've tried to make this as easy as possible by including a GraphQL server directly into the guide.

Have you also seen the integrated GraphiQL and data browser?
did Atom hasn't be open source Sublime alternative?
Now if we had something like this for this accelerometer-based pedometers...
The shared-nothing model works great... if either you're just one developer or you've got a semi-competent Ops/DevOps setup. My first job out of college used PHP with one of the Rails-a-likes PHP has. During our user onboarding process, we'd poll the server to see if a data import finished, but since the requests shared _nothing_ and the Ops guy didn't understand PHP, it would load/run millions of lines of framework code for every single tiny polling request. On launch our site crashed because two people used it at the same time. Bananas.

There's a way to make Apache fork after some code has already been run, but boy howdy if you don't do that and love those mega-frameworks.
Socrates would have been less than 1 year old in 470 BC, so I guess he was speaking about himself and his pals.
You can make C.H.I.P into an airplay receiver (or DLNA) . This was the cheapest option I was able to figure out for doing this, and while I'd use e.g. a Chromecast audio if I could, it can't replicate the functionality I want. Namely, to use my phone as a remote control for my home audio system, not a streaming source.

I've also made some nice, tactile (e.g. big switches and clicky knobs) electronics for simple things like kitchen timers, etc. with Arduino style boards.

It sounds like you shouldn't buy any more of them, though. If you're not inspired to make something, more boards certainly won't help that.
Hilariously enough, my fiance now works in printing and actually mixes the colors (t-shirt printing).

I haven't brought it up yet because we once had a fight over whether that thing you put outside your shower is called a bath mat or a bath rug (Both are correct in different circumstances)
Love that Gibson quote. Have you come across research or pilots that have made progress on the distribution problem? Without being an expert, it appears to be caused by greed.
The startup time can be pretty extreme -- although you can mitigate much of this with various caching strategies but the typical PHP request involves reading dozens to maybe hundreds of files from disk, compiling them into byte code, and then executing that byte code, and then deallocating everything.

And even if you cache everything, you still have the code necessary to setup the runtime environment of you application which runs on every request and does the same thing.

But still, I do actually like that model and it does have many advantages for development. But it's really hard to work in PHP, the language, after using something better.
There are plenty of competitors in this space, they just don't use the CGI model of spawning a new _OS_ process for every request. You have Erlang/Elixir that have their own lightweight processes that don't share memory and have independent GC. And you can build similar systems on Java/Go. The difference is that in those language you have a choice. There are certain types of applications that you just can't reasonably make in PHP.
You can go the other way and add closed-loop cooling to a person http://news.stanford.edu/2012/08/29/cooling-glove-research-0... Apparently it's been commercialized already http://www.avacore.com/
That is a great idea, and I wish I had had it in my back pocket about ten years ago.

My daughter invented "coin flip chess" when she was little. I had showed her how to flip a coin to pick between two choices, and she wanted to add it to the game. So before you moved you had to flip a coin, and if you guessed wrong you lost your turn.

On move four she took my queen.
The catch is overhead. There are things you need at the start of each request - global configuration, database connections etc - that other systems do once at startup. PHP has to do this every request.
I was plenty aware that Emacs had a crummy UI. I just don't think it matters as much as you do. I said as much.

>It's not easy, but people are/were doing it...

That's actually great. I'm tremendously excited by those systems. I tend to prefer Scheme to CL (less cruft), but I'm excited all the same. Those systems and environments are really cool.

Although it is telling that SLIME (which is excellent, by the way) is one of the most popular ways to write Lisp code.
Nobody does that. But for certain areas this is true and you should not ignore that.

Grady Booch once at an Eclipse conference:

"For those of you looking at the future of development environments, I encourage you to go back and review some of the Xerox documentation for InterLisp-D."
C++ Weekly (https://www.youtube.com/watch?v=B3WWsKFePiM)
Jason Turner

Just discovered it and watching right now.
Probably because allocating a thread to every request is less efficient then a bunch of event loops with async. Ideally you do both, but a lot of languages choose to make concurrency something done at the process level and are event driven asynchronous web servers which are deployed as multiple processes, which adds a lot of overhead compared to threads. I think Golang has a nice balance with goroutines, as I understand things.
It can be depressing at times, I agree with that. But I think that the majority of "criticism" wasn't shaming Canonical for starting Mir, but rather just asking "Why?". Canonicals answer consisted of many set phrases and things that just weren't true (e. g. "Wayland doesn't work on mobile" - Sailfish?). Don't you think that such a behavior can also be considered "toxic"?

IMHO Canonical's reason to start Mir were mostly to be in control. For example via CLAs. I understand it, but they should also understand that many people criticize that.
Performance/scaling?
If people would focus more on usability, comprehensibility, clear algorithms and project structure and precise requirements we could probably skip debating over languages altogether, because programs would look beautiful in any language.
Node is actually one case where depending on the project it could be very easy to make a case for PHP :) if you need a simple API backend you can use PHP and not deal with whole async thing.
Flynn's upcoming User/ACL model should cover multi-tenancy AFAIK.
Exactly. The "shared nothing lifecycle" really lets the programmer (knowingly or unknowingly) embrace RESTful design. Too bad the language doesn't have strict typing like Java. Otherwise it'd be even more convenient and safer in my eyes.
We humans look smart when we manage to create a bad copy of a tiny part of nature. How small we are.
The only reason you're going to get this is because you have a bunch of existing infrastructure and experience and have a real need for it right?
Because it's very wasteful to keep reinterpreting the same page every time, as opposed to just running it in RAM from a warm JIT.

You can get the same reasoning benefits in pretty much any language by just not using any global variables. Yes, you're still running a framework/server with internal state, but with PHP you've got the same "issue" with Apache/Nginx.
I've been in the game long enough to realize how true this is. Good point. It will certainly make people here defend their sacred choices.