skysight-inc/HackerNews huggingface dataset:
Silly or naïve as it may sound, he still expresses real concerns:

- What do you do when the cloud is not accessible?

- Can you trust the phone maker not to build-in spying hardware or software?

- Even if you naïvely believe the phone maker company won't do anything bad, can you believe it won't be infiltrated by the NSA, the MSS or the Mossad, with key employees inserting such spyware?

On the other hand, while problems are more acute with live smartphones than the dead ones that will be recycled, it occurs often that desktop PCs are thrown away or donated with hard disk full of private data.

Can you expect everybody to understand the technical jargon that would have to be used to explain properly what happens and what are the risks, or is it not more convenient to push the analogy forward, and ask what happens on a rainy day with your data in the cloud?
Consider:

"You already have an existing ReQL query in a string variable. You need to add the age > 20 condition to that query."

Same problem. Comparing apples and oranges, strings and some "live" code. If you put ReQL and SQL into the same category (either as a string or as a thing that represents some "live" running code that you can manipulate at runtime) then it is difficult for me, at least, to really grasp what the differences are between them. SQL is certainly not considered an imperative language, eh?

----

EDIT to respond to the comments below from TylerE and pests:

Oh but you do have ReQL as a string: when you type it into the editor, when it lives on disk as a file of source code. At some point that code becomes live and you can interact with it. The exact same basic transformation happens whether the syntax is ReQL or SQL, just in different ways and at different times depending on how you choose to run it not what syntax it's in. The issues are orthogonal and it certainly fair to demand that we compare the right things.

If you want to say that ReQL is a better syntax than SQL, well, I don't see it (yet.)

If you want to say that the product in question provides a nice way to run ReQL syntax queries in some fashion that is fundamentally better than the way that some other product allows you to run SQL queries, that is a whole different issue (and NOT the one I am addressing in my comment above.)

I hope that makes sense. ;-) Cheers!
How about "I did my job, and if you ask me to specify how much time I spent on testing and refactoring, you're a micromanager and you're redundant because you obviously have nothing better to do"? As a developer, you need to take your own responsibility for the code and product you create, and be proud of it. Besides, it's a fallacy that time not spent on code quality would lead to more features / a better product.
Have you seen the 'infinite jukebox'?

http://labs.echonest.com/Uploader/index.html

It stretches or compresses existing music by jumping back and forth to parts of the piece that sound similar, which could be handy for dynamically adapting the timing/duration of existing pieces to the players situation.
> Give me numbers with profile data

Because the interests me, I took a few minutes to try this out.

I ran this test on GCC 4.8.2-19ubuntu1, since it was the newest official release I could get my hands on without compiling my own GCC.

Here are my raw numbers (methodology below):

LuaJIT 2.0.2 (JIT disabled): 1.675s
Lua 5.1.5: 5.787s (3.45x)
Lua 5.1.5 w/FDO: 5.280s (3.15x)
Lua 5.1.5 -O3: 6.536s (3.90x)
Lua 5.1.5 -O3 w/FDO: 4.288s (2.56x)

