Varnish is heavily threaded. It maintains queues where connections are put and worker threads pull them out. It is expected that a single connection gets a dedicated thread.
Since each thread is an actual kernel thread, this will limit the concurrent connections to the maximum number of threads a kernel can handle which isn't that high.
Not as such. The connection itself can be accepted and put into a queue on a different thread than the one that serves the request. This means that only the actual number of requests concurrently being fulfilled (cached value is being retrieved from ram or storage, or is being written to the socket) is limited by the amount of kernel threads. With that in place that number doesn't really even have to be that high to handle lots of concurrent load.
The overhead of context switching becomes pretty high. Some say that context switching has become cheap, but you still at the very least need to update the tlb, and schedule the next pthread.
At least the performance of context switching should scale with the number of cores, which seems to be the main direction of increased performance in hardware looking into the future.
Expired links are the result of Arc's web server reclaiming stale continuations. It's a side effect of creating a web application using a continuation-based server.
Serving links that break in such a short time is a bug. I'm sure there's plenty of simple ways to make that link work as expected. I haven't looked at the Arc code, but I have implemented pagination dozens of time. Never with links that expire though.
The continuation style seems to imply that "next page" means "the next page of results from the time you requested the initial page". Which doesn't really have to hold true. It'd be better to just give the users more links. (As I said previously in a feature request)
Not that I believe infinite scroll is the right solution though.
[edit: This reply doesn't really convey the rage I feel when I get one of those expired links. I'd tear limbs off a developer for that...]
When a page is requested, some of the links (fnid=X) map to functions on the server that are held in memory. The id (X) is a key that is associated with a continuation for a specific "session".
It's not a bug, but a feature of Arc and other continuation servers. If continuations aren't reclaimed by the server (and those links invalidated), the server runs out of RAM.
In angers me slightly when I get an expired link, but I like getting expired links rather than items from other pages that I've already seen, like reddit. That is truly maddening.
I don't spend my vacations working for other people. You also can't expect a contractor to be passionate about your company when they have no vested interest in its success.
With all due respect, I'm sure you're great at what you do, but I'd never want you to work for me. I'm on a mission and I'm interested in hiring people who share that mission. If you are solely driven by vested financial interests you wouldn't be a good fit.
And with all due respect to you, you seem to not be considering the employee's point of view at all. An employee exchanges his time for money. It is not fair to assume that because an employee doesn't want to exchange ALL of his time for money that he is not passionate about his work or your company. He could be very passionate about these things but also have other priorities, such as rest and recovery from a full year of work, spending time with his family and friends etc. And, again, with all due respect to you, I don't ever want to work for someone like you. I, and every other healthy social individual, have other priorities besides work. You seem like the kind of person that demands his employees to put in ungodly hours to achieve the goals of your "mission", but I could of course be wrong about that. It would be a service to all us employees at HN if you could drop your company name so we could avoid it if we ever would hear of a position with you.
My company is SproutRobot.com. It's in my profile. You should check out what I'm building and by all means if it's not interesting to you avoid applying for a job. :)
I would never ask people to work without compensation. And I would never ask people to work "ungodly" hours. But I do want to work with people who are really excited about tech and about home gardens, and about making stuff that was impossible possible. Not many companies offer the chance to work on a problem like that, and for some people it's really exciting.
And they should talk to me. I've already had several people offer to work on the project for free just because it interests them and they're looking to explore other career paths.
I actually have never done the "let's do a trial weekend/week contract gig" thing, although I don't understand why you're so vociferously against that approach. Even if it limits me to people who are freelancers.... there are a lot of freelancers out there! And I'm not an unreasonable guy. If someone was excited about SproutRobot I would do everything I could to find a way to get them on board!
But if someone doesn't give a shit, and can't rearrange a couple days, or a weekend to figure out if we're a good fit.... I don't see how I'm a totally evil slavedriver boss if I think that's an indication of a poor fit for my company.
What's so terrible about wanting to hire people who want to go out of their way to work for me?
Edit: And what would you think about a company that required you to fly out for a weekend to do two days of interviews? You wouldn't even get paid for that! You must think that kind of demand is abhorrent if you think hiring someone for two days to get paid to work on the product is evil.
You're really not considering the potential employee here. When interviewing for a job, unless the company is very well known, a Google or a Microsoft, a candidate will probably know relatively little of your company, and probably have no understanding of your mission. How can you expect them to be driven by your mission if they don't know what it is?
You could say the best way for them to find this out is by doing this 3 week contract for hire idea, but that's still a risk to the candidate.
They can visit the web site and look a the product. I think it's a really exciting and unique product. I want to work with people who feel the same way.
Yeah, just because I'm interviewing with you doesn't mean that I'm 100% on board with your "mission" just yet. It took me about two years with my company to really really really get behind what we do and believe that we really are the best at what we do. It took that long because I, by default, probably like most other sane people, don't just trust blindly. The company had to prove itself to me. Trying to hire based on the inverse of that would be misguided.
I'm a little hurt that you're calling me misguided. Have you looked at my business? It's a mission-driven business. The mission is extremely clear. Dozens of people a week tell me they LOVE the mission after spending 1 minute with the site. This isn't some obscure chat client or something. I'm trying to do something real. Anyone who doesn't get excited about that right away is not a good fit. I don't think that's misguided.
I personally feel that Dropbox removing files from someone's account is completely wrong, regardless of your ToS. Your service is there to backup files. When you delete references to files from someone else's accounts, you're violating the trust that people put in your service.
This contradicts your earlier statement -- that you removed the file from the person's account.
I'm on your side here, but you need to be as transparent as possible here. Are you also saying that your system automatically generates emails that make false claims about having received a DMCA takedown notice?
This whole situation is pretty revealing about Dropbox. If hosting software that COULD be used to violate the TOS were also a violation of the TOS, and if Dropbox had been in the practice of banning such files, then 2 outcomes would have obtained:
1. The system for banning files would not send out copyright infringement notices automatically. It would be set up for banning things like source code that could be used to violate the TOS.
2. Someone on the support team you claim the system was designed for, would have done the ban, instead of you having to come in and implement "higher-level business logic" by using the ban system for something besides copyright violations.
Despite that, I'm reading your terms of service, and it sounds to me like you reserve the right to terminate service (which sounds like it would include deleting files) with or without notice, if you deem there has been a sufficiently egregious violation of your ToS.
I don't understand why you would bother? If they still had the file, wouldn't they be quite able to post it elsewhere? Why the censorship? I'm not comfortable in the knowledge that Dropbox can willy nilly refuse to allow me to share files on a case by case basis.
I can understand dropbox not allowing you to publicly share files on a case by case basis, or else I could simply put illegal content in my public folder and send out the link.
I understand it a little less if you are say sharing folders between friends.
And I wouldn't like it at all if they deleted something from my dropbox, but it seems we aren't there yet.
I finally jumped into ios development. Not really on the side since it's been my main focus lately. I went from not knowing any ios stuff to launching my first app in a week. I'm about to put my third app on the app store. I'm not making much money but there's a ton of potential.
This seems like a slap in the face of the investors. Giving a chunk of your startup capital to a charity is basically throwing it away. Good for the charity but this startup seems too early stage to be giving that kind of cash away. I hope it pays off for them.
I disagree. The article gives the distinct impression that this is a marketing strategy - a very noble one, but I don't see how you could equate this to "throwing it away", as a moment's calculation will tell you it will bring in ~15000 new users.
I feel inclined to disagree with you again... nothing personal, but I think I should point out that they are "giving it to charity", and using it to acquire users...
It was just bad wording on my part. What I tried to say was that there's a difference between giving $150k to a charity outright and donating money on behalf of the users who refer more users.
SwipeGood is hoping that many people will make the same mistake you made. It is a savvy business move that lines up very well with their business model of supporting charities.
Steli here from SwipeGood! On average our users donate over $20 per month to charity and stay enrolled for a very long time...so this move is a win/win/win. It's great for our users to be able to instantly give away money for charity ; great for our partner charities who receive the donations and good for SwipeGood since it makes economic sense for us :)
That doesn't really answer reynolds' question at all.
How is this better than spending $150k on hiring, for example, 2 engineers for a year? Or 1 engineer and 1 designer? Or 1 customer service person, 1 community manager, and 1 developer? Etc.
Our investors are really happy with us... we are in fact hiring engineers & designers right now as we speak. And this money is accelerating our growth today. Believe me when I tell you that if you can acquire new users for less money than they generate you revenue your investors will be happy to see you invest money this way! Let me know if this answers the question :) Thx, Steli
It is better if NGOs are promoting the service to their existing and potential donors. It is possible that revenue from giving away $150,000 with a buzz brings in more users than 2 engineers can.
Even PayPal with millions in funding only gave away $5/referral. $150,000 there brings you 30,000 users, but "SwipeGood is giving every user who enrolls on the service $1000 that they can give away to charity." That's 150 users or am I missing something?
I love Chicken Scheme. The community is awesome and tightly knit. They're always looking to help out new users. I was new to the community awhile back and got a ton of solid feedback on some work I was doing in Chicken. I published epoll bindings for Chicken after figuring out how things were done in their community.
As somebody looking to get into Scheme a bit, would you recommend Chicken as a good starting point for practical usage?
As a newcomer, there are just so many implementations to choose from, even when I restrict myself to choosing ones that can compile to C. Racket, Chicken, Gambit, Bigloo. They all look good on paper, and all feel the same (to me) when trying them out. What sets Chicken apart from the rest?
(FWIW, my research is leading me towards Chicken, but I've got that nagging voice in my head wondering if it's the right choice)
It's interesting to me that they turned down a $100M+ offer and raised at only a $25M pre-money valuation. Wouldn't it make more sense to raise at close to $100M pre-money?
Not if they anticipated raising more money later. Raising at $100M means they were setting themselves up for a down-round when they next raised (i.e. raising at less than $100M).
Unless they're extremely confident that they'd be valued at more than $100M in their next financing round, raising at less than $100M sounds like the smart, um, path.
But isn't this problematic, since they would have to raise more money later on, considering that they'll be diluting their shares a lot.
Doing a $5M seed round at a $25M valuation after Google's offer is, what, a dilution of 20% total shares?
I get that they can't do an evaluation that is higher than the next one, but they must really have recented taking the offer - perhaps for reasons of working at Google for four years for the $25M bonus.