skysight-inc/HackerNews huggingface dataset:
Main developer of Keevo at Stream here and you ask a very good question. I've asked myself the same question quite a lot. And I think it actually warrants it own dedicated blog post at some point. To give some idea though, the main reasons are, cost, simplicity, control and wanting to have a very good understanding of the database internals.

Cassandra is very scalable, but it's not very efficient. The hosting costs for our cassandra cluster were so big that it was infeasible to run it in another region as well.

Appart from that we've had (partial) downtime a couple of times because one node just started going crazy because of unclear reasons.

Keevo solves this by not trying to be cassandra, but be much simpler. It doesn't do schema's or indexes. All it is is a very fast ordered key value store that is stored to disk and replicated automatically to multiple servers (using raft). Any other features we need, we build on top of this usually outside of Keevo itself. This simplicity saves us a lot of hosting costs and makes its performance much more predictable and easier to debug.

Last but not least a very important advantage is control and understanding of the database internals. Because we build Keevo ourselves, we know the performance and consistency tradeoffs it has and can change/improve them when needed.

I hope this helps in understanding our choice. It's definitely not something I would recommend for most companies, but since our product is storage at its core it makes sense for us.
> It's clear this particular minor knows right from wrong

> Medical experts for the defence argue that he is on the autism spectrum and at the time of his offending had the mental development of a 12 or 13-year-old.

It is entirely unclear from the article that he knows right from wrong, and furthermore it is entirely unclear that he knows that that it is any worse than any other childish prank that went wrong. My son knows it is wrong to eat in his room, but he still does it, perhaps this child feels this is on the same level?

Unless you can share some other resource that suggests something else, I find your claim to be completely unfounded.
> In this article, I’ll explain how you can use C++ to develop a website and some concrete reasons why you might consider doing so.

I only saw one reason: performance. Did I miss some? Do people have other good use cases that justify paying the dev cost of using C++ for a web server? I'd guess with caching and a decent backend, it would be fairly hard to demonstrate a true need for performance that requires C++, but I'm sure there are a few demanding applications out there that need it.

Since a web page's throughput is usually network bottlenecked and not CPU bound, I'm curious (just for fun) what the max possible performance benefit of going C++ is, especially behind a CGI interface?

There's probably a small latency benefit at all times, and I'd guess there's a throughput benefit that is only visible if you're doing more than a few thousand requests per second..?
There are difficulties with combustion engines in enclosed areas - namely a lack of oxygen. The ventilation would be a challenge. I see that the longest road tunnel in the world is Lærdal Tunnel which is 15 miles instead of the 20ish for the Channel. It also appears to not be under water and hence ventilation is probably easier.
THIN SPACE (U+2009) is also good to use to group digits, and is in fact the standard way to group digits in the SI system instead of "," or ".".

That looks nice and gets rid of the confusion over number like "1,234" and "1.234". In the US, the former is the integer 1234 and the later is the rational number 1234/1000. In Germany or France, these would be the other way around. In SI, "1.234" and "1,234" would both be 1234/1000, and the integer 1234 would be "1 234" with the space there being a thin space.

Unfortunately, HN does not support THIN SPACE as far as I can tell.

Reddit is a little better. You can enter it in a comment and it will be correctly saved with the comment and it will display correctly in the browser. As long as you don't need to make any edits to your comment afterwards, it is fine.

If you edit the comment thin spaces are converted to regular spaces when it loads the editing widget, so unless you go through and put all the thin spaces back you will lose them when you save.
Maybe I’m missing something... this article says every smartphone is exposed... is that actually the case? Which smartphones use Intel chips?

Maybe they’re referring to the fact some of these bugs are present on other chipsets but that seems weird in an Intel article. Am I missing something?
You can do this with libboost with this https://github.com/ipkn/crow
Programming makes managers nervous. Their solution is onerous process that mostly keeps the programmers from programming. Imagine if a plumber had a foreman following him around, and every time he tried to touch the pipes, the foreman cried "No, no, don't touch the pipes. You'll break something."

