Netflix Open Connect Content Delivery Network - <AUTHOR> https://www.netflix.com/openconnect <comment><USER2> The one thing missing from all the articles about OpenConnect is any way for Netflix subscribers to see which ISPs are participating.

I'd like to know if my ISP participates and, if not, be able to call in to suggest they do. If they still don't join in a reasonable time frame, then I'd at least have the option to switch providers to someone that participates.

A program like this will be more successful if they allow for consumers to pressure ISPs to participate.

<comment><USER3> Unfortunately, as we've discovered from the whole net neutrality debate -- netflix has offered these boxes for free to all major ISP's... yet the Big5 ISP's have all turned them down.

<comment><USER4> Yes because those box aren't sufficient for 1M+ sub. You're better off using peering rather than cache boxes in your network if you're a large ISP.

<comment><USER5> That is simply not true.

A consumer broadband network often distributes out over a very large area and condenses into micro POPs. In the Bay Area think Pleasanton, Concord, Marin, etc. The ISP must then backhaul traffic from these micro POPs to a major POP where the whole internet interconnects (Santa Clara/San Jose).

If Netflix were to install a million terabits a second of peering and a hundred thousand caching appliances in San Jose, it wouldn't alleviate the ISPs pain point at all, which is the backhaul to the micro POPs.

