My first six weeks working at Stack Overflow
jonhmchan.com
jonhmchan.com
With that said, we're getting amazing performance out of SQL Server without having to shard, etc: all of Stack Overflow runs off a single server, and most of the rest of Stack Exchange runs off a second server.
Three Dell R720xd database servers (two in New York City, one in Oregon, using SQL AlwaysOn Clustering) (Global "Sites" DB & Stack Overflow dedicated):
- 2x Intel Xeon Processor E5-2680 @ 2.70 GHz
- 384 GB RAM
- 21 drives
- Mirrored Pair for OS
- 16+1 Intel 710 200GB SSD RAID10 for databases
- SQL Server 2014 CTP2
- 2x 10Gb network teamA few services hit the read replicas instead of the primary (our API, for example, moves what it can when it can), but the code for stackoverflow.com is almost entirely querying a single (quite beefy) box.
We can and do sometimes run without either replica in the AG, though we prefer not to except for scheduled maintenance.
You can write something inefficient in any stack, but it seems like there's a larger proportion of unskilled to skilled developers working in the MS stack.
Edit: To clarify, I work in the MS stack 9-5.
I've seen a lot of hesitance on the part of unskilled developers to venture into the MS stack as it has historically been hard to set up and expensive to get the software and server(s).
However, I wholeheartedly agree that MS stack, mostly Windows, is hard to configure, monitor, and administer when you want to horizontally scale, primarily because of the GUI driven configuration mindset and proprietary nature.
Then theres the whole anti-MS movement out there that will simply bash MS stack because is it by MS.
All that is a shame, because I think C# is fantastic, as is SQL Server. The rest of the MS stack is mostly so-so.
However, going pure Windows on a Mac is not entirely a bad idea either. There's a mix of devs here that use Mac or Windows - it comes down to personal preference imo
There isn't much of a speed penalty, and especially not in "simple" things like an IDE.
Also, shameless plug for our new portuguese site: http://blog.stackoverflow.com/2014/01/ola-mundo-announcing-s...
(We also rely on Redis, HAProxy and Elastic Search on non-MS platforms.)
Edit: Nevermind, found it under Accessories on Apple.com. It's a BookArc Pro by Twelve South - http://store.apple.com/us/product/HA242ZM/A/twelve-south-boo...
Out of curiosity, since you mentioned you're a self-taught programmer -- what did you major in at college?
I thought it was the points you see, but this one has 4 points and [other] has 6 points (at time of writing), but [other] is below this one.
Is it based on absolute number of upvotes (without subtracting downvotes)?
Some of them are most definitely better than others in some respects. Saying that they are all absolutely equal is like declaring every CPU ever designed completely equal.
It's true that most users will be well served by most OSes but that's more a statement about users than about OSes.
My main interests are system and games programming though so there might be a case of different points of views here.
I'm just imagining a situation where someone needs their OS to be realtime for example. They're not going to be swayed by the "All options are equal when seen from afar" argument.
Implementation details can make a difference in how nice a system is to use.
I don't know first hand, but I'm guessing the scheduler would be largely different, as is the security methodology- heck I can't imagine much similar except 'code runs here, os makes sure code runs'
I remember my friend (a low level engineer at nokia) talking to be about windows 3.1 and how Microsoft put the GUI directly in the kernel because it was too slow otherwise, he went on to elude most of the security issues with windows were based on that.
also, when it comes to remote management and headless machines, the unix-like family rule the roost.
Maybe. I bet remote management of desktops with Group Policy, and a whole slew of Microsoft and 3rd party management services, is more common in Windows-land.
In headless server terms, you've been able to install and run headless Windows Server for years now. It won't be as common because it hasn't been around as long, but it's certainly possible now.
And in remote management on the server side, Server Manager shows other servers in your organization (by default?) in Windows Server 2012, and PowerShell was designed with remoting support since its inception.
And WMI and Remote Desktop for server administration both should count as well, having being in Windows for many many years.
The most popular 'remote management' thing missing from Windows is SSH, which seems a bit of a deliberately biased way to look at things. If you work in a Windows environment, there are plenty of ways to remotely manage your servers/services.
I don't doubt that such things are possible in windows land, I feel most programming these days is so far removed from the kernel and how it handles the hardware that it's much of a muchness to decide what you'll use.
the lack of licenses certainly help with linux things if you're not in need of support though.
There is zero information in your epiphany. You can say this about anything and it will have as little meaning. Cars are just cars. Movies are just movies. The only thing that has any value is the "different and not better" and that involves a subjective "better" which doesn't apply uniformly across people. Ultimately useful measures can be based on time and money, for example productivity, deploy speed, licensing expenses, etc.
Personally I hate the click and point everything UI in windows and prefer a sane bash like terminal with familiar unix tools, but that's entirely subjective.
I thought my meaning was clear. Maybe it's not to you, but it sounds like you did understand it, and just don't agree with how I presented it. And that's fine.
> Personally I hate the click and point everything UI in windows and prefer a sane bash like terminal with familiar unix tools, but that's entirely subjective.
I went from Windows to Linux for the WMs, and stayed for the CLI. Then I went to Mac OS X and stayed for the trackpad. Then I went to emacs and stayed for the keyboard. Now I'm using Windows 8 and am considering staying for the beauty.
Honestly, I don't put much stock even in my own subjective opinions anymore, since they change by the month.
Mine too. Weird how that works. Having a super strong opinion one day and experiencing a complete reversal sometime later.
For work, I feel most productive in Linux.
For home, I absolutely cannot stand using anything but Mac OS X.
If I worked for a company that used a Windows stack, I wouldn't have a problem working in Windows, but there's a huge difference in the end user experience depending on whether you're building a web stack or organizing a photo collection.
They're different operating systems, and they each have different strengths. I run both Windows and Linux servers, and there are some things that Windows handles better, and some that Linux does.
Most new applications live in the browser (even MS Office and Intuit Quickbooks) or on your smartphone/tablet.
What about the databases?
Office 2013 is very much a Windows Desktop program. And now a Windows RT App, too.
http://en.wikipedia.org/wiki/Microsoft_Office_365#Office_app...
The fact that some plans include the full desktop apps makes me think the web app versions are not intended as full featured replacements. Or at least are not that capable today.
However at the beginning they were really Windows only while now there's really a lot of Linux in there. HAProxy running on Linux, for example.
There was a recent post about the various technologies using by the entire stack and there have also been SO/SE employees detailing the stack here on HN.
So it depends what you mean by "runs on Windows". Certainly the scalability issues are handled, at least in part, by Linux.