A couple of times, I had managers who were stupendously good programmers. They weren't nervous about programming. They didn't care if we went in there, ripped everything up, and set it right again. Managers who don't code well must feel weird. Their responsible for this fragile thing, but they don't know how it works, or what you're doing to it.
Pion[0] is a fairly robust and well-written HTTP server implementation in C++. You can spin up a server very quickly and reverse proxy through Apache or Nginx. Microsoft has a cross-platform offering of some sort in the works using C++11, now I don’t remember the name but I think Herb Sutter has a write-up in it from a couple years ago. It’s definitely possible to write modern web applications in C++, I feel like the cgi route is pretty old school.

[0] https://github.com/splunk/pion
There are tall bridges designed to allow large ships to pass underneath. I'm not sure how that affects the cost, though.

There's one in Saint-Nazaire, France (which has a large ship building industry) which crosses the Loire river. It looks pretty cool.
https://hu.wikipedia.org/wiki/F%C3%A1jl:Pont-Mindin.jpg
packaging meltdown/spectre together was a brilliant PR coup from intel, dispite the fact that meltdown is much more severe and really only effects Intel processors.

This way they can pretend its an industry wide problem and they are not to blame, great.
How would you add extra arguments to a function with your method?
The issue with road traffic in such a tunnel (or also on such a bridge) is the emergency procedure. If there's an accident on the end cars turn around wild and block the passage etc. The trains are operated with an engine and driver on each end. In case of emergency the rear can take over immediately and return to the other end of the tunnel.
A response from the Telegraph. http://www.telegraph.co.uk/travel/lists/worlds-longest-bridg...

For comparison they show the following list.

Where | Length in kilometres
Danyang–Kunshan Grand Bridge, China 165
Changhua-Kaohsiung Viaduct, Taiwan 157
Tianjin Grand Bridge, China 114
Hong Kong-Zhuhai-Macau Bridge, China 55
Bang Na Expressway, Thailand 54
Lake Pontchartrain Causeway, USA 38
> 'Boris Bridge', UK-France 35

In light of all these other megastructures the proposed Boris Bridge doesn't sound too unreasonable? Considering the two economies it would link… Linking Ireland and the UK, that'd be another matter entirely.
The Amazon worker: paid £18,000 a year to shift 250 items an hour
This author packed so many inaccuracies into one article that I can barely remember them all. Journalism is dead.

If Intel's chips are now 30% slower, that means the market now needs somewhere between 0 and 30% more chips. I don't think their revenue will be affected negatively at all.
>"Build features that align with my own personal vision of what the product should look like, then hope that other people want it."

To be fair this is by far the most common startup advice. Make a product for yourself, because if you've having a problem others likely are too. The only place you fall into a trap here is if you're both unwilling to change the design in the future and you're wrong about the design.
Consider the original project was politically debated in the early ‘70s. It was another era. A lot of the marvellous bridges we now have around Scandinavia and so on, did not exist; and people were skeptical a bridge could survive the Channel weather (which can be pretty bad) - plus, of course, nobody wanted to disrupt one of the busiest shipping lanes in the world. In the end, anyway, even through the tunnel a road was ditched, mostly because people in charge simply didn’t trust private drivers to be good enough. An accident down there would be a nightmare, the security issues were huge. Rail can be controlled fairly effectively.
I remember being blown away as an undergrad that least squares (which I had learned first algrebraiclly) had such an obvious geometric meaning:

http://www.statisticshowto.com/wp-content/uploads/2014/11/le...

You need to square the values so that points that positives and negative differences (between the points and the trend regression line) don't cancel out.
I could not find official data yet for 2017, but they're missing a big one on this list and that's the United States Virgin Islands. 2015 brought 32.9 murders per 100,000 and they are consistently ranked as having one of the highest murder rates per capita of anywhere in the U.S.

That's a U.S. territory with a higher murder rate than Brazil.

This includes St. Thomas, St. John, and St. Croix.