For a benchmark I ran the fannkuch benchmark with N=11 (https://github.com/headius/luaj/blob/master/test/lua/perf/fa...).

My machine is a Intel(R) Xeon(R) CPU E5-1650 0 @ 3.20GHz.

To test LuaJIT with the JIT disabled I ran:

$ time luajit -j off benchmark.lua

To test regular and FDO builds for Lua 5.1.5 I ran (in the "src" directory of a Lua 5.1.5 tree):

$ make all
$ time ./lua benchmark.lua
$ make clean
$ make all MYCFLAGS=-fprofile-arcs MYLIBS=-fprofile-arcs
$ ./lua benchmark.lua
$ make clean (note: does not delete *.gcda)
$ make all MYCFLAGS=-fbranch-probabilities
$ time ./lua benchmark.lua

Because Lua's Makefiles use -O2 by default, I edited the Makefile to try -O3 also.

> and file bugs about the differences in assembly generation

It would be pretty hard to file bugs that specific since the two interpreters use different byte-code.

It would be an interesting exercise to write a C interpreter for the LuaJIT bytecode. That would make it easier to file the kinds of performance bugs you were mentioning.
I think it's easier to explain this in terms of likelihood theory. Likelihood is the probability of observed data GIVEN A SPECIFIC MODEL. This is NOT to be confused with the probability of a specific model being correct GIVEN THE OBSERVED DATA. It is the later probability that people want to really know, but confusing it with the former probability can have catastrophic consequences in fields like medicine, engineering, jurisprudence, finance and insurance.

The problem is related to the Prosecutor's Fallacy (https://en.wikipedia.org/wiki/Prosecutor%27s_fallacy): "Consider this case: a lottery winner is accused of cheating, based on the improbability of winning. At the trial, the prosecutor calculates the (very small) probability of winning the lottery without cheating and argues that this is the chance of innocence. The logical flaw is that the prosecutor has failed to account for the large number of people who play the lottery."

There is a mathematical statistics professor at the University of Toronto named D.A.S. Fraser (http://www.utstat.utoronto.ca/dfraser/) who is an expert in likelihood theory and has commented on this issue: "...statistics does have the answer! The answer is contained in the p-value function from likelihood theory: p(delta)
Here delta is the relevant parameter with delta_0 as the null value and delta_1 as the alternative needing detection. Then p(delta_0) is the observed p-value, p(delta_1) is the detection probability, and the rest is judgement: the route to the Higgs boson."
Also, I've heard the theory (I don't know if it's true) that while Chinese invented porcelain and used it for containers (cups, plates, etc), Europeans never did, and ended up inventing glass instead (and windows, microscopes, telescopes, ...).
This reminds me of FriendFeed´s Schemaless MySQL.

https://backchannel.org/blog/friendfeed-schemaless-mysql

They were acquired by FB.
Yeah, see http://en.wikipedia.org/wiki/Space_Travel_(video_game)
What is this magic chord they all start on?
“Cursed” Disabled boy suffers humiliation in traditional fishing village
Well, my third paragraph wasn’t arguing that it would be profitable to employ Tim, just that him working on software in such situations would increase total production of value. If that value isn’t sufficiently capturable by the employer, it still might be unprofitable. So it doesn’t actually argue for your #1 or #2 case.

I agree that if #1 or #2 is true, then there’s a big and profitable opportunity to make things better within capitalism. But if they’re not true, that doesn’t imply that regulation or the overthrow of capitalism is strictly necessary to improve the situation; it could be that non-capitalist institutions that can coexist with capitalism could solve the problem. Dominant assurance contracts on Kickstarter, for example. :)
Right, but the toxic and anti-intellectual attitudes are the dirt in the cup. The word "feminism" simply does, by common usage and political self-definition, refer to the equality of women.
Except this information is apparently being exchanged in a closed, proprietary market.
Honest question: Do you think Hangouts will eventually be open sourced?

It's really messed up that all our non-xmpp (a massive majority) messaging goes over nonstandard protocols. All our daily communications are behind walled gardens; one of the sorriest states in tech today.

Hangouts going open source is one of the few ways this could change in a reasonable time frame.
How about just giving up on automatic optimization? I love the approach taken by http://halide-lang.org/. The programmer writes code, but then instead of having a compiler do the optimizations automatically, the programmer also explicitly specifies the optimizations to perform!

The advantage is that changing the optimizations cannot affect the correctness of the algorithm. So you get to write your algorithm once, verify its correctness, and then try drastically changing data layout, order of computations, parallelization, etc, as freely as you want. You can even change the optimizations you're using to match the data you're processing, so you can do much better than an optimizing compiler could do without profile-guided optimization.

Edit: After looking more closely at the presentation, I think Halide is essentially the realization of the hypothetical language described in the last few slides. Somebody should tell DJB about it!
I've encountered a similar problem with the shuffle method in Clementine (I love this music player) where it repeats a song not too long after having played it. In the case of Clementine there is no "random playlist" generated, the next song is randomly chosen, despite it having been played 3 songs ago, or even 2 songs ago. So I've noticed shuffling on several software is quite a pain. Interesting read, I wouldn't mind as much the issues in this article since most of my playlists are of the same genre, although I do get the issue of upbeat / lowbeat songs.
> You're right to not have qualms about laughing at something that's literally just black and white pixels (and some in-between grays) that are arranged in some configuration on your screen. ;-)

Not sure what you're trying to say here? Its a cartoon about a stick figure who can't code.
Funniest part was "it's like someone took a transcript of a couple arguing at ikea and made random edits until it compiled without errors" lol

> That said, this XKCD comic is one of Randall's rare misses. It's about mocking something which I -- as a developer -- would actually like to promote: People taking initiative and teaching themselves to code. Even people who are shitty at it.

I understand that you feel passionately about this, and I agree wholeheartedly that non professionals should not be mocked. That said, I dont think that's what's going on here. What we have here, is a cartoon that's poking fun at an exaggerated circumstance. No individual or group is being (sincerely) called out or told they shouln't try to learn to code. It's all just a joke, for amusement.

Its like saying Peanuts is mean spirited for mocking people with poor hygiene with the character Pig Pen: It discourages those people from leaving their homes and interacting with people. I should instead encourage those with poor hygiene to pick up that bar of soap and go outside!

... But that's silly, right?
I think that will work for the specific case but won't generalize.
"Lisp is... a good assembly language because it is possible to write Lisp in a style that directly reflects the operations available on modern computers."

Peter Norvig, Paradigms of Artificial Intelligence Programming.
You would never have a ReQL query in a string though. I don't think its fair to ask about that case.
No, sorry, I do not know. It would be nice to have some kind of standard format for these kind of info so a visualization like yours could be applied easily to different databases. Maybe with some API-mangling (like yahoo pipes) it would be possible to consume several data sources and feed them into your js. Just an idea.
> the late capitalist devaluation of humanity

Nonsense. Doesn't happen.
WRT 2) DOS does not require a public network; you can war dial access points or attack infrastructure to achieve the same effect.

