skysight-inc/HackerNews huggingface dataset:
Thanks for bringing this up! I will definitely add a section for explaining the benefits for Scala and Clojure devs. I shipped a non-trivial Clojure web service to production that was handling 1M/requests a day. The experience is what made me finally understand that the JVM is wonderful platform, and what prompted me to work on Eta, given that Frege was insufficient for what I wanted (not supporting a lot of useful GHC extensions). Clojure was wonderful in the fact that I could become as concise as I wanted via EDSLs, and the immutability by default + concurrency primitive were a joy. The lack a type system (please don't mention core.typed) and compile-time errors at runtime were really a pain. I'm sure you can ameliorate that with libraries like prismatic/schema (which I did) and strong test discipline, but it's great when the compiler just takes care of all of that for you. Once you really "get" Haskell-like languages, you miss the benefits no matter what language you try. As for Scala, I haven't built anything significant and I wouldn't want to for some of the examples I've seen. It's too verbose for a typed functional language.
There might not be a better (virtual) alternative. Remember billions get sunk into these games. Don't think you'll get the same $$ for dedicated training environments.
Not really extremely common, it's extremely easy to find good cards without annual fees. The annual fees are usually for the more "prime" cards that give you more benefits and rewards.

Even so, the point was it's misleading at best to require something that has an annual fee as a condition to get the best rewards then claim the card has no annual fee.
Netflix and Facebook use P2P internally for large file distribution.

The big issue with P2P publicly is privacy. A lot of people don't want other people to know what they are doing.

Imagine for example youtube, or worse pornhub, using P2P.
This. You define your loose dependencies, then you compile them down to a lock file that you use to test your service and you deploy with the completely locked down set of dependencies. When you want to upgrade your deps, you re-run the compilation and get updated libraries, which you test again. If you have floating deps in production you're doing it wrong.
I have participated in several hackdays and we were encouraged to work on something relevant to the business. I thought that smelled bad so I always made a deliberate effort to do something as opposite of the day to day as possible and I encourage anyone participating in an employer-sponsored hackday to do the same.

Generally I tried to do something with hardware and the experience was always extremely gratifying. I built great relationships with coworkers through those projects.
Cachelot: A Memcached compatible cache library and distributed caching server
Isn't it a bit early to be calling it a cycle? I mean, we've not even completed one full iteration yet.

Unless I'm wrong, and the tectonic plates existed and were moving long before the oceans did?
China has wealth of data on what individuals are doing at a micro level
The author has actually no clue what semantic versioning is. He keeps on saying that with small, frequent and well tested changes you constantly produce "stable" builds and therefore don't need the complexity of semver, but he doesn't seem to understand that this has absolutely nothing to do with semver.

Even the smallest and most stable change can break backwards compatibility or fix a bug or add a new feature and semver's only purpose is to meaningfully express what kind of change it is. You build a 3rd party package or a library which is used by other people? You better use semver. It makes everyone's life easier and not more difficult. You build some REST API which is consumed by other applications? You better use semver. It not only helps to visually display what kind of change it was, but it also triggers an additional thought process during development and CI. For example if the major version doesn't change, then the CI system can reliably replace the existing API during the deployment process. However when the major version changed, then you might want to think about a side-by-side deployment to support backwards compatibility, at least for a certain grace period. It makes life in many ways easier.

And again, this has nothing to do with how stable a release is. Let's say I have a public facing REST API and I make a 1 line change where I decide that some field of a JSON object must be int64 because in some edge cases an int32 wasn't unique enough and would have caused a bug. Now this change is fixing the system, making it even more stable but essentially breaking existing integrations. Semver helps me to easily communicate the change to my API consumers, setting up the right expectations and helping them and myself by reducing frustration, tech support and unwanted side effects. It also helps to deploy it in a way that allows a smooth transition to the newer API.

Furthermore his suggestion of using a date is useless. What does a date tell me? Nothing... if I want to know the date I right click the files of a build and look at date + time or I look at the commit time in git or the build time in the CI tool. Having it in the version is stupid.
As someone who has a tree that drops a lot of spiky balls in my front yard, I wouldn't mind if it were something that was attractive yet easy to maintain. Trees aren't sterile simply by virtue of being chosen for the convenience of their owners.
Did I miss a sarcasm tag or are you serious? I honestly can't tell.
> Also, content aside, he undeniably has a captivating speaking style and cadence.

I sense echoes of Godwin here... but may that's what you were going for? ;)
What I've read, is that the border to Gaza was open enough for commuting and shopping trips -- until the systematic attacks on civilians.

You had no problem with that description in your previous comment.

But good references to non partisan sources would be interesting?

(AGAIN: If the ones controlling an area -- including doing elections, defense, police and taxes -- put all their economy into rocket artillery against another country's civilians, the reaction will not be mild... And Gaza is not part of a city, it was a free area.)
For what it's worth; the main problem I've run into when getting work done on Linux (and I'm really grasping at straws here) is lack of compatibility with applications which run on both OS X and Windows. But when I look at my coworkers' screens (they're on macs) I realize that the native OS X versions of these applications tend to run about as well as the Windows versions do in a VM on my machine. The only one I've ever needed a VM for is Excel.

If I were starting up a 2D media company I might have some concern moving new hires from probably-familiar Adobe applications to the (excellent) Linux alternatives; but still probably not enough to dissuade me completely. For a new 3D studio the industry is so diverse anyway that it would be worth going with Blender to start with, or Maya if the heart desires it.

For software, I don't think there's a worthwhile platform which you can not develop for from Linux (aside apple nonsense, but even all-apple shops end up using OS X VMs for iOS builds since XCode build is highly stateful(!)).
His "Usecase OS X Linux Comment" table is interesting. My main workstation is a desktop machine I built that's running Ubuntu 14. I've been slowly stockpiling parts to build a new/bigger/better/faster desktop, and I'm going to run Ubuntu 16 on that. 90% of my work is done in the terminal, so I'd be just fine on OSX, but I can't justify paying so much for the hardware when the OS is just not that much better. My good ol' reliable 2009 PowerBook finally died and I'm not traveling with a ThinkPad Yoga 11e thing. Windows 10 has been acceptable, though the updates are just damn painful sometimes. I found MobaXterm works well for me in the way that I work. I keep thinking I really want a new PowerBook, but I just don't know why. I know it's just not worth it. The only time I use the laptop extensively is when I travel, and the ThinkPad/Windows gets the job done just fine.

So, yeah, switching from OSX to Linux now isn't so bad. Isn't 2017 the year of "Linux On The Desktop", or was that 2016, or 2015, or 14...
A self-driving car without cameras that works in Michigan winters
This is true. I never once teared up during a movie, passage from a book, etc until after my son was born. I can't say what it is like for other people but for me it is almost like gaining a new sense.
And a video going 25m years into the future https://www.geolsoc.org.uk/Plate-Tectonics/Chap3-Plate-Margi...
Meh.

As a long time Emacs user, the only way I'd even consider switching off of GNU Emacs would be if there was a port written in Common Lisp that replaced ELisp with Common Lisp. Even then, I'd only switch if it had replacements for the ELisp modules I use (ERC, Slime, C++-mode, etc.).

As an end user, I don't see any advantages in switching to yet another Emacs rewrite in yet another low level language.
semver conveys information about a released product. If you're running an internal project that isn't being released to the outside world and that project isn't a library being used by other services in your environment, then you can number the project any way you want. In fact, you don't even need to number it (you can just use the git SHAs, for instance).

semver is useful even if you're releasing something that isn't a library because it can be used to provide information about backwards incompatibility in things like database schema, cache incompatibilities, configuration file incompatibilities, that'll cause a service to break if updated.
Of all the .Net web apps I've worked with I've seen an app maxing out IIS threads once, but I've seen plenty of web apps with shitty SQL queries maxing out the SQL server.

I've admittedly never had the 'millions of requests per second' clients, but the number of available threads has never been remotely the problem.

Back in 2006/2007 we had one app maxing out the IIS threads, but that was back when there were 100 threads max (as far as I can remember, might be wrong) and the actual underlying problem was slow SQL requests. Temp fix was to up the IIS threads, but once we fixed the SQL problem, no need for those extra IIS threads any more.

And even then, what will implementing async/await get you that you couldn't fix with a load balancer and web farm? Web farm is cheaper, easier and more effective. I think there's a Jeff Atwood piece somewhere on coding horror, or maybe a Joel one, to that exact effect. Cheaper to throw hardware at it then dev time. There's a certain scale that async/await actually fixes, the vast majority of C# web apps won't ever get close to it.

Every client I've taken on who were having performance problems were always fixed by monitoring SQL and fixing the bad queries. Or it was stupid loops calling moderately expensive SQL that did the same query over and over. Or something that could be easily cached. Or the same query being called several times in a stack where you could easily just pass the result down. One of those clients even had a previous dev who went async/await happy for extra 'performance' and it did zip. I ended up ripping most of it out, as I said, it infects code up and down the stack and complicates the code. All the 'optimized' async code was taking 1-2 milliseconds to run while the problem SQL was taking 5-10 seconds.

In a web app I can see the need if you're doing lots of external requests
Haha I love this metaphor. Very relatable!

However I wasn't lecturing (or trying to). Just providing a paradox that might help me better understand parents perspective.
Is it absolutely necessary to help NIST here? Can't the IETF come up with its own standards and leave it at that? The U.S. government is free to adopt the same standards later on (just like all the other governments) or create its own broken ones, I don't really care about that. The NSA isn't going to use whatever NIST ends up adopting anyway. It's going to use its own crypto for classified stuff.

I'd rather not risk another Dual_EC fiasco with everyone trusting NIST to do the right thing, and then it doesn't. They almost messed up SHA3, too, if it wasn't for vocal opposition from the community. They've proven to be untrustworthy a few too many times.
Interesting, they must have changed the list. I definitely used to get the 3x for AWS purchases.
Learn Google AMP(Accelerated Mobile Pages) for Wordpress (Udemy Free Course)
Americans don't need to travel so far to see an ocean being born. The block-fault zone from the Sea of Cortez up through most of Nevada is pulling apart rapidly and has already created 500 miles of inlet between Baja California and mainland Mexico.

Much of the next few hundred miles north through the Salton Sea and Death Valley is already under sea level and all of Nevada has thinning crust that will eventually fall under sea level.

in fact, most of the valleys in Nevada, in spite of typical elevations around 4000 feet, are already below sea level. It's just that they presently don't have any outlet to the sea in the Great Basin so alluvium has collected as the fault-block mountains created by spreading erode. [0] When a river has a chance to cut down through that soft debris, the valley floors will quickly drop below sea level also.

[0] https://en.wikipedia.org/wiki/Fault_block#Fault-block_mounta...
This is a very late response - hope you find it.

I really like the idea of Qubes, but it just seems Not There Yet. Or at least, was when I last looked.

Anyway, I wouldn't recommend doing what I'm doing. My home environment is the result of many years of incremental change, benign neglect, not-so-benign neglect, quick duct-tape fixes and grandiose redesigns half-completed. Learn From My Mistakes.

I run two virtualization hosts - FreeBSD and Ubuntu[1]. FreeBSD runs my always-on VMs (DNS, DB, some apps, monitoring, etc.). The Ubuntu box is where I run the Windows VM I mentioned, and sometimes others, depending on what I'm working on.

Ubuntu/KVM is fine as a virtualization host. I'm less thrilled with Ubuntu overall; generally, I don't like some of the decisions they've made. Next rebuild I'll probably be back to vanilla Debian.

I wouldn't recommend FreeBSD/Bhyve to anyone who is not already conversant with FreeBSD. From the perspective of a user coming from Linux, the transition isn't bad, but if you're running VMs, you're at least a part-time sysadmin as well, and managing FreeBSD looks a fair bit different than Linux. Additionally, Bhyve is currently missing some features KVM/libvirt has. In particular, if you want VGA or USB passthrough, stick to Linux[2] for now.

This is all predicated on this being a workstation - if you're doing server virtualization, I really like Ovirt, which requires an RHEL-lineage host OS.

[1] The FreeBSD box used to be "just" a storage server, but has grown up a lot and last time I did a lot of work on it, I renamed it 'spof', as in 'single point of failure', in honor of the role it serves. The Ubuntu box is my desktop machine.

[2] Actually, unless you like the adventure, maybe wait a bit - there are patches soon to be merged that will make VGA-passthrough quite a bit easier than it is now. I had a terrible time getting it working and to a kinda-stable point.
There's quite a few "component playgrounds" out there for React. Storybook is one, Carte Blanche is another, and there's a few more besides that.

A quick search turned up this list of several tools along that line: https://github.com/xyc/til/tree/master/react/devtools
For any Android devs out there. I built a linux beast workstation just for running Android Studio/Gradle et al. Then used NoMachine to headless into it. Kept my 2013 MBP and got a 4-5x improvement in build/deploy cycles without leaving OSX completely behind. Highly recommended.
I'm glad it exists, but it's definitely not as intuitive to set up.
As former eng lead at a live streaming company, I second the idea that transcoding is a big deal.

Streaming bandwidth is super pricey, and the money is enough to really matter. Even a startup can easily get to five or six figure expenses. Bittorrent Live gets that right.

However transcoding is critical, given that every OS and browser has its own format quirks. BT Live can't remotely do this.

Check out Zencoder for the real competition.

Maybe BT Live will find a niche with use cases that just produce no money at all, or where servers get shut down for political reasons. Marches, samizdat, and, uh, questionable copyright.
Nice article.

I started using Linux (Ubuntu) last year. I was trying to get into open source software and I had a choice between a Macbook or a Dell laptop with Ubuntu on it.

I was aware that Linux had a reputation of being difficult to use but I was planning on doing some learning anyway, so why not give it a try? Of course, another factor was that I've never really cared for Macs much. I never understood the appeal of Mac design and I always felt like Mac products, and particularly one button mice, violate "form follows function." (note: I'm not design-minded).

Anyway, I was really surprised that Ubuntu desktop (unity) was basically the same thing as Windows, except the sidebar was on the left. That and I could use the software manager (and later, apt-get) to install common programs instead of googling "skype installer," which is what I would have done on windows.

Later, I learned to appreciate how easy it is to edit config files in Linux. Plain text files vs. regedit? Yeah, I'll take the English please.
Another problem with the author's assertions is that Louisiana in general has some of the lowest property taxes in the country. To the degree that this limits municipal revenue is the degree that a city can't spend a lot on infrastructure.

Please don't take this comment as advocacy for a higher tax rate, simply recognition of the financial structure; you get what you pay for, or in the case of muni bonds what other people think future residents will pay for.
5 Must Have Office Amenities
Will basic income work and save society?
What we can learn from Ants to improve SaaS conversion rates
Ehhh... at best it argues that it's over-complicated for something that only ever has a single version running everywhere. Like a web service that you control, for which there will never be a way to request "use that old version of the code instead".[1]

Which is true. But then why even bother with YYMM.xxxx? Just use a single incrementing integer. Or none - nothing can ever go backwards, so callers are required to ignore the version in practice.

[1]: an API presenting an old external interface is something different - there's still only a single "version" of the code that's actually running.
Lisp is sexy, but parenthesis are a really hard sell for the wide crowd. It sounds silly, but that's the reality. If they had forced people to learn & use Lisp instead of C, the world might be a very different place. I personally love them even now when I look back at Clojure code.

Clojurescript is just wonderful. I'm not even sure a Haskell-like language that compiles to JavaScript (Elm, PureScript, GHCJS) with really good tooling can beat it, though I haven't tried. Would be an interesting experiment to do a comparison by writing the same app in all the languages.
Yeah. I interpreted the Star Trek / Star Wars preference more as what he enjoys. And I think that we prefer the media where the rules inside the world make sense. It's the reason why guys don't like romantic comedies-- the structure of that universe makes no sense to them.
I had in mind cases where a book might surge from being checked out once a year to being checked out once a month, maybe something like a historical book about a specific Native American tribe when they're in the news for a while, or something.

It seems like one of those "big data things", looking for odd relationships between things, like vampires being more popular during Democratic presidencies and zombies being more popular during Republican ones (as a tongue-in-cheek example: http://www.mrscienceshow.com/2009/05/correlation-of-week-zom...)

The librarian in the article cited a future need to re-buy a book that was previously culled. I guess what I'm trying to work toward would be an idea of finding non-obvious signs of when certain categories of books might become more and less popular, what patterns (if any) govern that schedule, and from that, make predictions of expected cost in keeping certain books around, as opposed to selling them off immediately. I'm playing around with the idea of whether there's a better way than "current readership + age of book" to predict, to a useful degree, the probability of it being more or less popular in the future.
My main point was this: Before creating a NEW language, a person or organization should have a firm reason that no existing language will fit their needs. I think creating new languages has become a bit of a hobby for a lot of developers, and whenever a new one gains any traction, it damages the entire industry by fragmenting it. Sorry, not interested in the rest of your interrogation.
If Hamas recognizes the right of Israel to exist, the walls will be broken and the major part of the settlements moved. Israel has shown several times that they can exchange land for peace, even within right wing governments.
Ultracentrifuges are a whole different animal than blood centrifuges. The former are used for separating tiny things like viruses, organelles, and macromolecules while the latter are used just to separate blood into white blood cell/platelet, red blood cell, and plasma layers. These cells are orders of magnitude larger than anything you'd use an ultracentrifuge for and short of deliberatly shaking the sample, it won't mix quickly after the centrifuge.
He'd prefer that you think of him as "That Zany Libertarian Guy." That's how trojan horses and fellow travelers always roll (i.e. via misdirection).

I prefer not to think too much about Thiel, actually. But if you're terribly interested, the HN search engine will turn up various things I've posted about him, already.
Thanks! I know what I am doing this weekend. 2010 MBP don't fail me now!
I never really liked semver as its a mixture of release number and an abstraction/categorization of risk that nobody can agree on, making it hard to tell how stable an update will be. It was fine back when you only had a release or two a year, but now the abstraction is no longer good enough.

I prefer the first number to be a simple release number, then the second to be the amount of risk from the previous release. That way for projects with a dozen or two releases one can normalize the risk values between projects to get everyone more or less on the same page without them having to change their behavior and it can introduce the ability for you to manually correct the risk for different libraries (eg: Library X is super critical for me, so *2 the risk).

Automated tools for calculating risk are possible with this scheme and additional risk can be added for the update (eg: tool sees you are using method X or API call Y that was changed, so the risk is increased).

With release.risk you can say "Automatically update when total risk is <X" and actually have it be tolerable to you. Even when manually updating, you can get an idea of how much trouble its going to be, and possibly have a tool generate a list of areas you should put extra attention towards (eg: library X has a risky update, check to see if it breaks your corner cases).
That's a problem with Node, not with semver.

Nodejs is the first time I've encountered a deployment problem whose resolution was "you have to upgrade your package manager to a beta version".
Twitter is trying to claim the political niche but maybe BT Live can become the home of "too hot for Twitter" streaming.

On a personal note, it's great to see the old decentralization crew on this thread.