I lived there for only a few years and experienced the loss of two friends due to homicide in that short time, on an island that is only 13 miles long, and 32 square miles.

Many of these crimes go unsolved despite such a small population, in such a small place, due to corruption, fear, and lack of resources.
I'd be interested in reading, even if very high-level, some additional details about Keevo. I'm most interested in what the API exposed by Keevo looks like, how it's utilized, and what parts of it are nice/lacking.
Canada -- a Quebec ban on private health insurance was overturned in 2005, but there are still open court cases on whether that applies nationally and whether healthcare providers may charge privately for services.
You can implemement reasonably C-like languages (eg. Objective C and various C-derived DSLs in many Lisp implementations) by a simple text transforming preprocessor and get reasonable error messages from the C backend (#file is your friend for achieving that).

But for anything more complex you are better off implementing complete parser with your own error handling and reporting.

Edit: one of the clearest signs of language implemented in this way is use of '@' character as part of syntax extensions as it is the only printable ascii character that has no syntactic meaning in C (the other such "unused character" is '$', but its meaning is implementation-defined, for example gcc has option that causes it to be accepted as part of identifiers, which is quite obviously the default on VMS)
Really? Escaping, people! This code isn't practical or useful; it's dangerous and sloppy.

cout << "<body>\n";
...
cout << getenv("QUERY_STRING");
cout << "</body>\n";

FWIW I wrote an article about HTML escaping and shell here: http://www.oilshell.org/blog/2017/09/19.html

Followup: http://www.oilshell.org/blog/2017/09/29.html

Also if you want to use a native language for web sites (which I don't), Go is a better choice, as the standard library has html/template which protects you from naive injections:

https://golang.org/pkg/html/template/
I heard that a big portion of the border is over a mountain range, both making actual wall construction hard and almost fulfils the same role of a wall?
the Police been telling him you Kant be robbing banks for years, and it wasn't until he READ IT that he stopped??
CGI is slow because of the spin up time for individual processes for each request. FastCGI is fast because they run as one long running process that handles multiple requests.

While plain CGI is a slower, the advantage is that you don't have long running and potentially idle processes for low traffic periods, and process isolation is a little security boost.

I chose to have a slightly slower startup time, which hopefully remain constant in a load balanced cluster, to gain the advantages above.
This isn't just Intel. Every chip company is like this. Pre/Post silicon verification is given a narrow window in which to catch everything and if it's a non-trivial bug that requires a layer change it's probably shelved till the next revision.
You missed IoT.

Preferably one would use some kind of network protocol with a native management console, but nowadays it is fashionable to have a mini webserver exposing a Web UI instead.
You’re making a bunch of leaps in logic here. How do you know he is law enforcement? Also, you said she just moved, so how does her license have her new address? So how exactly did he identify her to look her up?

Maybe he just saw a piece of her mail.

Edit: also, the most obvious question: why didn’t she do the normal thing and ask “hey, how do you know my name?”
https://news.ycombinator.com/item?id=16188789
Why do people think the C++ of today is the same as the C++ of 1998? Today we have concepts such as RAII to clean up our objects when they go out of scope. We have references which are essentially safe pointers to an extent (see dangling references). References have always existed, but people insist on using raw pointers still. Finally, for those use cases where heap allocated memory is absolutely necessary, we have smart pointers which clean up the memory they own when the smart pointer object goes out of scope (an application of RAII). Other unsafe practices carried over from C such as void * type erasure are being replaced with type-safe objects (see std::any for C++17, boost::any for pre-C++17).
Show HN: File uploader for your website or app with FB, Dropbox, Gdrive support
Here's someone saving a Tempest monitor. Nice to see them still running.

https://www.youtube.com/watch?v=Rgwp3V9ZYac
It mainly revolves around the facts that 1) VAT is deductible for companies in certain cases 2) Companies are responsible for collecting the VAT for products they sell and submitting the collected money to the government. These things mean that auditors (and in some cases officials) must be able to verify that VAT has been collected, paid and deducted correctly. Therefore it is important to have receipts which clearly show who sold, who purchased, what was purchased, what was the price and how large portion of price was VAT.
Not the answer you’re looking for, but if you think about short-term and long-term political willpower, “shouldn’t” and “can’t” turn out to be the same thing.
<sighs> the man practically defined the 'dead cat strategy': https://en.wikipedia.org/wiki/Dead_cat_strategy thats all this is, thats all he ever does.
> But when you’re working with files that only your software will access, unpacking it byte by byte will slow down IO by a huge factor compared to both mmap, and read/write of large blocks (the latter will likely translate to DMA i.e. the CPU will be free to do something else).

