Hacker Newsnew | comments | show | ask | jobs | submit | kogir's comments login

I wrote this when I started working on HN, though I've since left YC and no longer work on HN.

-----


I wrote this when I started work on HN as a way to learn more about Racket and Arc, and in an attempt to get more useful results from Racket's sampling profiler.

I think I got about 80% of things working, but even then I had to make some undesirable compromises. It became clear it was a dead end and would never make sense to use for HN in production.

-----


I am also interested in your issues. I really have grown in my appreciation of Racket myself and looking to use it for some production work.

-----


That's interesting. Why was it a dead end?

Was it due to the (too dynamic) semantics of Arc?

Or perhaps you have too much code written in standard Arc to make infeasible to port?

-----


Why aren't conference proposals blind anyway? Seems to have worked for orchestras.

-----


Sometimes they are. I really like it. I was selected to speak at a Ruby conference with a blind submission process. I remember feeling pretty good when one of the people who was a frequent speaker at Ruby conferences was whining on Twitter that their talk wasn't selected.

-----


Many of them are, and they still get accused of sexism.

-----


Can you show an example of this?

-----


Because individual speakers draw crowds; individual orchestra members do not. Could you see Linus Torvalds' speaker application getting denied because it was a blind proposal from "some hothead"?

Edit: missed the meaning of "blind".

-----


ILM and Pixar are routinely rejected from the SIGGRAPH Electronic Theater, while 30 second shorts from students often make it.

Noone cares that your computer graphics made a billion dollars, people care that they are cool.

SIGGRAPH also had, last I checked, the best gender balance of any tech community. One year our Wiki was vandalized claiming that the Archdiocese of Los Angeles was canceling a reception we were having on their property because the organization was supportive of the LGBT community and had strong LGBT membership.

So, yeah, Linus freakin' Torvalds can get rejected once in a while. I think his ego would survive. ;)

-----


If it were a blind proposal, you wouldn't know it was from "yet another white male".

Individual speakers draw crowds, yes. But conferences are also a way for people to share their ideas and establish their names in the first place. A conference that optimizes for crowd draw is enforcing a preexisting hierarchy to the detriment of the community.

A solution is to use the keynote address and invited speakers to draw crowds, while taking blind proposals for most of the actual content.

"What is the goal of X?" is a good question to ask in any social endeavor.

-----


Whoops, edited.

> A solution is to use the keynote address and invited speakers to draw crowds

Ok, but nothing's solved, just pushed up a level.

-----


It gives women, along with other frequently disadvantaged groups, such as minorities, the obese, seniors, and physically challenged persons, a more equitable chance to be heard in the first place. It means that the speakers who are chosen have met a minimum professional relevance level. This is a good short term win.

Will it mean those people have equitable chances to do keynotes today - no more so than the current systems.

Will it mean they have a chance to build a professional reputation that may result in invitations to do keynotes tomorrow - yes. This is a good long term win.

-----


I actually could, if only for the fact that Linus Torvalds strikes quite a nerve in many people. Not that I myself consider him anywhere close to the nastiest hothead in free software.

-----


If applications were blind they wouldn't have gender & race/ethnicity. That's the point of blind orchestra auditions.

-----


Ha, good point. Edited.

-----


Do not install the beta unless you have a second machine. There are some hardware independent showstopper bugs in Beta 5.

-----


If ImageMagick meets your needs, use it.

However, after doing so, you may find that it's terrible code, slow, leaky, and a giant pain to use in production at any real scale.

-----


The article is not strictly correct. A more detailed explanation can be found here: https://msdn.microsoft.com/en-us/magazine/jj991977.aspx

Exceptions actually bubble up to the active SynchronizationContext, and won't necessarily kill your process. In ASP.Net, aborting a request on an error is often desired behavior.

Still generally good advice though. Issues arising from accidental async void use are often very tricky to track down, and in my own code I only use it for fire-and-forget-best-effort event handling and run them all in a SynchronizationContext that captures and logs the exceptions.

-----


It looks like the article was written in 2012 where the crashing behaviour was normal in Windows 8.0, this changed in Windows 8.1

-----


Back in 2005 when I started Loopt I went all in with Windows Server, .NET, and SQL Server. I already knew the tooling[1]. No regrets. It never held us back - product issues did.

Now I'm using it again, for the same reasons. I already know it, I'm pretty quick with it, it's predictable, and it works. I'm also old school and will probably deploy physical servers when the time comes. Look at StackOverflow - their whole site runs on a handful of properly configured servers running properly written code.

That said, .NET is not sexy. The tooling is expensive (Pro, Ultimate) or crippled (Express). It runs on Windows, which has fallen out of favor[2].

Even though I like .NET, I'd advise anyone new to learn JavaScript first. In my opinion, Node.js is my nightmare realized, but it works, and it's now possible to make things work in the browser and on the server with knowledge of only one language. More bang for your buck.

For startups technology choices are incidental when they're not the core of the business. If you're making a database, your tech choices matter. A consumer app? You're more likely to die of a bad product or team drama[3] than fallout from rendering HTML with bash scripts via CGI.

So anyway, you don't see more .NET because it's expensive, it's not the best beginner language, and it doesn't run on OS X. Also, the alternatives are much improved - It's hard to argue for .NET over something else because even where it's better, it's not that much better. And most of the time it doesn't matter.

