My Weekend Project: Not A New Yorker (Feedback Requested)

26 points by symkat 15 years ago

My Weekend Project: http://www.notanewyorker.com/

Around 6PM last night I was watching How I Met Your Mother’s latest episode. One of the premises surrounding this week’s episode was those things which make one a New Yorker. I was instantly inspired with the idea of making a little website to capture those things.

Having spent some time around HN for the last few months one piece of advise that always pops up is, “Just Build It.” This seemed like a good project to apply that to, so I grabbed a friend who does front-end stuff, sold him on the idea and began work on the backend.

10 hours and 4 minutes later it exists.

The time was spent pretty much like this:

  -  6:15: Got idea from How I Met Your Mother
  -  6:18: Decied on domain name
  -  6:20: "I think I could build it in GAE really quickly"
  -  6:25: Asked a friend to write the front-end
  -  6:30: Started coding backend
  -  8:00: Finished coding backend
  -  8:10: Bought domain name
  -  8:22: simcop suggested adding a rater (backend now *un*done)
  -  9:16: Rating code for the backend finished and tested
  -  9:44: Added logic to determine the next page you view and tested
  - 10:13: Began merging frontend and backend
  - 11:10: Discover that neither Simcop nor myself know enough JS to write the front-end for the upvoter.
  - 11:20: Conned numerous people into helping us solve this (buu, jesus mostly)
  - 12:58: SimCop learned JS because buu and Jesus were sleepy.  Rating code finished and working on both front and backend
  -  1:40: Food while DNS stuff happens. 
  -  1:45: DNS Done
  -  2:33: GAE doesn't allow ordering by a value which is not in an inequlity... rating >= -10 order by created = "FUUUU"
  -  3:00: Deployed!
  -  3:10: Deployed 4 or 5 more times
  -  3:35: Hackering SymPullCDN - Removed Revalidation (manual purge for update), Removed Cache-Control respect (same GAE and it’s Cache-Control: no-cache), forced Cache-Control: max-age=604800 (things can be so much faster when you break rules)
  -  4:19: Final Version Posted

Without having spent a lot of time around HN this would not have been done this quickly by any stretch of the imagination. Thank you guys =) So, now that’s it’s launched, what are the myriad of the things that could be done better?

HNer 15 years ago

Traceback (most recent call last): File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 513, in __call__ handler.post(*groups) File "/base/data/home/apps/newyorkerwhen/1.345563940169596428/main.py", line 88, in post test = Quote.all().filter('quote =', message ).get() File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/db/__init__.py", line 1797, in get results = self.fetch(1, rpc=rpc) File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/db/__init__.py", line 1848, in fetch raw_query = self._get_query() File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/db/__init__.py", line 2110, in _get_query namespace=self._namespace) File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore.py", line 950, in __init__ self.update(filters) File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore.py", line 1367, in update self.__setitem__(filter, value) File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore.py", line 1309, in __setitem__ datastore_types.ValidateProperty(' ', value, read_only=True) File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore_types.py", line 1324, in ValidateProperty prop_validator(name, v) File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore_types.py", line 1215, in ValidatePropertyString ValidateStringLength(name, value, max_len=_MAX_STRING_LENGTH) File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore_types.py", line 1205, in ValidateStringLength (name, len(value), max_len)) BadValueError: Property is 867 bytes long; it must be 500 or less. Consider Text instead, which can store strings of any length.

  • symkat 15 years ago
      $ curl --data "message=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" www.notanewyorker.com/post
      Thanks for playing the manual POST game.
    

    Fixed. =) Thank you for testing it!

pcowans 15 years ago

I'm expecting to be able to sort the entries by score, but can't obviously see how to do that. Do I need to post an entry before I get that option? I've spent a total of around 12 hours in NY in my life, so don't really feel qualified :-)

A few minor tweaks to the visual design would make a big difference, but I'm sure you know that.

Longer term: maybe widgetise so people can put it on blogs etc.

  • symkat 15 years ago

    There are lots and lots of little visual tweaks that will be done to this as soon as I can con some more front-end time from simcop.

    No ordering is yet implemented based on rating, everything is displayed based on the created date. Any posts which reach -10 are deleted. I figured that would be a good anti-spam method, and it seems like some spamming things are hitting that.

    Once there is more data some "Best of" and such sort links will most likely be added =)

    • pcowans 15 years ago

      Sounds good. It might be worth thinking about whether something closer to the HN/Reddit/Digg model might make more sense, i.e. 'Best of' being the default option, possibly with tweaks so that new posts get enough exposure to be upvoted.

akaalias 15 years ago

Love it, already posted one myself.

Why isn't the list ranked?

On refresh of the page, could you swap the background image? I like the one you have, but since there are probably a thousand awesome, CC-licensed images on Flickr, you could play around with that, too..

sirwitti 15 years ago

looks quite good to me. :) some suggestions: let the background image fade to black at the edges left and right, add eg 100px left and right for the fade, and center it. this way even very wide screens have a nice looking centered background. (that´s always the problem when using big bg images)

you could make the background (of the content) transparent black or white.

i´d style the text and links a bit. different font family and color.

the links to your own sites should open in a new window. otherwise you will lose every user to your sites.

i would center the headline.

but anyway, nice idea.

martin

  • symkat 15 years ago

    Thank you, I'lll be passing these onto SimCop. =D I've got a page load of suggestions from another friend on everything from text to images and fonts that should be incorporated. Pretty web pages are apparently difficult.

og1 15 years ago

Just one suggestion for your timeline. I would suggest "decided on domain name" and "bought a domain" appear one after the other. I just don't trust sitting on domain ideas if they are available for hand registration.

lfx 15 years ago

I clicked "A Post A Not A New Yorker Until" without any text inside text box, and got error "Error: Duplicate Message". I think you should add some checkers, because I saw empty message ;)

  • symkat 15 years ago

    I definitely agree with this. The post handler should raise an error inside of the normal template, and automatically put your text back into the textarea.

    • symkat 15 years ago

      And now it's implemented.

bombarolo 15 years ago

You guys are amazing!

> 6:30: Started coding backend > 8:00: Finished coding backend

Usually it takes me that much just to name my classes and variables.

revorad 15 years ago

This looks similar to thathigh.com. You might want to talk to the guy who built that (just search for thathigh on HN - he's posted about it a few times).

andrewtbham 15 years ago

i like that u posted the time line. very cool.

maybe you could make a platform so anyone could make a site thing like this... it's similar to FML or texts from last night... if there were a platform anyone could make this type of site... hit me up on gmail. i might be interested in helping.

  • pcowans 15 years ago

    Yep, I'd definitely look into making this a platform.

  • djb_hackernews 15 years ago

    There is a platform, it's called reddit!

    Not to be snarky, I'm actually building something that similarly mimics reddit, but I constantly ask myself why I'm reinventing the wheel when i could just create a subreddit.

    • andrewtbham 15 years ago

      aren't sub-reddits much broader than something like... you're not a new yorker until?

sirwitti 15 years ago

another thing i just saw: when clicking on the fb icon open a new window for it. the share on fb page look weird fullscreen, and many users won´t find the way back to your site.

  • symkat 15 years ago

    The links for my blog, simcop's blog, twitter/facebook sharing have now been given target="_blank". =)

andrewtbham 15 years ago

the next page/previous page thing is confusing

  • symkat 15 years ago

    I think it will become less confusing as more content becomes available. Basically if the next page exists, show a link to it, otherwise give a link to the homepage. The same goes for previous. / is the "lastest" page, with /page/1 being the next latest page. This structure is the same as FML's as far as I recall.

photon_off 15 years ago

The page looks very broken.