Any insight on what happened today? I'm surprised there's no failover mechanism that tries to route traffic some other way in case of a communication failure.

Unfortunately BBG requires a bit more scrutiny because when their network goes down entire countries cannot finance themselves -- they had to postpone some debt sales in the UK today I read.
Fretless is difficult to play accurately, especially for chords. Also, you get a louder sound from frets because your fingers aren't muting the strings quite so much.
https://nod.com

This looks like exactly what you are looking for.
True that, the original LXC library was Google. Then Docker wrote their own implementation called libcontainer (and systemd-nspawn popped about).

While Google made containers possible I think Docker made them happen. I can't imagine committing an LXC container and pushing it to a repo if it weren't for docker. Nor would I want to manage raw networking in LXC. Nor sharing of filesystems.
May I know when that happened? I'm curious about using RethinkDB after reading Rob's post
Does Sugar Help You Focus?
Today people rely on sources like Mike's mailing list post to decide whether their project can be done in C or not.
If GCC significantly improved since 2011, it's important that people are able to show evidence of this.
The women that sell services are the true criminals. Everyone else is innovating and disrupting.
The biggest red flag for me was OP's complete lack of any specific examples and supportive evidence in the post.

I've seen way too many people claim some injustice or generalization that, when the other side of the story came out, was shown not to really be present to any significant degree in their case.

In most cases, if you are withholding evidence, you are not allowing others to judge the situation for themselves.

