HNHacker News
TopNewBestAskShowJobs

jconley

1,671 karma · joined January 27, 2009

Head of Engineering - https://afterhour.com It Me - https://www.jdconley.com
submissionscomments
jconley··on The ‘Gowalla Situation’
This is definitely a real concern with the SaaS model and one of the reasons big business has been reluctant to rely on it.

Source code escrow works really well to sell enterprise customers. Perhaps there should be something similar for SaaS companies. An agreement, paid for by the customer, that if the company fails or the service is no longer supported, the customer will be given the ability run it themselves.

jconley··on Why you can't hire
Amen, brother!

This is why I don't consider jobs with even exciting startups with early traction at this point in time. Why would I bother getting 50x less return for a similar investment and risk as a founder? We should at least be in the same order of magnitude. Especially if the startup is practicing "lean" and is going to completely change by the time it exits. Might as well just start my own company.

And, if you can't get into an incubator, you can just as easily bootstrap your way through the early stages.

jconley··on Socket.io benchmarking - how many messages can you send per second?
When I say it compares in performance to other systems I mean other high level more-than-a-socket systems like XMPP servers, which I spent a lot of years benchmarking and optimizing. Of course to-the-metal binary packet systems will be much faster as you're doing the buffer management and choosing your copies wisely.

It would be super-awesome to see a profile of node.js when you run this test to see where the CPU is going. Is it something low level like the string parsing, buffer copying, socket writing, or maybe something higher level like some inefficient algorithm somewhere. As I read below that socket.io is focusing on performance now, I guess we'll know soon. :)

jconley··on Socket.io benchmarking - how many messages can you send per second?
Nice initial analysis! I would love to see this run using one of the popular node clustering modules with multiple CPU cores, and also the other socket.io connection types.

9k messages/second on a single 3.3ghz VM with 1,000 connections seems quite manageable and isn't out of line with other systems I've seen that are written in Java, .NET, C++. 100ms is an eternity to wait for a response, however. That's concerning. Especially since that is the case at low message rates. I wonder if that is a function of how the client is acknowledging the received data, rather than the actual time the server is taking to send it back.

What was the limiting factor on the server for this test? I've seen instances where the VM network drivers get in the way in this scenario. Or, you could also be saturating the network bandwidth to the VM if it's a 100mbit interface. Or maybe it's just simply CPU limited in user time by socket.IO...

jconley··on Founder's Hell: Competitive Horror
Following this train of thought, it might be worth exploring if this would work best as an SAP or Jive add-on or some such. . . Getting a sales channel would be helpful in the Enterprise world.
jconley··on Phil Haack quit Microsoft for GitHub
Awesome to see a hugely popular and powerful development platform getting noticed by Github. It's great technology that deserves more love and positive mindshare in the open source world.

The last startup where I was CTO was largely based on the Microsoft .NET stack and we loved almost every ounce of it as a technology. Until, of course, we tried to hire startup and open-source minded engineers in the Microsoft-hate land of Silicon Valley. That's practically impossible.

StackOverflow and (hopefully) now Github will ideally do a lot of good in the next few years to break the stigma against C#.

It seems like the C# community at large contains Enterprise-oriented folks, who only like to consume open source and not give back. They just want to get their projects done and make a profit. I wish we could see more altruistic entities and startups embrace the technology. @haacked - fix it! Github seems like an ideal platform for change in this regard.

Oh, yeah, that startup was acquired and they threw away all our back end tech for no other reason than it was Microsoft based. It's not all bad, though, I do love my shiny Macbook Pro. ;)

Feature requests: - CodePlex migration tool (I have a project there...) - Github client for Windows - Github VS integration

jconley··on Poll: How much did you earn from your stock options during exit?
Yup, I had one recently. The company had buyback rights at the strike price of the options that were equivalent to typical vesting terms. So, a 1 yr cliff, 4 year monthly vest. I.E. Any time in year 1 they had the right to buy them all back for exactly what I would have paid to exercise.
jconley··on I was annoyed with sites asking for too many Facebook privileges and made this
Cool hack.

The site owners requesting a huge list of permissions like this should really test what happens to their conversion rate across various sets of permissions. Been there, worth testing. I'm just saying... ;)

jconley··on The splash page that drove up conversion by 300%
For what it's worth, I've been involved in A/B testing this exact thing to hundreds of thousands of new casual game users. You might be surprised. I would highly recommend the OP test this theory. :)
jconley··on How One Missing `var` Ruined our Launch
Common problem. Live and learn.

But the problem is a bit more meta than Javascript scoping. Something would have happened no matter your environment. It's always extremely risky to make huge changes just before a launch day. Stuff always breaks. Sounds like you did a good job of communicating with your customers. Ironically, they will probably be better customers than they would have been if you didn't have any problems. Overcoming adversity brings people together.

Add some concurrency to your test suite. If you have any system level or black box tests, you can often just run the same test multiple times in parallel with different threads. No new tests required. Note that this may (probably will) also uncover other previously inconceivable concurrency issues.

jconley··on An Easy Way to Build Scalable Network Programs
The post you link to spawns a new thread and tests that speed. When you have a pool it takes roughly zero ms to tell it to do something. All you have is whatever locking is required to synchronize between the enqueueing (request processor) and worker threads, which may even just be a volatile.

Then again, as someone else said, the amount of time it takes to spawn a process to encode a video relative to the amount of time it takes to do the encode is probably trivial, and you would benefit from having the process isolation in case something goes wonky.

You would probably write some sort of "process gate". Though in a distributed architecture I'd do this with some sort of distributed work queue.... I did this in .NET many years ago for a similar service: http://blog.jdconley.com/2007/09/asyncify-your-code.html

jconley··on The Stack Exchange Architecture
I have also ran .NET backed stuff that was larger than this... It's not that uncommon. In my experience the guys running .NET backed stuff just aren't usually as vocal about things. ;) hi5 (the social network) also runs a lot of .NET and SQL Server nowadays. They're also running Windows Server: http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?...
jconley··on The Stack Exchange Architecture
Well, when you're putting your own hardware in your own datacenter it can take hours (or days) to scale capacity. If you have a huge traffic spike that can really hurt the user experience. It's much better to have it on standby. We learned this the hard way at Hive7 with our first social game...
jconley··on Tips for applying to YC
The least emphasized, and I think most important, point here is that the application will help you better define your business and why you're doing it with your current cofounder(s). Much like an AngelList profile, I'd say it's worth a few hours of your time, if only for the exercise of thinking hard about your business rather than just executing on it.
jconley··on Sharding and IDs at Instagram
"What does matter is that the timestamp is new and increasing every second."

Right. I'm just sayin' that you have to be careful when you move data with a caveat like that. Moving the shard keyspace (the 13 bits) to a new machine that started generating ID's even one second behind (the first 4 bytes) would be troublesome, no?

jconley··on Sharding and IDs at Instagram
I've used the "snowflake" like approach in the past with great success. It's really not all that complicated. The reliance on time in the Instagram approach is a bit scary. A few ms off here and there could really hurt this scheme. How do you handle seamlessly transitioning these across machines when your shards move?
jconley··on Ask HN: Anyone Interested in a Co-working Space in Tahoe?
Sounds great. A Hacker BnB. I was thinking of an office space, but you could probably sleep on the floor. ;)
jconley··on Working Remotely
I work remotely and have done so off and on for much of my career. For about 9 months of the last year I took a trip around the US and lived in a RV. All the while being as productive as my colleagues.

Does allowing your employees to be happier people increase their productivity and loyalty? Yup, I think so.

jconley··on You Can’t Make Money Charging $1 Per Month
Maybe they don't? Not that I know the details of their business, but I know I was shocked when I first learned how few companies actually make money. :)
jconley··on Team17: Your Game Could Be an App Store Hit with One Small Change
In the casual/social gaming world we call this asynchronous play. You won't find a single breakout hit in the space that requires synchronous play (like Worms). It's extremely rare to find groups of ones own friends online at the same time, who want to play a game with you, outside of the core gamer sect.
jconley··on Ask HN: How did you learn distributed computing/systems?
I learned by founding a startup that productized a distributed system. One of the other cofounders had experience in the area, so, I guess I did it "old school" with a mentor. Highly recommended. There's nothing quite like a trial by fire when there is a fire fighter sitting next to you at the same folding table.
jconley··on Re: My Space - Making .NET a Star Performer
http://blogs.msdn.com/b/tmarq/archive/2007/07/21/asp-net-thr...

"... If you’re curious to see how much faster ASP.NET requests execute without the thread switch, you can set the value to 0. This will cause the request to execute on the IIS I/O thread, without switching to a CLR Threadpool thread. ..."

Of course you would only ever set this if you are really doing every bit of I/O asynchronously in your application. Otherwise bad, bad things would happen (deadlock under load).

jconley··on Re: My Space - Making .NET a Star Performer
True, you won't get a single thread. You'll get a Threadpool. But we did like the flexibility of the Threadpool for things that had to be done synchronously or were not worth optimizing. It also allowed apps to take advantage of all CPU cores without extra configuration. With the new IIS you have a lot more control over the threading context (you can even run things straight on your IOCP thread if you want).
jconley··on Re: My Space - Making .NET a Star Performer
The section on non-blocking servers is just plain wrong. .NET and IIS have had this feature for at least ~8 years now. ASP.NET Webforms and ASP.NET MVC both have great support for various asynchronous patterns to support non-blocking operations. ADO.NET also has this built-in. I've been involved with projects that have used these features to great effect scaling into tens of thousands of simultaneous connections per server.
jconley··on Ask HN: Would you use and/or pay for a web API to create PowerPoint slides?
Based on this description, no, it isn't something I'd use. Why wouldn't I just load up PowerPoint (or Google Docs) and drag on some text fields? What market and use cases are you thinking of?
jconley··on Tip: How to get an iPad 2 at Target
Don't show this to my wife. ;)
jconley··on Why you should never ask permission to clean up code.
This is highly subjective. There is often much more at stake than clean code. On one end if you are shipping source code to an SDK of some sort, the clean code is extremely important, as it is documentation for your users. But, if it's an ancillary system on an internal project, well, sorry, but it probably isn't worth the time cost and risk of introducing new bugs by refactoring. Talk to your boss about it. If they can't articulate the reasons why it's not a good idea to clean up that code, then you should get a different job. Also (self promotion), see: http://www.jdconley.com/blog/archive/2009/01/26/put-down-the...
jconley··on Ask HN: How much equity to grant an "Advisor?
To venture hacks: http://venturehacks.com/articles/advisors
jconley··on Ask HN: How to build a Minimum Viable Product that is a smartphone app
Typically you'll want to build in your own auto-update check, which could be as simple as a current version txt file hosted on your web server. That way people don't have to go to the centralized update location to update to your latest version. You let them know when there is an update at some point after your app launches.
jconley··on Ask HN: Rent Server For A Few Days
HP will work with you on this and you can use their systems remotely. We used them at a past startup of mine and we ran on 128 cores of Itanium 2 fun, for free. If you have a customer for your code that may want to also buy HP hardware, they move quickly. You just have to sign up for their DSPP: http://h21007.www2.hp.com/portal/site/dspp/menuitem.863c3e4c...
← PreviousPage 7 of 8Next →