If:

* you're working with files that only your software will access AND

* you control, and understand, the CPU architecture of any machine that will touch that data structure and you KNOW that it will never change for the entire lifetime of that piece of data AND

* you always use the same version, or an ABI-compatible future version, of the same compiler that you KNOW will always lay out data the same way and you know what that way is AND

* you either don't need to touch this data structure in other programming languages, or you KNOW that this won't be an issue (for example because your programming language implementation was written in C, compiled against the same version of the compiler, and has an FFI that understands C structs)

THEN, you may proceed to mmap structs into memory. In practice these constraints are fairly commonplace; for example, NetBSD wscons device drivers report HID events which are specified in a struct, and because the HID events are likely never to leave the originating machine, only be passed from kernel space to user space, it makes sense to simply read(2) them straight into the struct.

And there's certainly nothing wrong with snarfing a large file into a char[], but when it comes time to extract meaning from it, unless you are absolutely sure that the underlying assumptions regarding data layout will never ever change, it will only cause marginal harm to do everything in byte offsets and shift and OR bytes to yield final values -- and this is the best portable way to access the data therein, agnostic of details about the compiler and CPU architecture.

In general it's a good idea to err on the side of caution by default, profile, and then optimize the hot paths as necessary bearing the constraints you're assuming in mind (and perhaps documenting them for good measure).

Maybe my initial statement was too strong, but I shudder whenever I see comments of the form "It's so convenient to just mmap() that sucker into a struct and access the fields!" Because they've never had to deal with the consequences of trying to access a struct from a Microsoft compiler serialized to disk, and finding out that GNU compilers have a quite different notion of how structure members are to be laid out in memory...
MySQL is perfectly capable of calculating a linear regression for you, btw. In my case, I needed to be able to estimate trends from sparse time series data. Here's how you do that:

SELECT
@a_count := avg(count) as mean_count,
@a_weeks := avg(`week`) as mean_weeks,
@covariance := (sum(`week` * `count`) - sum(`week`) * sum(`count`) / count(`week`)) / count(`week`) as covariance,
@stddev_count := stddev(`count`) as stddev_count,
@stddev_week := stddev(`week`) as stddev_week,
@r := @covariance / (@stddev_count * @stddev_week) as r,
@slope := @r * @stddev_count / @stddev_week as slope,
@y_int := @a_count - (@slope * @a_weeks) as y_int,
@this_week_no := timestampdiff(WEEK, (select min(`date`) from dataset), curdate()) as this_week_no,
@predicted := round(greatest(1, @y_int + (@slope * @this_week_no))) as predicted

FROM (SELECT timestampdiff(WEEK, (select min(`date`) from dataset), `date`) as week, count(date) as count FROM dataset group by WEEK(date)) series;

I had to figure out how to translate the math into SQL, now you don't have to.

This performs well enough to be able to crunch tens of millions of rows of data in "reasonable time" on a wimpy VPS.
Moves can be safe, and copies can be dangerous.

C++ is a language that can be used like a sawed-off shotgun propped against a developer's foot, and with a hair trigger. Granted, it does not _have_ to be used this way, but it can be.

A good developer can be "safe by default" and can use profile-directed optimization to speed up areas that are performance critical. A great developer can build proofs that such performance improvements maintain safety guarantees. For the average developer, following modern C++ development practices creates code on par with other languages in terms of both safety and performance.

