News for hackers. Stuff that matters.

norkakn

Re:Why Experiment Server-Side? on Thursday May 04, 2017 @03:58PM (#14268192)
Why not just write it yourself? The api has been stable for a while, so it should only take you a couple hours to get something basic for your internal needs.
Re:A dive into spatial search algorithms on Friday April 28, 2017 @02:18PM (#14221776)
I imagine that you are working in a domain where it is true that R-Trees are slow and only have the one redeeming quality. Anything that I've done involving things on a screen have performed better with quadtrees for me, so I'm not discounting your experience at all.

In other domains though, R-Trees have many other advantages, and often perform better.

http://www.dpi.inpe.br/livros/bdados/artigos/oracle_r_tree.p...

"For these datasets, R-trees consistently outperformed Quadtrees by 2-3 times" ... "In short, a quadtree could be recommended for update-intensive applications using simple poly-gon geometries, high concurrency update databases, or when specialized masks such as touch are frequently used in queries. However, users have to fine-tune the tiling level to obtain best performance. R-trees, which do not require any such tuning, could be used in all other cases to obtain nearly equivalent or better performance."

Re:How Dropbox Hacks Your Mac on Friday September 09, 2016 @08:46PM (#12467087)
Box EKM is an insecure piece of shit
Re:20 lines of code that beat A/B testing (2012) on Wednesday April 06, 2016 @06:59PM (#11443001)
Hi Fergal!

I didn't realize that the auto-allocation ever shipped, but I'm glad it finally did. Hopefully there was work done to empirically show that they solved a lot of the issues around time to convert and other messy parts of the data that killed earlier efforts, but I think everyone who knew about those was gone before you joined :)

There are very subtle issues with both frequentist and bayesian stats, which makes combining them sounds insane to me.

What are you up to these days?

Re:20 lines of code that beat A/B testing (2012) on Wednesday April 06, 2016 @03:42PM (#11441331)
Latex is a wonderful way to make a marketing paper look like a scientific one. It doesn't accurately describe the method, but that isn't really its purpose. It's a more technical description of the blog post, meant for people using the product to understand some of the tradeoffs and get more accurate results.

They are still having people make very fundamentally flawed assumptions about the data, which results in incorrect conclusions, and they are still not presenting the results in a way that people correctly interpret them. That being said, those are really hard to solve, and models that would try to correct for them would likely require a lot more data and be overly conservative for more people.

What are your reasons for disliking Optimizely?

Re:20 lines of code that beat A/B testing (2012) on Wednesday April 06, 2016 @12:13PM (#11439739)
The basic model that Optimizely uses is a Z-Test approximation of a binomial distribution. To run a proper experiment with that model, you should be calculating the sample size ahead of time, and then run it. Each visitor should be independent, and not affected by things like the day of the week, or the time of it. The end result tells you if the distributions are different, but not as much as one would think about the size of the differences. It also can't be 100. The normal distribution has an infinite range, so a finite limit can never capture 100% of it.

Optimizely is in a rough spot. People don't like having to think through experimental design, and they are really, really bad at reasoning about p-values. To try to fix the people part, they came out with the sequential stopping rule stuff (their "stats engine), but they never really published much justifying it. The other alternative would be to move the experiments into a Bayesian framework, but that has a lot of it's own problems. When they acquired Synference, that was one of the likely directions to take (along with offering bandits), but that didn't work out and those guys have since left.

Re:Apache HBase 1.0 released on Tuesday February 24, 2015 @06:48PM (#9104361)
Yeah, you'll see it. Operations are basically atomic on a single row, so it often makes sense to have fat rows with tons of columns. You can use the version as an extra dimension, or encode multi-dimensional information into the column to make it pretty nice.
Re:PostgreSQL 9.4 Released on Friday December 19, 2014 @06:46PM (#8775215)
Cassandra avoids some of the really visible issues by being AP instead of CP. Hbase hits them, but dodges a bit by only having row level consistency. They are solving very different problems.

The lack of vector clocks in Cassandra can lead to some very non-intuitive (possible wrong) behavior - check out their counter implementation for some rage on that. It's pretty well made though, and I think C*, Hbase and Postgres all have great uses (along with Redis, and a lot of others)

Mongo tends to get things subtly wrong in ways that corrupt data, or that don't scale, and it gives up both A and C.

Re:PostgreSQL 9.4 Released on Friday December 19, 2014 @06:42PM (#8775199)
Yeah, it's worse than it sounds though. If you write to 2/3 nodes, and the third gets elected, you can roll back majority confirmed writes. I think it did even worse things when near capacity, but those are harder to pin down.
Re:PostgreSQL 9.4 Released on Thursday December 18, 2014 @08:45PM (#8770767)
This plus zookeeper to manage shard transitions would be awesome.
Re:PostgreSQL 9.4 Released on Thursday December 18, 2014 @08:32PM (#8770744)
I think we had one of the larger mongo installs around, so you just might not have been at the scale to see these issues.
Re:PostgreSQL 9.4 Released on Thursday December 18, 2014 @08:07PM (#8770657)
The most infuriating way is that it will roll back its oplog on an election, and sometimes throw away confirmed writes.

Mongos does weird magic as well when it gets confused, and will confirm writes to the wrong shards during "interesting" situations.

Re:PostgreSQL 9.4 Released on Thursday December 18, 2014 @08:02PM (#8770638)
2 is wrong. Mongos shits all over itself after only a few nodes and moderate traffic. It's balancing is incredibly broken and will kill a small cluster very quickly.

Source: tried to use it at scale

Re:PostgreSQL 9.4 Released on Thursday December 18, 2014 @05:16PM (#8769978)
Clustering is really, really hard.

Cassandra is one of the better ones out there, but you have to deal with its data model and weird consistency promises (which however weird you think they are, are weirder)

The correct way to cluster also changes dramatically depending on your use case. Sure there are things like RAC that promise to make it just work, but those don't scale more than a few nodes.

Mongo is kind of the worst in this - it clusters in one weird way, has bad tooling, and subtly destroys your data at scale.

The general philosophy with postgres is to do it right, or not do it. There are ways to do specific kinds of clustering, but all of them (just like mongo, oracle, etc) have a lot of nuances to them.

If you have a natural shard key, use a bunch of schemas and table inheritance, and eat the downtime during re-shards. Check out citus as well. They have their issues, but they can help you hook up what you need.

Re:Making PostgreSQL Scale Hadoop-style: Benchmark Numbers on Friday October 31, 2014 @06:54PM (#8541495)
It's Apache V2, which is a lot better than GPL for many of us.

https://github.com/citusdata/cstore_fdw/blob/master/LICENSE

They're really nice talented people, and a great example of a company giving back to the community.

I remember asking a question about scaling on SO and getting a response about how my data was small, because it could fit on an SSD (for that one small component)

I miss not having real scaling issues sometimes. They make my head hurt.

Re:Tips on How to A/B Test on Thursday November 22, 2012 @03:51AM (#4818045)
Where is 0: use optimizely and don't reinvent the wheel?
Re:OrmHate on Tuesday June 26, 2012 @12:48PM (#4162852)
What ones do you like? The Django ORM makes me want to vomit every day or so.
Re:Titan: A Highly Scalable, Distributed Graph Database on Thursday June 14, 2012 @03:06PM (#4112978)
I really wish that I could attend. We ask a lot of questions like:

Find all Nodes with a property in a tree

Find all leaves L of those nodes

Find all annotations in a DAG of those leaves

Collapse similar DAG entries by backtracking up the graph based on edge weights

Writes are bulk loaded, and right now, we are just trying to push all of the graph stuff offline, but there are some limitations to that, and we could really up our accuracy by being able to perform these queries quickly.

Re:Titan: A Highly Scalable, Distributed Graph Database on Thursday June 14, 2012 @02:37PM (#4112838)
Each Neo4j node stores all of the data, and it doesn't scale write horizontally well.

OrientDB tries to scale writes (I'll be testing this in a few months), but still stores all of the data everywhere.

This looks like it shards the data automagically. If it works well, I might be able to bang on it a bit, but I'm guessing that it gives shit performance for complex graph questions.

Re:Python for Perl programmers on Tuesday April 03, 2012 @02:00PM (#3794033)
http://onyxneon.com/books/modern_perl/modern_perl_a4.pdf

Perl isn't batteries included, but its packages are usually actually tested on multiple versions. This allows for the community to move on its own. There is no dictator, by design. Try #perl for help as well, or the package channel if there is one.

Re:Comparing PHP, Perl, Python and Ruby on Wednesday February 29, 2012 @12:50PM (#3648821)
I used to work on an old perl code base that was written by well meaning new programmers. I know work on an old python code base written by well meaning new programmers.

Both projects suck equally. The python project is much newer (~4 years instead of 12), but the smell is about the same. The problem with new programmers isn't that they pick the wrong object creation patterns, but that they reinvent the wheel and write long stupid functions with horrible nested if/else statements. A former google employee worked on one of the projects, and wrote her own python to json function.

I like python, and I like perl, but the python culture sucks. It has this weird superiority complex where it rejects any external ideas. If I am talking to perl people, and I mention some kick ass python feature that I miss, I either get information as to how it can be done in perl, or interest into why I like it. Around python people, I generally get something like, "well, none of us know perl. Have you tried doing it the python way?"

Moose is awesome, perlbrew is awesome, perl's module culture is awesome. The module culture is the one that annoys me most often. Python programmers don't write as good of tests, or nearly as good of documentation. We still have to run a lot of python 2.4, and a lot of modules claim 2.4 support and then use 2.6+ syntax.

I like python, I think it is a much better matlab, but a lot of its syntax is unintuitive and stupid, and there are some serious cultural issues. Anyone who thinks that it is perfect, or better than another language in every way is holding it back.