338 karma · joined May 8, 2010
http://www.marathonmuse.com
https://github.com/trun
Some things I've worked on... dorm.io - http://dorm.io
Building management for universities made simple
Battlecode - http://www.battlecode.org
MIT's annual AI coding competition
Flashblocks - http://github.com/trun/flashblocks
A framework for creating visual, block-based programming languagesMost of the interesting bits happen in RoboMethodTree.
I haven't looked too closely at MapR yet, but "instant recovery, seamless sharding and high availability" are impressive claims. It's still decidedly differently than HBase in my mind given the cost.
https://github.com/HubSpot/sanetime https://sanetime.readthedocs.org/en/latest/
I'll echo what skates and iba said -- battlecode was probably one of the most productive things I did in school. when everyone else is trying to teach you how to properly to document your preconditions, battlecode is purely about GSD (get s* done) - an extremely valuable lesson for an aspiring young entrepreneur.
my favorite battlecode hack: we used to assign a fixed "cost" to certain methods, namely Arrays.hashCode(). one of the more experienced players figured out that everyone was using this to checksum their radio broadcasts. he then proceeded to reverse engineer the hash code algorithm and spam teams with enormous messages that had legitimate checksums but were actually just megabytes of trash! the poor opponents would just sit there chewing cpu until the engine finally killed them for using too much heap :)
edit: actually read through cory's post - glad to see he already mentioned this one!
Edit: Here's my old Actionscript library in case anyone is interested. https://github.com/trun/flashblocks
- I heard 50+ distinct words, plus the numbers 1-9
- Numbers are not written out anymore (e.g. "nine" does not work, it must be "9")
- You must get 9 out of 10 words correct to complete the CAPTCHA
So they're still working with a very small dictionary of words, and with a little practice it's not hard to nail these consistently (as a human). The extra noise makes it a little more difficult to split the samples, but that's a solvable problem. I bet they can re-break it with their existing program and not too much additional effort to retrain the system. Apparently you forgot your password? Ok, so here's your new one, stupid:
EMAIL: xxxxx@gmail.com
PASSWORD: moron.xxxxxLinkedIn doesn't seem like a great reason to "Go Pro" since I've likely already copied all of my info from LinkedIn just to try it out in the first place. However, the other features, such as analytics and additional templates are awesome additions that I might want after I try it. If I were you, I would seriously consider baking in LinkedIn support to lower the friction for new users and then upsell them with the other features.
You should allow creation of the resume in smaller chunks and save as you go. I get very nervous when I have to type more than a few sentences in an unsaved document.
I don't really need a big description box for every skill I want to list. Actually, I'd rather just list them all (LinkedIn does this).
My profile page says "Howdy Trevor.rundell", which I assume it pulled off my email address. You should just pull my first and last name off of my resume instead.
You should definitely allow users to create their own short URL (/r/trun is a lot better than /r/bejeya). Maybe this is a Pro feature.
- Instant provisioning
- Client IP address is forwarded to application as X-Forwarded-For
- Better validation of certificate files
- Rollback of certificate changesIt's still pretty sad. Shows like The Daily Show rely on fair use for a lot of their content and it's hard for me to see a difference between this and much of what they do. Fair use shouldn't only be available to people with expensive lawyers.
[1] http://en.wikipedia.org/wiki/Wikipedia:Manual_of_Style/Music...
The hardest part was sifting through the dozens of boxes of tickets (which he stored in his dorm room) to find the winners.
[T]his course is tied to two courses offered by the English department on J.R.R. Tolkien and Anglo-Saxon literature. Students in the computing course put concepts to immediate use by analyzing large bodies of text. The syllabus is more like what one would find for a humanities course.
Too often introductory CS programs focus on the "how" of programming. By showing students the "why" and "what" first, you immediately have a more compelling case for keeping them engaged. This is true of all subjects I suppose, but CS is somewhat unique in that there are problems waiting to be solved almost everywhere.
I don't aim to offend people with things I post online, but I don't expect to make everyone happy either. If a future employer might not hire me because I express myself publicly, chances are I don't want to work there anyways. However, I find it sad to see this kind of thing in education. I know too many great teachers in public schools that have decided to leave due to crap like this, and I can't help feeling that things only get worse in their absence.
(edited for grammar)
- When you want to compute metrics for multiple intervals (hour / day / month / etc) Redis' MULTI / EXEC constructs make transactional updates to multiple keys a snap. Additionally batching (which is supported by most Redis clients) can dramatically improve performance.
- You can use Redis sets for computing uniques in realtime. You can also use set operations like SUNION to compute uniques across multiple time periods relatively quickly. For example, SUNION 24 hour intervals to get the total uniques for the day. You just have to be careful that large numbers of uniques eat up your available memory very quickly. EXPIREAT helps ensure things get cleaned up automatically.
- Using a Redis list as an event queue is a great way to further ensure atomicity. Use RPOPLPUSH to move events to a 'uncommitted' queue while processing a batch of events. If you have to rollback, just pop them back on to the original list.
* The if template tag now supports {% elif %} clauses.Neat idea though.
https://github.com/JulienPalard/Pipe
It would be really cool (though admittedly less Pythonic) to combine the infix notation provided by the Pipe library to allow more shell-like function chaining.
Instead of this...
print wc(ls("/etc", "-1"), "-l")
You would have this... print ls("/etc", "-1") | wc("-l")Additionally, the competition has since been opened to outsiders so you can participate even if you're not at MIT. We never publicized that fact very well, but I imagine it would appeal to much of the HN crowd. I also recommend checking it out if you've got some time to kill [2].
[1] https://github.com/battlecode/ [2] http://www.battlecode.org