Why you shouldn't use getters and setters on Android - <AUTHOR> http://blog.leocad.io/post/why-you-shouldnt-use-getters-and-setters-on-android <comment><USER2> So, calling a "getter" method is slower (x1.5 to x2) than directly accessing a private field. Nothing new here: everyone with a fair understanding of how computers work should know that calling a [virtual] function is a more complex operation than accessing a field, hence it takes more time to complete. It's actually reassuring to know that it's _only_ x1.5 to x2 slower, so thanks to the OP for figuring that.

However that still doesn't make it a valid argument to discard accessors entirely. Getters and setters play an important role in a critical principle of OOP, which is object encapsulation. They form the boundary between and object contract (or interface) and its implementation.

Every time you write code that directly accesses an object's field, you introduce a new dependency to how this object was implemented - and this is bad, because you should always depend on _what_ it does, not _how_ it does it.

And this is also true for plain "data objects" : they are objects, they provide data. You need to know what data they can provide; you shouldn't care about how they provide it. Leave that to the guy who write these objects' classes - and if it was you, learn to be schizophrenic.

Dependency to implementation just make maintenance operations harder, which IMHO is a lot more evil than losing a bit of performance. It's a trade-off I can accept easily, especially since computers and devices still get more powerful and most applications just don't require that much power to run smoothly - and if it does, you should optimize your code structure and algorithms instead of looking for micro-optimizations like that.

<comment><USER3> I've never found this argument very convincing.

By adding the methods "string get_Name()" and "void set_Name(string name)" you are making _exactly_ the same contract as if you have "public string Name".

There is no extra dependency here - the dependencies are identical.

<comment><USER4> I always thought the point was not that you can do the exact same thing but that you don't care if it is doing the same thing or something crazy complicated to return something to you.

OOP works much better in teams and is a bit/lot of overhead when you are making contracts with yourself.

However if I'm working with someone and they tell me call this to get a name then ill do that, if later they realize they need to split out the name into first and last I can still use that old function to get the full name by them combining the strings and returning that in that old "getter".

PS that might be a very poor example, hopefully you get my point :)

<comment><USER3> I agree with you, for APIs - or very large teams where you can't communicate in person easily.

(And that's where C#'s way of dealing with getters and setters is a big win, because they look like member variables, so there's no extra kludginess.)

</comment></comment></comment></comment><comment><USER5> And why use a RNG, when you can just return 3? [http://xkcd.com/221/](http://xkcd.com/221/)

The reason to use accessors is encapsulation. If the public field is private to your package/application then by all means access it directly, but if you are exposing it publicly then expect your application to be broken by third parties.

By providing accessors, you are communicating to a developer a strict mechanism for interacting with your library/application.

What if myString (in your example) needed to have bounds or be formatted in a specific way (validation)? What if it does in the future?

Without strict application flow control enforced by accessors (i.e. allowing your objects fields to be hijacked at any time, from anywhere), you cannot be sure that your application will be consistent.

<comment><USER6> But how do we know that the 3 is random? Maybe you have some hidden three-ist agenda? I'm much more inclined to trust Randal on something like this than some random guy on Hacker News!

Then again since you're some random guy....

</comment></comment><comment><USER7> You could have skipped the Benchmarks, the official Documentatcion already said that you should not use internal getters/setters because of the bad performance. [http://developer.android.com/training/articles/perf- tips.htm...](http://developer.android.com/training/articles/perf-tips.html)

</comment><comment><USER8> While the benchmark shows that there is a measurable difference between using getters/setters and NOT using them. I have doubts this would make a great deal of difference in application level code. The performance bottlenecks are most likely going to be IO or calls, or if the app is CPU bound, actual calculation code.

I'd be willing to bet the percentage of time spent in getters and setters on the call stack is pretty insignificant.

<comment><USER9> That is a very desktop application view. As programmers we should consider CPU cycles equating to battery life.

Whilst it might not have a big impact, if every programmer thought pragmatically about energy usage then the environment as a whole would benefit.

<comment><USER10> I think the point is that whatever slowdown the use of Accessor pattern introduces will actually be a lot smaller than 2X, which is useful information when deciding whether to discard the great benefits of using the Accessor pattern that others have mentioned.</comment></comment></comment>


YouTube Rewind 2018 becomes site's second-most disliked video - <AUTHOR> https://www.bbc.co.uk/news/blogs-trending-46507374 <comment><AUTHOR> Rewind 2018 [https://www.youtube.com/watch?v=YbJOTdZBX1g](https://www.youtube.com/watch?v=YbJOTdZBX1g)

Top comments are telling:

> Who the hell are these people?

> If you have a platform with thousands of creators and only get along well > with twenty... You know you are a failure.</comment>


Investor Dave McClure: 'Open is for losers' - <AUTHOR> http://mobile.venturebeat.com/2010/05/19/dave-mcclure-open-is-for-losers/

<comment><USER2> _"I'm very afraid of a world in which we are all Steve Jobs' slaves, Graham said. If anything can save us, it might be Chrome. When Costolo asked whether he would invest in a company building for the iPhone versus Google's Android platform, Graham answered, Of course iPhone. I'm talking about what I hope will set us free, not what will generate opportunities._

I would see setting us free as _the_ opportunity.

<comment><USER3> Okay I don't get it. If Graham is afraid of a Steve Jobs world, why did he answer iPhone to that question?

<comment><USER4> I don't get what it is that you don't get.

The fear he has is that a Steve Jobs world is one in which the overall ecosystem for startups is significantly weaker than it would otherwise be. And the reason for that is that Apple will be a gate-keeper, and will be in a position to just take all of the most profitable ideas. It would be like how Microsoft dominated the world of desktop applications in the 1990s - not fun.

The question he was answering iPhone to was whether there exist, today, better business opportunities in the iPhone space or Android space. If you're going to target one, absolutely there are better profit opportunities in the iPhone space. It is kind of like how in the 1990s, despite Microsoft being a major bully in the Windows ecosystem, marketshare meant that there were still better business opportunities doing desktop applications for Windows than for Linux or Mac.

The two questions have little to do with each other.

</comment></comment></comment><comment><USER5> I don't understand why we have to make this a binary, zero-sum game. There is a continuum from completely open to completely closed and most companies operate somewhere in the middle. Open software simply allows us to spend less time reinventing everything from the ground up and more time building something new. Where would Apple be now without the BSD userland, GCC, KHTML etc?

The question a smart founder or investor should be asking isn't "Should I build an open or closed system?". It's "What can I build that has the most value?". You'd be crazy not to use as much open software as a foundation as possible and it's good for the health of your business and the industry as a whole to give something back in return.</comment>


How Web-Savvy Edupunks Are Transforming American Higher Education  - <AUTHOR> http://www.fastcompany.com/magazine/138/who-needs-harvard.html

<comment><USER2> How web-savvy companies are going to burn some money, make some money, and leave the college world essentially untouched, I suspect.</comment>


Show HN: The best tech conferences, crowd sourced from the internet - <AUTHOR> https://crowdconf.org/ <comment><USER2> Needs to have some editing applied to the topics.

Note that "DevOps" is the same thing as "devops".

And it does make you wonder how long something like this will last until it gets spammed out of existence.</comment>


Feature Request: Manual Refresh of external calendar feeds - <AUTHOR> https://productforums.google.com/forum/#!topic/calendar/iXp8fZfgU2E;context-place=topicsearchin/calendar/ical <comment><USER2> Google doesn't care that the Picassa system's servers are used for bouncing spam. The spam arrives with a from-envelope address of "<random-id>@photos- server.bounces.google.com". This has been going on for years and reported to Google repeatedly. They don't give a damn.

I bet you my e-mail server has caught this recently. Let's see:

      # zgrep photos /var/log/exim4/rejectlog*
      /var/log/exim4/rejectlog.17.gz:2016-07-24 04:34:41 H=mail-qk0-f201.google.com [126.96.36.199] F=<email@example.com> rejected RCPT <firstname.lastname@example.com>: Too many components in domain name
      [... snip, a number of hits going back to May ... ]

There we go: the most recent spam attempt was on July 24, 2016. Someone tried to use Picassa to spam my ADA MP-1 mailing list.

So _that 's_ how I'm catching this stuff now: my rule against too many components in the sender domain is taking care of it, currently, before anything more specific.

Here is one 2012-dated discussion about this:

[https://productforums.google.com/forum/#!topic/gmail/bQd_kZl...](https://productforums.google.com/forum/#!topic/gmail/bQd_kZlscFE)

It goes back before that, though, to at least 2010.

</comment><comment><USER3> So, much fun as it is to bash Google, this _is_ a feature request. They're not obligated to implement a free enhancement on any sort of timetable.

This isn't like when Google actually broke the telephony in the Nexus 4 and then finally closed the issue with a middle finger: [https://code.google.com/p/android/issues/detail?id=82949](https://code.google.com/p/android/issues/detail?id=82949)

</comment><comment><USER4> You get what you pay for.

My calendar on my phone routinely forgets to remind me, even though clearly the entry says "remind me 1 hour before" and other events with the same reminders work fine.

Are there any good calendar hosting companies where I could pay a few $$ a month for decent features, bug fixes, and service?

<comment><USER5> 5 minutes ago my FastMail calendar sent me an email reminding me of a dental appointment tomorrow morning. FastMail in general seems reliable (except for the long outage they had 3 years ago).

<comment><USER4> Thanks, I'll look in to it. Hopefully reminders come in forms other than email, there's a decent android app, and I can access an exported ical format programatically for backup purposes.

<comment><USER6> Fastmail is quite reliable, and they support CalDAV and CardDAV. Their android email client is fast but doesn't work offline--fortunately they support IMAP Push and work very well with whatever 3rd party email client you prefer. I haven't moved my personal domain over there yet, but I've been using a paid tier for several emails with them for over 10 years and have been very happy. I haven't tried the exported ical format programmatically, but some of their devs are active on HN and if you shoot their help desk a question about it I expect they'll get back to you promptly.

</comment></comment></comment></comment><comment><USER7> How can this not get fixed after 10 years? You'd have to assume that googlers use their own Calendar, so why aren't they out with pitchforks to incentivize the programmers? Do the in-house Calendar feeds get refreshed every hour or so?

<comment><USER8> It's probably a real pain in the ass to fix - with some dumb tech debt reasons why.

But, what's probably contributing the most to it is how Google incentivizes people internally. The promotion process is tied very heavily towards launching new features.

Maintaining existing products is (often) a bit of a career dead end for Googlers. It's safer to chase some new and shiny feature.

</comment></comment><comment><USER9> Reminds me of what's going on right now in Chrome:

[https://bugs.chromium.org/p/chromium/issues/detail?id=608016...](https://bugs.chromium.org/p/chromium/issues/detail?id=608016#c53)

<comment><USER10> For all of us HN readers, backspace to go back made intuitive sense from the first time we accidentally hit backspace years ago. However, I imagine for every one of us, there are tens of folks who use computers sparingly and get confused when hitting backspace takes them to a wholly different page. In the end, this might make chrome easier to use for the common man at the expense of a tiny performance hit for power users.

<comment><USER11> I'm a user of Firefox, and have backspace to go back disabled, due to having accidental navigation happen way too many times. When I do want to go back, I can always press alt+left

<comment><USER12> Problem is that you can't press alt+left with one hand. Backspace wasn't reliable but at least it worked when you tabbed away from any active inputs.

<comment><USER13> You can use alt+left with one hand, just use the right hand alt key.

<comment><USER11> Many keyboard layouts have altgr instead of a right alt key, and it won't work for this.

</comment></comment></comment></comment></comment></comment><comment><USER14> My mind was blown when I discovered this little gem recently:

[http://www.computerhope.com/unix/ucalande.htm](http://www.computerhope.com/unix/ucalande.htm)

Place a text file at ~/.calendar/calendar with one event per row, containing the date and the title separated by a tab. Type calendar and you'll get a list of what's coming up in the next few days. You're done.

Being a venerable UNIX utility there are of course a variety of options (switch to view X days in the future, support for including external calendars, support for recurrence, etc.). Weirdly, it lacks any concept of start and end time, but this is easy enough to simply include in your appointment's title. And no free/busy or special sharing mechanism (though you could certainly compose your calendar of several files and expose them on a web server easily enough).

It's not about to replace a full-blown calendar app for power users, but if you're the type of person who has a fairly light meeting schedule and spends a lot of time in a terminal... I was immediately done with all other calendar software and consequently all the problems of said software when I stumbled across this thing.

<comment><USER15> Even better is "remind": [https://www.roaringpenguin.com/products/remind](https://www.roaringpenguin.com/products/remind)

</comment></comment><comment><USER16> It's the cult of the API.

I have personal experience with this. Because of the lack of reliable iCal sync, a project I worked on had to spend over a week and a half of developer hours implementing, troubleshooting, and maintaining Google Calendar API integration for our users. It's the source of no shortage of pain for this app as it is a sideline feature, but has just enough demand that Google integration cannot be dropped.

Google doesn't want to support iCal because they want to have everyone use their API.

<comment><USER17> Same for IMAP being deprecated in favor of the Gmail API, which gives access to many more features.

<comment><USER18> For clarification:

What does the Gmail API add over IMAP?

</comment></comment></comment><comment><USER19> Github has a similar thing, a issue which has been open for over three years and has received innumerable upvotes[0] with essentially no official response as far as I can tell.

[0]: [https://github.com/isaacs/github/issues/18](https://github.com/isaacs/github/issues/18)

</comment><comment><USER20> "I hope this can be resolved soon..."\- dawnjc79 4/17/12

poor guy

</comment><comment><AUTHOR> I was just wondering why a feature as simple as this one with lots of demands is still not implemented (or rejected). (6 years !!)

<comment><USER21> Pretty funny how an ambiguous date format ("1/5/10") led to two interpretations of how long ago this was (6 or 10 years ago).

To clarify: at the time of initially writing this comment, there were only two comments in this thread: the parent of this comment, which said it was 6 years ago; and another, which said it was 10 years ago. I don't know or care whether it was legitimate for either to come to the conclusion they did, I just thought it was funny, and that it was most likely due to the super-short date format inside the link. Can we move on please?

<comment><USER4> How can 1/5/10 be interpreted as 10 years ago? The only two interpretations I can think of are "January 5, 2010" and "May 1, 2010".

<comment><USER22> I don't see where 10ya comes from, but DMY, MDY, and YMD, at least, are all plausible interpretations.

<comment><USER4> YMD is only plausible if the first number is 2-digits or 4-digits. How is "1" a year? Unless we're talking about 1AD...

<comment><USER22> > YMD is only plausible if the first number is 2-digits or 4-digits. How is > "1" a year?

During the first decade of the 21st Century, I regularly encountered dates, especially handwritten, with single digit years, because some people _first_ reduce to a two-digit year when writing dates, but then -- as with any other number -- leave off leading zeros.

<comment><USER4> The date in question ("1/5/10") was formatted by a computer, so hand-written dates seem pretty far off topic.

But even ignoring that, I've never ever seen a single person write a single- digit year. Not alone ("I graduated in 1" vs "I graduated in 2001"), not in dates ("August 7, 1" vs "August 7, 2001"), not anywhere.

</comment></comment></comment></comment></comment></comment></comment><comment> mark-r Google is all about scale, and caring doesn't scale. This is part of their DNA.

This might seem like a flippant comment, but it explains a lot of the observations I've made of Google over the years.

</comment><comment><USER23> Another funny Google problem. Backup via adb has been broken since 1.0.32. Nobody cares [https://code.google.com/p/android/issues/detail?id=208337](https://code.google.com/p/android/issues/detail?id=208337)

</comment><comment><USER24> As someone who builds a scheduling product which offers an iCalendar feed for Google Calendar (among others), I have to face this issue on a weekly basis.

The most plausible explanation I came up with (and what I tell my users) is that Calendar is maintained by a small team in Switzerland for which this isn't a priority. I don't blame anyone, if true. It might not be easy to fix with little resources.

The fact that some feeds sync faster than others (Facebook events) and syncs speed up as time passes, makes for a weird case.

Outlook.com or iCloud/iCal sync properly. One of those offer a way out for my users if critical.

</comment><comment><USER25> I think Google cares, but they're not communicating it very well. I would hesitate before building a feature that might kick off a relatively complicated process with a lot of external factors whenever a user wants. It seems very complicated and without much positive benefit for the average user.

</comment><comment><USER15> Is this just a problem when subscribing to calendars published through Google? In other words, if I host an iCal calendar on my own server, will subscribers see changes immediately when they refresh their Google Calendar client?

</comment><comment><USER26> They'd have a lot more clout if they were customers.

</comment><comment><USER27> hey, other google users which are volunteers are answering all your questions. You are not supposed to talk directly to Google! ;)

</comment><comment><USER28> Was this hidden from the front page?

</comment><comment><USER29> The previous title, "Google just don't care" violates the guidelines by being editorialized. Please use the original title unless it's misleading or clickbait.

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

<comment><AUTHOR> Ok sorry :-)</comment></comment>


Proxy Web Crawler - <AUTHOR> https://github.com/rootVIII/proxy_web_crawler/blob/master/proxy_crawler.py <comment><USER2> I read the Readme. Still not sure about the problem it solves. What's the use case?

<comment><AUTHOR> Ah... well I used to run a mildly popular website... I originally wrote it to "bot" my site 24/7.... it can be used to see the index of your site depending on keywords. Also you can drop payloads with it... use it for brute force password guessing... or you can use it for SEO as well... even though it searches with Bing, Google may know about the visits if you use Google Analytics... many use cases may present themselves with very minor modifications to the code... enjoy!</comment></comment>


NUMA (Non-Uniform Memory Access): An Overview - <AUTHOR> http://queue.acm.org/detail.cfm?id=2513149 <comment><USER3> Running a VoIP platform, we've "discovered" that instead of running one big process (which spawns lots of threads), we run one process per core or socket (still experimenting). We force affinity so the scheduler can't bounce stuff around. We've gotten somewhere between 200% and 500% efficiency from doing so, as well as minimized variation (that is, the one-process-per-server machines see huge CPU spikes, whereas the affinity locked systems don't).

The way I see it: You've gotta figure out your scale-out or load balance method. It might not hurt to just pretend each NUMA node is a separate server and just treat it like that.

<comment><USER4> That is not the point of NUMA at all. If you are just going to use RPC to integrate a bunch of computers in a cluster, why would you want to bother with the Non Uniform Memory Access abstraction at all?

NUMA is kind of out of fashion though. For everything it claims to do, there are better alternatives (MPI, map reduce, actors, ...).

<comment><USER5> What in the world do actors & map/reduce have to do with memory locality?

<comment><USER4> They involve alternative communication mechanisms that are not shared memory.

<comment><USER5> No they are abstractions around shared memory. Actors are a good example of where having an understanding of NUMA can have serious performance implications.

If you architect your actor system so that all of your actors are on the same socket, all message passing (assuming messages are small enough) can happen in socket local cache. This will be much faster than having to cross socket memory or even worse going to main memory.

Conversely, if you aren't paying attention to memory locality you could see unexpected performance degradation as you add actors, because even though your system is more parallel there is more overhead in memory access.

</comment></comment></comment></comment></comment><comment><USER6> Excellent article - writing NUMA-aware code such that it's aware of where a thread's memory is compared to what socket it's on is very important for high- performance code.

You can get serious speed gains by reducing latency.

Similarly, writing cache-aware code (in terms of the cache hierarchy) and locking down thread affinity can have serious benefits as well, especially on OSs with rather poor schedulers like OS X and Windows, which tend to bounce threads around a bit too much.

<comment><USER7> Multi-socket systems are uncommon these days. Tuning for NUMA can make a difference for the subset of users who can utilize more parallelism than you get from a single socket, but can't use a cluster (that would scale further than multi-socket system).

Even then it only works if the app spends most of its time waiting for cache misses: it could reduce the runtime of a 60% stalled app by 20%, using the 100ns vs 150s latency figure in the article - assuming as the starting point that the OS heuristic memory placement fails pessimally. Less than 20% in more realistic cases.

For the vast majority of apps, there are more serious perf gains to be had for same or less effort elsewhere.

<comment><USER6> What? They're not uncommon for servers or high-performance workstations - <USER2> dual/quad socket are very common.

I've seen close to 250% speed increases with NUMA-aware code (and tying thread affinity down) - writing things so the code's aware of where the memory is and targets thread jobs to cores on sockets that have that memory already can significantly reduces memory traffic over the QPI links, which if you don't do (with AVX instructions trying to do 8 floats per clock with IB) systems tend to just be memory-starved, as they can't feed data to processors fast enough from main memory. Especially with Xeons, as the pre-fetchers are so aggressive.

<comment><USER7> You moved the goalposts - I said they're uncommon in general. Though even most servers are single socket these days. Most high performance parallelized code runs in game engines, media codecs, and things like that.

I can believe you can see speed increases like you cite with bandwidth-bound code, but would doubt this kind of optimization is good bang for the buck for most perf critical code.

<comment><USER6> What? Not if they're CPU-bound they're not. Look at Dell/HP workstation/servers: Z600/800 | Z620/Z820 range - dual sockets, all of them. The cheaper configs might only come with one CPU, but they've got two sockets.

I'm talking highly-parallelisable code like in renders/raytracers, fluid simulations, image processing. All that stuff needs huge amounts of memory bandwidth. And it's generally parallisable in both threads and with SIMD with SSE/AVX, so you're literally up against the cache/memory throughput limits of the system.

Game engines aren't _that_ parallel actually - even job queue based ones which are in theory very scalable have dependencies which means that generally there's a limit to the number of threads they can run at once. The above examples I gave can generally scale linearly, given memory bandwidth.

<comment><USER7> Most servers are doing pedestrian things like VMware, Exchange, web etc. and people buy server hardware for the RAS features. I'm saying apps and hardware you reference are uncommon.

games was an example perf critical code that seldom benefits from numa optimization.

</comment></comment></comment></comment></comment></comment><comment><USER8> There's gotta be a numa numa joke in there somewhere.

</comment><comment><USER9> [http://www.youtube.com/watch?v=MhuTaD-B4qs](http://www.youtube.com/watch?v=MhuTaD-B4qs) Sounds good to me.

<comment><USER10> A videoclip? Seriously?

<comment><USER11> I understand being confused/annoyed at spiritplumber linking a music video to make a pun.

I don't understand being confused/annoyed at the fact that he linked a video.

<comment><USER12> In many places, "videoclip" implies music video :)

<comment><USER10> I any case, I still don't get the pun.

<comment><USER11> The song is known as 'numa numa' by many people. It's not a very good joke.</comment></comment></comment></comment></comment></comment>


Facebook Is Getting Rid of "Secret" or "Closed" Groups - <AUTHOR> https://www.buzzfeednews.com/article/ryanhatesthis/facebook-is-getting-rid-of-secret-or-closed-facebook-groups <comment><USER2> This seems like a misleading headline: as far as I understand it you can still have the same effect: they've just made it an additional property of private groups instead of a whole separate category.

<comment><USER3> It is obviously clickbait albeit the title being technically correct. I would not have clicked it if the title mentioned the access level was being renamed.

</comment></comment><comment><USER4> So the difference is that they are renaming secret to private to reflect that they will be scanning the content of groups to review for content?

"the company has built a new tool called Group Quality, which scans all groups for content that breaks the platform's community standards — regardless of privacy settings"

<comment><USER5> I think the goal of renaming is to make it easier for people to understand. So when you post/comment in a group, you know exactly who will see it.

Not sure why Group Quality was included in this PR.

</comment></comment><comment><USER6> If I read correctly, then a correct headline would be "Facebook is adding non- discoverable Public groups", renaming Secret/Closed groups,and getting rid of nothing.

<comment><USER7> Yes, people here know click bait titles work which is why we are all here reading this and commenting on it.

</comment></comment><comment><USER8> Misleading, but it's BuzzFeed, so what do you expect.

Facebook is essentially changing Groups so instead of 3 categories with inherent discoverability rules (Public (find via search), Private (find via search), Secret (can not find via search)), they're separating the concerns of "Can non-members view posts?" and "Can non-members find this group via search?"

So this is actually now more flexible!

</comment><comment><USER9> > Group admins will have the option to have public or private groups and also > be able to toggle whether the group is visible in search results.

</comment><comment><USER10> They're basically renaming the options, but they will remain. Great clickbait, Buzzfeed! Never change.

</comment><comment><USER11> It's literally the same thing, just one setting for Public/Private, and a second for Visible/Not. Title is super clickbaity, they're not getting rid of anything.

I thought buzzfeednews was supposed to be better than classic buzzfeed, but I see they're really not.

</comment><comment><USER12> Clickbait trash title. Makes it sound like there will be no privacy on groups, perhaps in response to something.

They are renaming them with the same functionality, broken into two toggles.

</comment><comment> dfeojm-zlib I tried FB in early ~2000's because I had a @stanford email, but after a coworker's wife started tagging people and editorializing randomly, it was clearly more of a liability than value. I had emptied details and most content but kept for some old photos, but finally migrated and purged it this year because it's basically a vehicle of surprise privacy monetization to make Wall St. happy. If a social media service instead were instead subscriber- and donation-supported, it wouldn't develop such perverse incentives to sell-out its users to stay afloat.

<comment><USER13> Good for you. What does it have to do with the story?

<comment> dfeojm-zlib Facebook's accumulation of a pattern of making major, surprise changes that are mostly about benefiting money-making, directly or indirectly. Super popular but seemingly more and more terrible as time goes on.</comment></comment></comment>


Two GPT-3s having a debate on the stock market leads to shitting on humans - <AUTHOR> https://twitter.com/nikita_jerschow/status/1283755514061520898 <comment><USER2> Is there any difference between "Two GPT-3s" and "one" GPT-3? It's the same generative model accessed via API calls.

</comment><comment><USER3> no way. that's totally made up.</comment>


Haskell lightweight threads overhead and use on multicores - <AUTHOR> http://stackoverflow.com/questions/5847642/haskell-lightweight-threads-overhead-and-use-on-multicores

<comment><USER2> I have to add that Haskell lightweight thread takes about 75 words of memory (even with some small stack). Those are one of most smallest threads in contemporary PLs.</comment>


MoreCowBells: New revelations about the NSA's practices - <AUTHOR> http://www.lemonde.fr/economie/visuel/2015/01/24/cowbells-nouvelles-revelations-sur-les-pratiques-de-la-nsa_4561547_3234.html

<comment><USER2> I speak two languages - English, and Bad English. Any chance we could get a translation from the original article's French into one of the above?</comment>


Online Discussion Forums Don't Work. Will Threaded Video Replace Them? - <AUTHOR> https://www.edsurge.com/news/2017-03-17-for-online-class-discussions-instructors-move-from-text-to-video <comment><USER2> Video may be good for some other people. Personally I am very biased toward text. If I had the choice I'd choose to read a transcript every time. I'd probably not watch the video of other students. Why take time for someone to stumble through talking what I could read in 1/10th of the time.</comment>


Spotify makes offline mode available to Premium Subscribers - <AUTHOR> https://www.spotify.com/blog/archives/2009/10/01/spotify-goes-offline/

<comment><USER2> I hope this and the mobile client gives enough incentive for people to sign up for the premium accounts. Spotify is a great product that I enjoy on a daily basis, and I would hate to see it go under.</comment>


Let's not be pedantic about "Open Source" - <AUTHOR> https://www.arp242.net/open-source.html <comment><USER2> The better way to describe the difference is "permissioned" versus "permissionless" licenses.

I believe many people associate "true" OSS with the permissionless variety. The permissioned variety is less open source by popular sentiments.</comment>


Emojilog – A journal application with only Emojis - <AUTHOR> http://emojilog.surge.sh <comment><USER2> You should create a mobile app and publish it to both the Apple store, and Google Play store.</comment>


No CarrierIQ on Google flagship devices - <AUTHOR> http://www.theverge.com/2011/12/1/2602313/google-nexus-android-phones-and-original-xoom-tablet-do-not-include/in/2365736

<comment><USER2> Given all the recent news, I guess this article needs to updated, eh?

[http://www.extremetech.com/mobile/107337-carrier-iq-is- the-b...](http://www.extremetech.com/mobile/107337-carrier-iq-is-the-best- reason-yet-to-switch-to-iphone)</comment>


Ask HN: What is your favorite website for posting code snippets? - <AUTHOR> Its pretty common that I want to save/share a tiny  generic chunk of code to be re-used later.
Its typically too small/useless to be packaged, and seems to be about method signatures while switching around languages:
- parsing data
- jekyll helpers
- ruby/js/bash/etc. syntax for reading/writing/appending/etc.
just small junk that I'd like to reference very quickly and help others reference quickly if need be.
I have written and answered my own Stackoverflow question before but it feels stupid so I won't do that anymore. github gists don't often come up in google results and not easily categorized and such. <comment><USER2> I use Standard Notes [1] for this. Code editor + sharing lets me do this pretty seamlessly. Actually code snippets is part of the reason I developed this app.

[1] [https://standardnotes.org](https://standardnotes.org).

</comment><comment><USER3> gist.github.com

It also integrates well with Sublime Text 3 via a package

</comment><comment><USER4> Hi, probably a bit off topic but - [https://sparrowhub.org](https://sparrowhub.org) \- repository of (reusable) scripts.

</comment><comment><USER5> You can very easily get a free blog and just start blogging! [https://wordpress.com/](https://wordpress.com/)

</comment><comment><USER6> Related question: what are people looking for in these tools? Anything feel like it's missing?

<comment><AUTHOR> Stack overflow is pretty great except people go there when they have a problem and it is majority beginner with minority advanced.

I'd like to see a place that promotes sharing sharing code snippets and curating it.

Almost like [https://bootsnipp.com/](https://bootsnipp.com/) but entirely generic for code of different languages

<comment><USER6> Yes that's interesting. One thing that's always dogged me is that you can't really encapsulate snippets the same you can code.

For instance - it's easy to find a snippet for Quick sort, but if I want to add a user system to an app (something just as standard), that's like 30 snippets and across 4 files and it might not work.

</comment></comment></comment><comment><USER7> gist.github.com</comment>


Derek Thompson is wrong there is no tech market crash) - <AUTHOR> http://greyenlightenment.com/derek-thompsons-terrible-atlantic-article-there-is-no-tech-market-crash/ <comment><USER2> who?</comment>


"Invisible Electrostatic Wall" at 3M adhesive tape plant (1996) - <AUTHOR> http://amasci.com/weird/unusual/e-wall.html <comment><USER2> We did this experiment in physics back in college. If you get sufficient charge you repelled by charge of the same polarity. I would speculate that the charge on people was the same as the charge being created in the spooling area (it is a giant Van DeGraff generator type apparatus after all). That would also correlate with the humidity component as the humid air would have a lower dielectric effect and you would get a lower max charge due to leakage into the surrounding environment.

The edge of that electric field would feel to you exactly like you were a magnet of the same pole trying to move into it.

Per some other comments here the biggest risk would no doubt be creating a conductive path for the charge to dissipate. At those levels it can and does ionize air and create lightning.

Would be great to get a picture of the factory setup. I bet you could trace the charge sources. In physics 101 we had to compute how much charge you would have to have on your body to levitate off the ground. It was a lot less then you might imagine, the challenge of course was keeping it on your body and not zapping things nearby in the occasional ionizing discharge. I was busily thinking up high K clothing concepts for a while to try to solve that issue but alas, nothing came of it.

<comment><USER3> I bought a fairly large (750 KV) VDG kit on eBay a couple of years ago just for the lulz, and I soon came to appreciate how unpredictable and unintuitive electrostatic phenomena can really be. Not only was the charge-transfer mechanism between the belt, rollers, and brushes completely different from what I'd always assumed, but the macro-level effects were sometimes downright confusing. In some ways, the operation of a Van de Graaff generator is even harder to internalize than that of a Tesla coil.

I expected longer discharges in dry weather -- nope, it does better in moderate humidity. I expected styrofoam peanuts to be consistently attracted (or maybe repelled) when thrown at the sphere, not to be attracted at first and then rapidly repelled at some small distance from the sphere. I expected the strongest discharges to occur when the generator was operated with no large objects nearby; instead, positioning it within a few feet of a tall wooden bookcase results in sparks (in any direction) at least 25% longer.

So I'm not too surprised at tales of strange force fields in a cellophane-tape factory. I _am_ surprised that the rollers didn't have grounding brushes all over the place... but given my experiences with the VDG, for all I know that would have made things worse.

<comment><USER4> From what I was told in high school when they used to bring out the VDG's was that it would take a voltage potential in the millions to be harmful.

What my guess would be is that the mechanical energy from forcing the charged cellophane into compact rolls was forcing the free-electrons off of the cellophane belt and they were simply carrying on travelling. By the description it sounds like the rolling phase was giving the electrons a downward motion if it was a "tent" shape operation.

My guess it that it was simply a voltage-potential field. If the energy had found a way to ground itself it would have, and anyone walking around on a concrete floor wasn't going to provide a quicker route to ground. Probably similar to how a pigeon doesn't explode sitting on a power line, because despite sitting on a line with millions of watts of potential energy, until it comes actual energy (like when a tree branch hits across the lines) it's not dangerous.

<comment><USER5> Rather than a "force field," another possibility was Taser effect, where numerous tiny sparks to the skin will cause muscles to clench, making it impossible to walk. Search keywords: tetanizing beam

</comment></comment></comment></comment><comment><USER6> There is some more info from David Swenson:

[http://boards.straightdope.com/sdmb/showpost.php?s=b06561cd9...](http://boards.straightdope.com/sdmb/showpost.php?s=b06561cd9b21d94322e22d4b0705566f&p=4212704&postcount=22)

key quote:

> I think the best explanation has to do with the film being at or vaery near > the theoretical charge density limit and just the right combination of > resistance between the person and floor. With the electric field at its > maximum at the center of the tent formed by the film, the conductive body > (person) approaching the center was actually pinned to the floor. Had the > floor been more conductive, the person would have been closer to ground and > probably would have received a massive shock from a propagating brush > discharge. But being isolated from ground, no charge separation occured > resulting in the electrostatic "pinning" effect.

<comment><USER7> From the article: "He could lean all his weight forward but was unable to pass." With that one, I imagine if his shoes were stuck to the ground, he'd just fall down, or at least noticed the resistance came from the shoes rather than body.

</comment></comment><comment><USER8> 15 year old discussion, unfortunately. Makes it pretty likely this didn't stand up to scrutiny.

<comment><USER9> Could the OP please add [1996] to the title?

</comment></comment><comment><USER7> It's time to look for MythBusters suggestions email, I guess... If anyone has a budget to replicate that setup as a one-time funny activity, it's going to be them ;)

<comment><USER7> And I was too late, already submitted: [http://community.discovery.com/eve/forums/a/tpc/f/9701967776...](http://community.discovery.com/eve/forums/a/tpc/f/9701967776/m/20419888901)

</comment></comment><comment><USER10> Isn't this "invisible wall" basically a force field like they show on various Sci-Fi shows? Can it be replicated and used on a spacecraft to protect it from radiation and more importantly, small meteorites? That would be really cool...

<comment><USER11> did you see the speculation about recreating the effect but horizontally instead of vertically? you could effectively have an invisible platform!

<comment><USER12> _did you see the speculation about recreating the effect but horizontally instead of vertically? you could effectively have an invisible trampoline!_

Corrected that for you. ;-)

</comment></comment></comment><comment><USER13> Ah Ok, why isn't anybody trying to replicate and sell this ? it would be worth more than gold, and it's sitting there in an old maillist ? come on...

<comment><USER14> "why isn't anybody trying to replicate and sell this ?"

Because it can kill you, that's it.

Electrostatic motors(capacitive) are older than electromagnetic(inductive), but using way more voltage than current means touching it will kill you.

A lot of people have died from industrial plastic bags electrostatic charge with friction, so it now uses wire to ground it.

<comment><USER15> My understanding, albeit somewhat limited, is that generally amperes are a larger issue than volts in determining what sorts of electricity is dangerous. (Low voltage high amp circuits can't initiate sufficient amperage through the body to be dangerous in this way due to ohm's law but could still kill you through other means, such as burning you, but high voltage, low amp circuits are far less dangerous.)

What am I missing?

<comment><USER5> Cap discharge? One story was the Robert VandeGraaff got the idea for his generator from a Boston printing plant, where the metal body of an ungrounded newspaper press on a wooden floor would give dangerous shocks to anyone approaching closely. If a machine is many meters across, and charges itself up to many tens of KV, the body capacitance may store lethal (joules) level of energy, e.g. 50KV at 1000pF.

</comment></comment></comment></comment><comment><USER16> Here is some more information on the phenomenon that causes this

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

The most interesting section is how UCLA researchers created such powerful results that they were able to x-ray fingers.

[http://www.npr.org/templates/story/story.php?storyId=9613962...](http://www.npr.org/templates/story/story.php?storyId=96139621)

There are also a couple of videos on Youtube that show the effect in action.

<comment><USER6> Are you sure? There is no light involved

<comment><USER17> If there are sparks there is light. A spark is a very wide band transmitter - it creates just about every single frequency of light possible.

See <http://en.wikipedia.org/wiki/Spark_gap_transmitter>

</comment></comment></comment><comment><USER18> This happens because of this: <http://en.wikipedia.org/wiki/Coulomb%27s_law>.

Mythbusters should definitely try this!

</comment><comment><USER19> I remember <http://amasci.com/> from over 10 years ago. A fun website. The hand-drawn holograms, for example, are great.

</comment><comment><USER20> If this actually happened, don't you think 3M engineers would be aware of the effect before it was making a wall the size of a room that could stop a human? They didn't notice small parts and dust being repelled? And they couldn't capitalize on it even just by making a small public display of hovering objects?

</comment><comment><USER21> This is one of a couple tantalizing stories I've seen on that site over the years, something that sounds really promising but then leads nowhere, calling the whole story into question. The other one is the lawnmower engine retrofitted with a magnetron in place of the spark plug, turning the engine into a type of steam engine running on water. Poster acted like it was no big deal, and apparently moved on to more interesting things.

<comment><USER22> Ok, this magnetron-on-lawnmower thing is interesting me. The problem I'm seeing is that unless you run an extension cord to the mower, it's not actually going to do anything. Steam is a useful way to turn pure heat into something that can push a piston, but turning water into steam doesn't actually generate any new power. I think it would be really cool to do... but the end result would surely be no better than simply putting an electric motor into your lawnmower.

Also, this definitely reminds me of all those "free energy/orgone/powah of da pyramids" kind of things that people without a decent physics education get suckered into. Run your car on water!

</comment></comment><comment><USER23> If this effect were real, this would be ideal for scramjets and re-entry vehicles to reduce friction related heat.

<comment><USER24> Contrary to popular belief, the reason that spacecraft heat up upon re-entry is gas compression, not friction (remember the ideal gas law, PV = nRT). The gas would still be compressed by the electrostatic barrier, so the heating would still occur.

<comment><USER3> Is there really a difference between heat generated by friction and heat generated by gas compression, at the end of the day?

<comment><USER17> Of course. They work very differently.

If you have heat from friction you expect the heat along the length of the ship.

If you have heat from compression you expect it at any point where the ship is not parallel to the air - but not along the length of it.

Heat from friction can be aided by a low friction surface material.

Heat from compression can be aided by not having any surface very perpendicular to the air (spread out the change in angle over a distance).

With heat from friction you want a short ship - so just have the angled surface and be done with it.

Heat from compression would benefit from a longer ship so you have space to gradually change the angle of a surface.

<comment><USER3> _If you have heat from friction you expect the heat along the length of the ship._

How in the world does that follow? Heat from friction will be generated in proportion to cos(angle) between the airflow and the surface at any given point, just like heat from compression would. It will flow along the ship's surface and soak into its interior volume just as if it were generated by compression.

<comment><USER17> Um, air can't flow at an angle to a surface. It can only flow parallel to it.

<comment><USER3> But what's important is the behavior of the airflow at the point where it hits the surface and is forced to both compress and diverge. That's where the majority of the heat is presumably generated, right? Maybe that's where I'm misunderstanding the issue.

<comment><USER17> That heat is created by compression, not by friction.

And I would not automatically say that's where the majority is. Some is created there from compression, some from friction by flowing along the length of the ship.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER25> I wish smart phones were prevalent back in 96'. It would have been fascinating to view a video of the phenomenon described in this story, but I probably would have been skeptical thinking it was simply special effects.

</comment><comment><USER26> So this is the kind of thing that's going to make our hovercars hover?

<comment><USER27> Sure. All you need is a 20-foot wide sheet of poly film moving 20 feet up,over,and down at 1000 feet per second.

</comment></comment><comment><USER28> selling tickets might be nice....how i love product managers (even better sales managers) :)</comment>


Ask HN: How can I try and get my company acquired in a talent acquisition - <AUTHOR>

Quite a longterm HN user here. Throwaway for obvious reasons. :)
We're a small company (two people) that has developed quite a few mobile products on different platforms. Think iOS, Android and BB playbook.
All of our apps are heavily polished, very user friendly and look great.
We're currently finishing a really nice Android project that we're pretty excited about. Seeing as a lot of the big companies such as Google, Microsoft, RIM are investing heavily in mobile, what would be the best way to get the ball rolling? Or is pretty much the only possible way to get acquired in such a way to wait until they contact you? <comment><USER2> If you're looking for a big acquisition, you should look to grow your assets first. Raise some capital and increase profits. If you get that trend going, then chances are you will get some attention.</comment>


Boulder moves to fund citywide fiber buildout through debt - <AUTHOR> http://www.dailycamera.com/news/boulder/ci_31941127/public-support-high-boulder-moves-fund-citywide-fiber?source=mostpopular <comment><USER3> I went to school at the University of Colorado Boulder. Something this article doesn't mention is that the city already has over 100 miles of fiber laid that isn't currently being lit up: [http://www.govtech.com/dc/articles/Boulder- Colo-To-Light-Up-...](http://www.govtech.com/dc/articles/Boulder-Colo-To- Light-Up-Fiber-Optic-Network.html). There were several groups of students looking to build companies to utilize this existing infrastructure, as well as business interests outside the city, but it just never went anywhere. I hope that it will see use soon, I was very envious of my friends that would commute in from nearby Longmont that could use their awesome municipal ISP.

<comment><USER4> In Australia, fiber-to-the-home vs. fiber-to-the-node has been a fairly political issue about which I knew very little, so I looked it up. [1] After reading about parent comment and the miles of unused fiber, I wondered what the difference between fiber near my home vs fiber in my home would be, and found some good info. [2]

[1l [http://mobile.abc.net.au/news/2016-06-13/federal-election- nb...](http://mobile.abc.net.au/news/2016-06-13/federal-election-nbn-promises- past-and-present/7506714)

[2] [https://www.makeuseof.com/tag/whats-difference-fttc-fttp- car...](https://www.makeuseof.com/tag/whats-difference-fttc-fttp-care/)

<comment><USER5> There is new tech like g.fast that enables gigabit speeds over copper wire like an existing phone line for short distances.

<comment><USER4> I wonder what speeds would be achievable over the ancient copper wire in my building.

<comment><USER6> Depends. If it's 50+ years old it'll be fine, sure, some of the joints might not be, but that's not awful to fix.

Then Copper prices went up massively for a while and thinner guage twister pair went in at best, and Aluminium was used at worst.

</comment></comment></comment></comment></comment><comment><USER7> Some back of the napkin math. $140 million for 40,000 households in Boulder = $3,500 per household. If 50% of people subscribe (typical for municipal broadband), that's $7,000 per subscribing household, or higher than Charter's market cap per subscriber.

A quarter of the population of the city is below the poverty line. If the intent is to offer them subsidized broadband, let's assume we get no capital recovery from those households. That brings the cost to $4,666 per household, or $9,300 per subscribing household.

This is high, but not out of the ballpark. Verizon spent about $3,500 on average for each paying subscriber for FiOS. Chattanooga's system was about $5,500 per household.

<comment><USER8> $1.1m/year payback (20 years)

$1,100,000/year, 40,000 households, so $27.50/year mean income per household to service the debt.

If only 50% of households (you said people) subscribe, then $55/year mean income per household to service the debt. If, again, as you state, no capital contribution from households below the poverty line, then, using your math (which, btw, double counts these), we're talking $110/year, or $9.16/sub/month to service the debt.

Here in Austin, there are three providers of 1gbps/1gbps FTTH internet, and all are priced just under $60/mo.

I think someone can probably figure out how to build a similar service in Boulder, paying the City of Boulder $10/mo per subscriber household, and still make fat rolls of cash.

<comment><USER7> That $1.1 million is just for the $15 million initial phase, not the $140 million full buildout.

</comment></comment></comment><comment><USER9> Longmont (which is ~12 miles north of Boulder) got municiple broadband a while back. [https://www.longmontcolorado.gov/departments/departments- e-m...](https://www.longmontcolorado.gov/departments/departments-e-m/longmont- power-communications/broadband-service)

This also follows Fort Collins from 7 months ago: [https://arstechnica.com/tech-policy/2017/11/voters-reject- ca...](https://arstechnica.com/tech-policy/2017/11/voters-reject-cable-lobby- misinformation-campaign-against-muni-broadband/)

Note that Longmont took a couple attempts I believe to get it passed (it failed in 2009 and 2011, then passed in 2013)

<comment><USER10> Former Longmont resident/NextLight customer here. I can't understate how fantastic the broadband service is out there.

Usually my speeds clocked in around the 700-900mbps range (both up/down), and at its slowest, maybe 300mbps. No port blocking, so I could host my own web/game servers. The one time they performed maintenance, they notified customers a week in advance and scheduled the 15-minute down time to be around 3am. Since I was a 'charter' customer, my bill was a flat $50/mo, though I'm pretty certain that new customers don't pay much more than that.

I truly believe if more people understood what _good_ internet is like, there would be a MUCH stronger push for communal broadband services.

<comment><USER11> It doesn't have to be communal. I had Google Fiber. It cost more but was also great.

</comment></comment></comment><comment><USER12> I moved from Amsterdam to Boulder, CO. The tech ecosystem is amazing here. It's crazy how many tech companies are in a tiny city with ~100k people. You just walk down the street and it's Nest, Google, Github, JumpCloud, SolidFire, Logrhythm, VictorOps and hundreds of smaller startups. Great ecosystem. People are friendly and welcoming. It's amazing, except the internet. It's expensive, unreliable, and slowwwww.

<comment><USER13> Calling it a tiny city is a bit of a stretch considering the sprawl along the entire front range (South Denver to Fort Collins). You're suddenly at 3+ million.

<comment><USER14> Yep. Having worked in Boulder for 4 years, my observation is that the number of people who actually live in town are the minority. In-college interns or new college grads tend to live in town. There is a smattering of more senior engineers in Boulder as well. But it seems most people commute in from Longmont, Erie, Louisville, Superior, Lafayette, Broomfield, Denver, or Ft. Collins. I worked with a guy who commuted from Colorado Springs (!) daily. I have no idea how he stayed sane.

<comment><USER15> I thought the person I worked with that commuted from Fort Collins to Boulder was nuts, but the Springs?!? Hopefully it was a really fulfilling job.

<comment><USER16> I used to live in Fort Collins, and had to commute from there to Englewood/Tech Center area once every couple of weeks. Even that infrequently, it made me want to die. Usually the morning drive was tolerable, a bit over an hour if there wasn't an accident. But in the evenings it could take 2-3 hours, again without an accident. And there is ALWAYS an accident on I-25. I'd end up just staying in the office til 7PM or later because I'd get home at the same time whether I left at 5 or 7 anyway. I cannot imagine doing a commute like that daily for any reason. I'd get home in such a bad mood I that didn't want to see my family, just pour a drink.

Thankfully I was able to work remote 90% of the time in that role.

</comment></comment></comment></comment></comment><comment><USER17> Boulder has a population of about 110,000 people [1]. Given "the estimated cost of the entire network is around $140 million" [2], the per-capita cost of this network comes to $1,300.

I pay $80 a month for my 300 / 20 service. In 16 months, I would be able to pay for my share of this network.

[1] [https://en.wikipedia.org/wiki/Boulder,_Colorado](https://en.wikipedia.org/wiki/Boulder,_Colorado)

[2] [http://www.dailycamera.com/news/boulder/ci_31941127/public-s...](http://www.dailycamera.com/news/boulder/ci_31941127/public- support-high-boulder-moves-fund-citywide-fiber?source=mostpopular)

<comment><USER7> The math is bleaker than that (see my other post, calculating $7,000 per subscribing household).

Also, out of the $80 you pay, most of it gets eaten up by operational costs. Charter's EBITDA is about 35% of revenues. So even if the city pays no taxes., it'll take 250 months to pay back your share of the network.

<comment><USER18> This is precisely the kind of long term investment that cities should make.

<comment><USER19> That's twenty years. There is a decent chance that mainstream high speed Internet will be wireless in 20 years.

<comment><USER20> Wireless has been perpetually behind star topology wired networks despite the fact that it tends to be much easier to upgrade a few antenna's and radios around a city then make people buy new modems every couple years. Worse, wireless is really spotty, I can barely get a data connection where I work and at my house with my carrier, much less a few Mbit/sec. Like WiFi, the advertised peek rates tend to be far in excess of what your likely to get most of the time.

Optical communication is the same way, there is massive bandwidth that isn't being used, so while it might roll out at 1Gbit, it wouldn't' surprise me that in 20 years a x8 stranded fiber network would be well into the Tbit/sec rate.

<comment><USER19> I think you are significantly underestimating just how long a timespan we're talking about here. _Twenty years is a very long time._ Twenty years back predates 802.11b. In 1998, our houses and apartments were all wired up with cat5. In San Francisco, at the time, we were thrilled to have Ricochet modems that asymptotically approached ISDN BRI speeds (for that matter, we were generally pretty thrilled to get ISDN BRI speeds to our apartments to begin with).

You don't have to expect breakthroughs to think digging new trenches might be a mistake; all you have to believe is that wireless network performance will continue roughly along the trends it's already been following.

<comment><USER20> But wired speeds are getting faster too, you need only compare your ISDN modem, with what is possible with DOCSIS 3.1. I used CDPD (early cell phone data service) in the late '90's and that was 19.2 kbit/s which was actually at least in the same ballpark as the POTs modems. So its not like wireless is getting massivly faster and copper has hit a wall. It seems that faster DSP's also help wired communications mechanisms..

<comment><USER19> There is a clear and obvious point of diminishing returns, which you can see from the fact that to a pretty good first approximation nobody uses wired connections to connect their computers to the Internet; everyone uses 802.11. Yes: wired connections will be faster. But past a threshold, it doesn't matter, and the ease and lower cost of deployment will win out.

</comment></comment></comment></comment></comment></comment></comment></comment><comment> d--b The bigger picture is Boulder is attracting startups.

Having fiber broadband is a plus to that attraction. So a better broadband means a better economy: more activity, more jobs, more people, more taxes... The cost of that infrastructure makes total sense.

<comment><USER21> yeah I think they are less concerned with the cost/practicality and more focused on image. With Google increasing its presence this is just another move to paint us as a startup hub. I'm all about it

</comment></comment><comment><USER22> I works really like one of these projects to trial a 'practical' last mile, like something like cat6 for the last 100m.

In KC, I live in a 4 story apt, and frequently stopped to talk to the installers when Google fiber was pulling everything into the building. It really is Fiber to a jack in your unit, but the last 5ft is _still_ copper Ethernet. I figure they could have saved themselves a bundle of $ if they ran copper inside the building. The consumer wouldn't notice and it's a lot more practical.

<comment><USER23> For all but the smallest apartment buildings, this is not a good idea. Ethernet has a 100m limit. By the time you go up a wall, back down it, zig and zag around things in the ceiling, etc, you can quickly hit that limit. Then you can start getting errors such as packet loss, crosstalk, etc.

Yes, it depends on the size and layout of your building (maybe your building has a comms cabinet on each floor, or wing, etc) but its better to have one set of training for all your installers, rather than have every one be different.

<comment><USER14> I did technician work as a side job during college. It seemed like most dorms had data closets every floor/every other floor. Some buildings only had them in the attic and basement, but they were also usually limited to 4 levels. Are most large apartment buildings similar?

<comment><USER24> Does it really matter if there are comms closets nearby though?

It wouldn't surprise me if fiber optic cable was cheaper than cat6 to buy in bulk (Copper is expensive, and the process to manufacture the copper cables is more complex), and if you're doing fiber to the building anyway, you still end up with a media converter - so there is likely no significant cost saving there either.

It may actually be higher cost to have a centralised (within the building) media converter - ports need to be provisioned for the max possible customers up front. The class of hardware will likely be different too - <USER2> enterprise style datacenter hardware, instead of the cheap and easy to replace stuff they send to customers...

<comment><USER14> This was 10 years ago, but the data closets had SFPs on the switches for the fiber. So the cost of the "media converter" was really low - just needed a few. There was existing CAT5 in the walls, all of the runs would be well less than 100 m which is why I brought up the comm closets. For a new builds, I have no idea for the cost difference. But for the insane number of buildings wired with CAT5/CAT5e/CAT6, this solution works well. Trying to pull fiber to replace CAT5 (as in without removing the drywall) would be very expensive and likely to damage the fiber.

</comment></comment></comment></comment></comment><comment><USER25> Once in a while a story about another city getting fiber, while it's fantastic (without knowing much about the cost), progress is slow and even in the heart of the Bay Area, we are pathetically lagging. [https://fiber.google.com/newcities/](https://fiber.google.com/newcities/) is looking sparse and honestly worrisome. It's amazing how much the US is behind implementing another solution they invented.

<comment><USER26> That's bad, but also interesting that you can have the world's main tech region without much fiber to home. Maybe fiber isn't really that important.

<comment><USER27> > Maybe fiber isn't really that important.

My gut feeling is that it _is_ , but the current monopolies providing alternatives just haven't ruined the experience enough for this to be pursued heavily by people with deep pockets

<comment><USER28> What did Japan do with their vast broadband lead (which has now eroded entirely)? How did that dramatically benefit their economy? It didn't revolutionize their tech output, it didn't jump start their moribund economy.

Finland has been among the ten fastest nations in regards to broadband speeds for a long time. That didn't do much for their economy as it languished in a near ten year recession. It didn't spur an epic tech buildout, it didn't help them keep pace with what Sweden has accomplished for example, with the two nations having similar broadband speeds.

France has lagged extremely far behind in broadband, for two decades. They're among the worst in Europe at it. Does that mean their economy is doomed? They're well below Hungary, Bulgaria, Poland, and Russia in Europe regarding broadband. And yet there's Bulgaria, with a GDP per capita 1/6th that of France, and an economy that hasn't net expanded in ten years (off that much smaller per capita economic base, with far better broadband, you'd expect to see dramatic growth results, and yet there are none).

I think some healthy skepticism is warranted on the top end value proposition. Perhaps if you're down toward the bottom as in the case of France (in Europe), you do indeed suffer a meaningful penalty. Much of Latin America for example has very slow average Internet access speeds, I think that sort of outcome does harm their development potential. While common access to something like 50-100mbps cable may accomplish everything that 1gbps fiber does at this juncture for consumers and general economic development.

 _Maybe_ that will change soon, such that FTTH becomes invaluable to get ahead economically, there's practically no evidence that it matters currently or has mattered much the last ten years. I like the idea of muni fiber programs, more competition, and universal access to 1gbps to the home; and yet I've never seen any evidence that the high cost of rapidly building that out is justified (vs gradually over time).

<comment><USER29> Of course it doesn't matter economically - when only a tiny fraction of a potential userbase has anything approaching gige to the home there is going to be zero application development based on those requirements.

You may be entirely correct that "150mbps is good enough for anyone" \- but based on watching capabilities grow with data speeds the past 35 years I'd bet heavily in the opposite direction. If 50% of Internet users in the US had uncapped gige I think you'd see some rather interesting tech start using it once they can rely on it.

<comment><USER30> > If 50% of Internet users in the US had uncapped gige I think you'd see some > rather interesting tech start using it once they can rely on it.

and yet nobody ever has the faintest idea what would be done with it, despite the fact that every office building has been internally wired for gigabit ethernet (or faster!) for >10 years. what is anyone doing at work with it? what is anyone doing across large corporate campuses like google's or facebook's with all their internal bandwidth?

</comment></comment></comment></comment></comment></comment><comment><USER31> I work in downtown Boulder in a tech startup. The tech and startup scene is amazing for a city the size of Boulder. After Longmont and Fort Collins, finally Boulder will be getting the municipal broadband as well. Nice!!!

<comment><USER32> I'd just like to point out that Fort Collins voted in municipal fiber, but it has yet to be implemented as Comcast and I assume other telecoms have been pushing back and delaying the roll out. We had to re-vote on it last year to approve more money for the project.

<comment><USER33> I live in Fort Collins - bonds are being sold, and everything is going forward. In theory, the first customers should be on Mid to late next year.

</comment></comment></comment><comment><USER15> Neighboring Longmont has had municipal internet for years with success. Everyone I know is pretty happy with it. Glad to see Boulder is joining the party.

Although I don't live in Boulder (anymore), my office is there. I'll be glad to stop paying Comcast for terrible quality service.

</comment><comment><USER34> I have municipal telecom where I live in Vermont and it waaaaay faster and cheaper than the competition. It makes Comcast look like a joke. Hopefully, Boulder will have a similar outcome.

<comment><USER35> Burlington Telecom for the win!

</comment></comment><comment><USER36> What type of software engineering jobs are available in that area?

<comment><USER37> Pretty much anything you can imagine from front-end web to embedded circuits. Thing to keep in mind with Boulder is that it suffers from the same building restriction effects as SF, combined with explosive population growth, so you're going to pay out the nose for every square foot of living space. As long as you build that fact into your salary negotations Boulder is going to be awesome with a quality of life eons better than the coasts IMO.

I live in Colorado Springs for family reasons but would happily live in Boulder if things were a bit different.

<comment><USER36> Good to know. I literally do everything from HW comms to web UI to push all that data to the cloud. HW comms and protocols are where I'm best. Happy where I'm at but always looking just in case.

Been to Colorado Springs. It is a nice area.

<comment><USER38> Qualcomm has about 300 people in north Boulder.

</comment></comment></comment></comment><comment><USER39> Considering all the mergers that are going down I hope that eventually more cities follow this model.

</comment><comment><USER40> I've had Verizon FiOS fiber and it was just as bad as when I had terrible Comcast. Now I have Comcast in a different neighborhood and it's great.

Personally, availability/stability is WAY more important than bandwidth. I don't know what I'd do with over 200mbps. But in some of the places I lived, during peak hours, the internet would just stop working. That was very frustrating.

</comment><comment><USER41> The article mentions that ~5% of residences don't have internet, but I would wager the majority of those do have smartphones and can easily access the internet via cell data, coffee shops, public outdoor wifi, etc. Is it really that much of a travesty if it's hard to stream movies on your couch?

</comment><comment><USER42> Municipal control of infrastructure +1

<comment><USER43> Agreed, and not just for fast internet. This is the path to true, competition- enforced net neutrality. It would be so much better to have municipal infrastructure than to have digital rights ping-ponging in the federal government forever.

</comment></comment><comment><USER44> I sure hope they don't need to open up roads(lane closures) to pull the fiber. Traffic is already agonizing, closures would make the commuting nightmare even worse for cars, buses & bikes alike.

<comment><USER45> Hopefully they're laying conduit with new road construction. I read somewhere that there are proposals to mandate that (can't remember if it was state or federal level).

Edit: seems like it's both:

[https://arstechnica.com/information- technology/2017/03/natio...](https://arstechnica.com/information- technology/2017/03/nationwide-fiber-proposed-law-could-add-broadband-to-road- projects/)

[https://arstechnica.com/information- technology/2014/10/fed-u...](https://arstechnica.com/information- technology/2014/10/fed-up-us-cities-try-to-build-better-broadband/)

[https://www.csg.org/pubs/capitolideas/enews/cs41_1.aspx](https://www.csg.org/pubs/capitolideas/enews/cs41_1.aspx)

[https://www.azleg.gov/legtext/50leg/2r/bills/sb1402s.htm](https://www.azleg.gov/legtext/50leg/2r/bills/sb1402s.htm)

<comment><USER46> AFAIK in Germany you are required to allow others to lay stuff in the hole if you dig the street up. So if fiber is not placed in there, that means no one is willing to pay for just the fiber, which is only a little part of the cost of doing full FTTH. Oh well, if the distance was more than the 5 or so meters recently in the neighborhood, I might have considered just placing an empty pipe with fan-out/splice boxes at the ends into the hole. But for just 5m it's hardly worth the effort.

</comment></comment></comment><comment><USER47> I am in boulder and can't wait, comcast fucking sucks, they just raised my rates from $79 to ~$120 with no warning, i hate them so much...

<comment><USER40> It wasn't because you started on a promotion deal and the deal ran out?

</comment></comment><comment><USER48> Now all your information can go through government-ran hubs!</comment>


IPFS Project Roadmap - <AUTHOR> https://github.com/ipfs/roadmap <comment><USER4> "2019 Goal: The most used code and binary Package Managers are powered by IPFS."

That's kind of stupid-ambitious for 2019 when another 2019 goal is "a production-ready implementation" and IPFS has been around for 3 years already.

This isn't a roadmap, it's a wishlist. And I'm someone who wants to see IPFS succeed.

<comment><USER5> The IPFS client is such an untunable memory hog that I turn it off whenever I'm not using it (which, of course, defeats the entire purpose). I would be ecstatic if we had something like the old uTorrent, but for IPFS. A nice UI, easy configuration, an ultralight implementation. It would be a dream come true.

<comment><USER6> Exactly this: such an ultralight, accessible implementation would make it better suitable to run on embedded devices and mobile phones. And since we still live in as fairly disconnected world this is probably an area where IPFS can accelerate.

<comment><USER7> I kind of made this [https://github.com/hsanjuan/ipfs- lite](https://github.com/hsanjuan/ipfs-lite)

May not be ultralight (running a DHT node isn't, but it does remove a lot of crust).

</comment></comment></comment></comment><comment><USER8> This is not a roadmap, but rather a wishlist. There is a fundamental problem that IPFS needs to solve first. This problem is called an efficient WebRTC- based DHT. In order to change the web, IPFS needs to become usable in the browsers. Since the backbone of IPFS is DHT, there need to be an efficient UDP-based solution for "DHT in the web". Right now this isn't possible and reasons are not just technical, but political. The IPFS team would need to convince all major players that enabling this DHT scenario is a good idea.

<comment><USER9> I actually wrote a DHT that operated over WebRTC itself with in-band signalling for my undergrad thesis, in the application/js layer. Total PITA, but a ... "good?" learning experience.

<comment><USER8> How could you possible make such a DHT? We live in the world of NATs, especially symmetric NATs, where each mobile phone user gets assigned a random ip:port every time it makes a connection. DHT, on the other hand, needs every node to have a persistent address that can be contacted any time. In other words, with the NATs, a DHT node cannot cache a bunch of peers and contact them later because those peers are no longer available at those addresses, so every time a node re-joins DHT, it needs to restart the bootstrapping process from scratch, from those initial hardcoded bootstrap servers. Effectively this makes this DHT a fully centralized system. WebRTC cannot solve this problem.

<comment><USER9> You have some proportion of power users that are outside NAT and WebRTC (they run a non-browser executable), their addresses can be shared over the network and stored locally. They provide STUN on rejoining, but are not hard-coded.

(Overall, yes this whole thing is a vaguely bad idea. But not totally degenerate / non viable, just not practically worth it.)

<comment><USER8> If this idea worked in practice, go-ipfs/js-ipfs wouldn't have so severe problems with connectivity.

</comment></comment></comment></comment></comment><comment><USER10> If you want to do package managers, your #1 priority should be Nix. Don't do something more popular where you help less, go with the thing that you can really provide the killer missing feature.

Nix + IPFS has been tried before, but what was missing is the Nix-side hierarchical content addressing of large data (not just plans). With the "intensional store" proposal, this should finally happen. Please push it along.

Data shouldn't be hashed like Nix's NARs, or IPFS's UnixFS for maximum interopt. Instead please go with git's model for all it's problems.

Thanks, hope someone can take me up on this because I'm up to my neck with other open source stuff already.

<comment><USER11> there's been some effort

[https://github.com/NixOS/nix/issues/859](https://github.com/NixOS/nix/issues/859)

<comment><USER10> Right but not connected to the intentional store.

</comment></comment></comment><comment><USER12> The vision of a IPFS-powered web working is beautiful.

However I would love to see a reference implementation that works at minimum and not just drains out your computer up to latest resource it may have. If we're so near the "production-ready" status of the reference implementations then I think that goal will never be achieved.

<comment><USER13> I see this comment often when IPFS is discussed - but the devil is in the details when it comes to replacing the underlying tech of "the web" with something else.

How does an IPFS powered website do dynamic content? User sessions? Is all the client's session data encoded in the IPFS address itself?

Even if there's no user sessions, but the page content updates, how do you continuously point clients to fetch the right updated page (e.g. how would you implement a Hacker News style aggregator that updates every minute)?

IPFS does static content just fine - CAS-es are wonderful for that - <USER3> websites are much more than static content.

<comment><USER14> For dynamic data, you need to use a CRDT system like GUN ( [https://github.com/amark/gun](https://github.com/amark/gun) ).

For instance, see P2P Reddit ( [http://notabug.io](http://notabug.io) ) which:

\- Running in production with GUN.

\- Handling about 42,000 monthly visitors. ( [https://www.similarweb.com/website/notabug.io](https://www.similarweb.com/website/notabug.io) )

\- Has done ~1TB in 1 day of decentralized traffic.

You can then configure GUN to save to IPFS as the blob/storage engine (or we have filesystem, localStorage, IndexedDB, S3, etc. as options).

It is basically like having a P2P Firebase :) with IPFS plugin.

<comment><USER4> It's a shame that so many P2P advocates - or at least the ones using the stuff built with P2P tech - are very loud alt-right types.

I popped on notabug.io just now, and the chat is full of swastikas, racial slurs, and the most up-voted posts are primarily anti-gay misinformation.

I see you wrote GUN, which I'm sure was no small feat, and it looks like an impressive piece of technology. How do you feel about your tech being primarily used in this way?

<comment><USER12> I just clicked on notabug and didn't see any swastikas or racial slurs. Are you lying?

<comment><USER4> You think somebody would do that? Just go on the internet and tell lies?

Warning: image contains racial slurs and swastikas: [https://i.imgur.com/0kdxzVR.png](https://i.imgur.com/0kdxzVR.png)

A little later in the chat, the developer chimes in and talks about some stuff. Then some people angrily accost them for censoring things. If the Nazis and the racists aren't censored, I don't want to think about the odious content that is.

Edit: Here's a thread from... yesterday, where a bunch of users are mad about the "censorship" of the developer hiding a swastika post from the front-page (not even deleting it or removing it from whatever their equivalent of a sub- reddit is): [https://notabug.io/t/whatever/comments/509b9189ece85515671d3...](https://notabug.io/t/whatever/comments/509b9189ece85515671d3074e71a40da8955cd03/go1dfish- censors-posts-based-off-political-content)

<comment><USER12> Well, to me these seem like some adolescents trying to be funny and go against the mainstream. They post swastikas and call racial slurs because they know they shouldn't be doing that. They aren't really nazis, right? They don't even know what a nazi is.

You can call this "decentralized reddit" a bad place, as it really is, but you can't say it's because it's "full of right-wing people". These adolescents are not "right-wing people".

<comment><USER15> > They aren't really nazis, right?

At some point... is there a difference? If you find yourself in a group "ironically" screaming you all support X for long enough, soon you'll find that some of you actually support X. And that you enabled those people.

<comment><USER16> Well and besides, the actual content on the site seems to skew alt-right pretty heavily, whether the racial slurs and swastikas are ironic or not. Taken altogether, it paints a pretty clear picture of a voat-style forum that will alienate most other people if it stays that way.

<comment><USER17> They're there because they've been excluded from mainstream sites. It may seem extreme, but one way to assess how uncensorable something is by its content of stuff that you hate. Even stuff like child porn that any sane person would hate. So you just ignore it.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER18> Would love to see Arch/Alpine Linux repo move to IPFS by default. Would also like to see better integration with Git, and an SCM platform comparable to GitHub (or GitLab). That could really get the developer community heavily involved in the project if it was sponsored by Protocol Labs.

<comment><USER19> Yeah! That's a thing we're working towards. We're currently looking into apt and npm, both efforts are coming along pretty well and driving development towards fixing the bottlenecks preventing it from "just working".

[https://github.com/ipfs-shipyard/npm-on-ipfs](https://github.com/ipfs- shipyard/npm-on-ipfs) [https://github.com/ipfs-shipyard/apt-on- ipfs](https://github.com/ipfs-shipyard/apt-on-ipfs)

</comment></comment><comment><USER20> In addition to apt and npm, I would like to see docker image distribution powered by IPFS. It really feels stupid to pull images from a central registry sitting on the other side of the globe when the image is already present in the next node in your kubernetes cluster.

<comment><USER21> There is a big issue, that ipfs uses its own hash mechanism (hash of protobuf of dag), while registries (and most other existing content based distribution mechanisms) use sha256 hashes of the whole content.

eg see [https://github.com/ipfs/notes/issues/269](https://github.com/ipfs/notes/issues/269)

So you can't simply interop between the two without some sort of lookup to convert hash functions. It is hugely frustrating, as basically different content based distribution mechanisms cant work together.

In theory docker image registries support pluggable hash functions, although it is not clear to me that the ipfs function is even very well defined outside its own code. We could start to add a second hash calculation to every registry operation, but it would be a performance hit which some users would not like.

(tree based content hashes that allow parallelisation are nice, but the ipfs one is very ipfs specific and more complex than it needs to be I think).

</comment></comment><comment><USER22> Discovery performance is the biggest issue I see. If I deliberately load the same file on a couple of peers, it can take hours (or forever) to be able to find a peer with that file to pin it. It is clumsy and difficult to explicitly connect to peers (because you can't just try to discover peers at an address, you need to include the node ID as well), and even if you manage to enter the right information, you won't necessarily succeed at connecting to the peer the first time.

</comment><comment> rob-olmos It's nice to see #2 for package managers, something I've been thinking about recently. I haven't look much into this yet, but I wonder if IPNS could provide a step forward in supply chain protection since package signing isn't available yet in certain managers/repos or not commonly utilized.

</comment><comment><USER23> I love the idea of IPFS, but I can't think of a use case not covered by torrents.

Would someone mind enlightening me regarding what sets IPFS apart from torrents?

<comment><USER4> Main feature is automatic data-sharing between distributions. With torrents, everything is siloed, and data is only exchanged between peers of that torrent. IPFS doesn't care /why/ you're getting information or the link you found it from, just that it can find it by its hash.

Say you distribute "Julie's Webcast Complete Series" and somebody else distributes "Julie's Webcast - Episode 3, with Russian subtitles," peers and seeders from both distributions can share data for the shared content. Similarly, updating a dataset only requires downloading the new data.

This is done automatically, both per-file hashing and (optionally, not sure the current state) of in-file block hashing.

<comment><USER24> > Julie's Webcast - Episode 3, with Russian subtitles

> peers and seeders from both distributions can share data for the shared > content

So does IPFS have "plugins" for different archive/container formats so it can "see" that the underlying video/audio streams are identical between "Julie's Webcast - Episode 3.mp4" and "Julie's Webcast - Episode 3, with Russian subtitles.mkv"?

Otherwise container stream interleaving will play holy hell with any sort of "dumb" block hashing :(

<comment><USER4> Last I checked it was dumb. Possibly breaking block boundaries based on a rolling hash.

<comment><USER11> [https://github.com/ipfs/go-ipfs-chunker](https://github.com/ipfs/go-ipfs- chunker)

> go-ipfs-chunker provides the Splitter interface. IPFS splitters read data > from a reader an create "chunks". These chunks are used to build the ipfs > DAGs (Merkle Tree) and are the base unit to obtain the sums that ipfs uses > to address content.

> The package provides a SizeSplitter which creates chunks of equal size and > it is used by default in most cases, and a rabin fingerprint chunker. This > chunker will attempt to split data in a way that the resulting blocks are > the same when the data has repetitive patterns, thus optimizing the > resulting DAGs.

I think they should use the rolling hash based chunking by default

[https://github.com/ipfs/go-ipfs- chunker/issues/13](https://github.com/ipfs/go-ipfs-chunker/issues/13)

</comment></comment></comment></comment></comment><comment><USER25> One of the biggest challenges with IPFS in my mind is the lack of a story around how to delete content.

There may be a variety of reasons to delete things,

\- Old packages that you simply don't want to version (think npm or pip)

\- Content that is pirated or proprietary or offensive that needs to be removed from the system

But in its current avatar, there isn't an easy way for you to delete data from other people's IPFS hosts in case they choose to host your data. You can delete it from your own. There are solutions proposed with IPNS and pinning etc - but they don't really seem feasible to me last I looked around.

This list as @fwip said is great as a wishlist - but I would love to see them address some of the things needed in making this a much more usable system as well in this roadmap.

<comment><USER26> Managing universal data removal is not universally solved (or even wanted) on internet scale. So it sounds weird to demand it from technology which is trying to solve completely different problem.

<comment><USER27> A best-effort deletion could be beneficial for any node. It reduces storage requirements a bit.

A way to mark something as deleted, in a form of another ipfc object, could serve as soft delete, and also a permission to actually delete hunks of the object marked as deleted.

This, of course, is not secure deletion, and should not be.

<comment><USER28> >A best-effort deletion could be beneficial for any node. It reduces storage requirements a bit.

As far as I'm aware, any node is free to delete its own data. In fact, isn't only storing data at the user's explicit request in the first place? It just can't do anything about what other nodes choose to keep or delete. If you're referring to a particular node wanting to delete do a best-effort deletion of data on other nodes, it's not clear to me why node A cares about reducing storage on nodes B, C and D (if you own those nodes, delete it yourself; if you don't.. then I don't know what you're up to)

</comment></comment></comment></comment><comment><USER29> I have a question for the IPFS people. I am a non-techy who really likes the IPFS idea and wants to see it succeed.

However, whenever this topic comes up here at HN, we get a bunch of people who say they tried to use it but it was basically unworkable, like too much RAM usage and various sorts of failures. And rarely does anyone respond by saying that it is working just fine for them.

So my question to the IPFS people is, when is it going to get really usable? I am asking for something reasonably specific, like 2 or 3 years, or what? And I am supposing that would mean a different promise/prediction for each main different use case. So how about some answers, not just "We are aware of those problems and are working on them"

<comment><USER30> As you seem to foresee - being "really usable" depends on the use case. The one we're focused on this year is package managers - and making IPFS work really well for that use case in particular. There is lots of room for improvement on performance and usability - setting the package managers goal gives us really a specific target to focus and deliver on. This won't solve "all the problems" (there's a lot to solve for package managers alone!) - <USER3> will help us take a big step forward in production readiness and hopefully knock out a swath of performance issues experienced by everyone.

</comment></comment><comment><USER31> What's the difference between DAT and IPFS? I'm trying to understand all these new technology with a grand aspiration to replace the current infrastructure.

[https://ipfs.io/](https://ipfs.io/) [https://datproject.org/](https://datproject.org/) [https://beakerbrowser.com/](https://beakerbrowser.com/)

</comment><comment><USER32> So I can store a file in ipfs by its hash, but there's no way to link to the next version of the file. I can only link to older versions?

I'm a giant advocate for decentralized architectures but so far I've never found a use for it that doesn't rely on a centralized way to find out about new data

<comment><USER33> I'm not super familiar with ipfs, but I _think_ ipns is supposed to solve that problem.

> Inter-Planetary Name System (IPNS) is a system for creating and updating > mutable links to IPFS content. Since objects in IPFS are content-addressed, > their address changes every time their content does. That's useful for a > variety of things, but it makes it hard to get the latest version of > something.

[https://docs.ipfs.io/guides/concepts/ipns/](https://docs.ipfs.io/guides/concepts/ipns/)

</comment></comment><comment><USER34> This is exciting. I would love to make it to the 1st IPFS Camp in June.

</comment><comment><USER35> IPFS is a joke. They have name lookup feature but relies on traditional DNS! What are they thinking?

Also, if the IPFS's idea of working as local server is sound, BitTorrent DNA(browser plugin, steaming video over BitTorrent) should had been worked.

It seems to me, they suffered NIH syndrome. They tried to reinvent the wheel. The P2P file transfer protocol over IP has already been covered by BitTorrent. What we need is a nice front end which use BitTorrent protocol as back end and offer a illusion of Web site.

<comment><USER36> The real innovation is making files content-addressable.

<comment> Lx1oG-AWb6h_ZG0 Don't magnet links solve that for torrents?

</comment></comment></comment><comment><USER37> I've been considering Swarm distributed file system because of its closeness with the Ethereum development.

It seems to do the same thing and works already but hardly gets any press. IPFS and the Protocol Lab's Filecoin sale seemed to generate a lot of marketing despite it becoming clearer later that Filecoin is for an unrelated incentivized network.

It is hard understand the pros and cons of choosing to use IPFS over Swarm, or where they are in comparative development cycle.

I know many decentralized applications that opt for IPFS for their storage component, and know of the libraries to help different software stacks with that. But I can't tell if it is right for me, versus the state of Swarm.

<comment><USER38> Swarm and IPFS together with Filecoin try to address the same problem - persistent data storage in a decentralised network.

Swarm is not at all "working already" \- the incentivisation layer for nodes to store data for other users is not implemented and currently mostly theoretical and work-in-progress.

IPFS is more mature in comparison to Swarm, but the underlying architecture is rather different.

<comment><USER37> What is Swarm's intended incentivisation layer and where can I read about their plans? It seems like all documentation including plans are outdated, and I was ignored in their gitter chatroom where devs wanted to talk about dev things and outreach people seemed nonexistent.

I see things being stored on Swarm without incentives, like plain text

<comment><USER38> Swarm documentation might not be perfect, but it is not outdated - [https://swarm-guide.readthedocs.io](https://swarm-guide.readthedocs.io)

I believe the chapters about PSS, Swarm Feeds, ENS, Architecture, among others, are mostly up-to-date.

You can read about the incentivisation layer at [https://swarm- gateways.net/bzz:/theswarm.eth/ethersphere/ora...](https://swarm- gateways.net/bzz:/theswarm.eth/ethersphere/orange-papers/1/sw%5E3.pdf)

Currently incentivisation is not integrated or implemented in Swarm, so a user has no guarantees about what happens with their uploaded content. If the node hosting it disconnects from the network, it will be gone. The plans to address this are through the sw^3 protocols suite and/or erasure coding.

Regarding plain text - it doesn't really matter what bytes you store in Swarm - encryption is implemented and you can store non-encrypted or encrypted bytes, this has nothing to do with incentives for persistent storage.

We try to do outreach and answer community questions when possible, but the team is not big and this is currently done on a best-effort base, we could definitely improve on that front, I agree.</comment></comment></comment></comment>


Edward Snowden's fear of flying is justified - <AUTHOR> http://www.guardian.co.uk/commentisfree/2013/jul/23/snowden-asylum-america-international-law

<comment><USER2> There is a solution:

Put him on a plane. Have couple dozen American citizens and citizens from several other countries that are allies also fly on the same plane with Snowden. Make sure that it is very clear via the flight manifest that the plane is carrying dozens of American citizens besides Snowden and citizens from other countries. Fly the plane to the destination. If the US tries to force it to land, they can simply refuse to comply because there is no way that those leading this witch hunt would go as far as to risk causing a major international incident by shooting down the plane, causing a mid-air collision or causing some other air disaster.</comment>


Show HN: Inception.js – Websites within websites - <AUTHOR> https://github.com/jongomez/inception.js <comment><USER2> lol interesting concept! Do you have something which is live?

</comment><comment><USER3> Bizarre.</comment>


Show HN: A Raspberry Pi Lego Rubiks Cube Solving Robot - <AUTHOR> https://www.dexterindustries.com/projects/brickuber-project-raspberry-pi-rubiks-cube-solving-robot-project/ <comment><USER2> Or if you prefer it a bit faster: [https://www.youtube.com/watch?v=eOJecVKD34g](https://www.youtube.com/watch?v=eOJecVKD34g)

</comment><comment><USER3> Nice! Back in 2011 they used to do this with Android phones.

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

<comment><USER4> A used cell phone is still usually more capable and cheaper once all the add- ons are factored in.

</comment></comment><comment><USER5> Nice one. There is a similar project using Mindstorms at [http://mindcuber.com](http://mindcuber.com) , which IMHO is the best Mindstorms project of all.</comment>


Free for reddit Django & Python course- eCommerce site - <AUTHOR> http://www.reddit.com/r/Python/comments/1cnmfq/free_for_reddit_coding_for_entrepreneurs_with/

<comment><USER2> The coupon has expired...

<comment><USER3> Use "learnmore" instead of "freedom" coupon.

<comment><USER2> sold out as well :)</comment></comment></comment>