Putting OpenConnect appliances into micro depolyments "out in the field" solves the problem, because it moves the content and caching out to the last mile. However the ISPs are reluctant to do this because then what used to be a half rack of telcom gear in a small shed somewhere has now become a defacto colocation facility. You have Netflix, Hulu, Amazon, Vudu, YouTube, Microsoft, eBay, and two dozen others each with 4u of gear in hundreds of locations that you are paying for power and rolling out to service when they fail (because you can't let competitors have physical access to each others gear, and a node failure can saturate the uplinks from the micro POP).

<comment><USER4> So why then large ISPs would refuse it, if it's free?

<comment><USER5> The physical box is free, yes. Imagine if every website you visited wanted to put a 1u box in your living room, which you paid to keep turned on and connected to the internet. If a box failed you either needed to unrack it, haul it down to FedEx, and rerack a replacement - or let a stranger in while you aren't home.

If you don't get a box fixed fast enough, or choose not to install the MSN or Baidu box, everyone in your house starts to complain about it.

I'm not defending the ISPs here, just simply explaining their perspective. I am a huge proponent of net neutrality, and I'm currently in the process of deploying something similar to OpenConnect for another large network.

</comment></comment></comment></comment></comment></comment><comment><USER6> [https://www.netflix.com/openconnect/hardware](https://www.netflix.com/openconnect/hardware) [https://www.netflix.com/openconnect/software](https://www.netflix.com/openconnect/software)

It looks like they are heavily redundant boxes with the goal of reducing field maintenance, running FreeBSD as the OS.

<comment><USER3> > running FreeBSD as the OS.

Presumably for ZFS

<comment><USER7> Actually it turns out they don't really have a need for most of the features of ZFS. So they don't use it.

[http://www.youtube.com/watch?v=FL5U4wr86L4](http://www.youtube.com/watch?v=FL5U4wr86L4)

<comment><USER3> Hmm, do you know which spot in the video they discuss that (it's a long video)?

Seeing that they are using just controller cards instead of raid cards, and FreeBSD, it seems even if they were not using specific features of ZFS, the performance and other automatic things ZFS does to provide superior (compared to most (all?) other filesystems) data integrity and protection... they would be using it by default...

<comment><USER7> Why FreeBSD - 18:30

Why no ZFS - 21:30

</comment></comment></comment></comment></comment><comment><USER8> For all the hand-wringing about ISPs creating an "internet fast lane", OpenConnect sure seems like a step in that direction. If Netflix is allowed to colocate their server in an ISP's facilities (effectively eliminating the cost of their egress bandwidth), how does that not give them an unfair advantage against other internet video operators who lack the leverage necessary to broker this kind of deal?

OpenConnect isn't the first attempt at this sort of business model, either. Back in the 90s, Akami tried this same thing with their "FreeFlow ISP" service model - putting their servers in the ISP's point of presence in order to eliminate their bandwidth costs. Then, as now, major ISPs refused.

</comment><comment><USER9> If you're a net neutrality advocate you should seriously consider whether this sort of peering arrangement should be tolerated. This kind of peering is a de- facto QoS arrangement that gives Netflix a performance and cost advantage over other video providers that aren't big enough or rich enough to justify and pay for direct peering with ISPs. It also gives bigger ISPs (that do more than 2Gb/s of traffic to Netflix and agree to peer, apparently) the same advantage over their smaller competitors. Isn't that exactly what we're trying to avoid with net neutrality?

This is not a new practice and I'm surprised it doesn't come up more frequently in the net neutrality debate. It's been going on for years -- broadcast.com did it, YouTube and Google do it, and I'm sure others do as well. We've never really had net neutrality -- peering agreements have been happening forever in shady back room deals at NANOG. At least the more recent shenanigans are happening out in the open.

<comment><USER3> I think you miss the point of open connect.

It's no different than if Netflix was paying Comcast (or whover ISP) to colo a server(s) in their data centers (you can do this as a normal citizen too).

The only difference, the idea is Comcast wouldn't charge Netflix for colo space since Netflix is "earning" it via cost reduction for the ISP. So they are still technically paying for the colo space.

Perhaps I missed your point though -- because this seems to be a much better way to a neutral net than having ISP's charging both sides of the pipe (which the small guys can't afford even more)

<comment><USER10> Is colo space at the ISP an unlimited resource? If not, then it will end up priced out of the reach of the small guys.

I suppose the ISP could offer some kind of "virtual colo", where instead of putting your servers in the ISP data center for fast access they offer some kind of faster connection to your data center. This would have two big advantages over physical colo. First, it would not have the space limitations so it could be more widely available. Second, the price could be based on how many customers you are serving at the ISP so that even small content providers can afford it.

This now sounds similar to "fast lanes", which have been the major focus of opposition to the proposed approach to net neutrality of trying to regulate under section 706.

The problem I see is that in both the company specific CDN approach and the "fast lane" approach it comes down to a content provider is making an arrangement with an ISP to make that content provider's content better for its customers on that ISP.

Is that against net neutrality? If the answer is "yes", then I don't see why it should matter if it is done via physical boxes placed on the ISP's network or by prioritizing traffic from that content provider or by purchasing a higher capacity interconnect to the backbone providers that content provider's traffic comes through. This seems to me to be one of those things where it should be looked at as a black box, and net neutrality should be concerned with the externally visible behavior of the box, not the mechanisms within the box.

<comment><USER11> The small guys can use Akamai who already has many cache boxes in place.

My understanding is that private peering and caches are primarily a cost optimization and are not about performance (as long as the "normal" Internet isn't deliberately congested). This way of thinking makes CDNs compatible with net neutrality.

</comment></comment></comment></comment><comment><USER12> I read that entire OpenConnect Deployment guide PDF, and I have to say that it looks like a really great, well-thought-out program. I'm impressed with how many moving parts there are and the time it must have taken to develop a system like this; they don't even touch on the details behind the Cloud Control Plane, and I'm sure that must have taken a while to develop. Netflix has said in the past that they only want the most skilled employees possible, and it certainly shows here.

</comment><comment><USER13> it seems to me that calling this an "internet fast lane" is a false equivalency. my understanding was that the internet fast lane concept was something that users would pay more to use, which leaves the isps free to render the "regular lane" unusable so as to bump the pricing. additionally, there was the whole notion of the "bundles" of websites available at different cost tiering.

openconnect appears, at least to me, like it's a collaboration between providers of different services to enhance the value for their shared customers.

edit: directed at both mmalone and condiment

</comment><comment><USER14> I wonder what measures they have in place to protect against someone cracking this open and dumping the entire video library.

</comment><comment><USER15> What's to stop Netflix from later on asking the ISPs to pay for the cost of OpenConnect? The way that satellite TV networks charge a subscriber fee to the cable operators. Netflix has stated that they want to become like HBO. I don't imagine they're unfamiliar with how HBO become so successful.

<comment><USER11> _What 's to stop Netflix from later on asking the ISPs to pay for the cost of OpenConnect?_

The fact that ISPs will unplug it five seconds later.

 _The way that satellite TV networks charge a subscriber fee to the cable operators._

HBO only charges each customer once (via the cable company). If Netflix tried to double-dip by charging the customer directly and also charging the ISP they'd get rightly flamed.

<comment><USER15> > The fact that ISPs will unplug it five seconds later.

At the risk of angering the many people who watch Netflix.

I don't get the double-dipping argument either. We already have that with television, newspapers, and radio being paid by advertisers yet still charging a subscription to viewers.

</comment></comment></comment><comment><USER16> I wish I could buy these custom chassis; I didn't see a link in the article.

<comment><USER17> I would think in low volume a supermicro chassis would be more cost effective, they have many 4U models that support 36+ 3.5" drives.

</comment></comment><comment><USER18> Very interesting to see what hard drives they "blessed".

<comment><USER19> The hard drives used are listed here: [https://www.netflix.com/openconnect/hardware](https://www.netflix.com/openconnect/hardware)

      Hitachi Deskstar 5K3000 3TB
      Seagate Barracuda 7200.14 3TB

<comment><USER20> > The following system was developed and first deployed at the end of 2011.

This is _very_ out of date. Their latest OpenConnect appliances use SSD drives, have higher capacity, and use less power. They're heavier, too.

</comment></comment></comment><comment><USER21> Funny name: is it open to other CDNs too?

</comment><comment><USER22> Can someone explain what this is? I don't see that mentioned anywhere.

</comment><comment><USER23> > For the operating system, we use FreeBSD version 9.0. This was selected for > its balance of stability and features, a strong development community and > staff expertise. ...or due to the less restrictive licensing, it's ok > netflix everybody does it...

<comment><USER11> AFAIK Netflix contributes back all their changes to FreeBSD, so I don't see how the license matters.

My impression is that companies that don't like the GPL either deal with it (Android) or just violate it (almost all embedded devices). Nobody is actually willing to switch to BSD for licensing reasons.

<comment><USER23> Sony switched over from Linux (ps3) to kfreebsd (ps4) due to licensing. Sure they (netflix) contribute back to FreeBSD, I don't doubt it, but don't act like licensing doesn't have anything to do with it.

<comment><USER24> The PS3 CellOS is based on FreeBSD, not Linux afaik.

<comment><USER23> xmb yes, development kits no

<comment><USER25> I believe the only portions of the development kits which used Linux was the communication processor, an isolated computing platform bolted on to the hardware to facilitate certain debugging functions.

Sony releases the GPL source code here: [http://www.sony.net/Products/Linux/Others/DECR-1000.html](http://www.sony.net/Products/Linux/Others/DECR-1000.html)</comment></comment></comment></comment></comment></comment>


Speed tests for *json and cPickle in Python - <AUTHOR> http://j2labs.tumblr.com/post/4262756632/speed-tests-for-json-and-cpickle-in-python

<comment><USER3> And because caching systems are typically a means for speeding up reads, where the article only focuses on writes.

Python 2.5 -- including pickle's (faster) bin mode

        Starting simplejson dumps...
        done: 31.7636611462
        Starting cjson encode...
        done: 3.80062890053
        Starting pickle dumps...
        done: 10.4873199463
        Starting pickle dumps (protocol=-1 -- force HIGHEST_PROTOCOL)...
        done: 5.98110699654
        Starting simplejson loads...
        done: 138.709590197
        Starting cjson decode...
        done: 1.85300803185
        Starting pickle loads...
        done: 5.24735999107
        Starting pickle loads (protocol=-1 -- force HIGHEST_PROTOCOL)...
        done: 3.66428518295

<comment><AUTHOR> Great point, thanks.

</comment></comment><comment><USER4> He doesn't use the cPickle binary format, which is significantly faster: [http://docs.python.org/library/pickle.html#pickle.HIGHEST_PR...](http://docs.python.org/library/pickle.html#pickle.HIGHEST_PROTOCOL)

<comment><AUTHOR> Thanks for pointing this out.

I am going to do some follow up tests to cover the advice I got here. I will include this, tnetstrings and decodes too.

<comment><USER3> Any interests in also including Google's Protocol Buffers and Facebook's Thrift since it would appear your intentions are to use these blobs in an RPC?

</comment></comment></comment><comment><USER5> Python 2.7 on Ubuntu:

      $ python -mtimeit -s "from json import dumps;
      d = {
          'foo': 'bar',
          'food': 'barf',
          'good': 'bars',
          'dood': 'wheres your car?',
          'wheres your car': 'dude?',
      }
      " "dumps(d)"
      100000 loops, best of 3: 6.89 usec per loop

      $ python -mtimeit -s "from cPickle import dumps;
      d = {
          'foo': 'bar',
          'food': 'barf',
          'good': 'bars',
          'dood': 'wheres your car?',
          'wheres your car': 'dude?',
      }
      " "dumps(d)"
      100000 loops, best of 3: 7.78 usec per loop

So `json` seems faster than `cPickle`. Right? Wrong!:

      $ python -mtimeit -s "from cPickle import dumps;
      d = {
          'foo': 'bar',
          'food': 'barf',
          'good': 'bars',
          'dood': 'wheres your car?',
          'wheres your car': 'dude?',
      }
      " "dumps(d, -1)"
      100000 loops, best of 3: 3.59 usec per loop

<comment><USER6> What does the "-1" dump argument mean in 3rd example?

<comment><USER7> It says to use the highest optimization level.

<comment><USER5> No. It says use the highest available protocol.

The highest available protocol is not necessarily the fastest. There might be other than pure speed reasons to introduce the next Pickle protocol.

</comment></comment></comment></comment><comment><USER8> Apple and oranges (even though they're mostly used for the same thing). pickle is a Turing complete language used to recreate python objects, while json is only used for serialization. pickle is slightly more powerful, but should also not be used to load untrusted data. See <http://nadiana.com/python-pickle- insecure>

</comment><comment><USER9> We were just talking about this a few weeks back, with a few more libraries compared with interesting results: <https://convore.com/python/faster-json- library/>

<comment><AUTHOR> demjson looks crazy fast.

</comment></comment><comment><USER10> I'm confused, is cjson still recommended? Is it still maintained? Its status seems ambiguous based on the PyPi discussion. Furthermore it seems there's a number of issues with cjson that need to be resolved...

<comment><USER11> When I tested cjson (~6 months ago?) it had bugs with escaping - <USER2> containing quotes and/or backslashes would be encoded/decoded incorrectly. Not recommended, unless there have been fixes since then.

<comment><USER10> Based on the PyPi page for cjson, the comments seem to indicate many problems still persist, notwithstanding new updates that have yet to be pushed

</comment></comment></comment><comment><USER12> insane</comment>


Ask HN: Copying the ACM library (and others) - <AUTHOR>

Hi all,
I'm leaving the university this year, so I thought I should use the access to the resources I have right now. I have the standard university gateway access to ACM, IEEEexplore, WoS, CoRR and others and decided I should copy as many interesting articles as possible for reading in the future. I guess I'm not the only one who thought about it, but I cannot find any ready crawlers/downloaders, or even information about the approximate size I should expect if I wanted to download for example only the journals and magazines...
Maybe it's just my google-fu getting weak - has anyone here tried what I want to do before? Any information about approximate sizes, not-getting-banned strategies, etc. (existing ACM-specific crawlers?) are welcome. <comment><USER2> Honestly you can find most of the useful articles online - and if not, you can always email the author, ask politely to get a copy.

<comment><AUTHOR> Yes - I can find the articles online and pay crazy prices (at ~25$ per 4 pages or something similar) to find out the abstract was completely detached from reality.

I've tried the emailing author method before and honestly it works in maybe 10% cases. In the end you'll never get the quality material from proper journals unless you have the paid subscription or work/academia sponsored access.

</comment></comment><comment><USER3> Now and then I pay the $50/year fee to be able to use the library at the school where I got my masters. I've never looked into whether this would provide on-line stuff. You might want to see whether your university offers anything comparable.</comment>


An insomniac's journey to regular sleep - <AUTHOR> https://www.sleepedy.com/articles/insomniac-journey-to-better-sleep <comment><USER2> I've always had problems staying asleep, especially if I'm under stress or have a job interview. I'll wake up around 3 or 4 and not be able to sleep again.

Not being able to sleep before a day of those fucking asinine whiteboard interviews has probably cost me millions in lifetime income.

Anyways, these are the things that help me sleep:

1) Only one coffee a day max, always right after lunch and before 3pm.

2) Set an alarm for bedtime and stick to a consistent schedule.

3) Don't work or code right before bed, do something mindless for an hour like watching a show or playing a game.

4) To fall back asleep, use meditation exercises. Here are mine in order of most effective to least effective:

\- Focus on your breathing and nothing else

\- Imagine sinking deep into the ocean or into space

\- Starting with your feet, imagine a warm calm and move up your body and out through your hands and head. (This takes practice to not immediately feel itchy all over)

<comment><USER3> 3) Don't work or code right before bed, do something mindless for an hour like watching a show or playing a game.

You tried not even touching a device or computer for 1.5-2 hours before bed? I find it also works great.

<comment><USER2> I find what I do on the device matters more than anything. Like arguing on reddit/twitter/here is the dumbest thing to do in general, but even dumber right before bed.

Reading a book or something doesn't seem to be much different for me than reading something online.

There's an accessibility setting in iOS to dim the screen when you triple click the home button as well. I use it along with night mode but most of the benefit seems to be from making it so uncomfortable to read my iPad that put it down and go back to sleep.

</comment></comment></comment><comment><USER4> I found two cups of coffee in the day made it easier to sleep than one. Quizzed my doctor on this and the reason given was the liver will process it out of your system once a threshold is reached. The threshold varies amongst people too.

</comment><comment><USER5> When I first got prescribed medication for sleep (and other stuff, but it hit two birds with one stone I guess), it fundamentally changed my life. Often people think that the only medications for sleep are either benzos or Z-drugs, but that's not true. There's a particular anti-psychotic that works incredibly well for sleep, and doesn't have any of the long term cognitive side effects of the more traditional sleeping medication.

There are risk to every medication, of course, and anti-psychotics are no exception. But I think people fetishize behavorial treatments instead of medication. My motto: better living through chemistry. Do your own research, figure out what medication you want, try them out, whatever. People are far too risk-adverse around drugs. Some of them have substantial upsides if used properly. Of course there are downsides as well, but that's true for just about everything.

Finding the right treatments for sleep and energy during the day has given me a significant edge over the competition. Drugs aren't just to solve problems, they are to make us _better_. And we, as a society, need to start embracing that.

<comment><USER6> Are you referring to mirtazapine or amitriptyline or trazodone? I've seen by of those three being used for sleep aside from their primary indication.

<comment><USER5> Seroquel. It's often prescribed off-label for sleep. Very small doses are sufficient for sleep, so a lot of the side-effects listed online aren't applicable (we're talking like 25-50mg for sleep vs 300-900mg for anti- psychotic uses).

</comment></comment></comment><comment><USER7> Something that helped me sleep a lot better was the realization that one bad night's sleep doesn't have a huge impact on my performance the next day, as long as I've been sleeping well-ish the previous days.

Helps address that stress when you have a "critical day" upcoming.

</comment><comment><USER8> This is great. I'm going through this right now. Been a long time since I slept well.</comment>


Private Equity Firm Apollo to Buy Shutterfly, Snapfish - <AUTHOR> https://www.wsj.com/articles/apollo-nears-deals-to-buy-shutterfly-and-snapfish-11560196894 <comment><USER2> What a long, and winding path my Ofoto account has taken.

<comment><AUTHOR> I will go even further... I had the original "Kodak Gallery"...

Amazing how I still have photos from "way back when"

<comment><USER2> I'd forgotten which was first. Wasn't Ofoto before Kodak Gallery? I know I had both - just can't recall the progression.

Edit:

Ofoto launched in 1999 and was acquired by Kodak in 2001:

[https://en.m.wikipedia.org/wiki/Kodak_Gallery](https://en.m.wikipedia.org/wiki/Kodak_Gallery)

<comment><AUTHOR> Ha!

Thanks for the clarification, I had both as well! Such a windy route... glad though they never "ended service" or did something like Flickr.

</comment></comment></comment></comment><comment><USER3> I'm wondering what competition looks like in this market. My wife loves Snapfish and I'm thinking each album she creates and purchases in 2020 is going to be considerably more expensive.

<comment><USER4> It is quite interesting market to be as software developer and there is quite a lot of competition. I'm from Lithuania, small country of 3 million people, and we have multiple companies offering photo book printing.

The hard part in this business is handling successfully both printing and software development parts. If you offload any of the tasks to 3rd party you can't offer cheaper option than competition anymore. If you do both then you have more problems. I don't know everything about competition but let's have some fun:

* Snapfish - completely focused to West Countries (North America and West Europe). They will never be able to conquer other markets with current technology stack/solutions they have now. They can solve the problems they have but I'm not sure how capable they are to do that.

* Google - yes, Google, is in this market as well. They have small simple solution but I think they have offloaded printing to 3rd party and printing books in their side is very expensive. I think Google will never be big player in this market but photo books will never get more expensive than Google's offering.

* Canva - you can create photo books using canva as well. They have quite amazing (while not pixel perfect) software stack but they don't offer photo book printing. You can download PDF and print it in local print shop if you want to get it cheaper.

I don't know what's local situation in USA but if you are in Europe you might consider printing somewhere in East Europe - most probably you will get lower price and good quality.

</comment></comment><comment><USER5> We make shutterfly books after every vacation. We now have about 50 of them. The kids love looking through them (though this does cause some issues with the younger kids that weren't around when we went on some vacations with the older kids - we are having to repeat some vacations again because of it). I hope this doesn't affect this part of the shutterfly business.

<comment><USER6> how are you able to take 50 vacations? I haven't taken one in 5 years....

<comment><USER5> I work for a fortune 100 company that gives us so much vacation time which rolls over from year to year (up to a cap of about 400 hours) that right now I could take off about 7 weeks of vacation. Plus we have every Friday from memorial day to labor day off (paid). And we get a sabbatical every 5 years. The biggest problem I have with vacation time it taking off enough to stay under the cap.

</comment></comment></comment><comment><USER7> [http://archive.is/y0trC](http://archive.is/y0trC)

</comment><comment><USER8> from fortune.com (no paywall) [http://fortune.com/2019/06/10/shutterfly- snapfish-merged/](http://fortune.com/2019/06/10/shutterfly-snapfish-merged/)</comment>


Boston API Jam - <AUTHOR> http://apijam-boston.eventbrite.com/

<comment><USER2> Seems they edited the text by now, but apparently "Women" was listed under perks.

That aside, what kind of BS is this:

         Web 3.0 is about finding meaning in data (aka semantics). Recommendation & personalization technologies are acquired as fast as they are launched. You could be next!

Seriously?

</comment><comment><USER3> wow that's pathetic shit. both sad and deeply depressing. there is NO place for this kind of sexist bullshit in the modern world. grow up. please.</comment>


Hacking the Wii To Pieces - <AUTHOR> http://www.wiihacks.com/recommended-faqs-guides-tutorials-only/24630-full-hacking-guide-4-2-system-menus.html

<comment><USER2> Anyone care to comment about what can be done with a hacked Wii?

I assume I can play downloaded games/imports. Could I write my own software, etc?

<comment><USER3> Yeah, both. There's a lot of emulators, unsurprisingly, but also some neat homebrew apps.

<http://wiibrew.org/wiki/Homebrew_development></comment></comment>


Ask HN: Why does privacy matter? - <AUTHOR>

I don't do anything illegal online, I don't visit much online I'd be embarrassed out, I occasionally buy stuff online and don't see  an issue with Google serving me ads that are targeted to my interests. So what's so great about online privacy?
I feel stupid, naive, and completely wrong, but am not sure why.
This is your chance to school me HN (or resort to calling me names). Learn me something good ya'll! <comment><USER2> It is not dumb, naive, or wrong to ask this, it is an important question facing all of us for quite sometime to come.

Here's a potential example that might show the limits of privacy-- online or otherwise. It was an anecdote provided by Charles Duhigg from his new book "The Power of Habit" (excerpt here: [http://www.nytimes.com/2012/02/19/magazine/shopping- habits.h...](http://www.nytimes.com/2012/02/19/magazine/shopping- habits.html?pagewanted=all)). The story is that a father discovered that his teenage daughter was pregnant because Target sent selected coupons to their home, addressed to the daughter. You can read how Target figured that one out-- very fascinating data and statistical analysis -- but the point is this. A guy such as yourself, who follows the law and has nothing to be embarrassed about, might still feel a little uneasy about how much others know about you and the people in your life, and the purchasing decisions you all make. At the very least, I think most people would say that they would rather hear the truth about something as personal as their daughter's pregnancy from the daughter, rather than from a corporation analyzing your data.

Having said all that, we have benefited greatly from Google, Facebook, etc. So I am also conflicted about this issue.

</comment><comment><USER3> I also agree, I do nothing illegal online so I fear nothing when it comes to Google "invading my privacy." I have a hard time understanding the people who obsess over leaving no trace online (unless they are doing something illegal). I also saw the story where Target used data mining techniques to predict pregnancy...all I can say is awesome.

<comment><USER4> many times, it's not illegal but borderline socially unacceptable. Such as watching porn - not illegal but would you want your S.O or boss to find out? How about your name, and address being posted in a forum talks about abortion, or suicide?</comment></comment>


Slate Star Codex Abridged - A Friend And I Remastered 85 Slate Star Codex Posts - <AUTHOR> https://www.slatestarcodexabridged.com/ <comment><USER2> I wish this was dated, as of when they did it. SSC is back up, so while its nice having an index to browse and some editorial "best of" contribution, I otherwise dont know why youd read the articles here and not the original site.

<comment><AUTHOR> You mean this blog with default CSS? And barely any site navigation?

[https://slatestarcodex.com/2014/05/23/ssc-gives-a- graduation...](https://slatestarcodex.com/2014/05/23/ssc-gives-a-graduation- speech/)

<comment><USER2> Yes. It also has all the original conversation below the posts restored. The theme doesnt matter that much to me because I can control the display of a page client side, using something like Mercury or Dark Reader etc. In fact, I quite like the lack of a theme, leaving it entirely up to me. (Not that your theme in any way impedes that same freedom.)

<comment><AUTHOR> I think you may be a bit different than the modal person being targeted with this site.

<comment><USER2> I'm not sure I follow. Is the value add you bring to his blog the theming?

I ask because, the curated index you offer could just link back to the original posts.

Given everything else being equal, I would prefer to read the original source over a mirror. I then dont have to verify it is an accurate representation, and they dont have to be kept in sync if things change on the source end. Maybe a separate clickable link at the end of each line that takes you to the original post would be helpful. (orig) A link blog / pure index model would also run less afoul of any sort of copyright issue, if you wanted to extend this concept to other blogs. I would personally encourage this, shifting to a more generalized linkblog that links outward to other sscesque writing. It makes your offering more unique than a theme and index.

If you havent used something like Mercury before, check it out. I prefer it to browsers built in reading modes. (It's the successor to Readability.) [https://chrome.google.com/webstore/detail/mercury- reader/okn...](https://chrome.google.com/webstore/detail/mercury- reader/oknpjjbmpnndlpmnhmekjpocelpnlfdi?hl=en)

</comment></comment></comment></comment></comment><comment><USER3> Blogs and blog posts don't count as Show HNs. Please see the rules: [https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html).

<comment><AUTHOR> Oh huh, I can totally see how that works but would not have predicted it/thought to check because it's not my blog. My apologies.

<comment><USER3> No worries. The line is a bit arbitrary to draw, but we have to draw it somewhere or else every post would be a Show HN.

</comment></comment></comment><comment><USER4> I dig it. Nice typesetting!

</comment><comment><USER5> why the long domain name, shouldn't it be "SSCabridged" ?

<comment><AUTHOR> We bought that too, haven't set it up yet.

</comment></comment><comment><USER6> _A friend and I_

<comment><USER7> Languages evolve. If people say "me and X" over the formal "X and I," then the _more correct_ answer is "me and X."

The only people I've seen quibble over this matter is English language teachers in school.

<comment><USER8> The correct term for this is hypercorrect (this is more accurate description of this phenomenon than "less/more correct"). [1]

I'm trying not to quibble over language — just wanted to note that this is a well-documented phenomenon with a fancy name (I'm not an English teacher).

[1]: [https://en.m.wikipedia.org/wiki/Hypercorrection](https://en.m.wikipedia.org/wiki/Hypercorrection)

Edit: I clarified what I meant to say. Earlier it said "more correct" rather than "less/more" correct.

<comment><USER9> That's actually the _opposite_ problem. The example given there (which matches the description) is the use of "a friend and I" in _object_ position, not _subject_ position (as is the case here) due to over application of the actual rule that one should use "I" and not "me" when in subject position.

I'm not sure that this qualifies for the same, since it seems unlikely to be the result of overgeneralization of rule so much as a simple (and common) mistake.

<comment><USER8> Right, thanks — that's what I meant to say. I just edited the comment to fix the mistake.

You're totally correct!</comment></comment></comment></comment></comment>


The Execution, Of All Things (Another App Store Personal Story) - <AUTHOR> http://www.subfurther.com/blog/?p=921 <comment><USER2> Any legal issues hinge, as the author hinted, on a court inventing a relevant market here. The Clayton Act (and specifically 15 U.S.C. section 14 on tying), like other antitrust laws in this country, requires that the tying either create a monopoly or "substantially lessen competition...in any line of commerce". Simply lessening competition is not illegal, it has to be on the scale of affecting the entire line of commerce, aka relevant market.

<http://www.law.cornell.edu/uscode/15/14.html>

If a court decides that in dealing with App Store sales, we're talking about the software market, then the App Store is such a tiny piece of the software market that literally no policy they set can SUBSTANTIALLY lessen competition in the entire market. It's a private company so they're free to set whatever policies they want. If they want to tie their browser to their phone and prevent you from using anyone else's browser, that's completely legal.

A court would have to really stretch and define something very narrow, like a smartphone application market, to even begin arguing any antitrust case.

</comment><comment><USER3> I just published my first Android app today. The development and publishing experience is _far_ better than on the iPhone. Java on Mac/Windows/Linux instead of Objective-C on Mac only, easy testing on your own device instead of paying Apple and screwing with certificates, published apps show up on Android Market in minutes instead of weeks.

If Google can attract a critical mass of customers to Android devices, I suspect large numbers of iPhone developers will be happy to jump ship.

<comment><USER4> Are you still doing iPhone app development? Help me out here:

1\. Do you use an iPhone or Android phone as your primary phone? One problem I have over developing for multiple platforms is I can only have 1 primary platform (1 desktop/laptop + 1 mobile device). It's the only way I know to ensure the product is good. How do you do it?

2\. It's early, but how's sales like compared to iPhones?

3\. How's UI like? I had a G1 dev phone and haven't been much up to date with the developments of Android since. In particular, (a) the UI library - do you still pretty much have to cook up your own style because the native ones are terrible, and (b) how do you deal with compatibility over different handsets?

<comment><USER3> 1\. My primary phone is a Nexus One, I switched from a first generation iPhone. I still have it but I'm not writing iPhone apps at the moment.

2\. It's a free app so sales aren't a factor. I did get an email from somebody who liked it about 10 minutes after it popped up in the market, so there are at least some users out there.

3\. The built-in widgets are fine for my purposes, although I only needed a few buttons and a text view. For testing I set up a bunch of virtual devices in the emulator with different screen sizes and OS versions, and I didn't have any problems. I was able to stick to Android's layout managers which do a decent job of adapting to different resolutions. (And I'll be interested to see how Apple deals with future higher-resolution devices, since most iPhone UIs use absolute pixels).

This is just a hobby for me so I have the luxury of focusing on what I enjoy more, which is Android by quite a bit. Of course if I had a plan for an app that I expected to make a lot of money, I'd have to go with the iPhone.</comment></comment></comment>


Ask HN: Best ML / computer vision books to read after a linear Algebra course? - <AUTHOR> Recommendations for machine learning or computer vision books which would be good for building on top of some newly found linear algebra knowledge? <comment><USER2> Computer vision is all data augmentation and convolutional neural networks. I would study the different network architectures to get a real understanding of the field. Start with:

1.) AlexNet/Vgg 2.) Resnet/Inception 3.) MobileNets, NasNet, EfficientNet etc.</comment>


NASA ISS Live Stream - <AUTHOR> http://www.nasa.gov/multimedia/isslivestream.asx

<comment><USER2> I can't read the stream neither in VLC or mplayer ... any idea ? I'm on macosx.

<comment><USER3> Ubuntu VLC worked on the first try

You may also want to try <http://www.nasa.gov/qtl/151335main_NASA_TV_QT.qtl>

</comment></comment><comment><USER4> Storing stuff must be a constant issue. The ISS always seems cluttered.

</comment><comment><USER5> A little blue dot I like to call Earth.

<comment><USER6> A little blue dot indeed.

<http://000fff.org/uploads/Earth.png>

Or did they find an unknown planet?

</comment></comment><comment><USER7> is it real link?

that's awesome!</comment>


Lack of communication when looking for a job - alex-yo So, I'm looking for a remote job. This is quite disappointing. I have applied to about 40 job offers. 25 companies didn't even respond, which is strange. 5 replied with "no way, sir".
However some of them did it in a strange way. One replied "you have no suitable experience", although I met all the requirements (which is not common). One of them even gave me a task to do. I did, they also replied with the above answer. Two of them gave me quite complicated algorithmic tasks to implement during the interview, in 10 minutes. I had to think about that because those were not things I was doing for the last 14 years. I almost did that. "Almost" - that's why I didn't get those jobs.
The most disappointing part is answering a question about the salary. There is just one shot. They ask, I reply (giving not a huge number adding that I can accept lower figure depending on many other factors, so let's talk). Then they answer "this is too much, thank you, you don't get this job". That's all. There is no way to negotiate anything. They don't respond to any further emails.
Also some people asked me through HN to send them my CV. I sent. Just one person replied.
Another funny problem with the job hunt is that too many companies are so funny that they don't add the set of technologies which are required on a position, including programming languages. They have a job offer on their website without any technology information.
So, I'm disappointed by the lack of communication, 80% of my emails is without any answer. If someone writes "I will reply in a week" there usually won't be any reply within the week. And there is no salary negotiation, just one question, one reply. I know that the dream employee will work for free, but come on.
On the other hand there was always a salary negotiation in all my non remote jobs. <comment><AUTHOR> Non-replies are common for any kind of job search. It may be awful, but it is a fact.

Do not answer questions about required salary or past salary under any condition. If it is at all possible in a sales process (i.e. not a tag on the shelf) you want to discover what the "solution" is worth to the customer.

It goes both ways. Sometimes I find somebody who sets a price for their services which is 1/10 of what I think is a fair price and then I don't think this person is taking the job seriously.</comment>


A teen shared a video of her own legal sex act, convicted as child pornographer - <AUTHOR> https://slate.com/technology/2019/08/maryland-sk-court-case-teen-sexting-child-pornography.html <comment><USER2> So according to the court, the girl who distributed the video must have been simultaneously the victim and perpetrator of the crime.

What didn't get addressed, though, is that that video has also been distributed to almost everybody in the school, without her consent. That means that nearly everybody in that school has distributed child porn. And they are only perpetrators and not victims. Only punishing the one perpetrator who is simultaneously the victim of the crime, is extremely arbitrary and backwards.

At the very least be consistent and punish everybody who distributed that video.

<comment><USER3> If only the justice system worked in a completely logical way..

But yeah, I don't really follow the reasoning behind this at all. To me it seems like the girl didn't commit a crime (She shared it out of her own volition), but the first person to spread the video _did_ commit a crime.

Otherwise, would 'revenge porn' always be the girls fault for sharing the video first, instead of the ex-boyfriend whom shared it?

<comment><USER4> > To me it seems like the girl didn't commit a crime (She shared it out of her > own volition)

While _consensual sex_ may be legal at 16 in Maryland, I suspect that _video pornography_ is not. Making the video probably was illegal prima facie.

<comment><USER5> I don't understand what public "good" this is trying to accomplish (who's the victim?); it seems like the victim was victimized _twice:_ once by revenge porn and then again with an unjust, unconcerned, over-prosecuting legal system that incarcerates more people per capita than all other countries except Seychelles.

A tangential irony is adults engaging sex for money is illegal in most of America, while if it involves a camera, then it's porn and legal.

<comment><USER6> > A tangential irony is adults engaging sex for money is illegal in most of > America, while if it involves a camera, then it's porn and legal.

From a legal perspective, the distinction is considerably more detailed than just camera or not. This is a brief article: [https://vistacriminallaw.com/pornography-vs-prostitution- in-...](https://vistacriminallaw.com/pornography-vs-prostitution-in- california)

I knew a longer article, but I can't find it.

Morally speaking, it all boils down to protecting the form of expression. Probably, when the laws were written, there was the idea the sex for money is abhorrent, but freedom of speech needed to be respected. In fact, the core difference of prostitution and porn is that in the former, clients definitely don't want to be filmed, so it kinda makes (I'm not implying that I agree or not).

</comment></comment></comment></comment></comment><comment><USER7> This is awful on so many levels.

 _The ruling is dangerous on several levels: It mangles a law designed to protect minors by putting them in greater risk of legal jeopardy than adults. It clashes with fundamental principles of due process, punishing the ostensible victim of a crime as a perpetrator as well. And it essentially encourages revenge porn against minors, who cannot attempt to halt the distribution of their own intimate images without risking prosecution. Wednesday's decision is a disastrous blow to the rights and safety of minors in Maryland._

</comment><comment><USER8> Sounds like Caballero was in possession of child porn and watched it. Why was he not charged when he reported it to the police? He should be doing like what 5 years, and be put on a sex offender registry, lose his job, his life... etc. Probably commit suicide at some point.

Honestly the sex laws in the United States are insane and the only ones who don't see the insanity are its puritan purveyors who are probably sexual deviants in the closet...

And no one says anything because they are scared of not thinking of the children (tm). It comical to point out the hypocrisy of that rhetoric in this way. Like seriously think of the f*ing children.

<comment><USER9> Fighting child porn is about power, not actually fighting child abuse. Hence everything surrounding it is ridiculous, unfair and dishonest.

</comment></comment><comment><USER10> Interesting. She shared the video with her friends, one of whom she fell out with. That friend then reported the video to the school resource officer, Caballero. The girl then met Caballero and thought he was going to help her. Instead, he set up the whole prosecution.

It's interesting to see the result. If any school officer ever thinks any student is going to be honest with them ever again, they're an idiot. You get less of what you punish, and the proximate thing is talking to your school resource officer.

<comment><USER11> I don't think the school officer has any meaningful choice in this situation. He is suddenly in possession of CP the only real option for him is to go the police.

</comment></comment><comment><USER12> > The clip depicted S.K. performing oral sex on an unknown man—a legal > activity in Maryland, where the age of consent is 16.

So how can it be child porn, if it was legal?

Edit: OK, so the laws need to change, so that whatever's legal to do is legal to distribute, and _vice versa_. Otherwise, there's too much injustice.

<comment><USER10> A sign of how times have changed from the crazy world of puritanism (when oral intercourse could be considered illegal) - you assume it is the clip that is legal. They're talking about the oral sex when they're referring to legality.

It is, of course, obvious that distributing a video of a legal act can be illegal. For instance, there's the obvious thing that a 14 year old is legally allowed to masturbate. They are not then allowed to video themselves masturbating and then distribute the video.

<comment><USER13> Does a 14 year old truly understand the gravity of the acts of filming and distribution here? I would argue against, and for that reason I find it hard to understand how courts could agree to the punishment when the agent of the crime is so obviously incompetent.

</comment></comment></comment><comment><USER14> There's really no choice.

In the United States, there's no defense to possessing child pornography. It's a "strict liability" crime.

So if weren't possible to prosecute a minor for creating child pornography, he or she could photograph himself/herself nude, send the photo to the entire staff of a school (for example), then call the Police and have them all arrested -- all while not being liable for a crime.

As long as there's strict liability, creators of child pornography at any age, need to be held responsible.

<comment><USER13> If someone texts me an image of child pornography and I go straight to the police and report it, I would be arrested? Questioned, sure but arrested?

If I find drugs in the mail and turn them over to police, am I going to get arrested (assuming this was not a controlled delivery, I just received them randomly)?

Both are crimes where possession alone is cause for arrest.

<comment><USER4> > If someone texts me an image of child pornography and I go straight to the > police and report it, I would be arrested?

Quite possibly arrested. However, a successful prosecution probably depends on the definition of "possession"\--I suspect a competent defense attorney could argue that you really didn't take possession if you immediately reported it to the police and deleted it.

> Both are crimes where possession alone is cause for arrest.

Possession of drugs is not a "strict liability" crime.

<comment><USER13> Can you provide a citation for drugs not being strict liability? In any jurisdiction where the drug is not legal, mere possession is cause for arrest.

> Criminal law classifies strict liability as one of five possible mentes reae > (mental states) that a defendant may have in pursuit of the crime. The other > four are "acting knowingly," "acting purposely," "acting with recklessness," > and "acting with negligence." The mens rea of strict liability typically > results in more lenient punishments than the other four mentes reae. > Typically in criminal law, the defendant's awareness of what he is doing > would not negate a strict liability mens rea (for example, being in > possession of drugs will typically result in criminal liability, regardless > of whether the defendant knows that he is in possession of the drugs). [0]

[0]: [https://www.law.cornell.edu/wex/strict_liability](https://www.law.cornell.edu/wex/strict_liability)

<comment><USER4> > Can you provide a citation for drugs not being strict liability? In any > jurisdiction where the drug is not legal, mere possession is cause for > arrest.

Strict liability isn't about whether they can arrest you, it's about what they have to prove to _convict_ you.

And, actually, I suspect that is a bad example and that a lot of drug laws are _NOT_ strict liability. See: [https://law.marquette.edu/facultyblog/2011/07/floridas-%E2%8...](https://law.marquette.edu/facultyblog/2011/07/floridas-%E2%80%9Cstrict- liability%E2%80%9D-drug-law-found-unconstitutional/))

DUI/DWI, for example, is pretty universally strict liability, though. This leads to the occasional bizarre case where someone sleeping it off in their car gets charged and convicted for a DUI even though they weren't driving but were simply behind the wheel.

Off the top of my head I can't cite chapter and verse. The possession of drugs will almost certainly result in an arrest everywhere. However, most states where I have had contact with the legal system about this, good defense lawyers have lots of maneuvering room, and the court allows lots of mitigating circumstances (if they _really_ aren't yours generally you have enough corroboration to limit the problem).

Possession of child pornography gets no such latitude.

</comment></comment></comment></comment></comment><comment><USER15> People like to blame judges but often judges are simply applying legislation in an impartial manner, as they are required to do, and if they don't do that, the system falls apart.

The judgment followed the law, and it's clear from the specific wording of the judgment [https://www.mdcourts.gov/data/opinions/coa/2019/41a18.pdf](https://www.mdcourts.gov/data/opinions/coa/2019/41a18.pdf) that the judge is fully aware of all the issues.

The solution is for the legislatures to modify the law, if they want to.

Did this person distribute child pornography, as defined by the law, to others? Yes. Were the others minors as well? Yes.

> _" [T]he language of CR § 11-207 in its plain meaning is all-encompassing. > The General Assembly has not updated the statute's language since the advent > of sexting and thus we may not read into the statute an exception for > minors."_

Those are the judge's words, they are correct, and they explain why he had to rule this way.

<comment><USER7> We have judges and juries in part so that human judgement still comes into play. Courts were never intended to be administers of abstract algorithms and actual justice be damned.

<comment><USER15> Judges are there to determine if someone has violated the law. When judges go off that, as some sometimes do, they are a law unto themselves. Such judges allow the rich and elite to corrupt the system by purchasing judgments, something not available to the non-elite. The judge made clear in the decision he was applying the law as written and there's a strong undertone that he doesn't agree at all with the judgment he had to give as it was not just. He also explains explicitly that it's the legislature that is responsible and enumerates precisely why and what a solution would be should anyone desire it.

Juries, on the other hand, are not trained in the law and are perfectly capable of engaging in nullification in the interests of justice. Honorable and responsible judges should not and are not supposed to engage in nullification because the risks of corruption are too extreme.

<comment><USER7> Two excerpts from the article:

 _Hotten found the text to be unclear. And under the court's own precedent, "[w]hen a statute can be interpreted in more than one way, the job of this Court is to resolve that ambiguity in light of the legislative intent." Here, Hotten found ample evidence that Maryland "sought to protect children from exploitation and abuse as opposed to enacting laws that criminalized consensual sexual activity among minors."

Under this rule, ambiguous criminal statutes must be interpreted in the defendant's favor._

But there's all too often some bullshit justification as to why it's someone else's job to make sure justice gets served and these particular people in authority were "just doing their job."

The emperor in _Mulan_ and the sultan in _Aladdin_ taking it upon themselves to actually exercise their authority to do the right thing are, sadly, not how real people typically operate.</comment></comment></comment></comment>


Modernizing the BSD Networking Stack [pdf] - <AUTHOR> https://www.netbsd.org/gallery/presentations/dennis/2015_AsiaBSDCon/BSDNet.pdf <comment><USER2> This was a really interesting talk; it doesnt seem that the video has been released yet and I thought he had given it elsewhere but not sure that is the case as i cant find it.

<comment><USER3> It was at AsiaBSDcon 2015. Was there a more recent one?

<comment><USER2> For some reason I thought he had given it again, but I think I was mistaken.

<comment><USER4> You are, the slug on the url of the post:

/gallery/presentations/dennis/2015_AsiaBSDCon/BSDNet.pdf

<comment><USER5> How does that tell you if the talk has been given a second time somewhere else or not?

</comment></comment></comment></comment></comment><comment><USER6> Does anyone know how network cards with support for multiple virtual interfaces (ie. anything modern) fits into this? I'd guess they get separate ifdevice_t instances (reflecting their interrupt and I/O rings)?

I wondered if there was any value in representing the fact that they all come from the same physical card in the abstraction?

It seems a little odd not to mention it given current hardware.

<comment><USER7> It's right at the top of slide 9.

"For some types of configurations one hardware interface may need to be represented by multiple protocol interfaces"

</comment></comment><comment><USER4> Code is here: [https://github.com/gonzopancho/rtree](https://github.com/gonzopancho/rtree)

</comment><comment><USER8> So are these changes actually getting into NetBSD?</comment>


Why JavaScript Is The Next (or first) Programming Language You Should Learn - <AUTHOR> http://dentedreality.com.au/2014/08/04/why-javascript-is-the-next-or-first-programming-language-you-should-learn/

<comment><USER2> For having a few teaching experience, I would say that this is completely ignoring the fact that JavaScript is about callbacks and asynchronous operations. Those concepts are really hard for new comers (even for some professional) who expect the program flow to be completely different.

</comment><comment><USER3> it's an awful language, but it's ubiquitous, and it's flexible enough that libraries can smooth over the cracks.</comment>


Ask HN: How would you invest $1M? - <AUTHOR>

Let's say you have $1M ( and you won't need any of the cash for more than a decade ). How would you invest it?<p>Curious to get the hacker perspective on this. <comment><USER2> I would buy a mix of stocks that have regularly paid decent dividends. Every time the dividend cash built up to $20K I would make a growth oriented stock investment. I would also keep my eyes open for angel investing opportunities and sometimes do that instead of a growth stock.</comment>


Stanford Brainstorm Chip to Hints at Neuromorphic Computing Future - <AUTHOR> https://www.nextplatform.com/2017/03/27/stanford-brainstorm-chip-hints-neuromorphic-computing-future/ <comment><USER2> I'm from the lab working on this platform. A lot of people in this thread are claiming that there is no use for these spiking neural nets and I have to disagree.

Brainstorm can run Spaun, the world's largest functioning and behaving brain model. [1]

It can also run Adaptive Control circuits, which lead to unprecedented adaptability in arm control to undefined forces, such as changes in arm length, medium the arm is acting in and weights applied to the arm. [2]

For an overview of how programming with spiking neural networks is different than normal programming, see this blog post I wrote almost a year ago. [3]

Finally, framing spiking neural networks in opposition to Deep Learning networks is innacurate and harmful. We're currently investigating biologically plausible backprop and have already converted ConvNets to spiking nets for significant power savings [4]. Personally, I'm looking forward to an integration of biologically plausible networks with Deep Nets to completely theoretically unite all the approaches to brain modelling in general so we are no longer limited by metaphors [5].

[1] [http://science.sciencemag.org/content/338/6111/1202](http://science.sciencemag.org/content/338/6111/1202)

[2] [http://rspb.royalsocietypublishing.org/content/283/1843/2016...](http://rspb.royalsocietypublishing.org/content/283/1843/20162134)

[3] [https://medium.com/@seanaubin/a-way-around-the-coming- perfor...](https://medium.com/@seanaubin/a-way-around-the-coming-performance- walls-neuromorphic-hardware-with-spiking-neurons-facd4291b201)

[4] [https://arxiv.org/abs/1611.05141](https://arxiv.org/abs/1611.05141)

[5] [https://medium.com/@seanaubin/deep-learning-is-almost-the- br...](https://medium.com/@seanaubin/deep-learning-is-almost-the- brain-3aaecd924f3d)

<comment><USER3> Hi Sean, perhaps you can help us understand the claim that analog hardware SNNs are more energy efficient than analog hardware non-spiking networks (e.g. based on floating gate transistors [1])?

Also, in the paper [2], Table 4 is a bit confusing: what is the "traditional hardware" they're referring to?

Finally, it's not clear from that paper, or from this "Brainstorm" article, that you actually have a working chip, capable of running Alexnet. Is that so? What is the current status of the actual hardware?

[1] [https://arxiv.org/abs/1610.02091](https://arxiv.org/abs/1610.02091) [2] [https://arxiv.org/abs/1611.05141](https://arxiv.org/abs/1611.05141)

<comment><USER2> I'm not sure it's fair to compare the Brainstorm chip to the paper you linked to, since they take different inputs (binary vs. continuous) and they implement different systems (purely feed-forward vs. recurrent dynamic systems). But basically, the reason I would imagine why rates require more energy than spikes is just basic math. Given that power is the area under the curve, you can picture that intermittent spikes would consume less power than sending a continuous rate signal. There are other advantages to spikes vs. rates, such as robustness to noise/failure.

In table 4, I think they're comparing to GPU hardware, since that's what he was running everything on.

I think the current status of the hardware is prototypes are being produced. The most recent paper [1] used a circuit simulated in SPICE, so I'm guessing they're pretty close to production? I'm not sure, because: a) I haven't heard anything from my lab-mates in a while. b) Even if I did hear something from them, I'm not sure I'm allowed to talk about it. Hardware development is _way more_ secretive than software development.

[1] [http://compneuro.uwaterloo.ca/files/publications/voelker.201...](http://compneuro.uwaterloo.ca/files/publications/voelker.2017a.pdf)

<comment><USER3> Sure, let's look at the "area under the curve". What would be this area to perform an equivalent of a weighted sum followed by a non-linearity, for the best spiking network? Note that we must ensure the same precision, as when using the analog "continuous rate" signals. If SNN produces less accurate results, then it's really apples to oranges comparison. Don't forget to take into account both static and dynamic power. Also, there's a question of speed: can you build an SNN chip which runs faster given the same power budget, and the same target accuracy?

If they are indeed comparing SNN to a GPU in that paper, then it's just plain horrible! 3 times better efficiency than a 32 bit FLOPs digital GPU (which is probably 2-3 generations old by now)? That's not going to impress anyone. AFAIK, the best digital DL chips are already at least 10 times more efficient than latest GPUs, and analog DL chips claim to have at least another order of magnitude improvement. In my opinion, that's still not enough: if you want to build an analog chip (spiking or not), it better be at least 1000 times more power efficient than the best we can expect from Nvidia in the next couple of years. Otherwise it's just not worth the effort (and inflexibility).

So, the bottom line, until there's a working chip, capable of running Alexnet, we have no guarantees about it's overall energy efficiency, or speed, or accuracy, or noise robustness. Simulating a tiny portion of it in SPICE does not really provide much insight. When the chip is built, and working, then we can compare it to the best analog "continuous rate" chip running the same model, and only then we will be able to see which one is more efficient. Until that time, any claims that spikes are more efficient are unsubstantiated.

On the other hand, if you can devise an algorithm which is uniquely suited for spiking networks (biologically plausible backprop, or whatever), then sure, it's quite possible that you will be able to do things more efficiently. So, my question is, why try mapping DL models, trained on "traditional hardware" to SNNs, which weren't designed to run them? Why not focus instead on finding those biologically plausible algorithms first? If your goal is to understand the brain, wouldn't it be more reasonable to continue experiment in software until you do? Why build hardware to understand brain? That's not a rhetorical question, perhaps there are good reasons, and I'd like to know them.

<comment><USER2> That's totally fair to want to wait for a comparison until there's actual hardware produced. Especially for comparisons exclusively involving DL models. Make initial "area under the curve" argument was rhetorical and not sufficiently empirically founded.

> If they are indeed comparing SNN to a GPU in that paper, then it's just > plain horrible!

Yeah, the paper talks about how this is preliminary and bigger savings are expected for video. However, I must concede as before that without the analog hardware built there isn't much point discussing this.

> So, my question is, why try mapping DL models, trained on "traditional > hardware" to SNNs, which weren't designed to run them? Why not focus instead > on finding those biologically plausible algorithms first? If your goal is to > understand the brain, wouldn't it be more reasonable to continue experiment > in software until you do? Why build hardware to understand brain?

Eric Hunsberger [1] has been doing most of the work in this domain, so I'm going to be awkwardly paraphrasing my conversations with him. Eric wanted to make Spaun's [2] vision system better. To do that, he knew he was going to need ConvNets or at least build something off of them. So he started to see if he could bring ConvNets into the domain of SNNs to understand them better. Once he did that, he started looking into if he could learn the SNN ConvNets using biologically plausible back-prop [3] which is where he's at now.

That's really only a branch of our research. To understand the brain, we have a lot of really different methods that are more based in Symbolicism, Bayesianism and Dynamicism. We do start in software [2], but software is slow, even on a GPU. When we get faster hardware, we're able to explore the algos more quickly. Also, we got funding to build/explore analog hardware from the Office of Naval Research, so that's where this project is investigating.

To summarize, the DNN-to-SNN-adaptation algos aren't the only thing targeting this hardware, but a small slice of a family of algos that are defining the requirements of the hardware.

(I hope this post confirms that I understood and accept your argument and isn't me having a case of "must have the last word"-ism)

[1] [http://compneuro.uwaterloo.ca/people/eric- hunsberger.html](http://compneuro.uwaterloo.ca/people/eric-hunsberger.html) [2] [https://nengo.github.io/](https://nengo.github.io/) [3] [http://cogsci.stackexchange.com/q/16269/4397](http://cogsci.stackexchange.com/q/16269/4397)

<comment><USER3> I appreciate your response, especially the backstory of running a convnet on SNN hardware.

A couple of remarks:

1\. Your own response to your stackexchange question: "The random synaptic feedback weights only accomplish back-propagation through one layer of neurons, thus severely limiting the depth of a network."

Didn't they show in the paper how it could work through multiple layers?

2\. _software is slow, even on a GPU. When we get faster hardware, we 're able to explore the algos more quickly_

I'm not sure what you're referring to by "faster hardware", but somehow I doubt you will beat a workstation with 8 GPUs in terms of speed, if your goal is to explore algos more quickly. More importantly, what if the next algo you want to explore does not map well to the hardware you built? For example, what if we realize that relative timings between spikes are important, and most of the computation is based on that, but your hardware was not designed to exploit this "race logic" principles? Suddenly your custom system became much less useful, while your GPUs will simulate that just fine. There's a possibility that instead of exploring the best or most plausible algorithms, you will limit yourself to algorithms which map well to your hardware.

3\. What do you think about HTM theory by Numenta? They strive for biologically realistic computation, but they don't think spikes are important, and abstract them away in their code.

p.s. the reason I'm involved in this discussion is I'm trying to decide whether to accept an internship offer to work on Bayesian inference algorithms for SNN chip.

<comment><USER2> (When does this thread get closed by Hacker News as being too old? If/when it does is there somewhere public you want to continue the discussion? If you'd like we can move it to the Nengo forums at forum.nengo.ai)

1\. Dammit. I misread that paper. You're totally right that they do show it works for multiple layers.

2\. By faster hardware, I mean neuromorphic hardware such as BrainScaleS and Spinnaker. The software we use, Nengo, is pretty dependent on the speed of a single GPU, since it's really hard to separate the networks across multiple GPUs. You're right that there's always the possibility that our newer algorithms don't map well onto the specialized hardware we've built. The reason why we think we're ready to at least implement a few hardware prototypes is:

\- The principles that underlie our algorithms, the Neural Engineering Framework, have been around for 15 years and are pretty mature. The software built to support these principles, Nengo, has been through six re-writes and if finally pretty stable. \- Some of the hardware implementations are general enough that they can handle pretty drastic changes in algorithms. For example, Spinnaker is just a hexagonal grid of stripped-down ARM chips. \- Even if the hardware ends up limiting what algorithms we can implement, we can probably re-use a lot of the design to implement whatever the new algorithms require.

3\. I've been meaning to investigate the HTM theory of Numenta for years (they were actually the first people to get me excited about brain-motivated machine intelligence), but never got around to it. I'm also super unclear on the relation between HTM, the Neural Engineering Framework and the newer theory FORCE. I'll write a question on cogsci.stackexchange.com to motivate myself to dig in.

Where is the internship happening? Will you be working with [Sughanda Sharma][1]? She's my lab-mate working on that using the Neural Engineering Framework.

[1] [http://compneuro.uwaterloo.ca/people/sugandha- sharma.html](http://compneuro.uwaterloo.ca/people/sugandha-sharma.html)

<comment><USER3> Sure, let's move to Nengo forums. Do you mind creating a topic there and sending me a link?

I actually don't know much about spiking NNs (software or hardware), but Spaun seems like the only real competitor to HTM. Unlike Spaun, Numenta's algorithms are not currently limited by computational resources, because they focus on a rather small part of neocortex (2-3 layers of a single region, working with tiny input sizes), and they abstract spikes. Numenta claims that if we understand what spikes are doing (computation and information transfer), then there's not need to emulate them exactly, we can construct algorithms which do the same thing using traditional computations and data structures. Instead, HTM wants to understand what the layers do and how they interact.

There have been an interesting discussion on Numenta mailing list, with James Smith, who is developing his own spikes-focused theory of the neural computation: [http://lists.numenta.org/pipermail/nupic- theory_lists.nument...](http://lists.numenta.org/pipermail/nupic- theory_lists.numenta.org/2015-June/002846.html)

I believe he has been working on it since, and plans to publish a book.

The internship offer is from HRL, a small company in Malibu. It's quite possible that they are looking at the ideas of your lab-mate, and they might even ask me to implement them. I'm still deciding though.

<comment><USER2> Here's the link to the new topic. I'll let you start the discussion there to make sure I've transferred between contexts correctly.

[https://forum.nengo.ai/t/the-usefulness-of-neuromorphic- hard...](https://forum.nengo.ai/t/the-usefulness-of-neuromorphic- hardware/257?u=seanny123)

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER4> I still dislike the fact that neuromorphic designs are always funded and heralded as the next coming of Turing when they have no results to back it up.

Take ConvNets, they're ruthlessly empirically validated and have results to show for it. By contrast, these spiking neural nets were simply assumed to be somehow better (hey, because brains!) and they proceed to mint chips off the idea.

<comment><USER5> Spiking neural networks do have many advantages over conventional rate based networks. They can, for example, handle time which a convnet cannot do without resorting to frames.

They also have a lot of disadvantages, the main one being that no one has any idea of how to use them properly yet.

<comment><USER6> ConvNets can handle sequences just as well (cf. TDNNs), you just treat time as another dimension. Whether you want to call this a "frame" or not is subject to question.

[https://arxiv.org/pdf/1611.02344.pdf](https://arxiv.org/pdf/1611.02344.pdf)

With an explicit (potentially arbitrarily large) memory component, they can also capture long-term dependencies that don't have to be maintained in, say, the convolution parameters between presentations of data. This is one thing we want to pursue with the Faiss library at FAIR.

Regardless of how something is implemented, it's the what that is important. What's the actual algorithm or algorithms that the brain uses? It's likely easier to explore this question in floating-point math than putting together a lot of spiking neuron like things and trying to cargo cult your way to the answer.

<comment><USER7> It's interesting you used a Feynman reference here, as he was actually involved spawning the neuromorphic field at Caltech with Carver Mead [0].

You're thinking about this as if it's purely an algorithm problem and that computer architecture should always be designed to do the algorithms bidding.

Neuromorphic is flipping the problem around and creates efficient architecture where algorithms do the architectures bidding.

The former is much better in the cloud with massive armies of general purpose computers while the latter is much better on the edge for anything implantable (very little heat can be generated or else you cook) or needs super low power (less than 1W).

Having worked on both sides of the spectrum I think there's room for both and the relative research funding seems reasonable; much more invested in straightforward neural network research with GPUs etc versus the neuromorphic field where it's mostly a handful of Caltech folks left at places like Stanford, UCSD, GT, John's Hopkins, or UF.

[0] [https://en.m.wikipedia.org/wiki/Carver_Mead](https://en.m.wikipedia.org/wiki/Carver_Mead)

</comment></comment></comment></comment><comment><USER8> > spiking neural networks

Move along, nothing to see here. Just a continuation of an old research direction that has _nothing at all_ to do with the current revolution in machine learning, except in name. Human designed spiking neural networks simply do not work well at solving any real world problems.

The important research in hardware for machine learning is focused on taking designs that _work_ , such as convolutional nets and LSTM RNNs, and mapping them to silicon in the most efficient way possible. There's a lot of really exciting stuff going on there, and none of it has anything to do with spiking neural networks.

<comment><USER9> >The important research in hardware for machine learning is focused on taking designs that work

I'm sorry but that is a really glib remark. The best working neural net is the human brain, and the current direction of neural networks have completely abandoned resembling a brain. While backpropogation has led to impressive results we shouldn't forget that it was never found in neurobiology, and it's pretty antithesis to how the brain operates. In my opinion machine learning should reconcile with neurobiology, but it's too obsessed with the results backprop is giving them. Frankly all "machine learning" right now is impressive exercises in high dimensional differentiation using backprop.

I even remember a talk by a University of Toronto professors saying that even though neurobiologists have never found any support for large scale backprop at the heart of learning, maybe they should look again because neural nets are working so well with it. I would say they actually abandoned empiricism at this point.

Keep in mind that if we assume the brain to be akin to an evolutionary system like DNA then backprop is even more agrecious because it's like saying the sunlight and the organism is conspiring to optimise. That the sun, or sperm/egg are getting feedback from the organism and it's fitness to finetune how they mutate the offspring.

<comment><USER8> Given the choice between algorithms that work and algorithms that crudely mimic the brain but don't work, I'll choose algorithms that work every time.

Why waste millions of dollars fabbing chips for algorithms that we know don't work very well? It's cargo cult science, thinking that if we just build brain imitations without even understanding how the brain works then it will magically produce AI.

Spiking proponents should focus on simulation and brain measurement until they figure out how to simulate something that works. At _that_ point we can start making chips to improve efficiency. Meanwhile, the machine learning people may end up arriving at an AI that works as well as the brain or better despite operating on different principles, and that would be just fine!

<comment><USER10> > Given the choice

Why do we have to choose ? Surely it is better to attempt both.

Throughout the history of science knowing when something does not work is just as important as knowing when something does work.

<comment><USER8> Of course we should investigate both. But when spending finite research dollars, we do have to choose. Should we fab chips for both? No, fabbing chips is very expensive. We should only fab chips for the one that works. The other can be investigated just fine in simulation.

</comment></comment></comment></comment></comment><comment><USER11> Perhaps someone can clear up my confusion, but I classify neural networks as just one category of algorithms. It doesn't strike me as something that will replace our binary systems anytime soon because, well, we haven't shown any systems being replaced. And I'm talking about things like an Operating System, programming language, audio driver, web browser, and so on. So I'm confused why "neuromorphic" chips are a big deal, apart from just being able to run our computer vision algorithms faster.

Additionally while inspired by the brain, that's all they are, inspired. There is still hundreds of differences between our neural nets in our head and the ones we build on the computer. The article talks about "brain-inspired architectures that route for efficiency and performance.", but aren't our own brains efficient because they literally grow new pathways on demand? I feel like this sort of flexibility is something we will never see in silicon, and I don't think we even have a computational understanding of it at all at the moment.

<comment><USER5> Brains do not really grow new pathways, they are more or less set in stone after development finishes.

The goal of neuromorphic chips is also not to replace operating systems for the same reason that quantum computers won't replace conventional ones. They have strong sides and weak sides.

When you say that all the networks are is inspired by biology, it is true, but varies hugely between implementations.

Boahen is of the "true" neuromorphic school, people who use actual analog silicon neurons. These people are exclusively found in academia as all of industry only uses digital techonology. This includes the coveted IBM TrueNorth "neuromorphic" processor.

Thus the goal of these projects is not just to create supercomputing architectures, but to create systems that mimic the way the brain works and thereby learn how it manages to perform all these complex operations.

<comment><USER11> > Brains do not really grow new pathways, they are more or less set in stone > after development finishes.

Neuroplasticity and Neurogenesis has been observed well into adulthood though [1].

> Thus the goal of these projects is not just to create supercomputing > architectures, but to create systems that mimic the way the brain works and > thereby learn how it manages to perform all these complex operations.

Sounds like a lot of expensive guesswork to me! Good luck to them I guess.

[1] [https://web.stanford.edu/group/hopes/cgi- bin/hopes_test/neur...](https://web.stanford.edu/group/hopes/cgi- bin/hopes_test/neuroplasticity/)

<comment><USER7> There have been successes of this line of research. For example, touchpads and Synaptics came from thinking about how to build analog capacitor networks [0]. There are spiking cameras that can produce significantly higher range and temporal resolution than conventional approaches [1]. Like neural networks, the field sort of quieted down in the 90s but perhaps now is a new time for the field.

If you view the purpose of academics to train the next generation rather than simply advancing the field, the quality of reasearchers and engineers that come out of Kwabenas lab is superb. They easily work at companies like Intel, SpaceX, NIH, etc.

[1] [https://inilabs.com/](https://inilabs.com/)

[0] [https://en.m.wikipedia.org/wiki/Carver_Mead](https://en.m.wikipedia.org/wiki/Carver_Mead)

</comment></comment></comment></comment><comment><USER12> Kwabena Boahen spoke in the Stanford EE Computer Systems Colloquium April 5. See [http://ee380.stanford.edu](http://ee380.stanford.edu) for series schedule, [http://ee380.stanford.edu/Abstracts/170405.html](http://ee380.stanford.edu/Abstracts/170405.html) for abstract and links, [https://youtu.be/vHlbC74RJGU](https://youtu.be/vHlbC74RJGU) for the talk published to YouTube.

</comment><comment><USER13> "Brain-like" can mean either of two things, the circuit approach or the algorithm approach. 1) Circuits: Its components look like neurons (analog internals, spikes, etc). Algorithmic: 2) It performs the same real-time 3-D tomography/simulation/control which real brains perform. This second approach is unusual in ignoring "neurons" entirely, but has the advantage that 3-D reconstruction from undersampled, quantized inputs is a well-posed computational problem, although it does require a difficult-to-imagine continuous, self-amplifying 3-D representational medium to make it work. My caclulations indicate the second approach is at least 10^8 more efficient than the circuit-based approach at doing what brains actually do ([https://arxiv.org/pdf/1409.8275.pdf](https://arxiv.org/pdf/1409.8275.pdf)).

<comment><USER3> "Brain-like" is not a binary property. A recurrent neural network is more brain-like than a Turing machine. Numenta's Cortical Learning Algorithm is more brain-like than an RNN. Blue Brain simulator is more brain-like than CLA. And so on.</comment></comment>


How Long Does it Take to Build a Technology Empire? - <AUTHOR> http://www.ipo-dashboards.com/wordpress/2009/08/how-long-does-it-take-to-build-a-technology-empire/

<comment><USER2> The more important metric is how much impact. Money is a byproduct of impact derived from novel solutions to 'dinosaur' problems.</comment>