Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    G

    Guillermo Rauch

    devthought.com · Personal blog · on HN since 2009

    Guillermo Rauch, creator of Socket.IO, wrote early Node.js and JavaScript posts about objects, tooling, browser bugs, and conference talks.

    Visit blogHN submissions
    Web DevelopmentProgramming
    What HN says

    HN links 'An Object is not a Hash', which one commenter calls naive and dangerous over reserved property names. Other links cover his tweet-filtering proxy and an RMS anecdote.

    Stats for nerds
    27HN people shared it
    26linked in comments
    536story points
    Jul 2015last shared
    2010people per year2015

    Top posts on HN

    1. 1
      Rms has his bag stolen in Argentina
      2 people · 92 points · first shared 2012 · 112 comments on HN
    2. 2
      An Object is not a Hash
      7 people · 75 points · first shared 2012 · 73 comments on HN
    3. 3
      Chrome SPDY indicator (extension)
      1 person · 59 points · first shared 2012 · 12 comments on HN
    4. 4
      The Realtime Engine
      1 person · 52 points · first shared 2012 · 5 comments on HN
    5. 5
      JSConf 2010 Slides compilation
      2 people · 44 points · first shared 2010 · 1 comments on HN
    6. 6
      Bash as a Service
      1 person · 43 points · first shared 2012 · 20 comments on HN
    7. 7
      Node.JS and the WebSocket protocol
      1 person · 31 points · first shared 2009 · Discussion on HN
    8. 8
      A better console.log
      1 person · 28 points · first shared 2012 · 6 comments on HN
    9. 9
      A String is not an Error
      2 people · 27 points · first shared 2011 · Discussion on HN
    10. 10
      Accessing a MySQL database from Node.JS
      1 person · 27 points · first shared 2009 · 14 comments on HN

    What HN people wrote when they linked it

    • masklinnDec 2012

      It's a bit sad that one of the most useful cases for `Object.create` was not covered: it is the only way to create an object without a prototype. Using constructor functions, even if you explicitly set the ``prototype`` to ``null``, instances's ``__proto__`` remains ``Object.prototype``:

      > var F = function () {};
      > F.prototype = null;
      null
      > (new F).__proto__ === Object.prototype;
      true

      This means all the "default" object methods are there (e.g. #hasOwnProperty) and ready to get clobbered with all the risk it entails[0].

      With ``Object.create(null)``, however, the __proto__ of the created object is effectively ``null``:

      > Object.create(null).__proto__
      null

      and such pesky methods as #hasOwnProperty or #toString are not there for clobbering.

      And an issue of Object.create failed to be mentioned as well: you can't use ``instanceof`` directly, you have to create one-off "constructor functions" to call ``instanceof`` on them.

      [0] http://www.devthought.com/2012/01/18/an-object-is-not-a-hash/

    • dyoo1979Jul 2015

      ... Yikes. The advice in this post is unfortunately naive. It's dangerous to allow arbitrary object attribute key content. Some object properties in JavaScript must be treated as reserved. Allowing arbitrary access to key names has unexpected repercussions. For example, consider "prototype" or "hasOwnProperty" as key names.

      See: http://www.devthought.com/2012/01/18/an-object-is-not-a-hash/ for more details.

      So I'd +1 jestar_jokin's advice: use code that's been well-tested. The code presented in the original poster's "Hash Tables in Javascript" article does not look robust.

    • anon1385Dec 2014

      >The nicest part of it is the built-in hash table type and the related syntactic sugar that everyone for whatever reasons insists on calling "object".

      People call it an object because that is what it is. If your code is using Javascript objects as general purpose hash tables with the normal syntactic sugar then your code is broken[1]. The correct way to use an object as a hash table involves a bunch of ugly extra syntax that makes it more verbose than hash tables in any other language I'm aware of.

      [1] http://www.devthought.com/2012/01/18/an-object-is-not-a-hash/

    • malandrewAug 2013

      No you don't:

      http://www.devthought.com/2012/01/24/filtering-tweets-for-your-favorite-client-with-node-js/

      Proxlet did this as a service back in the day.
      I've been toying with the idea of creating a project based on Guillermo R's post with a social component for sharing regexes and rules. The truth is that this type of local proxy should be a generalizable service for every service you consume.

    • shabbleOct 2012

      Also see http://www.devthought.com/2012/01/18/an-object-is-not-a-hash/ from earlier about some pitfalls that you might not immediately consider.

      (HN Thread: https://news.ycombinator.com/item?id=4629544)

    • petercooperMar 2012

      Similar in C++11: https://github.com/d5/node.native

      And a simple example of using it (for a hello world benchmark): http://www.devthought.com/2012/02/08/node-http-hello-world-showdown/

    Related

    RisingStack Blogblog.risingstack.com70 people

    Node.js Examples – How Enterprises Use Node in 2016

    RisingStack Blog
    Company · last shared 2025
    Substack (James Halliday)substack.net40 people

    The node.js aesthetic

    Substack (James Halliday)
    Personal · last shared 2026
    Robert O'Callahanrobert.ocallahan.org149 people

    Choose Firefox Now, or Later You Won't Get a Choice (2014)

    Robert O'Callahan
    Personal · last shared 2025
    Unlimited Noveltyunlimitednovelty.com42 people

    Node.js has jumped the shark

    Unlimited Novelty
    Personal · last shared 2023
    Feross Aboukhadijehfeross.org68 people

    HTML5 localStorage allows sites to fill up users' hard disks

    Feross Aboukhadijeh
    Personal · last shared 2026
    DailyJSdailyjs.com112 people

    Backbone.js: Hacker's Guide

    DailyJS
    Publication · last shared 2017
    2ality2ality.com267 people

    Temporal: Getting started with JavaScript's new date time API

    2ality
    Personal · last shared 2026
    Miguel Grinbergblog.miguelgrinberg.com94 people

    Python 3.14 is here. How fast is it?

    Miguel Grinberg
    Personal · last shared 2026