[1] Grew up with access to an MSDN subscription. I knew of and played with Linux, but in the pre-virtualization days, I had to reboot to use it. Understandably, I preferred tools I could use on Windows, my primary OS. Also, while it's no longer the case, the MSDN documentation used to be fantastic. I basically taught myself how to program by reading the MSDN docs and tearing apart the sample code and programs.

[2] For the same reasons I developed on Windows as a kid, younger developers will want something they can run on OS X directly, or for free in a VM.

[3] Like this: https://news.ycombinator.com/item?id=9840419 The number of startups that die due to founder drama is astonishing.

-----


> The tooling is expensive (Pro, Ultimate) or crippled (Express).

Visual Studio Community 2013 (and 2015) are completely free and nearly fully featured. Gone are the days of Express being a super lightweight VS IDE. I used to buy Pro for side work but now I can get by with Community.

-----


> Visual Studio Community 2013 (and 2015) are completely free and nearly fully featured.

But have licensing terms which limit the contexts in which they can (legally) be used.

> Gone are the days of Express being a super lightweight VS IDE.

Express is still a super lightweight VS IDE. Community may eliminate most of the use cases for Express, since most of the cases where it makes sense to use Express may be places where Community is an available, per the licensing restrictions, and better choice.

-----


the Windows Server Licenses are the expensive part

-----


If you're using a cloud hosting, such as AWS EC2, the added expense of Windows is around 30%. Nothing terribly expensive about that.

And you also get credits from Bizspak, that could be used to apply to offset AWS licensing.

-----


But god help you if you need SQL server beyond what express provides. (Web is OK but expensive, "standard" or enterprise? Now that hurts)

-----


> god help you if you need SQL server beyond what express provides

Too much drama. Here's pricing for m3.large:

  Red Hat:      $0.193
  Windows:      $0.259
  Win + SqlWeb: $0.367
Besides, you get several(?) free SQL licenses with BizSpark, if you're so inclined.

-----


SQL Server Web Edition is not the same as Standard or Enterprise. The reason you use SQL Server instead of PostgreSQL is for Database Encryption, Analysis Services, AlwaysOn Availability Groups, etc. Web Edition won't even do mirroring.

The cost is worth it if it saves you multiple employees worth of development work or administration overhead, and in my experience it does. The pricing is also (surprise!) negotiable. At Loopt, our annual software licensing cost was well under the cost of one developer, and this was before BizSpark.

-----


Basically, yep.

But you can see why people get some sticker shock: $14,256 on their website for SQL Server 2014 enterprise (per core!) http://www.microsoft.com/en-us/server-cloud/products/sql-ser...

However as you say, you could easily get a 50% discount on that without having a big SQL Server farm.

No bizspark required.

-----


I've shipped production code developed in Mono on OS X, deployed to both Windows and Linux. I don't think that should be a huge roadblock moving forward. MS itself is trying to foster this (for the benefit of selling more Azure services presumably) with the next version of ASP.net which will run on basically everything.

Re the expense of doing it the MS way, Microsoft will gladly throw free/cheap software and services at you: https://www.microsoft.com/bizspark/

-----


Also, if you are a YC company, you can get $500k in credits from Azure.

-----


On which, you can run Linux.

-----


Or anything else! Absolutely!

-----


I've never used a curved 4k monitor (or even seen one), but I use a 32" ASUS PQ321Q at its native resolution for coding. I love it and can't go back.

It's right at the edge of what I can discern - any higher PPI and things might look sharper, but I couldn't get any more usable space out of it - I'd have to scale it. It fills my field of view so I I can use the entire screen without having to move my head much, if at all.

While I'd not recommend my specific monitor anymore due to non-competitive pricing, I wholeheartedly recommend DisplayPort, 32", 4k, IGZO or IPS monitors for coding. Get something cheaper at your peril, and definitely don't get a TV.

-----


Crazy that IOCPs were in NT 3.5 in 1994[1], but it took FreeBSD until 2000 to add kqueue[2], and Linux until 2002 to add epoll[3][4].

I guess it just must not have mattered that much? Is it only recently machines became primarily IO bound?

  [1]https://en.wikipedia.org/wiki/Windows_NT_3.5
  [2]https://en.wikipedia.org/wiki/History_of_FreeBSD
  [3]https://en.wikipedia.org/wiki/Epoll
  [4]https://lwn.net/Articles/13197/

-----


I think being I/O bound is orthogonal to whether you need kqueue or epoll.

You could be I/O bound on a small number of simultaneous sockets, in which case select() would work fine. Or you can be I/O bound on a lot, in which case select() would take too much CPU by scanning the descriptor table repeatedly.

http://stackoverflow.com/questions/970979/what-are-the-diffe...

-----


Oh, that makes sense.

Older servers couldn't handle enough clients for connection related limits to matter.

-----


IOCP is just the user-facing artifact; the interesting piece is the I/O request packet, or Irp, at the kernel level, which dates back to VMS.

-----


I imagine the thinking was similar to that behind FreeBSD's accf_http kernel module? https://www.freebsd.org/cgi/man.cgi?accf_http

HTTP.sys obviously does a lot more, but especially back in the Windows 2000 days, the performance difference was substantial.

-----


Linux used to have in kernel httpd too, called tux[1].

[1] https://en.wikipedia.org/wiki/TUX_web_server

-----

More

Applications are open for YC Winter 2016

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact

Search: