1,501 karma · joined November 18, 2010
Previously: Principal Software Engineer at ObserveIt Core Application Lead Software Engineer at DataRobot Senior Software Engineer at Shift, acquired by Brand Networks Founder of Shopaboo Research Engineer and student at NASA/University of New Hampshire working on OpenGGCM
linkedin: https://www.linkedin.com/in/tglines
twitter & instagram: @travisglines
The best would probably actively update on votes and do a catchall operation on ones that haven't been voted on or all on a certain periodic cycle.
Our score was calculated by something like this:
var gravity = 1.5;
var score = num_votes / Math.pow(t+2,gravity);
Gravity being how quickly a post would fall. Notice the t+2 ... it added 2 hours to all posts in order to eliminate things that were recently posted with like one vote sitting at the top.Then we'd just run this function through the whole database periodically (every 5 minutes or something).
Also I found this talk on developing an HTML5 game interesting: http://www.youtube.com/watch?v=yEocRtn_j9s&feature=relmf...
Mostly because its eerily similar to a simple game I made years ago in flash:
http://www.travisglines.com/resume/planetdefender/PlanetDefe...
One of my favorite advantages of Node is in fact that it is based on javascript. When building my application I can share code between client/sever side (string formatting methods for example) and don't need to do any mental context switching when it comes to languages. I've developed in javascript for years and all that I have learned doesn't go out the window here, all I need to do is learn how to use a few libraries.
The "faults" of javascript are primarily inexperience with event looped architectures that use callbacks (people complaining about having to use callbacks and the spaghetti code messes they make), people remembering the past horrible browser implementations of it (where something would work/be fast in one browser and not another ... Internet Explorer I'm looking at you) and confusion over how prototypical languages work vs. standard OOP.
Callbacks aren't that bad and a few extra nesting levels shouldn't create chaos in your code. Since its based entirely off of one javascript implementation (V8) the cross browser stuff is gone. How it handles OOP is different, just watch these videos first and you'll be fine: http://www.yuiblog.com/blog/2007/01/24/video-crockford-tjpl/
As far as speed goes it gets huge benefits by being javascript. Every time the Google coding machine feels like making V8 a little faster, Node gets faster too.
Yes its different, no its not worse ... its better but takes some getting used to.
First they're doing Youtube Live -> Justin.tv etc.
Then better flight search -> Hipmunk
Its fun watching what people say about it. They want to know why its there, why its black and if its real.
We built it in node.js and MongoDB. While node and mongo are young projects we have found them very stable and extremely fast. (we noticed a lot of problems reddit had with scaling and we were interested in the stack)
Our decision to build Exipe in node/mongo has been a bit controversial but we've found no problems thus far with it ... ~2 weeks out with slowly growing traffic. Check out a few of my latest blog posts here about the experience:
I wonder given the lack of accuracy between quantcast/alexa/compete if there is room in the market for another traffic intelligence site that piggybacks off of Google trends somehow.
[Edit] Looks like its against their TOS: http://groups.google.com/group/google-labs-trends/browse_thr...
Hmm...
I'll probably be using Google trends in the future, thanks for the heads up.
After looking at the chart (assuming as Swannie does, that Google trends is a significantly accurate source), it seems pretty apparent that HN doesn't have enough traffic to cannibalize significant traffic from them.
The problem is is that not only do you need to reach a critical mass before the content is there, but you need to do that in each and every location. This is why it's such a challenge.
It seems like all the extra time you would spend by going above and beyond to get a following/skills could be spent (with the same risk) doing a really cool startup on the side.
How does one build an asset like this? By creating a web startup from scratch.
So yes if you happen to be one of the lucky few that have a nice asset like that, do the obvious thing you would have done anyways and leverage it. Otherwise join the rest of the crowd building one of the assets from the ground up with solid execution and a decent idea.
constructive criticism ... for science
I'd make the link to the example page a little more obvious, I didn't intuitively think I could click on the image for whatever reason.
What I would do is put it out there and be ready to take the steps you need to, to keep it alive if it does go viral. Planning too far ahead for this is probably a waste of your time as you most likely wont be able to see the weak points before hand. Just move quickly if it does.
What goes on in someone's mind that says: "Maybe if I spend some time making my source code hard to understand I can better preserve my job." ?
In reality all it does is slow them down, waste their time and lead to the firing of the developer. (At which point we get to hear funny stories from people like jacquesmatteij)
If that time was spent improving/refactoring their code and working on new things, they'd actually have the job security they were so desperately seeking.
I actually just signed my grandmother up to their service here and all it is, is a paid subscription to pdf copies of their newspaper as they release it. Theres not exactly much to protect there and worst case scenario is that someone gets some free copies of the paper. I don't think its such a big deal for them to be a little lax with password security given what you get behind the security wall. (as long as people aren't using that same password everywhere ... which may be the real problem here)