For most languages, a lot can be done in terms of optimization, profiling, and security. Even in higher-level languages, an FFI is available to rewrite critical portions of code in a lower level language for performance improvements. Careful attention to detail can provide critical performance improvements in any language without compromising on safety. Getting there requires model checking or formal methods, but that is also becoming more of a part of modern development practices.
Why do you think the wall isn't happening? They are building prototypes right now.

Is the wall absurd because people will find another way around? Or because you think it literally can't be built? Or it's absurd to protect the borders of a country? Or is it absurd simply because it is proposed by Trump and you just don't like him?

Also, I don't see why this bridge can't be similar to the Chesapeake Bay bridge. That has a 1km span for ships up to 60m to pass under.
Cross-post: http://johnsalvatier.org/blog/2017/reality-has-a-surprising-...

Let’s consider some of these details. Something I think people don’t consider is that there are a non-trivial number of land animal species that migrate across the border. They have no concept of nation-states, and for some, our xenophobic electorate is basically passing a death sentence. The wall would devastate several important ecosystems, especially in the Rio Grande Valley.

Walls also need to be maintained, like any other piece of infrastructure. Have you ever visited the great state of Michigan? We can’t even handle roads. How will the federal government, which doesn’t have the best track record with maintaining infrastructure, deal with a 2,000+ mile-long wall?

Another issue is surveillance. Who will watch the entire thing? Who will make sure someone isn’t chipping away at the other side with a spoon or trying to dig under it? You can’t watch thousands of miles of wall very easily.

There are all kinds of issues with this (oh, funding is a big one too), and this just scratches the surface. If you Google “Trump border wall problems”, plenty of articles have already been written that go into much more detail.
Eiffel seemed like a really good language. I wish it had succeeded more and become mainstream. I've tried it out some with EiffelStudio earlier. Their support for developing GUI apps, at least on Windows, also seemed good, based on what I tried of it.

The book "Object-Oriented Software Construction" by Bertrand Meyer, Eiffel creator, is also very good. I had read most of it some years ago.
Not to defend Google, but I am sure there are alot of false malicious reports for many apps.

From competitors, trolls, and just random idiots...

I wonder if they flag it for review after X reports in Y time frame.

I wouldn't expect immediate action, but 19 days is a bit much.

it does look pretty bad towards the end, that you can specify any site as the extensions website to make it look more official.

What I don't understand is if they started chrome in another mode passing the executable arguments that should have disabled said extensions, how was it still redirecting the extensions management page?
I was also confused by that. The author goes on to state near the end of the article that Intel is not in the smart phone space. A little more clarity around which issues are present on smart phones and how that directly relates to Intel would be helpful.
A large existing C++ code base is one good reason. It’s possible to write wrappers for most of the more web-friendly languages but they are a pain to debug and maintain for any complex API. So if you need a relatively lightweight web front-end for a complex C++ backend something like this may be a good choice. I still wouldn’t go the cgi route, or use makefiles for that matter.
This. C is a great intermediate language for languages that have semantics close to C. Otherwise, not so much.
Chicago? Flint? Detroit?
Was my reaction as well. But, alas, talent and wisdom do not always come together.
Using CGI is silly and slow, for all but the simplest, stateless servers. If one wishes to avoid the overhead of learning a new framework, at least FastCGI should be considered.
A relevant (but dated) discussion about web frameworks in C++ can be found in [1].

I am personally a big fan of CROW [2] and have used it many times in the past.

[1] https://softwareengineering.stackexchange.com/questions/5362...
[2] https://github.com/ipkn/crow/blob/master/README.md
On Earth they certainly do, if you choose the right time scale.
I have used CIL [1] to generate C code before. Not exactly its main purpose, but it works nonetheless.

Essentially you generate a C-ast and then pretty print it. It has some limitations though.

[1] https://github.com/cil-project/cil
Parent never claimed the wall can't be built. Depending on your interpretation, they claimed it will never be built, or merely claimed that Boris isn't obsessed with a wall.