HN user

dc-tech-fan

175 karma

Javascript, Node developer

Posts4
Comments47
View on HN
Amazon Allowance 11 years ago

I want this for something like Fiverr.

Instead of my kids accumulating more junk, they learn the skills of hiring and delegating.

Don't want to mow the lawn in this heat? Use your allowance to somebody else to do it. As long as the job is done they will earn their allowance.

I just need a way to make sure they're not outsourcing their homework or paying somebody buy them alcohol.

My mom wrote books using WordStar on the original IBM PC. She didn't like the default keys so she learned assembly to change them.

She didn't change ^K^B, I still remember that one.

I had to learn WordPerfect in High School and hated the clunky command codes and the keyboard overlays required to make sense of it all.

[dead] 12 years ago

I wish Facebook, Twitter, etc had some kind of "accuracy checker" built in.

For example, if somebody posts a photo and describes as something that shocking that recently happened, the social network could add a tag "original photo taken year in location, context."

This would also be helpful in election years.

Ot: how did they do that header in github-flavored markdown?

Github's preview mode doesn't render it correctly and I can't find anything about it in Github's docs.

Here's the source:

  ---
  title: Michael Abrash's Graphics Programming Black Book,   Special Edition
  author: Michael Abrash
  date: '1997-07-01'
  identifier:
  - scheme: ISBN
    text: 1576101746
  publisher: The Coriolis Group
  category: 'Web and Software Development: Game Development,Web   and Software Development:
    Graphics and Multimedia Development'
  chapter: '01'
  pages: 004-019
  ---
https://github.com/jagregory/abrash-black-book/blob/master/s...

Hi, I'm one of the creators of Doodle or Die.

The drawing tool in the game and the anti-cheating systems are both things I created.

I'm impressed with your app. Instead of converting a bitmap to a pixel-by-pixel rendention (which people have done and it looks obvious) it re-draws it like a real drawing, picking one color at a time.

Paying users get a replay feature. It replays fairly realistically and that's difficult to detect as cheating.

Nice work!

$10,000 at $3/album means over 3000 albums were sold that day, out of 6000 available (according to his ad). So more than half of this random collection was worth buying, and if lets say each person buys three albums, over 1000 people came to his house?

Doodle or Die is all HTML5.

Doodles are stored as JSONP: http://doodles.s3.amazonaws.com/d2/5iSFn-ME/8qp73zuBe.js

This json renders in canvas as the page loads like these amazing drawings: http://doodleordie.com/profile/underwearhero

We want to make a native mobile app because we've heard that HTML5 is slow enough to frustrating. I tried a Lua-based framework and it was fun to use but the resulting drawing too was too slow to be usable because every line had to be created as a new object, instead of Canvas-like pixel manipulation.

> The only technical problem where I've seen node be a unique solution is dealing with third party apis concurrently.

Use a library like Async, it makes this really easy.

https://github.com/caolan/async

(assume redis, mongo, facebook, and callback are all functions)

async.parallel([ redis, mongo, facebook], callback);

callback is called when all of the others are complete. If you have dependencies, like facebook needs the output of redis and mongo then use async.auto which will automatically run things in parallel and in the order you need them.

Retain users: More than 70% of our daily visitors are return users, but we do need to figure out some way to notify users when their chains are complete, etc. We'll probably ask for email for this. Do you have other ideas?

Yes you get to keep your hearts in Ghost mode. It's for people like me who are embarresed about how bad they draw. Fun fact: I made this game because I wanted to make a game and my art skills are so bad I hoped instead I could get players to create the art for the game.

That is so cool, thanks for sharing the screenshot! I love seeing how different developers show the final chain.

There have been many times when I've wanted to give up on Doodle or Die. For example when somebody created a site called Screw Your Doodle to upload offensive images and users were asking for a reporting system that we didn't have yet and I had already been working every night on the site for much of the night...

NPM Modules:

mongodb

async - no more insane levels of nested indents when doing async javascript

express - middleware

ejs - templating system

logging - very simple logging module i wrote more than a year ago when there weren't good logging modules for Node yet.

knox - for storing doodles and static assets on S3

uglify-js - compress that client-side javascript

stylus - much nicer way to write css. variables, functions, mixins, etc.

everyauth - authentication - supports more than we could ever want but we're just exposing Facebook and Twitter for now.

useragent - we only support modern browsers, sorry IE users!

shortid - module I created to give us very short unique ids that are not guessable for chain sharing, like http://doodleordie.com/c/Eih5TDOHk or http://doodleordie.com/c/1hODyac94#1to4

moment - nice time references, like "7 days ago"

canvas - we render doodles on the server and then save those pngs instead of accepting pngs from the browser because people figured out they could send us any image they wanted.

ansi - doodles above a certain number of brush strokes we convert to ansi and echo in our console log. This is my favorite feature of the whole site, especially because I got my start in online communities in the 2400 Baud BBS world when ANSI art ruled.

Database: Mongo

We're using a 5 GB instance at MongoHQ with backups to S3.

Mongo is insane fast compared to what I'm used to with MySQL, and I love the JSON-based query syntax over SQL.

Not being able to do relational-type queries has made some things more difficult, like building "Top 10 List" of arbitrary data is a bit more tedious.

It is very simular - but we actually had never heard of or played Broken Picture when we created the game.

I wish we knew about it before launching because there have been many times when deciding how the game should work that it would have been much easier to know how Broken Picture did things, such as how long chains should be and how to handle jerky players.

I'm giving Phonegap a try to make the mobile version of http://doodleordie.com. Thoughts/recommendations/inspirational success stories with Phonegap?

Of course Native is better but the Doodle or Die fans want a mobile app now and Phonegap seems like a quick win because I know JS well and I don't know Java or Objective C.