From looking around his blog, it's clear that he has some very strong political affiliations, which make the matter worse and the need for evidence even greater.
I also work on a payroll system (Rails/postgresql) based that's used for internal company use with hundreds of employees and multiple states. The hardest part is the taxes and benefits that's handled by external vendors.
Not to mention DNS. Presumably the router would have a DNS caching server that could get around the block, but you wouldn't be able to have a computer use any other DNS server...
Payments made to or accepted by doctors (API available)
To counter some of the naysayers, suppose your JSON parsing library or Guice object instantiation is slow. In my case, my CSV parsing library is slow. You will change your code to avoid these things. In my case, I’m considering converting the CSV files to Thrift or Protocol Buffers, which means that I’ll have hundreds of gigabytes of reformatted data that I’ll need to rebuild when the CSV changes. But then the CSV parsing would not show up in the profiler any more. If, instead, I magically had a CSV parser that was ten times faster, I would have an overall simpler system that didn’t have to manage a cache of hundreds of gigabytes of reformatted data in order to avoid CSV parsing.

So it’s entirely possible that a slow JSON parsing library (or DI library or whatever) could result in an overall slow and overcomplicated system, and yet not show up in the profiler, because the programmers had added enough overcomplicated, somewhat faster alternatives to avoid using the JSON library much.
Some bits of Fran Allen in Coders At Work book: http://www.codersatwork.com/fran-allen.html

"We were making so much good progress on optimizations and transformations. We were getting rid of just one nice problem after another. When C came out, at one of the SIGPLAN compiler conferences, there was a debate between Steve Johnson from Bell Labs, who was supporting C, and one of our people, Bill Harrison, who was working on a project that I had at that time supporting automatic
optimization. The nubbin of the debate was Steve’s defense of not having to build optimizers anymore because the programmer would take care of it. That it was really a programmer’s issue"

"We have seriously regressed, since C developed. C has destroyed our ability to advance the state of the art in automatic optimization, automatic parallelization, automatic mapping of a high-level language to the machine. This is one of the reasons compilers are . . . basically not taught much anymore in the colleges and universities. "
Redis is good at storing various data structures. Sets, sorted sets, hashes, etc. As long as "scaling up" means adding memory it's good.
This is the new velvet fascism.

> What this means is that there's a good chance that if you've placed an ad online in the last two years for escorting, massage, BDSM, stripping, private modeling, nude housekeeping, selling your underwear, or any other permutation of the various sexual services people can put on offer, Rescue Forensics has a copy. And because Rescue Forensics has a copy, so do their users in law enforcement.

One could and probably will argue that RF is making a tool and that the moral responsibility to use that tool rests with law enforcement. That is a cop out, we all have to take ownership of the technologies we create or enable. We enable the noble as well at the nefarious with each new technological advance. To create a project, aimed at generating revenue via US law enforcement is at this point in history is morally reprehensible.

As the War on Drugs shrinks, revenue will have to be generated elsewhere.
How to fix rootpipe in Mavericks and call Apple's bluff about rootpipe fixes
Security expert tweets about hacking airplane systems, gets pulled off flight
MakerBot lays off 20 percent of its staff
My point with ww1 and ww2 is that, if you graphed wars by people involved, destruction, whatever, they stick out of the group by a long way. I think your looking at the picture with too much of a us-centric view. The US is not involved in the majority of wars, at least not directly with men nondescript materials. You're right in that the world wars are all part of the same narrative about destabilisation that leads to other wars - arguably the majority of conflicts around today have roots in both.

But if you look at some more topical wars/conflicts - say the Arab/Israel conflict from 1948-present you see that it's not just about gaining territory but far deeper things (territory is the score, but the purpose is much deeper) plus the military conflicts during this period have been much more conventional with the majority of attacks being primarily military. Lately it has gone more asymmetrical and terrorism v conventional military but initially it was tanks on battlefields. Again other conflicts in the he second half of the twentieth century were far make typical wars in that they were relatively localised, didn't involve things like carpet bombing civilian population and didn't involve mass troop movements. Even Vietnam and Korea, wars with direct US involvement, had a fraction of the men deployed as compared with Ww2.

