New Fn() vs. Object.create(P) - <AUTHOR> http://mrale.ph/blog/2014/07/30/constructor-vs-objectcreate.html <comment><USER2> I like how this page uses ASCII diagrams converted into fancy graphical ones on-the-fly!

Looks like it's done with Shaky, which has been on HN before: [http://shaky.github.bushong.net/](http://shaky.github.bushong.net/)

Really neat tool.

<comment><USER3> I'd say somewhat impractical since one can scribble those diagrams in MSPaint much faster than making them in ASCII first. I'd actually find the opposite direction much more useful.

[http://asciiflow.com/](http://asciiflow.com/) might be helpful otherwise.

<comment><USER4> > _I 'd say somewhat impractical since one can scribble those diagrams in > MSPaint much faster than making them in ASCII first_

...until you want to tweak the layout of an almost completed diagram slightly, and now you hate life.

For a particular type of diagram (notably there are very few options, and the more options you add the closer you are to needing a full diagram editing program (like asciiflow) instead of a text file) this is a great productivity booster.

</comment></comment></comment><comment><USER5> Might wanna add 2014 to the title?

Now that we have ES2015, I wonder if there's any performance difference between using a function and a class, even though class is "just sugar" over prototypes.

<comment><USER6> ES2015 class does not provide you with a way to declare instance fields. You still create them imperatively in the constructor. Which means for the purposes of the post ES2015 classes are not different from standalone constructor functions - as VM still has to figure out optimal layout dynamically.

</comment></comment><comment><USER2> This structure looked familiar to me:

      +</comment><comment>-+
      |   *---+-> hidden class (aka map)
      +</comment><comment>-+
      |   *---+-> out-of-object properties storage
      +</comment><comment>-+
      |   *---+-> elements storage
      +</comment><comment>-+
      |   1   +-+
      +</comment><comment>-+ |
      |   2   | |
      +</comment><comment>-+  > N slots reserved for in-object properties
      <comment><comment><comment> |
      +</comment></comment></comment></comment><comment>-+ |
      |   N   +-+
      +</comment><comment>-+

That's because it's very close to PHP 7's implementation of objects (PHP has "traditional" class-based OOP):

      zend_object:
      +</comment><comment></comment><comment>-+</comment><comment></comment><comment>-+</comment><comment></comment><comment>+</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>-----+
      | gc_info     | flags       | IS_OBJECT  | refcount (32-bit)                       |
      +</comment><comment></comment><comment>-+</comment><comment></comment><comment>-+</comment><comment></comment><comment>+</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>-----+
      | UNUSED (32-bit)                        | handle (32-bit) FIXME                   |
      +</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>----+</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>-----+
      | ce - pointer to zend_class_entry (64-bit or 32-bit)                              |
      +</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>----+
      | handlers - pointer to object handlers (64-bit or 32-bit)                         |
      +</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>----+
      | properties - pointer to HashTable of dynamic properties (64-bit or 32-bit)       |
      +</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>----+
      | guards - pointer to HashTable used for recursion protection (64-bit or 32-bit)   |
      +</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>----+
      | properties_table[0] - embedded cell of the first declared property (128-bit)     |
      +</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>----+
      | ...                                                                              |
      +</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>----+
      | properties_table[N] - embedded cell of the last declared property (128-bit)      |
      +</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>----+
      | optional user data of internal classes (variable size)                           |
      +</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>----+
       63         48 47         40 39        32 31                                      0

(source: [https://wiki.php.net/phpng- int#is_object](https://wiki.php.net/phpng-int#is_object))

PHP 7 objects contain N slots for properties defined in the class, plus a hashtable for any additional properties, just like V8 objects.

I guess it's an obvious way to design it.

<comment><USER6> > I guess it's an obvious way to design it.

It's an obvious way to design it... if you start with explicitly declared properties in your language.

For JavaScript a state-of-art for a long time was more like this:

      +</comment></comment><comment>-+
      |   *---+-> hashtable for properties
      +</comment><comment>-+
      |       |
      <comment><comment><comment> various metadata (e.g. prototype chain)
      <comment><comment><comment>
      |       |
      +</comment></comment></comment></comment></comment></comment></comment><comment>-+

all properties mixed together, all stored in a hash table, etc.

The non-obvious thing to design here is how you escape from the realm of hashtables into the realm of something both more compact and faster to work with (given certain statistical assumptions about the properties of the code).

<comment><USER7> Moreover, if you're doing the naïve thing, hashtables _per se_ aren't even particularly good for object properties—most objects are small, so an RB-tree or even linear search performs nicely.

</comment></comment><comment><USER8> What if you just did it more of the functional way. Have an object for state that is passed in for each function. Then Object.create isn't so bad. Just an idea as I found this pattern easier to maintain though I still use new.

</comment><comment><USER9> Hi mraleph, if you're still reading this thread, how are you getting these result?

Is worrying about this for normal web apps just a micro-optimization or can you see instances where this would affect an application's speed significantly?

<comment><USER6> > Is worrying about this for normal web apps just a micro-optimization or can > you see instances where this would affect an application's speed > significantly?

I don't think there is such thing as an average web application so things must be decided on the case-by-case basis.

In general if creation/usage of some "class" of objects is on the very hot path - then their layout can affect performance of the hot path. In this case constructor might be preferable for the reasons outlined in the post (faster construction, one less indirection for the property access). However the decision must be made only after deep investigation.

<comment><USER10> Trying to understand the described matter I created some simple code to benchmark different cases.

Probably I got something wrong, but setting properties inside the constructor function (prop-benchmark-b.js) are almost 6 times slower that setting them outside of it (prop-benchmark-a.js)

[https://gist.github.com/senotrusov/597514c773089b6989c6](https://gist.github.com/senotrusov/597514c773089b6989c6)

What do you think, why I got such a different numbers?

Thank you!

<comment><USER6> There is a bug in your code:

        var o = new F(i, i, i, i, i, i, i, i, i, i, z)
        z = o
        // ... skipped
        o.z = z

This makes o.z = o, so only the last object survives. When you use constructor you actually link all of them together - which means there is more garbage around - GCs are more expensive.

If you fix this bug, e.g. by doing

        var o = new F(i, i, i, i, i, i, i, i, i, i, z)
        o.z = z
        z = o

you actually OOM in prop-benchmark-a.js case because object there is less compact than one created by constructor. Just as the post predicts.

<comment><USER10> Thank you!

I was lucky to not hit OOM and I've got 5.648s for setting properties outside of the constructor and 3.680s for setting them inside of the constructor, so just as the post predicts.

At the same time, if I'm trying to simplify the test case and set only numeric values and not object ones, I've got nearly the same results: 3.953s and 3.922s for 10x more iterations (prop-benchmark-f.js and prop-benchmark-g.js).

(node 4.0.0 on Mac OS)

<comment><USER6> > At the same time, if I'm trying to simplify the test case and set only > numeric values and not object ones, I've got nearly the same results: 3.953s > and 3.922s for 10x more iterations (prop-benchmark-f.js and prop- > benchmark-g.js).

Well, the secret here is that even if you have an empty constructor V8 still initially gives enough slack to you object for 10 in-object properties, and by coincidence you have precisely 10 properties.

Just add one more and observe the difference.</comment></comment></comment></comment></comment></comment>


Django REST framework 3.4 Released - <AUTHOR> http://www.django-rest-framework.org/topics/3.4-announcement/ <comment><USER2> Its really awesome that this project continues to endure. The code base is top notch and the maintainers are committed to the highest level of quality.

DRF is one of the core reasons why Django is top choice among web frameworks today. In my opinion, it sets the standard for rest frameworks for the development community at large.

<comment><USER3> Agreed, this is a top notch project. Excellent code, documentation and, above all, the concepts exhibited in the library are extremely well thought out.

<comment><USER4> To be perfectly honest I think the implementation is a lot better than some of the documentation. The tutorials can be pretty confusing or just plain broken for anyone without at least an intermediate proficiency in Django already. Perhaps the documentation should have messages recommending that developers get good at Django first.

Most of my experience with it has been great though, it's a very well built technology.

For a helpful reference also check out [http://cdrf.co](http://cdrf.co)

<comment><USER5> Agreed! The code is lot easier to read than the docs. I generally think of DRF as "that which has to be true so that mixins.py[1] makes sense"

1- [https://github.com/tomchristie/django-rest- framework/blob/ma...](https://github.com/tomchristie/django-rest- framework/blob/master/rest_framework/mixins.py)

</comment></comment></comment></comment><comment><USER6> Django REST framework really makes Django in my opinion. It really is the add- on which opens up a lot of possibilities.

<comment><USER7> agreed - maybe it will be integrated into django someday like south was

<comment><USER8> was south integrated? the docs say it hasn't [http://south.readthedocs.io/en/latest/about.html#a-brief- his...](http://south.readthedocs.io/en/latest/about.html#a-brief-history) but maybe it's outdated?

<comment><USER9> The main developer of south was responsible for bringing schema migrations to Django's core... don't know how similar it was to south's codebase, though: [https://www.djangoproject.com/weblog/2013/mar/22/kickstartin...](https://www.djangoproject.com/weblog/2013/mar/22/kickstarting- schema-migrations-django/)

<comment><USER10> Its pretty similar from developer perspective.

</comment></comment></comment></comment></comment><comment><USER11> I'm really glad that ModelSerializer classes now require either fields or exclude. IMHO not requiring that before was one of the biggest weaknesses of the project, since it could easily lead to data being unintentionally exposed.

I know that's maybe not the most exciting change, but I think it's important that it be very obvious what the code does even if a person isn't an expert in a given technology, especially when there are privacy/security implications.

</comment><comment><USER12> I love DRF. Compared to building APIs using Flask or Node, it's an order of magnitude faster.

<comment><USER13> I love Python but I've never used Django -- I've always used Ruby on Rails since that's what I'm familiar with. Do you know of any resources I could use to get more comfortable with DRF (i.e. more complex than just the Quickstart tutorial [0])?

[0] [http://www.django-rest- framework.org/tutorial/quickstart/](http://www.django-rest- framework.org/tutorial/quickstart/)

<comment><USER14> I always recommend the tutorial [0] from Thinkster where you have to build a clone of G+ using Django ( DRF) and AngularJs. Try it. It's fun.

[0] [https://thinkster.io/django-angularjs- tutorial](https://thinkster.io/django-angularjs-tutorial)

<comment><USER8> ugh that'd be great sans angularjs

<comment><USER15> We have a pure DRF tutorial coming out on Thinkster in ~2 weeks, so stay tuned!

</comment></comment></comment></comment></comment><comment><USER16> Out of topic, I think the way DRF project funded is very interesting, i.e. public funded fulltime developer working on OSS. How many other similar successful OSS with such funding?

<comment><AUTHOR> Closest things I know of are:

* Ruby Together - [https://rubytogether.org/](https://rubytogether.org/)

* Django Fellowship Program - [https://www.djangoproject.com/fundraising/](https://www.djangoproject.com/fundraising/)

* Read the Docs sponsorships - [http://read-the-docs.readthedocs.io/en/latest/sponsors.html](http://read-the-docs.readthedocs.io/en/latest/sponsors.html)

I think the business case is clear enough to make for a big project like REST framework. It's a relatively small investment per-company, but the relative payoff _if_ we can hit a level that keeps it sustainable is huge.

</comment></comment><comment><USER17> Interesting, somehow this project didn't come onto my radar. I was just about to start using Flask to build a REST API for our Oracle database. Definitely checking this out instead.

<comment><USER18> If you have oracle would you consider using Oracle rest data services? I've only used it a little bit but it seems to make everything very easy.

[http://www.oracle.com/technetwork/developer-tools/rest- data-...](http://www.oracle.com/technetwork/developer-tools/rest-data- services/overview/index.html)

<comment><USER19> I've installed ORDS. It's got some installer wackiness -- modifies the .war as part of the install.

Otherwise, it's smooth enough and runs in Tomcat.

I haven't used the REST features so much; we just use for the APEX pl/sql bridge (ugh).

</comment></comment></comment><comment><USER20> Very interesting new feature, anyone has already some experience with the Core API implementation of DRF?

<comment><AUTHOR> As the author, yes.

The team I was previously with used Core API in some of [https://www.crunchboards.com/](https://www.crunchboards.com/)

That's got a service-based architecture, and we were using it both on the server side (where we wrote explicit Core API schemes, rather than auto- generated) and on the client side (moving towards doing our inter-service communication using `coreapi`, rather than directly through `requests`.)

For us, the dynamic client libraries were a big win - the client code that you're working with becomes more meaningful and robust, as it's working with an application layer abstraction, rather than directly at a network layer.

</comment></comment><comment><USER21> I really love the django ORM, after your model are done you can create a really fast api with DRF, and if you want to try graphql/relay is possible with graphene [https://github.com/graphql- python/graphene](https://github.com/graphql-python/graphene).

</comment><comment><USER22> DRF has some of the best docs for building APIs in Python - thanks for keep it real!

<comment><USER23> The documentation is great, but navigating it is a pain. Class names, methods and modules really should be links to where they are documented (because they are almost always documented). Search could also stand to improve, a lot.

</comment></comment><comment><USER24> Big fan of DRF. Great documentation and awesome support on the usual channels. I use it for all my greenfield projects.

I can't find a way to make a one time donation. Anyone know how?

<comment><AUTHOR> That's not currently supported. We need recurring revenue rather than one- offs, so that's what I'm pushing for right now. Out of interest, is recurring something you'd consider if there was another lower-priced individual tier added?

<comment><USER24> Totally understandable. I wouldn't just because my budget is very tight now.

<comment><AUTHOR> Then don't sweat it! :)

</comment></comment></comment></comment><comment><USER25> Well Django is good for ORM, migration and admin. DRF gave a new opportunity to provide new web technology to this old framework but it's not enough. The global stack is very heavy and it's very complicated to use Websocket. I was fan of Django but for me the future is in framework like phienix: light stack, fast, secured and supporting current web technology. It's avoid you all the time loose to implement tornado/rabbitmq stuff.

<comment><USER26> "global stack is very heavy" is quite subjective, when a lot of what it provides you generally need or end up writing yourself

Django Channels is coming in 1.10 which will make realtime better.

</comment></comment><comment><USER27> my only blocker for migrating a legacy application to DRF is because it doesnt have support for nested routes (and I have to use a third party package).

AFAIK this is deliberate and opinionated.

<comment><USER12> What do you mean by nested routes? You can definitely have an API which looks like this: /api/people/morgante/comments/3000/

<comment><USER27> [http://www.django-rest-framework.org/api- guide/routers/#drf-...](http://www.django-rest-framework.org/api- guide/routers/#drf-nested-routers)

See for yourself.

<comment><USER12> I'm not sure why that would prevent you from migrating to DRF. It's clearly supported and there's even a helper module to nested routes even easier.

<comment><USER27> I'm not really sure why a framework would take a position where something is important (and probably requested enough) to put it in the official documentation.... but not make it part of the core.

I fear we-barely-tolerate-it syndrome.

<comment><USER12> It's entirely possible to do in core without any extensions. It seems like you're just coming up with ridiculous excuses to not use DRF.

<comment><USER27> I'm willing to learn. I don't understand why you term it as "ridiculous", when the official documentation points to an external package.

Is the documentation wrong ? If there's another way...why does it not get mention there?

From my perspective, this is weird.

<comment><USER12> First of all, why can't you use an external package?

If all you want is URLs which look like "/api/people/morgante/comments/3000/" it's easy enough to construct those simply as standard viewsets. They're totally normal.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER28> Every time I build something using a different stack than Python/Django I feel a bit sad I can't use DRF :)

Awesome project, we're supporters!

</comment><comment><USER29> Wow dynamic client libraries, holy crap I'm mind blown I can throw out my thin requests wrapper and never maintain it again.

</comment><comment><USER30> So I went and had a look at the quickstart and the first thing it talked about was serializers. Why is that even necessary?

<comment><USER31> Because they are a core component of the library. Its a big part of the utility it offers. They assume someone looking to use it already knows enough django basics.

</comment></comment><comment><USER32> Just curious if someone could give the tldr version of this vs graphql. I'm familiar with django, but not the rest framework, and have a basic understanding of graphql but am not really sure how they compare.

<comment><USER8> This has very little to do with graphql. The DRF is to get a solid json api up and running quickly. The standard it ships with conforms to the [http://jsonapi.org/](http://jsonapi.org/) spec. Which came mostly from the Rails community and many projects built in different stacks conform to.

If you're familiar with Rails it's like [https://github.com/rails-api/rails- api](https://github.com/rails-api/rails-api) which was recently merged into Rails in v5.

You could totally add a graphql endpoint to any api `/graphql?[your GQL query here]`. We're currently exploring adding that to our Django/DRF backend with one of these [https://github.com/chentsulin/awesome-graphql#lib- py](https://github.com/chentsulin/awesome-graphql#lib-py)

<comment><USER33> Standard DRF is nothing like the JSON API spec.

<comment><USER8> This is true. My mistake. At our company we added [https://github.com/django- json-api/django-rest-framework-jso...](https://github.com/django-json- api/django-rest-framework-json-api) to get DRF conformant to jsonapi spec.

</comment></comment></comment></comment><comment><USER34> I've been thinking about a new acronym for a web development stack.

I build my apps on GNU/Linux, deploy via Apache, and use Django (with DRF) and Ember.

So how does "GLADE stack" sound?

<comment><USER35> Smells really nice [1]

[1] [https://www.glade.com/en/fragrances](https://www.glade.com/en/fragrances)

<comment><USER34> Infringing on a registered trademark was not my intent.

But if you think about it, such a stack should reduce the amount of stink in Web development.

</comment></comment></comment><comment><USER36> How does it compare to Code Igniter from 10000 feet?

</comment><comment><USER37> Would DRF ever be an official third-party library like Channels is going to be?

<comment><USER38> Possible, but the maintainer has stated there aren't plans to completely merge it into Django proper.

[https://www.reddit.com/r/django/comments/2ijyuq/added_tom_ch...](https://www.reddit.com/r/django/comments/2ijyuq/added_tom_christie_to_core_team/)

<comment><USER39> This is true, and I love DRF but I find it unfortunate then that the concept of Serializer exists. Tom Christie essentially says that Serializers can and should be used outside of views (REST) to decouple and encapsulate business logic. He seems to believe models are database operations-only. This view is fine (e.g., data mapper) but then it seems the scope of DRF is beyond REST and should be part of core.</comment></comment></comment>


Loving Common Lisp, or the Savvy Programmer's Secret Weapon - 4th edition - <AUTHOR> https://leanpub.com/lovinglisp <comment><USER2> Thanks for posting this - I just released this today.

You can read the book for free online, the book is released under a CC license, and the GitHub res is [https://github.com/mark-watson/loving-common- lisp](https://github.com/mark-watson/loving-common-lisp)

Also, there is a free update for people who purchased an earlier edition on lean pub.

<comment><AUTHOR> Thanks for publishing and updating the book! I got the notification from leanpub regarding the new release and thought it was HN-worthy.</comment></comment>


Back up your precious files on ordinary paper - <AUTHOR> http://ollydbg.de/Paperbak/ <comment><USER2> Does anyone have a PDF of the source code? (Edit: well, good luck, folks: <http://web.mit.edu/~mherdeg/www/paperbak.pdf>)

<comment><USER3> This encoding system kind of reminds me of how the Nintendo eReader worked... <http://en.wikipedia.org/wiki/Nintendo_e-Reader>

</comment></comment><comment><USER4> > Redundancy helps to recover partially damaged data. Redundancy 1:5 means > that for every 5 consecutive data blocks, if one block is completely > unreadable, PaperBack will be able to restore it. To reduce damages caused > by coffee pots and other common dangers, blocks are distributed around the > page. Higher redundancy decreases page capacity but improves reliability.

Please do study error correcting codes. Most of them can offer much better error correction with less overhead. Take a look at Wolfram's MathWorld article [1]. This topic is heavily covered in most information theory books.

[1] <http://mathworld.wolfram.com/Error-CorrectingCode.html>

<comment><USER5> The page claims to implement Reed-Solomon error correction:

<http://ollydbg.de/Paperbak/#8>

</comment></comment><comment><USER6> I don't know how many people remember this, but this reminds me of a technology in the mid-to-early 80s where computer magazines offered a gigantic QR-like code that could be scanned (if you bought the device) so that you wouldn't have to spend any time typing in the BASIC source code.

<comment><USER7> Oscar Databar: <http://www.mainbyte.com/ti99/hardware/oscar/oscar.html>

Software was published via standard one-dimensional bar codes, and instead of typing in the code from a book or magazine, you'd manually scan line after line of barcodes using a specially designed hand scanner.

<comment><USER6> That's a good find. The one I was thinking about that appeared in Apple ][ mags was the Cauzin Softstrip:

<http://en.wikipedia.org/wiki/Cauzin_Softstrip>

</comment></comment></comment><comment><USER8> Dan has a nice article about this: <http://www.dansdata.com/gz094.htm>

</comment><comment><USER9> Baking informaiton into clay tablets isprobably the best bit-per-year-of- rentention technique that mankind has invented. Not sure what's second best -- ink on archival paper?

[I don't count the recordings attached to the Voyager probes. We can't easily retrieve those.]

<comment><USER10> Acid free archival paper kept in a dark, fire proof box is to my knowledge the single best technology we've invented and easily at our disposal for long-term storage.

I think I might totally start 'printing out' photos I want to theoretically have available in fifty years and place them in a safety deposit box…

<comment><USER11> Very true. Acid-free paper has a expected life of over 1000 years. Think about how long paper documents like the Magna Carta, ancient illuminated bibles from the 700's, Shakespeare's plays have survived without special climate- controlled environments.

Also paper in bulk is hard to destroy. A stack of paper is pretty dense and can survive to some degree a house fire or flood.

<comment><USER12> Aren't those documents on sheepskin? not paper?

<comment><USER13> Not just parchment, but also Iron Gall Ink. Which will eat both your paper _and_ your fountain pen.

<http://en.wikipedia.org/wiki/Iron_gall_ink>

</comment></comment></comment></comment></comment><comment><USER14> "bitmaps produced by PaperBack are also human-readable (with the small help of any decent microscope). I'm joking"

Actually, tiny human-readable text is incredibly useful for verifying the data was backed up correctly (at least for text-based files). I read about this paper backup technique a while ago, and that was touted as one of the main benefits.

<comment><USER15> Reminds me of a proposal I read about once for a time capsule -- the kind intended to survive the fall of civilization and to help reboot it. It would be plain human-readable text and diagrams engraved into a hard disc of some stable material, starting out big and legible at the edges and gradually getting smaller and smaller as it spirals towards the center, until it's microscopic.

The text would start out as a Rosetta Stone type of thing, to try to establish a common language. Then as it got smaller, it would describe how to grind a hand lens so you can read further. Then even smaller text describes how to build a microscope. Maybe somewhat further on it talks about CD-ROM drives, and eventually transitions to /that/ format...

<comment><USER16> You're probably thinking of the Rosetta Project: <http://rosettaproject.org/disk/concept/>

...I always thought it was a very cool idea too.

</comment></comment></comment><comment><USER17> Very funny. And not so impractical - send a letter with one side as description and other as full data.

For backups I can imagine such situation: "OMG! My HDD crashed!!! Ha! No panic! I made backups! Now I just need to restore them from this bunch of scheets. And my restore program is on this sheet. Now .. Erm.. Hm.."

</comment><comment><USER18> And printing in just 3-tone color potentially increases the information density by a factor of 8.

<comment><USER19> ... at a cost of durability. Tho some sort of error recovery algorithm (along the lines of parity archive) could be used.. adding redundancy at a lower rate than what is gained from additional colors..

<comment><USER20> Color might be useful as redundancy: For example, one could read the data into HSV; the bit being stored could be replicated three times, once in Hue, once in Saturation, and once in Value. I'm not sure how practical this actually is, especially on the radical end of those values. Also, this kind of redundancy doesn't help against coffee spills, just printing errors, and not even well against those.

</comment></comment></comment><comment><USER21> Similar project: <https://github.com/penma/dpaper>

<comment><USER22> And this: <http://ronja.twibright.com/optar/>

Checkout the nice picture on their home page: <http://twibright.com/> :-)

</comment></comment><comment><USER23> This is similar to "Paperkey - an OpenPGP key archiver": <http://www.jabberwocky.com/software/paperkey/>

</comment><comment><USER24> I used to run backups onto VHS tapes using a PCI/ISA card adaptor. IIRC, you could get about 2GB on a tape, with a SVHS recorder, or 1GB on a normal drive. Something like this: <http://en.wikipedia.org/wiki/ArVid>

Of course, it was absolutely useless. Might as well have piped the data to /dev/null.

<comment><USER25> Was it not possible to read the data off of it?

<comment><USER24> It was, but I wouldn't have trusted it with anything important.

</comment></comment></comment><comment><USER26> Surely if you can use colour aswell you could store LOADS more data per A4 sheet than 80 Meg...

<comment><USER27> I would be worried about yellow inks fading into white.

<comment><USER28> No one ever said yellow :) Cyan/Magenta/Green or any other trio of darker and differentiated colors may be able to do the trick.

</comment></comment></comment><comment><USER29> I guess this would be useful in the case of an apocalypse scenario involving mass EM pulses (assuming anyone is still around to build new computers with OCR to reload the code). Better use good acid-fee paper stored at near-vacuum though.

<comment><USER30> If I can find a computer survived the EM pulses to scan the paper, then most likely I don't need this paper back up anyway. On the other hand if all my data is dead upon the EM pulses attack, I won't put too much faith on the chance of getting hold of any surviving computer.

<comment><USER31> Well, you could house your precious scanner in a Faraday cage along with a RepRap and other "reboot the world" tech.

<comment><USER32> Please elaborate; I'm intrigued...

A Faraday cage will protect against an EM pulse? <http://en.wikipedia.org/wiki/Faraday_cage>

RepRap is a self-reproducible 3D printer? <http://reprap.org/wiki/RepRap>

And so with the RepRap (and some power source/converter) inside a faraday cage (with other physical protections as well), you're saying that this is the ultimate backup system for worst case scenarios? Do you have any links to provide more information about such a setup?

<comment><USER33> You seem to have answered your own questions.

Yes, the Faraday cage protects against EM interference. But so does turning your computer off. Your main computer is fried? Pull out your old laptop and dust it off...

<comment><USER34> Would turning your computer off, help? I can see it helping for normal EM interference, but in an apocalyptic EM pulses scenario I thought the induced current would be enough to damage components.

</comment></comment></comment></comment></comment></comment><comment><USER35> I heard someone did this years ago, but with the intention of sending files via fax

<comment><USER36> Do you recall the name of the project? I'm very interested in finding alternative implementations of this.

</comment></comment><comment><USER37> I can imagine how difficult source control would be when using paper: "Hey Fred, I need sheet 7 thru 9 from revision 2.6.3!" "Which filing cabinet is it in?"

<comment><USER38> So a bit like backup tapes, then? ;)

<comment><USER37> Yup, like a cassette with its tape spilling out. Just imagine dropping the sheaf of papers on your way to the scanner!

<comment><USER27> Hopefully the papers would have some sort of index on them, so that the order in which they were scanned would be irrelevant.

Then again, punch cards didn't.

<comment><USER11> Punch cards were not that hard to sort after dropping them.

Once you have a deck, draw some thing on the deck edges with a permanent marker making sure that all the card edges have been marked.

If the deck is dropped, first of all it doesn't usually scatter that much (cards tend to stick to neighbor) and the marks on the edge help visually sort the deck pretty fast.

</comment></comment></comment></comment></comment><comment><USER39> I just thought about this today. Worse case scenarios don't seem probable, though how devastated and delayed would life become if it did happen?

</comment><comment><USER40> i thought we were supposed to be scanning all our important documents and shredding them?

</comment><comment><USER41> "Olly, the author of OllyDbg, presents his new open source joke"

This page is 5 years old. Glad to see that it finally made it onto HackerNews.

</comment><comment><USER42> Please tell me this is a troll? I mean, I know the author acknowledges the fact this is completely unnecessary, but still - I'm no environmentalist, but this seems to be an incredibly silly idea..

<comment><USER43> The very first line of the page introduces it as a joke

<comment><USER44> The author did all that work as a joke? I hardly think so.

I looked at the source code. It's 5,575 lines of original C code. (I excluded the AES encryption, bzip2, Reed-Solomon, and CRC16 source code from my count.)

I imagine that he wrote the words "open source joke" as a defense mechanism against people who would mock his efforts with lines like _"please tell me this is a troll"_ , _"that is completely unnecessary"_ , and _"an incredibly silly idea_ ".

Lots of people make self-effacing remarks when they introduce a work that they know will draw criticism: "It's just a first draft, it needs a lot more work." "I hacked it up during lunch [when it really took two weeks]." Etc.

<comment><USER45> > The author did all that work as a joke? I hardly think so.

Possibly not a joke per se. But have you never written something substantial just for fun?</comment></comment></comment></comment>


Revisiting Network I/O APIs: The netmap Framework (2012) - <AUTHOR> http://queue.acm.org/detail.cfm?id=2103536

<comment><USER2> Netmap is cool (and proves that you don't have to be 100% userspace to get good performance), but it's basically packet I/O. Most programs want sockets, not packets.

IX [https://www.usenix.org/conference/osdi14/technical- sessions/...](https://www.usenix.org/conference/osdi14/technical- sessions/presentation/belay) and Seastar [http://www.seastar- project.org/](http://www.seastar-project.org/) have revisited the socket API to provide high-level high-performance networking.

<comment><USER3> That's intentional, see [http://wanproxy.org/libuinet.shtml](http://wanproxy.org/libuinet.shtml) for an example of a layered socket stack and application using it all.</comment></comment>


Conversation with a Consultant - <AUTHOR> http://bjaress.blogspot.com/2011/11/conversation-with-consultant.html

<comment><USER2> This is funny until you work with this guy, he's completely incompetent, but he does everything with the attitude of detached superiority, and your management is ready to hear him tell them how to raise their kids (if he charges this much he must be INCREDIBLE).

Not an easy way to deal with this stuff.

</comment><comment><USER3> God, I cringed through the whole thing. He went instantly into defensive+verbose mode.

Did the guy end up doing any real work?

<comment><AUTHOR> He set up separate hosting for some static splash pages and got some information for us from vendors.

I never did get a clear explanation of his role, and he stayed at another site with the project manager, so I really don't know how much work he did, only that I didn't see him do very much.

</comment></comment><comment><USER4> Wow, that reads like a conversation with Eliza.

<comment><USER5> Halfway through the post I was expecting it to turn out to be a chatbot, not a real person.

</comment></comment><comment><USER6> My God. If I ever heard the bit from "Well, if you worked for me directly [...]" I would've just stopped him in his tracks and said enough. Even though it's text, any interpretation of that utterance and the ones afterward are completely degrading to the listener.

</comment><comment><USER7> That was painful to read. I almost expected "What would you say you'd do here?" to show up in the conversation.</comment>


Bill Gates Q&A on Climate Change: 'We Need a Miracle' - <AUTHOR> http://www.bloomberg.com/news/articles/2016-02-23/bill-gates-q-a-on-climate-change-we-need-a-miracle <comment><USER2> No, what we need a catastrophe. People will stubbornly ignore inconvenient truths until they're undeniable and until the immediate cost of denying is higher than the cost of doing something. You see this in all areas of life (regarding healthy habits, for example), and I fear that unfortunately nothing substantial will happen until the shit hits the fan.

<comment><USER3> I think you are missing how humanity typically keeps doing detrimental things even after catastrophes.

Only thing that would stop this would be population decimation.

Given the aging of our nuclear stockpiles or the possibility that Trump might be elected, we might get to see what decimation does. If we live.

<comment><USER4> I think Trump would be a terrible president (though probably less terrible than it _feels_ like he would be) but it seems unlikely that he will decimate the human population. Even with the original meaning of "reduce by 10%" rather than "reduce to 10%".

<comment><USER3> I'm actually more afraid of what he will do if he loses.

He doesn't take demotions well.

Yes I mean the Roman decimate. It's what the USA did to the Iraqi population.

</comment></comment></comment></comment><comment><USER5> I always enjoy reading what Bill Gates has to say these days. For obvious reasons at this point.

He's completely right of course on climate change. And yet, the US is about to elect likely one of two exceedingly wealthy individuals who don't remotely care about these issues right now.

It'll be interesting to see in 40 years whether or not humans take this seriously enough / avoid disaster. Let's not forget this very modern internet was created in the last like 15-20 years, huge advances can happen and Gates' optimism isn't a pipe dream that's never happened.

</comment><comment><USER6> We have a miracle. It's called nature, and otherwise uber-smart idiots routinely underestimate its miraculous powers.

<comment><USER7> Once humanity drives itself extinct, nature will fix everything, sure. That won't help humanity though.

<comment><USER8> Worst case scenario, it won't reach that point and instead you will have a lot fewer humans down the road and therefore things will go back to where they were in the long run.

There's a way bigger risk of catastrophe having 50 000+ thermonuclear warheads pointed at all major cities in the world than with climate change. Yet people act these days as if nukes did not exist anymore or something.

<comment><USER5> In my reading of history, the more likely scenario is disease will wipe out most. Mutually assured destruction has seemed to work as a deterrent thus far since the 40s.

<comment><USER8> > Mutually assured destruction has seemed to work as a deterrent thus far > since the 40s.

I'd recommend you read "Command and Control" and you'd be less convinced.</comment></comment></comment></comment></comment>


Universal Disk Format - <AUTHOR> http://en.wikipedia.org/wiki/Universal_Disk_Format

<comment><USER2> I'd be interested in hearing how successful a UDF-formatted USB stick would be in the real world. I managed to find a discussion on superuser from 2009:

[http://superuser.com/questions/39942/using-udf-on-a-usb- flas...](http://superuser.com/questions/39942/using-udf-on-a-usb-flash-drive)

One fairly big problem you have here is that there are going to be zillions of consumer devices that expect memory cards and USB sticks to be FAT32 and nothing else.

<comment><AUTHOR> Well, i just formatted my 32GB flash drive UDF, and no hiccups on mac or linux. The WDTV Live seems not to support it. Havent tested on Windows yet

<comment><USER3> I think the issue is not your computer, it's your camera and other random electronic appliances that support flash storage....

They tend to be very conservative about what they support, and have hard or impossible to update software.

</comment></comment></comment><comment><USER4> NTFS support is better now than it was then. I think (but welcome corrections) that Windows, Linux (kernel) and OS X can all read and write NTFS now. There are extra drivers for OS X. I'm not sure what they provide. There is a problem with the lack of a real chkdsk outside of Windows. Sometimes the only advice to fix a problem is to run chkdsk in windows twice, but usually the problems that can be fixed by that are caused by people doing silly things like unplugging a drive while writing to it.

UDF on Wikipedia is interesting:

(<http://en.wikipedia.org/wiki/Comparison_of_file_systems>)

(EDIT: Wow, I didn't realise how much of it there is, and how bad my copy and paste is.)

* Maximum filename length: 255 bytes

* Allowable characters in directory entries: Any Unicode except NUL

* Maximum pathname length: 1,023 bytes

* Maximum file size: 16 EB

* Maximum volume size: 2 TB (hard disc) 8 TB (optical disc)

* Stores file owner: Yes

* POSIX file permissions: Yes

* Creation timestamps: Yes

* Last access/ read timestamps: Yes

* Last content modification timestamps: Unknown

* Disk copy created: Unknown

* Last metadata change timestamps: Yes

* Last archive timestamps: Yes

* Access control lists: Yes

* Security/ MAC labels: No

* Extended attributes/ Alternate data streams/ forks: Yes

* Checksum/ ECC: No

* Max timestamp granularity: unknown

<comment><USER5> Seems like a strange choice to have a maximum file size several orders of magnitude larger than your maximum volume size.

<comment><USER6> It's just a side effect. The maximum volume size is defined by the size of the (in practice, always fixed-size) word used to store a block address.

But generally files are stored as a tree or some other recursive data structure. If these have a limit at all it's either deliberately imposed (e.g. the triple-indirect block in a v7 Unix inode) or arbitrary (maximum depth of a maximally unablanced btree that fills the volume).

Basically, you _have_ to limit your device size if you want sane block ID semantics. Files can be infinite if you want.

</comment></comment></comment><comment><USER7> ExFAT solves most of the major FAT32 problems (volume/file size), but it's patent encumbered:

<http://en.wikipedia.org/wiki/ExFAT>

Works on recent versions of Windows and OS X.

</comment><comment><USER8> You can't use partitions with UDF.</comment>


Ask HN: Has YC or other VCs invested in gaming startups? - <AUTHOR>

<comment><USER2> My sense is production companies / studios are a risky investment, but infrastructure (twitch.tv being the prime example) are more of a lucrative target for VCs.

The studio risk is that the creative output of the individuals is the value you're investing in. Very few studios produce quality content in a machine like fashion, though there are exceptions (EA maybe? Lucas Arts in it's prime?).

Zynga might be another example of a VC funded "gaming" company.

<comment><USER3> Indeed: [http://www.gamasutra.com/blogs/NicholasLovell/20100324/86975...](http://www.gamasutra.com/blogs/NicholasLovell/20100324/86975/Four_Reasons_Why_VCs_Wont_Fund_Game_Companies.php)

</comment></comment><comment><USER4> Yes, YC has invested in multiple gaming companies the most successful of which is Machine Zone. As for other VCs, the most active in the sector are Bing Gordon, Rick Thompson, and IDG Ventures USA. Lots of others throw money around, but it's common for investors to specialize in the sector.

<comment><USER5> Signia has also made some gaming investments and had a gaming focused EIR for a while.

<comment><USER4> Signia = Rick Thompson

</comment></comment></comment><comment><USER6> Some examples from YC

OMGPOP: [http://techcrunch.com/2012/03/21/omgpop-iminlikewithyou- ycom...](http://techcrunch.com/2012/03/21/omgpop-iminlikewithyou-ycombinator/)

Game of War, Machine Zone: [http://blog.ycombinator.com/machine-zone- yc-w08-debuts-game-...](http://blog.ycombinator.com/machine-zone- yc-w08-debuts-game-of-war-ios-mmo-game-supports-hundreds-of-thousands-of- players-simultaneously)

A Thinking Ape

</comment><comment><USER7> Machine Zone is the maker of "Game of War" and they were YC W08: [https://mobile.twitter.com/ycombinator/status/36050111121759...](https://mobile.twitter.com/ycombinator/status/360501111217590273)

</comment><comment><USER8> Dots raised 10mil in their series A: [https://www.crunchbase.com/funding- round/6f028590c883b23dfbe...](https://www.crunchbase.com/funding- round/6f028590c883b23dfbeb3513b8e6fa5e#)

</comment><comment><USER9> Yes. Minomonsters is one example of several.

</comment><comment><USER10> Several people in this thread are pointing out Machine Zone. However, when YC invested, it was "Addmired" \- [http://techcrunch.com/2008/02/13/myspacers- will-love-this-ad...](http://techcrunch.com/2008/02/13/myspacers-will-love- this-addher-widget-thingy/)

<comment><USER11> They did move to freemium mobile games a while before the Machine Zone/Game of War stuff with some success [0] though.

[0] [http://techcrunch.com/2012/03/27/freemium-game-dev- addmired-...](http://techcrunch.com/2012/03/27/freemium-game-dev-addmired- rebrands-as-machine-zone-lands-8m-from-menlo-ventures/)

<comment><USER10> Yes, but they weren't a gaming company when YC invested.

</comment></comment></comment><comment><USER12> Code Combat is a game for learning programming. They used to be a marketplace and hold competitions. These days I think they are experimenting with microtransactions.

</comment><comment><USER13> Riot Games was largely funded by venture capital.

In 2008 they raised 7 million in VC funding from Benchmark Capital and FirstMark Capital.

Here's the press release: [http://www.riotgames.com/sites/default/files/uploads/080710_...](http://www.riotgames.com/sites/default/files/uploads/080710_NEWS_lol_riotbenchmark.pdf)

</comment><comment><USER14> You can get a gaming unicorn (Minecraft). However, Mojang didn't start getting interest from investors until they had enough cashflow to sustain their own growth.

There have been some recent IPO successes (Zygna, King). (And king.com is starting to look like a one hit wonder with Candy Crush Saga.)

<comment><USER15> AFAIK, Mojang didn't take any investor's money. It was just 3 partners and no outside money.

<comment><USER14> Once they were a success, investors did come soliciting. They didn't need it, as they had sufficient cashflow.

If Notch had solicited VC before he was a hit, the VCs probably would have just laughed him out of their office.

</comment></comment></comment><comment><USER16> Chobolabs raised $7.3MM Series A round for the development of multiplayer mobile games. [https://www.crunchbase.com/organization/chobolabs](https://www.crunchbase.com/organization/chobolabs)

</comment><comment><USER17> I remember attending a talk by Eric Diep from "A thinking Ape" (gaming studio) at Hack the North.

If I am not mistaken, he mentioned that they were backed by YC and a couple other high-profile investor in the valley.

</comment><comment><USER18> ZowPow was a YC gaming company: [https://www.crunchbase.com/organization/zowpow](https://www.crunchbase.com/organization/zowpow)

</comment><comment><USER19> I worked for Plain Vanilla when they received a big round of financing lead by Sequoia. If you want to ask me questions: firstname.lastname@example.com

</comment><comment><USER20> FYI [http://yclist.com](http://yclist.com) and CTRL+F are very helpful :)

</comment><comment><USER21> Sure. Some examples include: TinyCo (a16z), ngmoco (acquired by DeNA), Gree, Kixeye. Maybe you mean "in the last year"?

<comment><AUTHOR> Ironically, I /work/ at TinyCo now -- wasn't sure how they did their funding, though -- haven't broached the subject with our CEO yet. =op

[edit] Yeah, I meant in the last year.

<comment><USER22> Ha, I am a TinyCo alum who started his own gaming company. Let me know if you want to get coffee one of these days.

Would highly recommend you have a finished game + some revenue before you hit up institutional investors. In the mean time, find angels who respect you. Believe you are an engineer, so people won't often doubt your ability to produce.

</comment></comment></comment><comment><USER23> [http://instantesports.com](http://instantesports.com)

<comment><AUTHOR> I guess I should have been more specific: I meant gaming as in video games.

<comment><USER13> Instant eSports is about video games even if they don't themselves make video games.

</comment></comment></comment><comment><USER24> Thoughts on investing in a project vs investing in a company?

</comment><comment><USER25> Wow, you are expecting HN to do research for you? The data should be easily available via crunchbase but it seems like you don't want to put the work in for basic research

</comment><comment><USER26> The better question is will YC or VCs ever invest in gaming startups again and the answer (at least for YC) is most likely no. There are a few VCs that do specialize in gaming though.

<comment><USER27> Do you speak for YC? Where do you get that information?

<comment><USER26> Just my opinion. Look at the last three batches or so of YC startups. The type of companies YC invests in today are the furthest things away from gaming.</comment></comment></comment>


Musk level ideas - <AUTHOR> http://www.musklevel.com/

<comment><USER2> This is awesome haha</comment>


There Are Only Two Weeks Left to Comment on Net Neutrality - <AUTHOR> http://techcrunch.com/2014/09/02/there-are-only-two-weeks-left-to-comment-on-net-neutrality/

<comment><USER2> What was that? I am so disappointed to see that they featured a video showing net neutrality being ONLY about facebook, youtube and more video streaming...

If they wanted to go mainstream, John Oliver did a much better job (and funnier, btw) [https://www.youtube.com/watch?v=fpbOEoRrHyU](https://www.youtube.com/watch?v=fpbOEoRrHyU)

<comment><USER3> Oliver implied that we have net neutrality now, and the FCC is trying to take it away. If the large number of people who watched that video and then commented based their comments on that, there is a decent chance that they told the FCC to not regulate the internet, which in effect telling the FCC that the commentator is against net neutrality.

</comment></comment><comment><USER4> Honest Question: Doesn't the FCC have the privilege of disregarding every comment and moving forward however they want?

<comment><USER5> Yes; as they should.

Net neutrality is (and always has been) a good philosophical idea that is completely impractical to implement given the business structure that has arisen around content distribution.

Right now, we have a situation where the big guys (i.e. the major ISPs) can effectively force companies that are pushing large amounts of bandwidth to sign private interconnect agreements. This is less onerous than it seems, because the industry is already largely split functionally into creation and distribution. The only companies this really affects significantly are the ones who are big enough that having vertically integrated creation and distribution functions create a cost savings. Paying interconnect fees cuts into margins for those companies. Smaller companies are just going to pay CDNs (who have always paid ISPs for interconnects) for delivery anyway: the value a CDN provides is more than just network connectivity.

With true net neutrality, we would have a situation where the big guys (in this case, large traffic generators like Netflix/Amazon/YouTube/Akamai etc.) flood the small guys off the net. The popular assumption is that ISPs would throw more money into upgrading their networks to deal with the flood of data; but every industry person I've spoken with believes the opposite. It would lead to a mass exodus of investment dollars from wired broadband because there would be no way for the ISPs to recover those dollars in the future. These companies have other things they can invest in; and they will likely choose to spend the money they would have spent on infrastructure on restructuring their companies to look more like Netflix because the FCC has effectively blessed that business model. This would be bad for the consumer and bad for companies like Netflix.

Net neutrality is a good idea in principle, but there is no good way to get to true net neutrality from where we are. If the goal of net neutrality is to create a faster Internet, it would need to be accompanied with about a half a trillion dollars of government money over the next decade; and the FCC doesn't have the power to do that without Congress.

<comment><USER4> Alright but (1) why should I publicly subsidize a private company who can't manage to fit a project like that on its balance sheets?

(1a) Isn't that a sign they need to be a public utility?

Furthermore, (2) the last time we did this (1996 Telecommunications act), wasn't it no strings-attached? (3) Wasn't it widely seen as the private companies not coming through with the intention of the legislation?

(4) What do you mean "flood the small guys off the net"? Are you saying they would maliciously do denial of service attacks on smaller companies, as in a "Trespass to chattels"? If not, then what do you mean, in concrete terms, without platitudes?

(5) "no way for the ISPs to recover those dollars in the future" \- Isn't it true that other companies in other countries can do it without government subsidies and are yet, still profitable?

(6) [background] It seems like you are outlining an industry-wide endemic attitude which belies service. Although I agree that there are institutions structured this way, there are others, such as Level3, or my ISP, Sonic.net, which appear to be committed to tendering networking services.

[question] Wouldn't it be better if companies who _do not_ value providing high quality service actually _do_ exit to a NetFlix model ... as service- providing doesn't seem to be the right industry for their culture (they are entertainment companies such as Paramount, not utilities such as PG&E). Thoughts?

Thanks.

<comment><USER5> (1) It's more that they would have no incentive to do so themselves. Businesses do not exist to serve the public good; they exist to make money. I agree that consumers may be better served by a public utility structure; but it's hard to get the will in government to spend the money when a commercial alternative already exists.

(2) No; there were plenty of strings attached.

(3) This can be attributed to the line-sharing rules on DSL. It became less profitable to invest in landline infrastructure, so the telcos started buying up wireless companies instead because it was a better investment.

(4) No, I mean that there will be congestion in any large networked system. In any congestion scenario, low bandwidth applications get squeezed, while video just sends crap along without worrying about congestion / latency. It may have to downscale, but by and large big bandwidth generators will continue to dominate traffic scales and cause latency and throughput issues. Without the ability to perform QoS at the link level (a legitimate conern given that layer 7 QoS may not be viable much longer if everything gets wrapped in SSL) these problems become worse.

(5) I'm guessing you speak of Europe. The structure of their bandwidth markets are much different and can't be compared. Telecom in Europe is largely a public/private partnership, where in the US it is privately owned.

(6) They could provide better customer service, but it would cost more (in fact, many of the large ISPs do offer a "premium support" option for a fee). But customers are not willing to pay more for better customer service, because generally you call customer service once or twice a year at most. Additionally, most utilities I've had to deal with also have terrible customer service.

Furthermore, it's disingenuous to compare B2B companies like Level3 with consumer ISPs. B2B is a totally different market: business customers expect a certain level of support _and are willing to pay more for it_. Support is a feature of the product in the B2B space; in the B2C space it's just a necessary cost center. Furthermore, if you're a consumer who does value business-class support, you're free to purchase access from a B2B provider: you just may not like the price.

<comment><USER4> ok, I think we are quite different but let me address just two things.

For (4), are you suggesting that a company first pays for the bandwidth, and then pays again, for essentially the privilege to use the bandwidth paid for? (Given the Verizon/Level3 debacle, it was clearly shown that the networks are at about 40% capacity - so the narrative of scarcity or oversubscription is false - can't be used, sorry.)

And for (6), I'm suggesting that conglomerate companies have industries they are good at, and those they aren't. I wouldn't expect to buy an automobile manufactured by starbucks - and furthermore if starbucks went out to manufacture automobiles, everything from the board of directors down would be poorly suited for the task - they are in the food services business - it's fundamentally different.

So the idea here is that perhaps some of these modern cable service providers should be entertainment companies and not distributing in-house hardware or laying out the internet infrastructure - they may be terribly structured for that job.

<comment><USER5> No, I'm suggesting that a company like Netflix pays to deliver traffic directly to a company like Comcast. Netflix only pays once (they're paying Comcast instead of paying Level3/Cogent, at least for delivering to Comcast customers).

I think our big difference of opinion comes in the understanding of the industry. Content and distribution have _always_ been intimately linked. In fact, that's the whole disagreement: Netflix is performing content distribution but is not paying for the full cost of that distribution. Inexplicably, a lot of people feel those costs should be pushed to the consumer (i.e. "I already pay once for Internet! Netflix shouldn't have to pay because I already do!") rather than to the company making the profit off the specific act of a user watching a video (who will inevitably push those costs to the consumer, but only to THEIR consumers).

Netflix's business model is nearly identical to HBO's. The only difference is that HBO bills through the cable companies and Netflix does not. But the cable companies take a cut of HBO's earnings for distribution. Netflix wasn't paying that until recently.

<comment><USER4> I think the ISP should be a common-carrier and unbiased vehicle for the open exchange of information that makes the Internet so intellectually critical. It sounds like you prefer them to be a privately held entity with zero civic obligations.

I really wish that there was a metaphorical wall between entities that facilitate the civic function of a press and these more or less chicanery- based private corps.

I'm terribly worried about the fact that the fate of modern discourse, society planning, press, arts, and culture essentially lies in the hands of the people whose primary goal is to bring commercially sponsored leisure distractions to the living room - their interests are too narrow and their vision of the task is too thin - as if we asked the Orville Redenbacher corporation to single- handidly draw up agricultural subsidization, land use, and disbursement policy (I bet their suggestions would favor more popcorn and leave 80% of the problem unsolved.)

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> A question: is the commenting only open to residents of USA?

<comment><USER7> They ask for a US address but I doubt it's verified. I used a random one because I'd rather not have my personal details on the public FCC web page.

</comment></comment><comment><USER8> I thought the deadline was a month or so ago.

<comment><USER9> They extended it because the website died when everyone tried submitting comments near the deadline.

</comment></comment><comment><USER10> _There is now a vocal "net neutrality" chorus that will fight any form of price discrimination in wireless services, including fighting zero-rated apps. I think that they are misguided and represent no actual consumers. However, the FCC will do everything to make them seem important, because that in turn justifies having the FCC do more regulatory meddling._ [1]

And this how the comments will be used: mined to support yet another power grab. Later, do you really think that a regulatory body will side with you in the long term over organized interests and large corporations?

[1] [http://www.arnoldkling.com/blog/data-price- discrimination/](http://www.arnoldkling.com/blog/data-price-discrimination/)

<comment><USER11> It's not a 'power grab' for the FCC to regulate wireless transmissions. Congress gave them that explicit authority in 1934. I really don't understand your comment.</comment></comment>


Ask HN: What online home businesses actually make money - <AUTHOR>

I'm looking to start a legit online business, but theres so many of these one page sell businesses claiming to make the money - which as most of us here know, they dont! I'm trying to find any suggestions with true and real potential <comment><USER2> Not to be snarky, but if we all knew the answer to that, we'd all be making a million dollars from home by now.

There's no easy way to make money fast. You need to come up with an idea that solves a problem, then work hard to implement it in an attractive and efficient way, then work even harder to market it. Then you'll actually be making money from home. Nobody is going to drop a million-dollar answer into your hands, because it's different for everybody.</comment>


Qvestions of Love, and the Ansvvers (1566) - <AUTHOR> http://quod.lib.umich.edu/e/eebo/A18509.0001.001/1:3?rgn=div1;view=fulltext <comment><AUTHOR> A guide for the perplexed - this basically a FAQ related to sex and romance from 1566. Posted it simply because I found it to be interesting. It's written in a question and answer style with the questions demarcated by a ¶. The text is typical of 16th century English, hence u=v, ie=y, etc. Hence:

 _¶Why were Oysters consecrated by the auncient to Venus?

Bycause Oysters doe prouoke lecherie._

Becomes:

"Why were Oysters consecrated to Venus by the Ancients?

Because Oysters provoke lechery."</comment>


This Family Banned All Technology Made After 1986 - <AUTHOR> http://www.torontosun.com/2013/08/31/guelph-family-lives-like-its-1986/

<comment><USER2> Neo-Amish?</comment>