Miniature Quadruped Robot Is Blazingly Fast - <AUTHOR> http://spectrum.ieee.org/automaton/robotics/robotics-hardware/miniature-quadruped-robot-is-blazingly-fast#.Ua9NrsUv52Q.hackernews <comment><USER2> How is this a quadruped and not a _wheeled_ robot with just a funny tire design?

<comment><USER3> There's an entire paragraph in the article that discusses that.

</comment></comment><comment><USER4> am i the only one who gets annoyed by every "body-length : speed" and "body- weight : carrying-capacity" comparison? these things don't scale, people! it's _not_ amazing.

is it amazing that a spider can freefall from 10,000 ft (millions of body lengths) and survive? no, it isn't.

<comment><USER5> To be fair, every time I watch Darwin Beetles throwing each other out of giant trees, I'm a little amazed.

</comment></comment><comment><USER6> I'd buy one of these as a cat toy. Don't know if it'd work out, but something like it ought to.

</comment><comment><USER7> While reading the not-very-interesting featured article, I saw a link that ultimately led me to this, which HN might find more interesting:

[http://www.kickstarter.com/projects/barobo/linkbot-create- wi...](http://www.kickstarter.com/projects/barobo/linkbot-create-with-robots)

Modular robots for education, only $140! (I think they might have a pricing problem)

</comment><comment><USER8> I don't really understand my brain's response to small things.

Small dog/cat -> cute

Tarantula -> horrible

Small robot that goes as fast as a tarantula -> cute?

Anyway, that's pretty cool. They should put some sticky/rubbery material on the tips of the legs to improve traction on smooth surfaces.

<comment><USER9> It's not relative to absolute size -- it's relative to the average size of the thing. Baby elephants are cute, even if full-grown dogs, being much smaller, aren't.

A tarantula is not so much a small _thing_ as it is a HUGE _spider_. Tiny spiders are actually cute. At least, as cute as spiders get, anyway.

</comment></comment><comment><USER10>
      Only 6 millimeters in size each, the motors output 1.5
      watts of power at 40,000 RPM, driving the individual whegs
      through 16:1 planetary gearheads.

Huh. What's their max operating temp? How long can they run at 100% before overheating?

</comment><comment><USER11> "What makes the robot wicked fast is the fact that it's got four independent drive motors, each one of which has a power to weight ratio that's absolutely bananas. Only 6 millimeters in size each, the motors output 1.5 watts of power at 40,000 RPM, driving the individual whegs through 16:1 planetary gearheads. They're not cheap (hundreds of dollars each), but they make for one crazy little robot. And of course, independently driven whegs make the robot smaller, lighter, simpler to steer, and generally more efficient overall"

What are my current alternatives if I want to build something similar and I'm only willing to spend say $50 per drive motor?

</comment><comment><USER12> Quadruped my ass.

Install off road RC car paddle wheels on this thing and it will perform the same or better. It might even float! "Four leg robot fastest on water." Right.

[https://www.google.com/search?q=paddle+tires+for+rc+truck...](https://www.google.com/search?q=paddle+tires+for+rc+truck&hl=en- US&espv=1&tbm=isch&tbo=u&sboxchip=Images&source=univ&sa=X&ei=03GvUZWTEYf2igLupIG4Bw&ved=0CGsQsAQ&biw=1024&bih=672)

I am disgusted by this. University of Maryland and Johns Hopkins ought to be ashamed. It's an insult to anyone working on real legged locomotion. Dishonest at the very least. And, if the research is funded with public money tagged for legged locomotion this is fraudulent as well. Sad.

</comment><comment><USER13> Depending of the definition of the "leg" this robot has actually 4*6=24 legs.

<comment><USER14> There are knobby protrusions on my car tires. By the definition at hand, my car has hundreds of legs.

They're wheels, not legs.

</comment></comment><comment><USER15> This is one pretty pathetic misrepresentation. Only a kid could call this toy "car" a robot.

<comment><USER16> It _is_ a robot, just not a _quadrupedal_ robot.

</comment></comment><comment><USER17> That reminds me of this Bipedal human powered vehicle:

[http://blog.modernmechanix.com/cast-off-shoes-make-tires- for...](http://blog.modernmechanix.com/cast-off-shoes-make-tires-for-rough- rider-bicycle/)

</comment><comment><USER18> The animal! The animal! Can anything stop the animal? <http://www.youtube.com/watch?v=-IRCaE3ks6Y>

</comment><comment><USER19> Am I missing something? All I see is an rc car.

</comment><comment><USER20> I want one that's about a hundred times this size.</comment>


CS142: Web Applications (Spring 2016) - <AUTHOR> https://web.stanford.edu/class/cs142/lectures.html <comment><AUTHOR> prof.ousterhout's website contains links for archived courses: ([https://web.stanford.edu/~ouster](https://web.stanford.edu/~ouster)).</comment>


PostgreSQL 9.6 Beta 1 Released - <AUTHOR> http://www.postgresql.org/about/news/1668/ <comment><USER2> Parallel query will probably win for sexiest new feature ( _rightfully so!_ ) but remote apply is very useful in the real world. It will greatly simplify reading newly written data off replicas: [http://michael.otacoo.com/postgresql-2/postgres-9-6-feature-...](http://michael.otacoo.com/postgresql-2/postgres-9-6-feature- highlight-remote-apply/)

<comment><USER3> Could you elaborate on exactly what it is? Will it mean the named elements of queries will automatically be parallelized?

<comment><USER2> Postgres currently uses a single process per connection. That means at most one CPU core is used per query executing a connection. Parallel query allows breaking up query plans to allow multiple processes (and by extension cpu cores) to process a part of a query plan.

The classic example is a sequential scan, say for a COUNT(*) or SUM(foo). A single process would scan through all the blocks in order. A parallel scan would split the blocks into N buckets, scan them via N separate processes, and then combine the results.

<comment><USER4> There's nothing to complain about with this. But aren't most large database queries ultimately IO capped, rather than CPU capped? Wouldn't this just put more load on the IO and it would just bottleneck there?

<comment><USER5> Yes and no. Take the following with grain of salt as it is just my personal opinion/understanding. Only 1 or 2 points are actually from challenges I have run into.

Restricting every query to a single core places an artificial CPU cap on a system that would otherwise be IO capped.

Disks/storage is also getting faster ([http://www.geek.com/chips/new-intel- storage-is-1000-times-fa...](http://www.geek.com/chips/new-intel-storage- is-1000-times-faster-than-your-ssd-1629656/)).

As analytics keeps gaining popularity, the need/desire to move more and more CPU bound processing to the data storage layer is increasing.

And finally, PostgreSQL's advanced query planning/partitioning support would immensely benefit from being able to split partition queries into multiple process buckets.

<comment><USER6> And also RAM keeps getting cheaper. 64GB is absolutely nothing these days and can fit a LOT of data.

</comment></comment></comment></comment></comment></comment><comment><USER7> From the Release Notes:

Major enhancements in PostgreSQL 9.6 include:

Parallel sequential scans, joins and aggregates

Elimination of repetitive scanning of old data by autovacuum

Synchronous replication now allows multiple standby servers for increased reliability

Full-text search for phrases

Support for remote joins, sorts, and updates in postgres_fdw

Substantial performance improvements, especially in the area of improving scalability on many-CPU servers

</comment><comment><USER8> This is excellent, the read-balancing consistency is a huge feature, and one we've been waiting for as trying to do read balancing without it is jumping through way too many hoops (unless data consistency just isn't your thing).

</comment><comment><USER9> and 9.7 have started planning

* [ "asynchronous and vectorized execution" ]

[http://www.postgresql.org/message- id/CA+Tgmobx8su_bYtAa3Dgrq...](http://www.postgresql.org/message- email@example.com)

</comment><comment><USER10> The features that I'll personally probably enjoy the most are really the FDW join pushdown work, parallel query. (though it's still early days for the parallel stuff)

..and the thing that's a killer feature for many larger databases, the freeze map. Not having to FREEZE things all the time is a godsend.

<comment><USER11> Could you possibly quickly explain what a freeze map is?

<comment><USER12> Postgres uses a specific brand of MVCC ([https://en.wikipedia.org/wiki/Multiversion_concurrency_contr...](https://en.wikipedia.org/wiki/Multiversion_concurrency_control)) where multiple versions of a row are stored in the heap. That's why there's vacuuming to remove those.

To avoid having to vacuum whole relations all the time there's the "visibility map", which keeps track of which blocks have no dirty rows; so they can be skipped during vacuum.

To understand which versions are visible postgres stores transaction-ids in the row headers; these are four byte wide. On systems with significant throughput, those don't last very long. So every now and then there's anti- wraparound vacuums; which replaces xids which are about to become "too old" with a special marker ("frozen").

The problem < 9.6 is that these anti-wraparound vacuums have to scan the whole table, thereby are a lot more expensive. These happen every 200 million xids by default (write transactions and/or savepoints), configurable up to ~2 billion. With the freeze map, that doesn't have to happen, only non-frozen pages have to be re-scanned.

</comment></comment></comment><comment><USER13> I love new features in Postgres, but I hate upgrading. Transition, especially for dev environment is always way too complex and not obvious at all.

If there is one feature I wish PG had, it is recognizing old format db and offering one command that can in place upgrade damn db, without me googling it every time.

<comment><USER14> > If there is one feature I wish PG had, it is recognizing old format db and > offering one command that can in place upgrade damn db, without me googling > it every time.

So your having to Google for five minutes when doing a major version upgrade is the biggest flaw in modern postgres? Oh come on now.

P.S. pg_upgradecluster in Debian would probably do this for you without googling

<comment><USER15> It's not an unreasonable request, and certainly worth some effort to improve.

That being said, if upgrade is the biggest problem, that's great news!

</comment></comment></comment><comment><USER16> 'Full-text search for phrases': what's the difference between the current full text search implementation and the one for phrases?

<comment><USER17> currently searching for 'new york' would match 'york new', as the parser doesn't understand phrases, but new version would let you match '"new york"' to 'new york' but not 'york new'

<comment><USER16> That is a great addition then

</comment></comment></comment><comment><USER9> full Release Notes :

[http://www.postgresql.org/docs/9.6/static/release-9-6.html](http://www.postgresql.org/docs/9.6/static/release-9-6.html)

</comment><comment><USER18> Does anyone know if parallel query execution just happens by default or do you have to tell PG that you want it?

<comment><USER19> You have to enable it by configuring the maximum number of workers per query, and then the query planner tries to figure out if the query would benefit from a parallel execution. This is the first release with parallelism so I would not be surprised if the query planner gets this wrong in some cases.

</comment></comment><comment><USER20> UPSERT from previous release plus Parallel sequential scans, joins and aggregates and Full text search for phrases once 9.6 is ready will make PG almost perfect :)

</comment><comment><USER21> Is there something specifically interesting in the 9.6 release that makes it more noteworthy than other releases? I enjoy reading PostgreSQL release announcements, as I myself haven't used it but have plans to do some testing with is when some time free up, but I'm a bit confused as to why a _beta_ release announcement is getting so much attention.

<comment><USER12> I guess because beta usually determines which features are going to be in the final release. So if you're looking what release to choose for a new version of your software, it might be more worthwhile to look at beta than the final release.

</comment></comment><comment><USER22> PG 9.6 Beta is available for testing at our Aiven.io Cloud Database service: [http://blog.aiven.io/2016/05/help-test-postgresql-96-via- aiv...](http://blog.aiven.io/2016/05/help-test-postgresql-96-via-aiven.html)

</comment><comment><USER23> I think that great parallel infrastructure would be worthy of a Postgres 10.0.

</comment><comment><USER17> Isn't that like 8 months ahead of schedule?

<comment><USER24> The Postgres beta periods are usually really, really, really long. Mid/End may is traditionally when the first beta comes out for a release in late autumn.

<comment><USER25> As they should be! Enough time to know whether stuff breaks in real life or not, and to deal with fixing any issues that come up.

<comment><USER26> Especially for software so mission critical as a RDBMS. If your web framework has a bug users get errors or things act wonky, if your database has a bug you can get data corruption and other horrible, horrible things.</comment></comment></comment></comment>


Ask HN: (No) Microsoft based start-ups? - <AUTHOR> Since I've been a user of HN, I've seen numerous posts and stories about (successful) start-ups.
However, most of those I have seen are based on some open-source, free or otherwise non-MS based languages, technologies and products. For example, there are a lot of web apps running on Ruby, Python or PHP, using cloud services offered by Amazon, Heroku or Google App Engine, using open source databases, and a lot of mobile applications aimed at iPhone/Android (although, it's true, MS has no real mobile edge anymore), etc.
The thing is I don't really hear (or think) of Microsoft when I hear about start-ups. No start-up comes up and says it's using MS SQL Server, or Microsoft Cloud Services...or C#.
What's the deal with this? Is it just me, or is it true? Are there any start-ups that do use Microsoft products or languages? Any example cases?
If this is true, how dangerous would this be in the long term for Microsoft? And what recommendations would there be for people proficient with MS, but who want to begin a start-up.
I'm curious about what you think. Cheers!
TL;DR: I don't hear of any MS based start-ups. Why? <comment><USER4> I use an almost entirely MS stack for my analytics platform: <http://www.swfstats.com/>

It's a number of applications ranging from windows services to command line utils and websites. Using .NET I'm able to do all of that in C# and not have to switch mindsets when I jump back and forth between all the different facets of it. I can also easily re-use code/classes between distinct applications.

These days I can be found in just about every major Flash game that's coming out. In total I run on 2x dedicated and 1x vps, however I've been working my ass off on making things massively more efficient and could easily reduce my hosting.

Some fun stats:

\- I do about 130 - 150 million events per day

\- the biggest game by views = 30 million

\- the biggest game by total events = 2.27 billion events

\- I lag about 4 or 5 minutes behind real time

\- I spend more on coffee then I do on licenses on my servers

Open source I'm using:

\- MongoDB for my (alpha) level sharing API + an open source C# library for using it

\- ClamWin

\- FileZilla

\- an open source C# markdown library

\- an open source C# geoip library

<comment><USER5> Which Mongo lib are you using?

<comment><USER4> This one: <http://github.com/samus/mongodb-csharp>

<comment><USER5> Have you looked at NoRM?

<comment><USER4> I just grabbed the first driver and it worked although it feels really awkward to me (especially coming from years of parameterized queries / sprocs).

It looks interesting though. Have you used both?

<comment><USER5> I've only tried NoRM and I liked it. I liked that they were working on full LINQ support, but I'm not sure where that ended up since Conery no longer contributes to the project and that was his thing.

<comment><USER6> Well - it's Andrew's thing... I just helped out as I could. Just ran out of time :)

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> Loopt is based on Microsoft's technology stack. We use:

Windows Server 2008 R2, SQL Server 2008 R2, IIS 7, C#, ASP.Net MVC 2, WCF, AppFabric and more. We also use Ubuntu, Apache, PostGRE SQL, and many other open source technologies and libraries.

I'd imagine most people don't use Microsoft's offerings because they're expensive (but affordable with volume licensing). They're also rarely on the bleeding edge, but sometimes that's a good thing. They offer some things you can't easily get with open source offerings, like:

SQL Server: Mirroring, Transparent Data Encryption, Spatial, Partitioned Indexed Views, and Full Text Search (all in one offering)

IIS 7: Ability to host transport independent services. That means the same code can be accessed over TCP, HTTP, MSMQ, or custom protocols you write yourself, and all be monitored and managed (lifecycle, health, etc) from one place. The closest open source offering I've heard of is Mongrel 2 (which looks awesome).

And so far, I've only encountered one bug that's affected our production code. It's really quality stuff that just works.

</comment><comment><USER8> Well there tend to be two classes of startups. There are the YC-like startups. Which I think are often college grads or recent college grads. College students are generally familiar with open source software. I certainly never touched MS software in college.

The other class of startups are those by relatively successful people who left their current job to start a company. More of the Spolsky model. Here you'll find a lot more MS-based stacks. Usually because they're familiar with it and with BizSpark the upfront cost is relatively cheap.

Of course these startups probably have different funding models, so you hear about them less on places like TechCrunch. Lastly, they are often more enterprise focused as their experience in industry has given them the ability to see gaps in the enterprise offerings (college students don't do enterprise focused startups) -- but they aren't exciting consumer technologies. But a companies like Topaz Bridge are still doing some interesting stuff.

<comment><USER9> I think this is probably fairly accurate.

People will (generally) use whatever tool they're familiar with, regardless of whether it is actually better for the job or not. Therefore it makes sense that the person's background will be a fairly large determining factor in what language they use. Someone (like me) that comes from a decade of developing "enterprise" .NET applications is most likely going to choose .NET. Someone with that same background is likely to be less concerned about the latest "cool" tech, and more interested in just getting the job done.

It also has a fair bit to do with resources. If you're running on little cash, it makes sense to use the cheapest tools and hosting available. Whilst, MS offer free version of all their tools, you still need to pay for hosting your app. That's the big turn off for many.

For us, it is a combination of my .NET experience, the fact that hosting price isn't a huge issue (our web design and .NET consultancy work covers our costs), and most importantly I DESPISE Linux with a passion. Queue here to flame me -->

</comment></comment><comment><USER10> I don't hear of many startups using Oracle, IBM mainframes or proprietary Unix either. I think there is a general aversion among startups to using expensive technology, and I think the reasons are fairly obvious.

If you're interested in the startup world, learn another software stack or three. Startups generally need people who learn new things quickly and use the best tool for the job. Flexibility is key; don't be a one-trick pony.

<comment><USER11> I actually heard of a "green energy" startup that listed Oracle and Crystal Reports as a requirement. It was one of those grotesque things started by lawyers and energy veterans.

I usually latch on to people with extensive domain expertise outside of computing, just to see where things might lead, but that particular one felt very FAILy and the people too unreachable and bureaucratic (i.e. "fax the requirements to my office and I will tell the _girl_ to embed them inside the spreadsheet" -- horrible.)

</comment></comment><comment><USER12> stackoverflow is a startup based on microsoft tech, jeff atwood has had various posts which I cant seem to find right now, sometimes complaining about the cost of licenses, sometimes giving microsoft props

I avoid the microsoft stack because I believe in the massive advantages open source brings, and because its better (imho).

</comment><comment><USER13> I think it's just 'fashionable' to not talk about your tech if you're using microsoft tools (aka .net framework). Mainly it seems that HN is very pro anything else. I'm actually the lead for 2 Denver start-ups myself (also a BizSpark member); I'm building everything on the back-end in c#/sql and using web-services to consume the data in my web and mobile apps. For me it's just a speed issue since I have 10 years C# experience and a ton of code to leverage. Plus if you get into BizSpark (which seems automatic if you are a HN member) you receive a free MSDN subscription which includes full copies of SQL, Visual Studio, Windows 7, Office, etc, so the 'cost' is really a non-factor.

<comment><USER14> I don't think it's just a matter of fashion. Only a handful of the startups we've funded use anything from Microsoft.

<comment><USER15> That doesn't discount the idea of fashion. YC attracts a certain crowd of applicants that tend to be younger and more closely tied into the emergent technology trends. If they have the time to take X months off of their jobs and their families, they also probably have time to learn new technologies that they didn't use in school or at work. I'm young enough but with a busy full time job and a toddler, learning new technologies (to the point of extreme proficiency) is not high on my list.

For me it came down to what I could build most rapidly given my skillset. I had experience in Java and C#/.NET and my partner (my husband, not my co- founder) could mostly only help in C#/.NET. So it really was a question of getting something built in 3 months versus 6 (or maybe not at all if I got discouraged and it took too long to market). The licensing fees are the things that weigh on my mind, but if my business is successful, I will be able to pay them or even re-write the application using the profits.

I know better than to expect to converse about our MS technology with the HN crowd, though.

<comment><USER14> I think you misunderstood me. evo_ is saying that it's unfashionable to _talk_ about it when you use Microsoft software. I replied that in my experience the reason startups don't talk about Microsoft stuff is that they're not using it, not that they are and are embarrassed to say so.

It may well be that YC-funded startups consistently differ from the average startup. But that doesn't mean that such differences are due to fashion. The kind of people we fund are more consistent in knowing what they're doing than in being young. So if as a group they differ from the norm on technical matters, the more likely hypothesis is that the norm is lagging.

<comment><USER15> I would think that the majority of startups aren't using MS products, but I understand that the ones that are might prefer not to talk about it for fear of ridicule by the hacker community.

I'm comfortable assuming that the YC startups are above the average, but that doesn't mean they aren't also affected by the demographic that would most benefit and be able to participate in the YC program. In no way am I implying that YC would select someone younger for admission over someone more qualified - just that the nature of the program self-selects.

In my case, I'm still young but having a toddler puts me in a similar situation to a typical older entrepreneur. It would be incredibly difficult for me to take an X month block away from my family or to uproot my family. And a $10K investment doesn't mean to me what it does to a college grad, because I can make that in a couple of bonuses or consulting gigs. The thing I miss most in a program like YC is the mentorship, but for me it's not worth the aforementioned hardship.

It's not that I'm not interested in new technologies, I do tinker, but it's just a matter of priorities. Given that, you're probably right that the "norm" would be lagging in terms of using the newest and coolest technology. I don't think that equates to generally worse companies, just less fashionable, to tie back to the original point.

</comment></comment></comment></comment></comment><comment><USER16> My startup is a BizSpark startup <http://www.microsoft.com/bizspark> so we're going to get tied up in the Microsoft stack pretty quickly.

We just started a few months back and are working on our first project.

I really like developing in .NET so this was a no brainer for me. Other people would disagree with me and want to focus on open source.

Different strokes for different folks I suppose.

Even with BizSpark the point of entry for open source sartups is much lower which probably accounts for most of it.

Either way, you can be successful and profitable with both, it's just a matter of finding what works for you.

<comment><USER17> How much do you worry about Microsoft lock-in? And about them discontinuing tools you depend on?

<comment><USER16> Well, I'm not worried about Microsoft lock-in because I am consciously choosing to get locked in to the MS stack. I want to develop with MS tools on MS systems.

With an MSDN subscription (which is free for me for 3 years through BizSpark) you can download virtually any MS software ever released. I'd be really surprised if they didn't have what you need.

I'd be more worried about a company like Oracle buying out a product like Java and screwing it up. At least you know where Microsoft stands.

</comment></comment></comment><comment><USER18> The paid/free argument isn't really a valid basis for business decisions. Developing software is extremely expensive, even using free software. However, there are numerous overriding benefits of open source software.

#1: Startup founders use technology they know. Open source developers tend to be willing to trade more risk and effort for a more tailored and flexible end product. This is a similar personality profile to someone who's willing to put in a large amount of work to build a business and potentially get nothing for it. Microsoft builds run-of-the-mill, sure-thing products that will at least do something well, and they'll support it for you. Commercial software dictates their software model: take few risks and sell to broadest audience.

#2: Interoperability. Microsoft software works outstandingly well with other Microsoft software. Open source software tends to be built on open standards, and, again, if you have the source, it's always possible to hack it together. The open nature means less business risk when making software decisions. The way out is of a situation where software won't do what you need it to do is to use the source, even if only as a temporary patch.

#3: Automation. While things are getting better, it's still much easier to automate most open source software, since these products usually either have a CLI, an API, or even in the worst case scenario: source code.

#4: Even with BizSpark, licensing has limits on your companies' use of technology. Simple example: Do we go with a bunch of small boxes or a few large boxes? Licensing concern may drive your team to fundamentally flawed architecture decisions.

<comment><USER19> Good point with #4. The last time I was involved in a Microsoft project the SQL Server licensing costs were more than $30k per box. $30k was not a big deal on that project but it would have worked a lot better if the data had been spread across a bunch of little servers instead of two big ones. $30k * 2 is not so much; $30k * 50 starts to add up.

<http://www.microsoft.com/sqlserver/2008/en/us/pricing.aspx>

</comment></comment><comment><USER20> It's just not trendy and the release cycle is very long compared to open source. The long release cycle contributes to the tech side being less newsworthy. Also, the stack is fairly standardized so if you are making a website your stack is going to be either ASP.NET or ASP.NET MVC and it's going to run on the sanctioned VM, and you'll likely be running SQL Server.

Contrast this with the ruby stack you might be running MRI, YARV, Rubinius for your VM, and then for your web framework you might be running rack, sinatra, etc. Thus when someone makes their stack OpenBSD + YARV + Sinatra + Active Record it's newsworthy as the non-standardization likely created some kind of interesting issue they needed to solve. This stuff doesn't happen on the MSFT side of things. If someone says they are doing a MSFT start up the only real question about their stack is LINQ-to-SQL / ADO.NET entities / nhibernate. I already know that the rest of their stack is going to be Win2k(3|8)R2 + IIS + ASP.NET + SQL Server and it's going to be written in C#.

I was considering doing an Win2k8R2/F#/MVC/nhaml/LINQ-TO-SQL start up but my market isn't tech guys so any blogging I did about my unique stack would attract people who wouldn't be interested in the startup.

<comment><USER21> I must take this opportunity to note that the ASP.Net MVC release cycle is far more aggressive than Rails.

Secondly... SQL Server is by no means required in the stack. We are using MongoDB as our datasource in an ASP.Net MVC app. You can use ANY database.

<comment><USER13> Yeah that's a good point that I think non-.Net dev's aren't aware of - <USER2> really aren't that locked into doing it the 'MS Way'. Like you mentioned you don't have to use SQL - it's up to you, really, on the DB.

Similarly, you don't have to use ASPX/WebForms either; a lot of people I know are switching to MVC and not using any of the .net ms usercontrols on the front-end, instead going with open standards and using something like jQuery to handle a lot of the UI and web-service interaction. This is the approach I've taken in recent years, and it makes it a ton easier to create clients for other platforms like iPhone, Droid, etc.

<comment><USER21> Yeah on that note you can use ANY view engine to run your ASP.Net MVC application - you are not locked in to the classic web forms system. We use jQuery and standards based html/css to do everything.

</comment></comment></comment></comment><comment><USER22> For a lot of startups, I would assume that free is better than paid. Even for those willing to pay for Microsoft products, the pricing is confusing: <http://www.microsoft.com/sqlserver/2008/en/us/pricing.aspx> [http://www.microsoft.com/windowsserver2008/en/us/pricing.asp...](http://www.microsoft.com/windowsserver2008/en/us/pricing.aspx)

I have also found Windows programmers on average to be more expensive than LAMP developers, which is an important concern as you look to build a startup's team.

I'm not so much concerned with vendor lock-in so much as I would be concerned with the support of an open source community. The free resources and tools available for PHP, Python, Ruby, etc., are hard to beat. I'm not sure if the same breadth of resources exist for Windows.

</comment><comment><USER23> The licensing costs are somewhat hefty upfront and get exponentially so as your business grows. So the decision (I think) isn't necessarily "Oh it's free now let's do it," it's closer to "OK, this is costly now, and may be worth it now, but down the road, as we scale in people and the app in size, the money isn't justifiable."

<comment><USER24> With BizSpark the upfront costs are negligible.

</comment></comment><comment><USER25> After spending almost 20 hours on the phone with Microsoft support last week I can tell you why I wouldn't use it as my technology stack - you can't dig in to understand and fix a lot of things yourself.

<comment><USER5> At least you had someone to call. Not everything in OSS can be fixed with a fork and patch.

<comment><USER26> If it's a software problem a fork and a patch _can_ fix it. That's kind of the point.

Having the ability and technical resources necessary to generate said patch, however, is a different problem.

</comment></comment></comment><comment><USER27> Going away from MS platforms by startups is due to cost and quality (of developers).

Annoyances with the latest MS Platforms:

\- Nasty URLs (capped, trailing file types) - although it can be done with IIS7 routes or preferrably IIRF which runs IIS5-current. They still dont' have a mod_rewrite solution unless you run server 2008 with IIS7. Look at how nasty this looks: <http://www.ferrari.com/Italian/Pages/Home.aspx>, why not just <http://ferrari.com/>? The reason, their frameworks suck defaulting to path cruft, file extensions and capitalized urls.

\- ASP.NET WebForms single-form per page travesty.

\- Again, File naming and the ASP.NET MVC again relies on their capitalized URL paths and .aspx extensions everywhere.

\- XML and SOAP crazy over RESTful/JSON based services (they tried to remedy this with WCF but configuration failed)

\- All MS developers are not free thinkers much, they use whatever MS tells them to use from LINQ, MS SQL Server, Sharepoint etc. Even such things as using JSON, jQuery and Entities they didn't use until Microsoft had the frameworks then all of a sudden they loved them. I kid you not most people still used the Microsoft AJAX framework until 2008ish.

\- VB.NET

\- DataSets just clutter all applications

\- MS seems to have lost the skill to make simplified engineering solutions (sure their tools are simple but they are overly configuration nightmares or lock in by requiring the tool otherwise it is painful).

\- All good .net developers when they become engineers or entrepreneurs typically leave the platform for cost and better solutions. MS seems to attract mediocre or enterprisey programmers like Java (this could be due to the popularity of both platforms attracting more developers overall)

\- Sharepoint kills developers dreams.

You can do .NET like modern web development but for the most part the developers in the MS culture don't.

<comment><USER28> This is a load of shit.

1\. ASP.NET MVC2, which is what they're trying to replace Webforms with, doesn't have any URL mangling issues given that the pathing is determined entirely by the developer's architecture.

2\. Yeah, a view needs to contain a .ASPX file - this is an issue because?

3\. You can't figure out how to edit some basic configuration settings, therefore the technology failed? Having consumed more than my fair share of RESTful services using .NET (the vast majority of my code samples on my blog are about using tools to do that), let me tell you that LINQ-to-XML and LINQ- to-JSON (JSON.NET) blow every other tool out of the water when it comes to parsing responses, with the exception of RestSharp, which is even better.

4\. What the hell kind of bullshit is this? Because Microsoft offers me tools that integrate and often come with things I've already purchased I'm somehow a blind code-monkey slave to them? And there are plenty of developers who hated the .NET AJAX Control library and used jQuery or something else, myself among them. Microsoft isn't perfect, and there are exciting new non-.NET technologies out there that a lot of .NET devs try. Ask Rob Conery about his experience with Ruby, which I think is now his primary platform.

5.And what's wrong with VB.NET? That's how I broke into .NET until I did C++ programming in school and switched to C#. Yeah it's a verbose language compared to C# and it lets you play fast-and-loose with typing, but the fact that it's different from other tools doesn't make it inherently bad.

6\. If you use DataSets poorly than I suppose that's true, just like how you can clutter PHP with inline MySQL. Shitty code can be written in any language.

7\. What? You mean like one-click deployment from Visual Studio to an IIS7 instance? Or the ability to easily setup mirrors and scheduled backups in SQL Server? Or the ability to host services with virtually any protocol in IIS7? Try doing any of that in the LAMP stack and then feel free to tell me about how MSFT can't develop "simplified engineering solutions."

8\. Some definitely do, but "all good devs?" Bullshit. Ask Jeff Atwood. The idea that enterprise platforms attracts more medicore programmers is laughable, and I'll point to the fact that JAVA and .NET developers are paid more by the free market on average than any other type of developer as evidence of that. You don't get paid well if you do shit work.

9\. SharePoint is an utter POS; I hate using it as an end user, and I will be a sad panda the day I have to develop for it. No contest there.

<comment><USER27> OK I was going to delete my response just so I didn't have to do this but here we go. Let me first just say I did .NET since 2001 first beta and for 8+ years after that. I bailed mentally to other frameworks around 2005 while in SOAP hell. I do primarily Python frameworks, Ruby or PHP but still do some .NET mainly Mono. I really like C# but disagree with the direction of most Microsoft culture decisions. I was MCSD in C++, C# (first 5000) and was an advocate of the platform from 2001-2005. So this is coming from a .NET dev.

1\. Yes it does. It defaults all models, views, routes to capitalized names like CustomerProduct rather than customer-product which is much better for urls and keywords. You even have many lower level .NET dude with /Member in all their urls because they can't abstract away from the physical folder hierarchy.

2\. Everything should be ashx or handler based like a good framework, if you need a view you call in the view or template handler like every other framework. Microsoft wires it to aspx pages by default which the Page model is bulky if not needed such as for a REST endpoint.

3\. Yes I can. Everyone else if you have worked on a multi-year project in .NET of any scale you will know this configuration hell I am talking about. It is the one that Java has been in for some time. btw I agree on JSON.NET there should be more simplified frameworks like it. I use it in my .NET MVC.

4\. All I am saying is typical MS developers dont' venture out, you may. Try pushing JSON or YAML before MS blessed it with a big arse WCF framework and you will see. Even try pushing anything not pushed by microsoft to see what I mean. Heck try this today by pushing a better MVC than ASP MVC to your MS platform developers and see what happens.

5\. VB.NET, what is wrong with it? Everything is backwards, it is overly verbose, it mangles the idea of indexors with methods (i.e. [] vs. ()), you have to write 'End Function' (but their tool does that for you) Ok no need to go on here... I do like the behind the scenes compilation and way back in 2001 this was a competitive benefit. Other than that VB.NET is horrible for anyone looking to code ANY other language.

6\. Every poorly written .NET project has Datasets that make it all the way to the presentation layer to bind to some default GridView. Laziness and not good software engineering. MS made it too easy there.

7\. Try doing any of those things manually or customized. The tools are sugary goodness that hide the complexities of the operation. Most likely there will be a default fail somewhere along the lines on any application of scale. And it is keeping most from learning key elements of deployment on a larger scale.

8\. Java and .NET are the biggest platforms, by mere probability they attract more mediocre devs looking for a safe harbor of a job security. There are plenty of good .NET devs but they get lost and lose the ASP MVC, Sharepoint, MS SQL only battles and move on.

9\. We can agree, it is an abomination.

I like Microsoft, but they are killing their platform by trying for developer lock in in all the wrong ways.

<comment><USER29> To address those points:

1\. That's trivial to change though and I think I would argue that the default mapping has more to do with how to map to class names (e.g. /Member to MemberController) than folders.

2\. You don't have to use ASPX if you don't want to - there are a variety of difference view engines - I happen to prefer StringTemplate.

3\. .Net MVC projects, don't _need_ to be complicated, most of the complexity you see in these projects is down to the developers

4\. 5. and 6. are true - but things like Datasets cen be easily avoided if you don't like them (which I don't)

7\. .Net MVC has got some _fantastic_ extension points, I never use any of the wizards or complex editing tools in VS that hide the underlying file contents. This is perfectly feasible if you want to do it.

8\. That isn't really a comment on the technology stack - just because a lot of people use it doesn't mean it is bad.

9\. Writing code to run _in_ SharePoint is the devils work.

</comment></comment></comment></comment><comment><USER30> When I last worked at a start-up, our product was built on the MS stack, and saved significant cash by allowing MS to author a white paper detailing how our product leveraged the .NET Framework and SQL Server. We still paid out some of the cost of an MSDN subscription, but our membership status was increased thanks to our "partner" status.

</comment><comment><USER31> myspace

 _The server infrastructure consists of over 4,500 web servers (running Windows Server 2003, IIS 6.0, ASP.NET and .Net Framework 3.5), over 1,200 cache servers (running 64-bit Windows Server 2003), and over 500 database servers (running 64-bit Windows Server 2003 and SQL Server 2005) as well as a custom distributed file system which runs on Gentoo Linux._

<comment><USER32> What a waste of natural resources.

<comment><USER33> and neural resources.

</comment></comment></comment><comment><USER34> [Warning: heavy overgeneralization] People build their business on what they are familiar with, and ("modern") programming / hacking culture has its roots in the open source / unix world, while dos/windows userbase is more connected to gaming, demoscene genres.

Also, innovative people are inspired by innovative examples, and Microsoft (as today) isn't seen as such by many.

</comment><comment><USER35> I used to consider myself as a devoted .NET Developer, I've been using it since .NET 1.0, last time I developed something was with VS 2010 Ultimate, TFS, SQL Server, WPF and WCF. I think I was happy with it. What happened? I accepted a Job as Ruby on Rails Developer and bought a MacBook Pro... big mistake, I don't want to use Windows or any MS stack anymore. My advice: if you are a happy as a Windows developer, don't ever touch a Mac! :)

</comment><comment><USER36> We were willing to learn new tech if it was going to provide benefits, ultimately stuck with what we know for quick dev cycle. <http://www.leaf.ly/> asp.net mvc windows & sql azure hosting (free for 8 months with BizSpark)

</comment><comment><USER32> I firmly believe that your team should choose the right tool for the job, factoring in what the team is comfortable with. I would never tell a room of open source coders that they had to use .NET, and I sure wouldn't want to make the .NET folks learn anything new, either. ;)

Humour aside, the language of your question ("non-MS" and "some open-source language") implies that the decision to use anything except Microsoft stuff is the Other, and I just don't think that's a realistic baseline.

There's a world of excellent tools for different jobs, and we are so lucky because the cream gets to the top a lot faster now.

<http://github.com/languages>

We're not building on WebObjects and you're not working with VB.NET, either.

</comment><comment><USER37> We are on a MS stack: <http://www.iactionable.com> (our landing site is Wordpress)

We use ASP.NET MVC 2 and most of Azure offerings. The reason for the lack on MS based startups probably goes back to using what you know and where founders come from - we were both working as .NET devs for a few years before starting IActionable, which is probably atypical. There are definitely other .NET startups here on HN, probably due to perceptions that it is more expensive and people generally start out on something else, like an interpreted, as opposed to compiled language.

</comment><comment><USER38> I've asked myself the same question. The MSFT stack has worked wonderfully for me. Its not as expensive as people think, and its so easy to get started.

1)Download the windows microsoft web platform installer 2)In just a few clicks you can install asp.net, Visual studio web developer and SQLserver express, _all free_

When you're ready to deploy sign up for the rackspace windows cloud server. Currently I pay about $60 a month (this includes the cost of windows server). You can use SQLserver express for free (although its capped at 10?/8? GB of data).

</comment><comment><USER39> stackoverflow, huddle, lovemoney, livedrive, toptable, playerio, justgiving

<comment><USER40> Plentyoffish too I think.

</comment></comment><comment><USER41> MS seems to have equalized most of the initial price advantage of FOSS with their free bizspark stuff. Other issues involved:

1\. Many startup hackers are good enough customize Linux for their needs, but would lack that freedom under Windows.

2\. Open source security model perceived as more reliable than MS's security through obscurity.

3\. Performance. Not an expert here, but from anecdotal evidence of running Win7 vs Ubuntu10.04 on my desktop, and WinXP mobile vs Ubuntu UNR on my netbook, in both cases Linux can run more servers, background, and foreground processes simultaneously with no system degredation than Windows can. My netbook under UNR is especially amazing - slow and clunky under Win7, as responsive as a desktop under UNR. Does that carry over to servers too? (and can you run a headless Windows server?)

The recent article on Reddit's server costs brought up an interesting consideration about hardware maybe not being as cheap as it is reputed to be, at least not in the Amazon cloud, and that maybe choosing your technology stack based on its inherent performance is still a valid issue (eg, choosing Rails (or MS) for developer productivity and then throwing servers at it till it performs well enough may be more costly than perceived).

Can't say for sure since I haven't used MS products for web stuff in almost 10 years.

4\. Vendor lock in, increasing licensing costs as you scale.

<comment><USER20> 1\. It's not difficult to customize Windows. There are well defined SDKs and interfaces for most of the kernel points. Honestly, how many web startups are customizing their kernel?

3\. The performance differences are negligible in the general case. Startups write their own code so most of the performance differences are going to come from the code they write rather than underlying performance differences. In both cases, python vs. C# / .NET you can always drop down to C. I doubt that whatever their problems are they stem from language / compiler. Most sites are IO bound. IO bound applications are largely a factor of how many disks you have. The throughput for writing a file in PHP and C are identical on machines with less than 10 disks.

4\. Licensing costs decrease drastically as you scale on the MSFT side.

<comment><USER42> 1\. I read that more as customizing in userland than in the kernel, but I don't know what the original poster's intention was. I _personally_ find it easier to configure a Linux machine than a Windows machine, but I think it comes down to familiarity and subjective preference a lot more than anything else.

</comment></comment></comment><comment><USER43> We're using the full stack and it's been a lot of fun, actually. Visual Studio is still the shit, and the release cycles on the tech we are using have been more than sufficient (.Net, C#, Silverlight, Prism). I find it amusing that it's a little rebellious in the YC community to use MS tech. So, as has been mentioned, MS startups are out there, and they exist per the skills of the group and the needs of the customer base. Just like anything else...

</comment><comment><USER44> I'm running the MS stack for my free online dating start up <http://diveintothepool.com>

I've loved using C# for the site but if I had built it in Ruby or Python I might have gotten more free traffic. Maybe the buzzness behind using X programming language that is current, hip and or new might be an easy marketing tool leading to you hearing more about them.

</comment><comment><USER45> My dad was a partner at LetsGet.net, specializing in online ordering for restaurants. They were acquired last week, and are based entirely on VB.net.

He and the founder were both in their 40s at the start, and had a decade of Microsoft-based consulting under their belts. I'm not surprised to see very few people in a similar demographic on HN.

</comment><comment><USER46> as it has already been mentioned -- having to pay license fees means ramen profitable is even further away for your average, small bootstrapped startup.

there are some good startups based on the MS stack, but they're generally startups done by people with money, connections, or extensive experience in the MS stack.

<comment><USER47> With BizSpark or WebsiteSpark, you have three years. Then, a Windows Web Server 2008 R2 license only costs $469. If a business can't manage to scrape $469 together after three years, they probably have larger problems.

<comment><USER48> Even a startup can scrape together $469. But $469 _per server_ is another story, especially in businesses that grow to require hundreds of machines.

$469 is a significant percentage of the hardware cost. The last time I bought a bunch of servers, they were in the $2500 range.

<comment><USER47> How many startups need hundreds of machines to get to ramen profitability though? Any time the licensing cost issue comes up, it seems that the goalposts move back and forth an awful lot.

</comment></comment></comment></comment><comment><USER49> I used to work with MS stuff all the time. Now its a mix of everything. If I had a choice I would probably go back for one reason only: Consistency - Getting more work done and spending less time choosing, configuring and keeping up with the latest trends.

</comment><comment><USER50> There is a large pool of MS engineers in Israel as the IDF is run on MS. Startups tend to be influenced by this talent pool. I'd avoid an MS based startup myself, an open source startup seems to me, more likely to have more innovation potential.

 _If anyone believes that Google, Facebook, Amazon, Twitter, Salesforce, or any other big internet company that has become prominent over the past few years was developed using .NET they have another thing coming._

<http://thewadi.com/start-down-israeli-start-ups-in-crisis/>

<comment><USER51> I'd say 50% of the shops in Israel are Microsoft based (.NET, VS C++).

The remaining 40% are Java.

Python has a sizable, but still small community.

Tiny Ruby-on-Rails community.

And Erlang ... I think I'm the only full-time Erlang developer in Israel (oops I moved temporary to Sweden).

</comment></comment><comment><USER52> My startup uses MS technology, primarily because both my self and my partner have many years of experience on the MS platform.

Regarding cost, it's really not _that_ bad -- especially if you qualify for the BizSpark program.

<comment><USER53> Wait a few years...

</comment></comment><comment><USER54> Twiddla is built on the MS stack, as is everything else we do here at Expat.

People who build things with upcoming tech tend to mention it because it's novel. And unfortunately a few of those upcoming technologies don't handle load particularly well so you get to hear a lot about them as a result of them falling down.

So yeah, you don't hear about Microsoft stuff for the same reason you don't hear people talking about PHP or Java. It just plain works and always has, so there's no story.

</comment><comment><USER55> Perhaps its not trendy enough :)! <http://www.microsoft.com/bizspark/Connect.aspx>

<comment><USER56> With BizSpark startups dont have to pay any licensing costs for some time. I also think that licensing is discounted when you become profitable.

BizSpark aside, I think hosting costs/maintenance is much more. For a $20 512 Linode it would cost a hell of a lot more to run MVC.NET + MSSQL.

<comment><USER57> You should factor in not only license cost, but the total cost of maintaining and properly patching (as well as the mandatory unscheduled downtime that brings) a Windows stack.

Even if they give you the licenses for free, it's much more expensive.

<comment><USER5> There is no mandatory unscheduled downtime. Pure FUD. I install updates when I want and if I wanted, without downtime with some basic load balancing.

<comment><USER57> Really? For how long do you hold off updates that fix zero-day remote exploits?

<comment><USER5> As little as possible. And again, in a high-availability infrastructure I can patch each machine without downtime. I was contending your point that the downtime was mandatory and unscheduled. Windows never forces you to update at any time. It strongly suggests, sure. By default, the option is auto-update, but that's configurable and not required.

<comment><USER57> Well... You have to factor in the cost for the added HA infrastructure when you talk Windows. Patching Linux seldom requires more than a couple seconds for downtime for the system and I can often patch and bring up machines before memcaches and varnishes start expiring. Patching Windows often takes half-an- hour of downtime following another similarly extended period of horrible performance when the patch installer is doing whatever it needs to do, per server.

It's different to design a HA cluster that can sustain a minutes-long usage peak (due to a node going down for maintenance) than one that can sustain an hour-long outage of one of the nodes.

It all depends, in the end, on how the applications are designed to run - <USER3> are the ones that will decide how many servers you can take down at once. In any case, the shorter they are down, the better.

Consider a site with 3 front-facing web servers that are affected by a 0-day. If a server can be patched in 2 minutes, it will result in 6 minutes of 150% load on the servers not being maintained. If the patch takes an hour, you will have 3 hours of 150% workload. The internet user may not see the downtime, but you have to factor in the higher load. The best solution could be to use 4 or 5 servers instead of 3, but that would also increase your vulnerability window.

</comment></comment></comment></comment></comment></comment></comment><comment><USER21> There are tons of startups using the Microsoft stack... Just because they don't live on HN or don't appear on Techcrunch does not mean they don't exist.

Microsoft even has BizSpark - a network to provide resources to startups (we are one). All you can eat Microsoft software via MSDN.

"Price" is no longer an issue and Microsoft has made a point of building a solid startup ecosystem around their stack.

<comment><USER57> That "Price is no longer an issue" is a falacy. You are ignoring the cost of patching and rebooting Windows boxes and the cost of the redundant infrastructure required to accommodate the longer downtime Windows patches require.

And price is no issue only if you fail. If you succeed and have to deploy dozens of servers, you will quickly feel the it in your wallet. You can't grow horizontally as cheaply as you can with any free (even free-as-in-beer) solution.

<comment><USER21> In our case it's as cost effective to light up a Rackspace Windows VM than it is a Linux VM... There are maintenance costs on both sides.

If you have to deploy dozens of servers on any platform you will quickly feel that in your wallet.

<comment><USER57> I have better automation facilities on Unix-like servers than I can have on Windows. Configuration replication is rather easy. My colleagues here manage 1000+ Linux servers with a homemade solution based on Puppet and Fabric and can deploy a server from power-up to ready-to-go in a couple minutes.

If you can read Portuguese, they did a very good presentation at FISL in Brazil a couple days back.

[http://ignofisl.ig.com.br/2010/07/22/material-da-palestra- so...](http://ignofisl.ig.com.br/2010/07/22/material-da-palestra-sobre- automacao-de-datacenter/)

</comment></comment></comment></comment><comment><USER58> There are quite a few, as people have said, but to add another perspective -- I'm not concerned that much about money (although a couple years/servers in and it would start to hurt) but more about lock-in.

I have to run Windows servers, use Microsoft's IDE, etc. What if Server 2012 is absolutely terrible (hey, it's happened before). What if some insanely huge security hole is discovered in IIS (again...). You're hosed. In the land of open-source you can just do a 15 minute down-time to switch to nginx (or 10+ other options), set up some new servers running a different distro, whatever.

It's just too worrying to purposefully dig yourself into a hole where you live and die by your vendor. It's not as if their products are all that great, either. I certainly wouldn't want to develop on Windows, and I'd be even less happy about forcing potential employees to do so.

TL;DR: Why do you expect to hear of many MS based start-ups? There just isn't that much compelling founders.

</comment><comment><USER59> Wishpot ( <http://www.wishpot.com/> ) is ASP.NET/C#-based.

It's quite a good platform (performance and tooling in particular, LINQ is also an impressive technology). But truthfully I wouldn't recommend it. Other platforms excel in other areas, and the Microsoft community culture is nowhere near as "sharing friendly" as the open source communities. Finding good developers is harder (it doesn't have the geek cred to attract hackers). Your deployment options are more limited (can't just get a cheap shared host to get started). Writing C# is about as enjoyable as writing in Java. (Take that as you will... but to me that's a slight negative).

If you were starting from scratch, the reasons to choose a Microsoft platform are not very compelling. You can still create great, fast, performant products - but you can do that on any of the major platforms.

</comment><comment><USER60> Well, I came to HN through pg's writing, and part of my enjoyment was the confirmation of my distrust/dislike of MS. So I'm guessing that self-selection plays a large role here. That said, I think open source has great benefits for a startup, but you've got to weigh that for yourself.

</comment><comment><USER61> I'm a C#/ASP.NET developer during the day. My latest project I'm prototyping in Python/web.py/sqlite. Why?

1) Cost, I want to keep costs low. 2) Hedging my bets. I want to see what the open source world has to offer. Can I be productive and not pay a lot of money to MSFT?

</comment><comment><USER62> I think most avoid Microsoft because of two main factors: cost and source.

You might think Microsoft is stable and that things tend to just work; but, if they stop supporting something you need -- you're SOL. If there is a bug that affects your software and it's low on their priority list -- you're SOL.

With FOSS, you can branch the project and not update and everything should continue to work as you'd expect. You can fix a bug yourself if the community doesn't think it's a priority.

What's more, with the new anti-IP laws in NZ and having the PirateBay being hosted by the Pirate Party, I imagine there will be a lot of very interesting changes in the FOSS community.

</comment><comment><USER63> Loopt, a YC-startup, used Microsoft technologies to build out at least part of their infrastructure. Note the aspx extension:

<https://app.loopt.com/loopt/termsOfUse.aspx>

</comment><comment><USER64> First, don't make a decision based on what other people are doing. Don't make a technical decision based on the job market either: that's an argument commonly used for Blub. If you have a cool and interesting project, people will not mind learning a different language to join you, even if they're mostly hobbyists who would never touch MS Software on their own.

There are some caveats, however: you should have a solid reason why you're using this product ("it's what I know how to program" or "it's easy to hire for" is not; "we have a large codebase and we can't just stop feature development and do a re-write" is), it has to the an acceptable tool for the job (e.g., you're not doing machine learning in PHP) and you have to be flexible enough to use other tools when they're right for the job (e.g., Facebook writing services in C++ when needed vs. forcing everyone to work exclusively in PHP). If you fit these criteria, you'll be able to hire hackers (although I personally wouldn't join a company that required me to run Windows on the desktop, which is very likely to be the case if your product is on .NET).

Now as for why I don't use MS tools:

F# is pretty amazing and C# is fairly bearable compared to other languages in Blub Central (of course it's still a Blub). If Mono were more usable for the server side, I'd be writing projects in those two languages. I'd very seriously consider Gtk# or Cocoa# + Mono for writing a desktop application (as opposed to using C++ + Qt or Java/Scala + Swing/SWT). Nonetheless, Mono is just not (yet) usable for a server.

I'd flatly refuse to use Windows for either a server or a development machine as it's simply an environment designed for the masses and _not_ for hackers. I am many times more productive with Perl/Python UNIX shell + Terminal than I am with a GUI and Powershell (which is a lot better than the Microsoft tools I grew up with).

If Microsoft actually targeted hackers and developers as opposed to IT departments of non-technical firms I'd consider their products. Problem is that they're not a charity, but a corporation with a legal obligation to generate profit for their shareholders. Their current strategy works well for them and I don't see that changing. When I see a company using a proprietary stack, I _first_ assume that the company is mostly "business guys" and wants warm bodies. I'll have to convinced otherwise, which is possibly; I am not close minded: you can't just judge people by the architectural decisions they made without knowing _why_ the made them.

I am glad to see Microsoft support F# and Scala on .NET, but I am not sure how far this will go. I'll stick with an open source/Linux stack for all my hobbyist programming and I can't imagine building a start-up on anything else.

<comment><USER65> Unfortunately Cocoa# seems to be completely dead (mono website says project is being "revitalized" on cocoa-sharp.com, but the domain has expired and fallen into squatters' hands).

</comment></comment><comment><USER66> We're on the Microsoft stack at SocialBlaze: <http://www.socialblazeapp.com> (Windows Server 2008, SQL Server 2008 R2, asp.net MVC 2.0, c# 4.0)

We do a lot of processing and storing of data, SQL Server is awesome for that.

Microsoft has a bad rep, but the libraries/tools/services they have are pretty powerful, bug-free, and easy to implement.

Only downside seems to be cost, but with BizSpark you don't have to worry about it for 3 years. And after 3 years you really shouldn't have to worry about it either because paying for it shouldn't be a problem.

</comment><comment><USER67> While I wouldn't call it a startup, my project (in the bookmarking realm) is C#, ASP.NET MVC 2, SQL Server, Webkit, and Lucene.

While working on it, I had all the pieces put together to quickly make a mobile version of hacker news <http://toadjaw.com/hn> that offers an article text viewer and screenshots of the article. So all that's in .net.

I've mentioned elsewhere that the overall project is about 75% done. Not ready for public use yet, but close. If anybody is really interested in beta testing, let me know.

</comment><comment><USER68> Carbonmade is built on the Microsoft stack: <http://www.microsoft.com/web/inspiration/carbonmade.aspx>.

</comment><comment><USER69> Not all start-ups are "web 2.0" companies. You likely are completely unaware of any of the start-ups in a field like health care where Windows is king.

<comment><USER70> not necessarily true. I'm working on a health care startup, and we're running a LAMP stack.

granted, we're a web 2.0 health care company, so we're more of a hybrid.

</comment></comment><comment><USER71> There have been a few blog posts recently on this topic: [http://www.aaronstannard.com/post/2010/07/03/NET-Culture- Sho...](http://www.aaronstannard.com/post/2010/07/03/NET-Culture-Shock-Why- NET-Adoption-Lags-Among-Startups.aspx)

[http://tinpanvalley.tumblr.com/post/796605832/why- startups-d...](http://tinpanvalley.tumblr.com/post/796605832/why-startups- dont-use-net)

</comment><comment><USER72> Not I. But I have considered it. You need to keep in mind that Microsoft will open doors for you that open source won't.

Now before you mod me into oblivion think about it. What does Microsoft want? To sell more licenses. So if you wander into MS and say you want to use their stack to do X but you need buy in from some people they will know who to talk to to make it happen. That way everyone benefits.

</comment><comment><USER73> Microsoft isn't free. You need to get licenses for MS SQL, MS Windows Server, etc. As you expand, you have to pay for more licenses.

</comment><comment><USER74> [http://www.quora.com/Given-the-lack-of-highly-successful- con...](http://www.quora.com/Given-the-lack-of-highly-successful-consumer- Internet-companies-on-the-NET-stack-why-doesnt-Microsoft-make-a-bigger-effort- to-get-NET-adoption-among-early-consumer-facing-start-ups) has some insights.

</comment><comment><USER75> Writely (now "Google Docs") used C#: "The reason for choosing C# was the integrated debugging of browser and server components." ( [http://radar.oreilly.com/2005/10/the-secret-sauce-of- writely...](http://radar.oreilly.com/2005/10/the-secret-sauce-of-writely.html) )

</comment><comment><USER76> The popular AlertFox monitoring service runs on Windows: <http://wiki.alertfox.com/Monitoring_Server>

...which is no surprise, as they offer transaction web monitoring with Internet Explorer ;)

</comment><comment><USER77> Stack Exchange / Stack Overflow is MS based. Exception rather than the rule though.

</comment><comment><USER78> Because who wants to run Windows on a server?

Yes, you can, many people do, but it's less common, which is why basing a startup on an MS stack is less common.

</comment><comment><USER79> start ups that use MS products probably don't spend a lot of time promoting themselves on HN.

tjoos.com was a start up that used a MS web stack.

saasu.com is sticking with their MS based web stack.

<http://www.microsoft.com/bizspark/> is aimed directly at start up software/web companies.

</comment><comment><USER80> <http://www.microsoft.com/bizspark/>

</comment><comment><USER57> free > paid

open > closed

<comment><USER41> and Free > non-Free

<comment><USER57> Thanks! Worthy addition.

</comment></comment></comment><comment><USER81> splashup.com does. anywhere.fm did.</comment>


You Don't Know JavaScript - <AUTHOR> http://www.w2lessons.com/2011/04/you-dont-know-javascript.html

<comment><USER2> This 'irritating problem' of people claiming that they know _____ when they actually don't, is best solved with... drum roll... Source code. Don't tell me you know _____, show me what you did with _____.

Today that problem can be solved with Github, Sourceforge, Google Code or whatever. A decade ago I remember asking for a job as a Java developer by taking the source code for a Scheme interpreter written in Java into the interview. A checklist of features is a nice starting point for things to look for for when learning, but there is no substitute for solving problems with the language. Thus, one day you will be able to say what you did with it, rather than which features you understand.

So my feedback for the author is this: Write a followup suggesting some sample projects to write, organized by level of difficulty, just as you've organized language features by difficulty. The projects shouldn't be large, just things that will tend to force the developer into an in-depth understanding of one or more of the advanced features you have suggested. For example... You mentioned timers. What could/should I build if I want some experience using timers?

<comment><USER3> "This 'irritating problem' of people claiming that they know _____ when they actually don't, is best solved with... drum roll... Source code. Don't tell me you know _____, show me what you did with _____. Today that problem can be solved with Github, Sourceforge, Google Code or whatever."

That isn't really a complete solution to the problem, take my situation as an example: I've been working as a C# dev for some years now, but since the company I worked for ended up owning all the code, and since almost all the applications I helped create for them are internal, I have nothing to really show for it. Why don't I have any side projects I've done with C#? It's just simply not my first choice of language for personal projects due to the fact I have to use it so much on a daily basis; instead, I tend to go with lesser known languages that I'm certainly not as familiar with just because it makes writing some of the code a little more exciting. In essence, I'm claiming to know the language, but the only proof I can give is saying "Well, I used it daily for X amount of time".

<comment><USER2> This came up a while back, and I feel your pain. That Java job I told you about? All the Java and C++ code now belongs to Quest, who bought my employer. And I did some good work on ING Direct (USA), but I can't show that to you, either.

My wife once bought a bunch of postcards from a printer to promote her business as a photographer. Right on their price list was a charge for a credit waiver. basically, every postcard had to have a small "Printed by FooCorp 1-800-888-8888" on it. If you didn't want that, you paid extra.

I have reached the point where I feel the same way about the code I write. Naturally, nobody can see trade secrets. But if there's a portion of the code that is not a trade secret, perhaps a Rails or jQuery plugin that gets developed along the way, I want that open sourced. If the answer is "No, we want to own everything 100%," I need to make extra money to make up for the fact that I am going to go dark, just as that printer needs to charge extra money to make up for the lost advertising opportunity.

<comment><USER4> Our employment contracts actually require us to open source everything our hackers build (except some client-specific configurations or templates of course)

</comment></comment></comment></comment><comment><USER5> So despite the mostly vapid nature of this article one thing called out to me:

 _"Given the lax nature of JavaScript, it's easy for your application to spiral into a mess of unmaintainable spaghetti code."_

Let's not forget: it's entirely possible to create a mess of unmaintainable code in _any_ language. Or, _"guns don't kill people, people kill people"_

The other half of this complaint i think is somewhat elitist (unwittingly so?) and it seems to do with the notion that because there is a such a low barrier to entry, that much js code is cargo-culted, but i've seen this from developers in every language. What I find even worse than cargo-cult code is Pattern Zealots going about specifically coding up Pattern X in javascript. It's like they studied Design Patterns but the point of it just went over their heads.

Knowing the principles of software development doesn't prevent you from making ridiculous decisions[1]. It seems like everyone wants checklists of coding standards or _something_ for measuring code quality / standards compliance these days in js. But these are hollow measures if the code behind the module/black box/library is just plain wrong.

Maybe i'm missing something here, but _why_ is this article getting voted up?

[1]: [http://stackoverflow.com/questions/1635800/javascript- best-s...](http://stackoverflow.com/questions/1635800/javascript-best- singleton-pattern) (found when googling 'javascript singleton')

<comment><USER6> _Let's not forget: it's entirely possible to create a mess of unmaintainable code in any language. Or, "guns don't kill people, people kill people"_

That's true. You can write FORTRAN in any language. However, some languages make certain classes of mistakes easier. For example, C makes it very easy leak memory. Java, with its automatic garbage collection, makes it considerably harder.

Does this mean that memory leaks are impossible in Java? Of course not. But I'd still rather have memory management than not.

<comment><USER5> an aside: i have been asked three times in separate technical interviews (several years apart even) how to leak memory in java (once in python).

<comment><USER7> I would like you to show us some examples!

<comment><USER6> I can't remember any Java examples at the moment, but I do recall a memory leak that I had created in C#.

Registering an event handler in .Net creates a reference to the handler. This means that an event handler that doesn't un-register itself from it's event will never be garbage collected. In the context of a GUI application, this means that you have to be careful to ensure that child windows remove their event handlers when they're closed. Otherwise, your application will leak memory, as the closed windows will never be garbage collected.

</comment></comment></comment></comment></comment><comment><USER8> The author apparently has a rather low bar for attributing an advanced level of understanding.

> Understanding a methods 'arguments' variable and how it can be used to > overload functions through arguments.length and make recursive calls through > arguments.callee

The arguments object is one of the first things anyone learning about functions in JavaScript is introduced to. arguments.callee is a little more obscure, but not a particularly difficult concept.

> Advanced closures such as self-memoizing functions, partial functions, and > the lovely (function(){})() call

Using an immediately-executed anonymous function to enforce a scope change and hide variables is a pretty common pattern. I suppose memoisation might belong on an 'advanced' list. As indicated later, the author clearly doesn't know what a partial function actually is.

> Function and html prototyping, the prototype chain, and how to use base > JavaScript objects and functions (e.g. Array) to minimize coding

Surely this should be part of the basic level of understanding required of any JS programmer. Understanding the basic semantics of a language's object model is pretty essential to doing anything much with it.

> Object type and the use of instanceof

I once had to teach some novice programmers about JavaScript. We dealt with objects and the 'instanceof' operator in, I think, around the third session. Understanding the JS object model is basic knowledge.

> Regular expressions and expression compiling

This should be meat and drink for any professional programmer. There's nothing particularly weird about regular expressions in JavaScript. Fine, you can create regular expressions by writing new RegExp("my pattern as a string"), but so what? A quick read of any JS reference will reveal this fact; it's not exactly arcane knowledge.

> Knowing how to handle and use partial functions

Err, what? All functions in JavaScript are partial, insofar as there are arguments at which the value of the function is not defined. Perhaps the author meant _partially applied functions_ , which are a completely different thing.

> With statements and why you shouldn't use them

The concept of 'with' statements is fairly straightforward. I admit that understanding just why they're generally a bad idea (and the problems they cause for people writing JS interpreters) requires an understanding of some subtleties of the scope model.

> The most difficult part of all, knowing how to tie all these tools together > into clean, robust, fast, maintainable, and cross browser compatible code.

Finally, something that uncontentiously belongs on an 'advanced' list! Note that unlike the others, it doesn't turn on grasping how some particular language (mis)feature works. In other words, there's more to knowing what you're doing than knowing what the language does.

<comment><USER9> > there's more to knowing what you're doing than knowing what the language > does.

Sure, but knowing JavaScript isn't just knowing how to program; it also involves grasping how the various language (mis)features work.

<comment><USER8> Obviously. All I'm claiming is that knowledge of the language attributes listed isn't sufficient for being an advanced JavaScript programmer, not that it's not necessary.

<comment><USER10> Understood, but I think providing a list of attributes that you consider sufficiently advanced would be far more constructive / interesting.

<comment><USER8> I think raganwald has already put the case better than I could, further up the thread: the mark of an advanced programmer is being able to use her knowledge of the language to write programs that solve interesting or difficult problems. Admittedly that's not JavaScript-specific, but one can easily specialise this general criterion by reference to specific language attributes and types of tasks which the language is commonly employed to solve (DOM scripting etc.).

That's all a bit hand-wavy, so here are some more concrete suggestions. Even in these days of Node.js et al, JS is mainly used for developing web frontends, so this will be heavily slanted towards those sorts of issues. An advanced JavaScript programmer should be able to:

* Develop her own DOM library along the lines of the functionality provided by jQuery or YUI: a CSS selector engine, DOM traversal, element manipulation, all wrapped in a clean and well thought-out API.

* Build an extensible UI toolkit suitable for writing the frontend of a CMS, capable of handling numerous different object types, and communicating with the backend via a specified serialisation protocol.

* Write a testing framework with an equal level of features and stability as common current ones, such as QUnit.

* Create a form validation DSL capable of handling not just simple binary cases and regex-based validation of input fields, but the specification of more complex dependency relationships and requirements. For bonus points, tie it into the backend so the same code generates the frontend DSL code and the backend validation rules, ensuring that they always harmonise.

* Develop complex (as in, complex to implement using the DOM) interface elements such as sliders, drag-and-drop controls etc.

Again, I'm not saying our hypothetical advanced JS hacker should have _done_ all this—just that she should be able to. Note that while some of these require quite extensive knowledge of the DOM and cross-browser issues, one could easily construct examples which pitched more towards different specialities—those above are just problems I'm somewhat familiar with.

</comment></comment></comment></comment></comment><comment><USER11> Obviously the author is knowledgable about javascript, but this article would have carried more weight with me if he'd taught me something more instead of just alluding to all of these concepts that I haven't encountered yet. It kind of makes the whole thing come off like he has an inferiority complex about being "just a front-end developer"

<comment><AUTHOR> Alex, I'm actually a back-end developer, there is no inferiority complex.

<comment><USER12> I think altering the tone with which you use to deliver your message will have a beneficial effect in reaching people.

For example, I am not going to read this because it sounds really pretentious, and you are replying to everyone here to argue trivial things. If you don't have a complex, you don't need to bother with this.

Also, because it ends with this:

>As for the resume decoration, I would say that if you've covered the beginner level and are venturing into the intermediate stages it is justifiable to put it on your resume. Once you find yourself developing your desired functions rather than copying and pasting them, you can then claim to know JavaScript, until then, please don't advertise it.

 _Really?_

<comment><USER9> Are you skeptical of the idea that there are really people so dishonest that they would claim on their resume to know a language of which they have only copied and pasted chunks? Don't be. I've interviewed some of these people. I wish I could add them to some kind of global blacklist to stop others from wasting their time on them.

</comment></comment></comment></comment><comment><USER13> Huh, apparently I know JavaScript. I didn't think I did.

</comment><comment><USER14> The fact that developers add languages to their resumes that they have only touched on is a result of job postings that list incredible numbers of skills which are probably only touched on in the job itself. It took me 10 seconds to find a job posting on Craigslist, titled "Web Applications Programmer". Here are only a few lines from the "Position Requirements"

Fluent with PHP, Python, JavaScript, MySQL, HTML, XML, CSS, web services (SOAP, XML – RPC…) Knowledge of java, ActionScript, Flex and C# is an asset Experienced with AutoCAD, SolidWorks, Inventor, 3D Studio Max, Flash, Photoshop, Dreamweaver, Adobe Illustrator

The list goes on to include a bunch of other stuff, plus an array of other non-technical skills.

What do companies expect? Just to get an interview one might need to add something they've only touched on.

</comment><comment><USER15> "You Don't Know JavaScript". Then, it says "With statements and why you shouldn't use them" is an advanced concept. I guess this post doesn't apply to hacker news :)

</comment><comment><USER16> >Understanding a methods 'arguments' variable and how it can be used to overload functions through arguments.length and make recursive calls through arguments.callee

seems he doesn't know "use strict"

<comment><AUTHOR> Yes I do, if you're using strict this won't work.

<comment><USER16> just saying, mentioning a well known anti pattern as "advanced level of understanding" is kinda odd.

other than that i believe most of us know that there are shitloads (and then some) of bad javascript devs out there.

<comment><AUTHOR> It is an anti-pattern but it's one that every framework takes advantage of. jQuery and Dojo use it heavily and it can be dangerous if you plan on incorporating it in strict mode. I will note strict mode in the article, thanks for pointing it out.

</comment></comment></comment></comment><comment><USER17> You don't know what I know.

</comment><comment><USER18> _I've seen a repetitive pattern of programmers dressing their resumes with technologies that they don't really know, but have merely touched on._

I always find attitudes toward resumes to be interesting. The entire reason we mention technologies on resumes is because we used them, and (assuming we're not completely desperate) we want to use them again. The mere fact that you have done _anything_ in a language gives you a foot up on the person who truly has zero exposure to it. Experience is compounding, and each small step can be worth dramatically more than the last.

I've met too many people who believe that in order to list a technology on your resume, you must be an 'expert' in it, where the meaning of 'expert' varies wildly. These tend to be the same people who think that "evaluating a prospective hire," means, "find any point of weakness and exploit it." It's a weird, insecure defensiveness. A need to prove candidates wrong, rather than gaining an understanding of their skill set and experience.

<comment><USER19> A former coworker once caught someone whose claimed PostScript experience consisted of clicking "Print to File". I consider that nothing short of fraud. If a skill is on my résumé, I am offering to rent it to you for substantial money, which means at a minimum that I have already developed it to the point of being commercially useful. If there is no honest way for me to claim I've dabbled a little and I hope to be useless for less time than some others, it's because nobody has much reason to believe my uninformed self-assessment or care very much even when it's true.

That said, we once hired a guy who didn't know any Java (actually it was the same guy as above), because the interview made it perfectly obvious that given his intelligence and fluency in similar languages, picking up Java was not going to be a problem for him. He did not try to find an excuse to smuggle Java into his résumé, he was honest and let us make the call, and it worked out fine for both of us. If he had cram-studied Java and tried to pass himself off as experienced, we would have caught him being incompetent or dishonest or both, and that would have ended the interview.

<comment><USER18> _A former coworker once caught someone whose claimed PostScript experience consisted of clicking "Print to File"_

Was that deceit, or tremendous ignorance?

It seems to me that there's a huge problem with resumes and interviewing regarding unknown unknowns. 1-10 ratings, for example, vary wildly depending on how much you don't know that you don't know. When I graduated college, I was a 9/10 in C++. Now I'm about a 6, even though I'm ten times the C++ programmer that I was. :-) But I don't dare tell a recruiter that...

I do agree entirely with this statement of yours: _at a minimum that I have already developed it to the point of being commercially useful_

Which is sort of my point. You can have employed a language or technology, professionally, to solve a problem, gaining very meaningful experience, without coming anywhere close to being an expert, or even meeting most people's requirements for 'knowing' something. I'm certainly not saying that people should list anything technology they can conceive, on the most tenuous bases they can rationalize.</comment></comment></comment>


Simplicity My Ass. - <AUTHOR> https://medium.com/trends-predictions/c22abbd34df0

<comment><USER2> Horrendously-written and incoherent rant. I didn't get anything out of that other than the fact that the author, for reasons unknown, really doesn't like iOS 7.

<comment><USER3> Looks like you are right on it, the whole point with the article is the fact that I don't like iOS7. That's the entire build up.

Tim stated quoting "Customer Sat rating is our number 1 priority". Well I'm a huge customer and my sat rating went from #mindblown to #deadirritated

So the fact that you don't get the article is strange to me, because you expressed the very essence of it in your comment above.

<comment><USER4> I think the piece is bad because it has not structure. Ie it's a train of thought that is difficult to follow. It's as if you wrote down shorthand notes during the presentation and then shuffled them around and dumped them in a document instead of actually _writing_ a piece.

Instead i'd write it as: Thesis / Points that support it / Conclusion. Like, you know - the way writing is taught in school.

</comment></comment></comment><comment><USER5> I'm sorry to be critical, but that was terribly written.

<comment><USER3> If you want to please proof read, my written english is horrible.

<comment><USER5> I'm sorry, but I don't consider the content of the article important enough for me to spend time proofreading it.

> my written english is horrible.

I commend you for writing anyway. The best way to improve your writing is to write more. Read a lot, and write as often as you can.

I can't even speak a second language, let alone write in one, so I respect your effort. Keep at it!

<comment><USER3> It's proof read and edited now, [https://medium.com/trends- predictions/c22abbd34df0](https://medium.com/trends-predictions/c22abbd34df0) So feel free to dismantle the written words in any way that pleases you.

I'll keep trying and failing and eventually succeed.

Sorry to hear that you did consider the article important. I think it's of utter importance that we address this matter so that Apple don't screw with our lives.

Sincerely

<comment><USER5> > Sorry to hear that you did consider the article important.

I guess I meant important _to me_. If the article was about starving children or the atrocities in Syria, I might have made an effort to help. But I have a wife and children to feed, and so I can't justify spending time on someone else's article about such a relatively unimportant thing as the design choices made by the worlds wealthiest company.

I hope I don't come across as too harsh. Have a good day, linusekenstam.

</comment></comment></comment></comment></comment><comment><USER6> This is a content-free article.

<comment><USER7> brilliant.

</comment></comment><comment><USER8> This will probably be the last medium.com link I click on HN

<comment><USER3> I wonder why? Did you disagree on the content or was there anything else you felt needed a change, feedback is more than welcome. Also transparency. So tell me how you feel about the issue.

<comment><USER8> Because nearly every-time I click a medium link it's as if content is being written for the sake of writing something, rather than because there's a coherent well thought through point to get across. Many of the posts including this one are like an extended tweet - but at least a tweet would be to the point. It's just unnecessary words.

In the case of your article I feel the point you're making (which I didn't find clearly structured) could have been done so as a comment to another post - I have no idea why it merited a post of its own.

</comment></comment></comment><comment><USER9> Good article. I totally agree.

</comment><comment><USER10> The point being ?

<comment><USER3> that iOS7 is not simplicity as Tim and Apple stakes, and that I don't like iOS7, wich make Apples number 1 priority ( customer sat rating ) to plunge infinite.

</comment></comment><comment><USER11> what a load of drivel

<comment><USER3> Thank you.</comment></comment>