Also, it's a good point about making the cost of a war prohibitive - we have the means to do this now - but the costs of a war don't usually fall onto the main aggressors on all sides. Typically it falls onto the soldiers, refugees and ordinary citizens. If powerful countries were prepared to apply the costs of war to those who start them, the incidence would go down. But you spiral into an eye-for-an-eye retaliation which is a worse mess.
That sounds like a pretty basic bug not to catch in a shuffling function. Sounds like it shuffles for ever and never reaches the end then? I haven't heard of clementine before. What does it provide you that other music apps don't?
you mean like being in any public space? I only get to control how I react.
That's inaccurate. You should check out "guns, germs and steel".
It's 2015 and we're telling adults what they can and can't do things with their own bodies, individually, why would two adults be any different?

Yes I'm talking about drugs. No, I'm not talking about cartels and violence. It's 2015, and in most jurisdictions it's still illegal for me to grow a plant, on my own property, and then smoke said plant because I find it enjoyable.
Oddly enough - no mention of this book. Great read - highly recommended.

http://www.amazon.com/Driving-Mr-Albert-America-Einsteins/dp...
> I admire the OP for having the courage to stand up and speak the truth about the state of this industry

I share your admiration to the OP's courage, and while my own experiences are not as extreme as this article, there is a bizarre resonance in it all.

> (1) who's going to stick around and fight? and (2) how do we fix it?

The one problem I see with this is that we are spoiled by money. "Tech" is a field that produces return on investment, so there's lots of money to burn. In more traditional fields, the economic failures caused by this kind of misbehavior would force out the players who cannot do a minimum of self regulation.

Not us I say. It is hard to convince people of these and other structural problems if they are making money hand over fist. The bosses that say "Suck it up, cry baby" don't really have to even pretend to listen to you. Everything is going well after all. If mistreating high skilled people would put their own positions and incomes in jeopardy, they'd at least have to pay attention.
Seems like a cool toy. Rust is probably the right language to write a db
> I think the argument can be made that command lines tools shouldn't provide versioning and help text at all - leave it up to the manual pages.

I'd have a real hard time agreeing with that. But I could make an exception for /bin/true.
A ReQL query does. That's the point, it's a native object you can chain stuff off of.
I mostly liked it because it was multiplatform, and the ability to control it from a mobile app on my phone via same Wi-Fi local network.

Edit:

I believe it's discontinued now, or something. But also another plus was that it was quite fast at starting up. I got it due to my frustration with how slow iTunes had become. It's hard to find anything close to 'iTunes' as well.
No it's not. Because there is no such thing as a ReQL query in a string. It's an object, usually built by chain methods. There is no textual representation.

Edit to your edit: It seems you are fundamentally not getting it. The ReQL is live code in your native programming environment. That means you can inspect it and manipulate it. SQL doesn't get interpreted (or whatever, it's black box) until it hits the server.

Imagine you're in a world where there are no XML parsing libraries. SQL is a string containing XML. ReQL is a DOM object.

One is much more useful than the other.
New features like this are exactly what we need to encourage more people (including myself...) to invest time porting their projects to Python 3! I look forward to seeing this approved.
Slava @ Rethink here.

I'm not entirely sure what you're referring to, but the closest I can think of is the move from the memcached interface in 1.1 to the ReQL interface in 1.2. If that's what you mean, I don't think it's fair to say we abandoned our users at all.

The memcached interface had very few people using it (literally single digits). We tried really hard to make it work, but there just wasn't any demand, so we decided to add a full query language, clustering, and rebuild with the realtime architecture. We supported the binary for a while, and helped most of the users migrate from the memcached interface to ReQL (which was fairly easy).

We also helped people migrate to other memcached alternatives if they chose to not to use ReQL. In almost all cases people could quite literally pick another compatible product without changing any of their code.

We took our time, helped people migrate (either to the newer version of RethinkDB, or to other products), and integrated the original architecture and as much of the code as we could into the new and improved RethinkDB. All of this was completely free of charge.

So respectfully, I really don't think you're being fair to us. I'm sorry if this inconvenienced your company, but given the dire circumstances at the time we really did the best we could (and arguably, much, much more than most companies do in those circumstances).