>They send in tens of thousands of requests a second, many of which they have no interest in ever being forfilled, in the hope of partly fooling other people, who are sending around similar numbers of requests.
from multiprocessing import Pool
p = Pool(4) # 4 worker threads
p.map(somefunc, someiter)
Not sure if this is apples-to-apples. Regardless, I'm always skeptical of the behavior of threaded code, even if it's embarrassingly parallel stuff that is divided among workers.
Unfortunately the multiprocessing module is a lot less efficient in many cases. Scala doesn't have to copy the entire collection across process boundaries or launch the runtime multiple times. (In this particular rather trivial example it doesn't matter much because an Int range is used). I'm afraid Python is losing out in the parallel world due to the GIL as more CPU cores become the norm.
I think you are ignoring a very obvious fact, those 1% that are no longer 'complaining' are really doing so in an automated fashion with their blacklists. Further I think the complaints will be even better because people are more inclined to a fix a problem if it is easy to do so (adding it to their blacklist) than sending an email saying please remove this from my search results (and hoping it gets removed in the future), or doing an ad-hoc in browser solution that does not give feed back to google.
What I think really needs to be exploited is a ring of trust type aspect, I'd like to have the Hackernews ring where all us on here work together to remove the spam from our results and let's Google see what are taking out, maybe that will help them improve their algorithms.
We used lift, we're in the process of ripping it out and replacing it with something else, anything else really. When I last checked a few month's ago, Lift's documentation is terrible given it's complexity. A project that is as large as Lift cannot be learned by scanning the source code and the number of examples out there to do something really custom is lacking. Tons of it's source files have only the slightest smidgen of Scaladoc if any at all.
Also anything that actually is documented is probably deprecated or about to be usurped by another feature. No classes should be added to lift without proper documentation added first. Yes it's open source, yes no one wants to write documentation at the end of the day it hurts the project however. I don't want one on one support or having to write to mailing lists I want a good explanation of what is going on top to bottom.
However I hear over and over it has worked wonders for other people, so YMMV. It's certainly not the only way to make a Webserver in Scala it just has the benefit of being one of the first big Scala projects, and it has used that time to bloat out and grab as many features as it can without documenting them properly.
While I really hope these develop into good resources, The first one isn't out. The second one is not remotely usable by itself at the moment. Most of the chapters are empty. There is a smattering of code that revolve around some very basic things can be found in other Lift books (which are now outdated). The 4th longest chapter (ch 15) is a wall of text & self promotion that goes on about how Scalable/Better Lift is than other frameworks.[1]
Here is a [link](http://main.scala-tools.org/mvnsites/liftweb-2.1/framework/s...) to the Lift Scaladocs.
Most methods do not have any descriptions, several classes don't either. This forces digging through source code / searching and asking question on the mailing list to figure out how Lift wants you to do something.
Ultimately, with how fast Lift moves it's really hard to have any faith in any book keeping up.
1:
Even when using Lift’s session-affinity dependent features, Lift applications have higher performance, identical availability, identical scalability, better security, and better user experience than
applications written with web frameworks such as Ruby on Rails, Struts, and GWT.
It's a hybrid of programmer, trader, and quant. The article doesn't mention this, but they know how to program and how to trade. They come up with, code, and write the algorithms. At a prop firm it is usually used by a desk of clerks / traders at that point, who tweak dials on the software depending on market conditions. It's a lot more than just writing code. Going the startup route requires adding on the businessman, sales, negotiating hats as well as taking management of the desk and the traders / clerks. It's a not a trivial step by any degree, however compared to the value the trade developers are adding to the trade versus how they are being compensated, some how been willing to take on that extra burden to get a chance at a better deal.
It's a lot easier for a good programmer to learn how to trade than for a good trader to learn how to be a programmer. Though most programmers make terrible traders and most traders make terrible programmers. A lot of depends on the company you are at, the more foresighted ones, were grooming guys for this role 5-10 years ago. And more importantly establishing a tradition of `trade developers.` Typically though the traders that become good enough programmers took an engineering discipline in college. Also, some of them are just so smart / driven that coding something good enough to make money is something they trudge through, but their code usually the ugliest thing you'd ever see this side of php.
FWIW I am an HF Programmer Trader, (Jeff Gomberg's Business Partner / Fellow Programmer actually) In certain cases being dumb and fast will get you very far. For example, with an arbitrage strategy, being able to get the arbitrage faster than someone else will make a lot of money and it is all about speed. It is that simple. The problem is that going that fast is very expensive (depending on the trade), so you have to be smart and decide if you can or can't get the other side of the arb in time, and it spirals on from there. But if you were the fastest being smart is less important and vice versa.
That's called gaming, and is illegal.