SQL Databases Don't Scale - <AUTHOR> http://adamblog.heroku.com/past/2009/7/6/sql_databases_dont_scale/ <comment><USER2> It's not the scale, it's the reliability.

When I worked at Amazon.com we had a deeply-ingrained hatred for all of the SQL databases in our systems. Now, we knew perfectly well how to scale them through partitioning and other means. But making them highly available was another matter. Replication and failover give you basic reliability, but it's very limited and inflexible compared to a real distributed datastore with master-master replication, partition tolerance, consensus and/or eventual consistency, or other availability-oriented features.

I think everyone is missing the boat by evaluating datastores in terms of scalability. Even at Amazon's size, database scaling is only occasionally a problem. By the time your site is that big, hopefully you've split your software into independent services, each with its own (relatively) small database. And for the services that do need a distributed cache or persistence layer, there's now a huge body of literature and software that solves those problems.

Reliability is another matter. Every business can benefit from improved reliability, regardless of size. And reliability is harder. Scaling is basically an engineering problem, which can be solved with the right architecture and algorithms. Reliability is more like security: it's a weakest-link problem and requires constant vigilance in all areas, including engineering, testing, operations, and deployment. Adding redundant components improves reliability against hardware failures (which are independent between hosts) but not software bugs (which typically are not). Many of the comments on <http://news.ycombinator.com/item?id=859058> are missing this point.

Anything that mitigates reliability problems has huge potential for saving costs and increasing value. CouchDB, for example, doesn't even provide basic scaling features like automatic partitioning, but it does provide reliability features like distribution, replication, snapshots, record-level version history, and MVCC. _That_ is what makes it interesting and useful in my opinion. Similarly, although people talk about Erlang as a concurrency- oriented language, it's really a reliability-oriented language. The concurrency in Erlang/OTP is not designed for high-speed parallel computation. Rather, it's one part of an overall strategy for reliability, a strategy which also includes the ability to update code in running processes, a standard distributed transactional database, and built-in process supervision trees. (Steve Vinoski wrote something similar in his blog a while ago: [http://steve.vinoski.net/blog/2008/05/01/erlang-its-about- re...](http://steve.vinoski.net/blog/2008/05/01/erlang-its-about- reliability/))

<comment><USER3> _"By the time your site is that big, hopefully you've split your software into independent services, each with its own (relatively) small database. And for the services that do need a distributed cache or persistence layer, there's now a huge body of literature and software that solves those problems."_

Yes, yes, a thousand times, _yes_. We seem to be slowly moving toward this ideal at JTV as we grow, because scaling monolithic database architectures is a pain, and it isn't reliable. Even if you scale your database via replication or sharding, you've still got a global choke point for reliability and performance. If your database(s) get slow, if replications lag, if a server dies or whatever, there's a good chance it will take down your whole site. On the other hand, if you use services, you can lose individual features without taking down everything.

I would go so far as to say that it's probably a good idea to build a service- oriented architecture from the start. It's only a bit harder to do, it keeps your code base cleaner and more orthogonal over time, and it makes scaling much easier, should the need ever arise.

<comment><USER4> Amazon's CTO certainly is a big proponent of SOA.

Here is a light interview (by none other than Jim Gray) on this published in ACM Queue from 2006.

[http://portal.acm.org/ft_gateway.cfm?id=1142065&type=pdf](http://portal.acm.org/ft_gateway.cfm?id=1142065&type=pdf)

</comment></comment></comment><comment><USER5> I could do without the sensationalist headline. In fact I've pretty much come to hate any headline that says "X doesn't scale". It might be fair in some circumstances, but most of the time it's an indication of an uninformed or koolaid-driven opinion.

Scale is all relative, the only thing that scales infinitely are problems where the parts are all independent. Therefore you need to pick a solution that will scale appropriately to your needs. For the vast majority of applications in existence, the properties of SQL databases scale just fine for their needs. Where advanced SQL doesn't scale, you can often squeeze several orders of magnitude more scalability through a variety of optimization techniques including sharding and denormalization. A "NoSQL" (for lack of a better term) database might have better "scalability" out of the box, but will also tend to require more work up front wrangling data sets and more bugs than well tested SQL databases provide for the same data management functionality. Some people think this is offset by the lack of a parity mismatch between OO code and relational data sets, but I think that is more a symptom of people who don't really grok the relational model and the power and assurances it provides.

Increasingly as we move to more and more cloud services there is definitely a need for new approaches to more scalable data stores. However there's not going to be something that comes along and is both more scalable and equally as powerful as the relational model across the board. It's going to require tradeoffs to solve different classes of application-dependent scalability profiles. However the relational model is a solid and proven theoretical basis for describing the majority of data we have. Sure you have some edge cases like graphs and trees, but most data is not better described by key-value stores. That's just wishful thinking.

<comment><USER6> Like most decisions, choosing your datastore is all about deciding which trade offs are best for you. For a great many of those situations, it will be SQL, but for some others it will not. But each way comes with compromises.

</comment></comment><comment><USER7> Heroku has been hyped up far and wide as being some kind of magical scaling solution. Just give Heroku your app and it will scale infinitely on EC2, right? Wrong. As they've admitted before, they haven't done anything to scale the database. Adding more app servers is trivial by comparison.

This isn't a knock on the Heroku folks; to their credit, they've been open about the DB issue. But you wouldn't see this most basic piece of information in media coverage from TechCrunch and many others. Unfortunately (?) for Heroku, the press has been writing checks in their name that the company can't cash.

Edit: Literally seconds after I made this post, blasdel posted about the same DB issue: <http://news.ycombinator.com/item?id=859545>

<comment><USER8> Yet adding more database disk capacity will cost you a fortune for anything more that 0.5GB...

</comment></comment><comment><USER9> I think scalability and reliability are mostly orthogonal issues and should be discussed separately.

Scalability is a farce. In my experience applications are implemented in such hilariously inefficient ways, because it's hard to see where the time and especially the IO is spent. But adding more machines is not a good solution, because it becomes even more difficult to understand the performance behavior of the system. Also, it transforms the system into a distributed system and therefore adds a whole new level of complexity and failure causes. Most websites don't have the some problems as Google and Amazon.

Optimizing the application could prevent the need for scaling out to multiple machines. Optimization is not rocket science: Find out the bottleneck and fix it. Often it is random IO, so either load the data into RAM or change the algorithm to use sequential IO (e.g. through batch computation).

Reliability means that the system must work correctly all the time and there is no way to fix it (e.g. a satellite on a mission). Thus, for most applications availability, which is the fraction of time a system works, is a more appropriate metric.

There are two basic strategies for achieving high availability in a system: perfection and fault-tolerance. Perfection is the default programming model, which assumes that every hardware and software component of the system works as expected. Fault-tolerant systems, on the other hand, are hard and require that the system is designed around this idea. Also, fault-tolerance makes it harder to change the system. An often overlooked fact is that for many systems it is actually much easier to achieve a particular availability goal through perfection rather than trying to build a more complex fault-tolerant system.

</comment><comment><USER10> Heroku : Ruby/Rack :: Google AppEngine : Python/WSGI

But there's a huge problem -- AppEngine succeeds at seamless multi-tenant truly-distributed clustered hosting thanks to BigTable. Heroku needs to support standard Rails apps, so Postgres is the best they can do, and it's a huge hole in their offering.

You just can't make Postgres (or Oracle) scale on an ideal horizontal the same way you can distribute IP, DNS, HTTP proxying, HTTP serving, memcache, message queues, or bigtable. You can't expose Postgres as an ideal service that just keeps up with what you throw at it.

<comment><USER11> >You just can't make Postgres (or Oracle) scale on an ideal horizontal the same way you can distribute IP, DNS, HTTP proxying, HTTP serving, memcache, message queues, or bigtable.

Is there something about MySQL that exempts it from this scaling weakness that I'm not aware of?

I'm not bull-baiting, I'm just covering the bases and wondering if there's some reason it's not presently under discussion. Part of the reason I ask is because I've been pushing for a shift to Postgres at work after we get some more pressing matters dealt with.

<comment><USER7> > Is there something about MySQL that exempts it from this scaling weakness > that I'm not aware of?

No, there isn't. We're discussing Postgres since that's what Heroku uses.

<comment><USER11> In that case, I'll carry on with my Postgres evangelism. Thank you for your time.

</comment></comment></comment></comment><comment><USER12> we've been here before:

<http://news.ycombinator.com/item?id=690656>

I had to look for a long time to see why the dupe detector didn't pick that up, 'adam.blog' vs 'adamblog'.

<comment><USER13> Good to link to the prior discussion, but that item is no longer _open_ for discussion, so it's not inappropriate to re-post if an interesting discussion is to continue.

      feature request: dupe only detected when discussion is still open.

<comment><USER12> The cutoff is only 45 days, we'd be literally flooded with dupes if that was done.

I think this was one of PGs recent optimizations to keep HN responsive, it makes good sense to archive articles when they're no longer being updated.

</comment></comment></comment><comment><USER14> I think the author is unaware of a great tool for scaling PostgreSQL. A few years ago Skype released plProxy and pgBouncer, both of which are key to PostgreSQL scaling. What they in essence do is allow for transparent horizontal scaling of servers. One defines a cluster in plProxy and then when you run stored procedure queries, they remotely execute on the proper shared server based upon the primary key data. It's fast and effective and I have been using it in a very large OLTP environment using PostgreSQL, driving a US Top-25 pageview site.

<comment><USER14> I should clarify, plProxy is responsible for the transparent horizontal scaling. pgBouncer is a proxy that allows you to run all of this using a minimal number of PostgreSQL backends, which is essential because of the amount of inter-process communication locking and information sharing in PostgreSQL. pgBouncer basically manages a smaller pool of active backends reducing the overhead in running high transaction velocity servers.

</comment></comment><comment><USER15> I'm glad this was reposted because it links into something I've working on for a while. I'm on what must be the ninth rewrite now, but have had a breakthrough on a long-term problem this weekend (notation).

In the past I've noticed that organisations run into trouble when they have one schema with multiple apps off it, because schema changes become difficult. I'm trying to write an engine that contains application business logic without polluting it with user interface considerations. It aims to solve a problem for which many people currently use stored procedures. However, with a better syntax and being stateful it should be far more effective at enclosing the schema and supporting rapid changes. The dynamic of interacting with the application is a bit like a MUD, in that each session can only do things that are exposed to it via the 'room' mechanism.

I had intended that its mainstay backend would be relational databases. But I now realise - if I'm building business logic into this layer (which will be the single point-of-entry into the schema) the datastore can afford to be a lot less complex than a traditional relational db.

My focus this weekend, to 'prove' the new design, is a tool that wraps a generic-webapp-framework-style CRUD app around a schema on the fly. So if you're on crud screen rendered for the "person" table then there'll be an organisation-foreign-key datapoint in the generated user interface. It will be either a radio button list, dropdowns or search interface depending on the number of records.

How do map/reduce programmers manage the structural integrity of their schemas without the sort of foreign key protections that you get with relational databases? Is there an analogue to the ORM layer that they use for this?

<comment><USER16> I had two thoughts:

a) Changing 'schemas' is supported by document, or advanced key-value, stores like Couch or Cassandra. You end up thinking of your objects more as hashes and program accordingly; everything else is just a mapreduce task (ie, you've updated your schema. If you coded well, nothing should break because of that, but you'd like to update all of the old objects. So write a mapreduce task, like a migration, that does that).

b) DataMapper, for ruby, is used mostly as an ORM; however, the "R" is pretty optional, as people have written data adapters for other architectures -- from CouchDB to the SalesForce API.

Those are just some associated thoughts. I'm playing around with Cassandra and Couch on my server at the moment (grr, when I have a moment).

</comment></comment><comment><USER17> SQL is not a data storage scheme, it's a query language. If you mean "relational database", say "relational database".

</comment><comment><USER18> Seems like nowadays, everyone's saying SQL database do not scale, while apparently, most crowded sites are using mySQL (or other SQL based) and scaling it quite well, producing speedy websites that serve billions of pages everyday.

<comment><USER19> Serving billions of pages a day is not a particularly hard scaling problem if most of those page views only require reads. It's writes, and particularly transactional updates, that are hard.

<comment><USER20> yes, but even harder are the entire set of problems where the data is extremely interrelated, like Facebook's is -- making it very difficult to shard effectively.

</comment></comment></comment><comment><USER21> I wouldn't put HA into the same bucket as scaling. Scaling includes performance where HA doesn't. You can take a simple html site and decide to eliminate SPOF (single points of failure). You immediately increase your OpEX. I enjoy scaling problems.

</comment><comment><USER22> It's not so much the DBMS that doesn't scale. It's particular data access patterns in combination with particular requirements that don't scale. RDBMS alternatives do little more than educate me about that fact

</comment><comment><USER23> Teradata, Oracle RAC/Oracle Exadata,Vertica, Netezza, etc.

<comment><USER24> All (?) [edit: I stand corrected: only some] of which rely on A Big SAN, which falls under the "vertical" classification, i.e., scaling-by-throwing-money-at- it. Which is fine as long as you're aware that your price/performance sucks, and as long as your SAN is big enough.

<comment><USER25> No, most of the scalable SQL databases are shared-nothing.

<comment><USER24> ... A little more looking shows that while some systems, like Oracle RAC (the one I'm most familiar with) and Sybase, do rely on shared storage, many do not. Sorry to generalize from insufficient data!

<comment><USER23> You can have a shared-nothing architecture using traditional "shared- everything" RDBMS.

</comment></comment></comment></comment></comment><comment><USER26> Translation: Heroku doesn't know how to scale databases.

Meanwhile, out here in the real world, banks, stock exchanges, airlines, telcos, retailers are doing transaction and storage volumes on relational databases that say otherwise.

Also "SQL database" is what the PHB in Dilbert calls 'em. No-one with any experience in the field uses that term.

</comment><comment><USER27> Apparently we can put old stuff on HN again.

<http://news.ycombinator.com/item?id=690656></comment>


Stunning Examples of Data Visualization - <AUTHOR> http://webdesignledger.com/inspiration/15-stunning-examples-of-data-visualization

<comment><USER2> these are very pretty charts and graphs but none of them seem to actually convey the intended information very well.

<comment><USER3> I, also, was expecting to see visualizations that were able to draw out information or truths that traditional forms wouldn't be able to do. To me that would be stunning. Instead I see data turned into art, in many cases (especially the stock data one, for example) obfuscating the data. Some of the color palettes are stunning, if that's what they were going for...

</comment></comment><comment><USER4> live link to the first picture - The Strength of Nations ( <http://wbpaley.com/images/nations15_50pct.jpg> )

</comment><comment><USER5> I hate these kinds of lists because they never give you a high enough resolution to actually see the chart.

<comment><USER6> Here's a fully zoomable one i found in a link on one of the flickr pages... just click the + button and you can use your mouse wheel to zoom in/out... pretty cool and super high res: <http://www.closr.it/show/Aoq6CwSieQ5></comment></comment>


OpenBSD: arm64 platform now officially supported, and has syspatch(8) - ezequiel-garzon https://undeadly.org/cgi?action=article;sid=20171208082238 <comment><AUTHOR> Honest question: what is the big deal about syspatch? I see OpenBSD folks talk about it as if it is the greatest thing since sliced bread. How is this different from what many distributions have had for more than a decade in the form of apt or yum?

<comment><USER2> Can't use Linux distribution tools like apt/yum unless you package the update contents as rpm/dpkg files and distribute apt/yum with the base system. Neither of those is happening in OpenBSD, or likely any BSD. (I can go into more detail on why if you're curious.)

In some ways, the BSDs are just catching up to Linux in terms of update distribution mechanism. They all have a history of being self-hosting compile- from-source systems, and some greybeards are still pretty attached to that idea.

As someone who discovered Linux first and happily used it for many years before discovering the BSDs, I think there's a lot Linux gets right that BSDs will or should adopt to be relevant. (There are also many things the BSDs get right, of course.) This is a good example of that.

<comment><USER3> Packaged base is a beta feature in FreeBSD [https://wiki.freebsd.org/PkgBase](https://wiki.freebsd.org/PkgBase)

But IMO there's nothing wrong with freebsd-update.

<comment><USER4> Using pkg to update both base and ports with a single tool will be nice. As will updating jails robustly; freebsd-update is not so great in jails in my experience.

<comment><USER5> freebsd-update works fine in jails, as long as you use it correctly. Unfortunately there are a few landmines due to versioning issues.

<comment><USER6> ".. use it correctly": As in excluding the kernel component in freebsd- update.conf or how do you mean?

<comment><USER5> The place people usually trip up is with freebsd-update getting confused about what version it's trying to update. The '\--currently-running <release>' option is your friend here.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> Isn't the official term aarch64?

<comment><USER8> Yes, but like Debian, OpenBSD is ignoring that.

Fedora, openSUSE, Mageia, etc. use the official term. Debian and the BSDs use the informal "arm64" term.

<comment><USER9> The informal makes more sense, BTW.

<comment><USER10> Well I misread it as amd64, thought it "can't be possible" and had to come down to this thread to realise the nature of my mistake.

aarch32 and aarch64 are strictly ARMv8, while arm32, being informal, could really be a catch-all term for all the previous ones. I don't know of any aarch32 distro though, they all seem to limit to ARMv7hf, which is sad because on a Raspberry Pi 3 you can't get the VideoCore binaries and v8 instruction set: going 64bit means most hardware does not work (at least: no X/wayland, no 3D, no sound), and some benchmarks have shown that they bring up 15-20% performance improvements.

Anyway, this is basically the same debate as x64 vs x86-64 vs amd64 and mostly bike shedding at the end of the day.

</comment></comment></comment></comment><comment><USER11> I saw this last night, plan to order a Pinebook today.

Edit: _Registered_ for a Pinebook today, will have look for a board to play with. Any suggestions?

<comment><USER12> Don't have 1st hand OpenBSD/arm64 experience but I'd definitely expect the page [https://www.openbsd.org/arm64.html](https://www.openbsd.org/arm64.html) to be accurate as concerns device support, although I'd expect more drivers to be written. Not a committer but I think supported in this case is talking about system featureset on working hardware & project support (e.g. solid committers, build machines, etc), not meaning all hardware being supported.

I'd probably read the last year-or-so of openbsd-arm list and check the recent commit messges for that part of the tree if that page isn't clear..

</comment></comment><comment><USER13> so does this mean smart phones and IOTs can run on BSD?

<comment><USER14> OpenBSD support list [0] at the moment:

> The current target platforms are Rockchip RK3399, Allwinner A64/H5, > Raspberry Pi 3 and Opteron A1100.

That's a good list, it may cover a number of "Maker"-oriented single-board computers that are fun to play with.

Note that most of the Raspberry Pi chip is its Broadcom Videocore IV graphics processor, which is not supported by the OpenBSD OS. You would have to hook up a screen to the GPIO pins, I think, rather than getting display out of the HDMI port. There are lots of LCD display "hats" on the market.

(I am typing this on my iPad, which is an iOS device, which is a descendent of BSD.)

[0]: [https://www.openbsd.org/arm64.html](https://www.openbsd.org/arm64.html)

<comment><USER15> You can use an RS232/USB connector to hook it up to a VT100-compatible terminal or emulator. That's what I plan to do this afternoon.

Alternatively you can just SSH 59 it. It depends on what your objectives are.</comment></comment></comment>


Cybersecurity Act of 2009 to allow warrantless searches of all personal email - <AUTHOR> http://www.washingtonexaminer.com/opinion/Keep-the-government-from-snooping-in-our-e-mail-42779197.html

<comment><USER2> The Internet Storm Center has a somewhat more even-handed breakdown of the proposed legislation: <http://isc.sans.org/diary.html?storyid=6124>

The "shut down the Internet" part can be found in S.773 §18 (2): ([http://www.opencongress.org/bill/111-s773/text?version=is...](http://www.opencongress.org/bill/111-s773/text?version=is&nid=t0:is:311))

> [The President] may declare a cybersecurity emergency and order the > limitation or shutdown of Internet traffic to and from any compromised > Federal Government or United States critical infrastructure information > system or network […]

So we're talking about emergency airgapping federal/military networks, and whatever other domestic sections of the backbone are deemed "critical infrastructure." It's quite an extreme measure, but there's no implication of claiming the power to turn off the lights for everyone around the world (or even in the US).

<comment><USER3> The President might define "critical infrastructure" as being the entire Internet- and many other countries route a large portion of their Internet traffic through the US- so a shutdown in the US would certainly slow down, if not shutdown, much of the rest of the world.

</comment></comment><comment><USER4> You know, as much as I dislike any attack against civil liberties in general, attacks like this don't bother me as much as, say, unreasonable seizure or firearm confiscation.

A quote comes to mind: "The Net interprets censorship as damage and routes around it." John Gilmore (EFF)

In my mind, news like what is described in the post will only spur greater attempts an anonymity, encryption, darknets, etc. They fight and hamper us, we hack around it.

<comment><USER5> The thing is, greater anonymity via encryption etc. is not easy to use for the general public. Sure, you can hack around it but not everyone is a hacker. And of course, darknets etc. won't get around the Permission to Shut Down The Internet bit.

<comment><USER6> If it becomes a big enough issue, people will write software and protocols that are as easy to use as the rest of the internet. As an example take https: since it was decided that sending credit cards in cleartext was unacceptable, browsers updated to seamlessly use it. The end user sees nothing except an extra character in their URL, but the technology is entirely different.

To extend it to this case, we might see email clients that default to dealing with the messy business of darknets, etc., while providing essentially the same user interface.

<comment><USER7> Unless a future step is to require every computer to be registered with the authorities, or go through some central ISP gateway in order to access the New Internet, which gives authorities greater control. Who knows where this kind of stuff can lead.

<comment><USER8> "The more you tighten your grip, Tarkin, the more star systems will slip through your fingers."

</comment></comment></comment></comment></comment><comment><USER9> I can forsee situations where it might become complicated. For instance, a bunch of 'critical' hardware is in a datacenter somewhere and you are also in that datacenter. A cybersecutiy emergency happens and to protect this.. whatever it may be, the datacenter or parts of it get airgapped.

And your stuff becomes unaccessible, be it a corporate website, your own personal server, whatever. And there's not much you can do to remedy it either.</comment>


Django deployment made as easy as ABC (and PHP) - <AUTHOR> https://www.divio.com/en/blog/django-deployment-made-as-easy-as-abc-and-php/ <comment><USER2> What is the underlying platform for Divio?

Is it like [https://nanobox.io](https://nanobox.io) that allows you select any host (AWS, DigitalOcean, etc.), or is it more of a full stack PaaS like [https://www.fortrabbit.com/](https://www.fortrabbit.com/) but for Django only?

</comment><comment><AUTHOR> It's a full-stack Python/Django service. But the Docker containers are of course portable, so...</comment>


We Crunched 1B Logged Errors – Here's What Causes 97% of Them - <AUTHOR> http://blog.takipi.com/we-crunched-1-billion-java-logged-errors-heres-what-causes-97-of-them/ <comment><USER2> lol, I thought most of these top 10 errors are why Java devs frown upon dynamic languages and their glorious type-system should save them ;)</comment>


Show HN: The tourist map of mp3 players - <AUTHOR> http://things.gnod.com/mp3_players/

<comment><AUTHOR> 5 months ago I made this kind of map for flashdrives. Got a ton of interesting feedback here on HN ([https://news.ycombinator.com/item?id=7465980](https://news.ycombinator.com/item?id=7465980)). Lately my mp3 player broke, so today I added this section for mp3 players.</comment>


Alternative Method of Solving Quadratic Equations - <AUTHOR> https://www.poshenloh.com/quadraticdetail/ <comment><USER2> This is BS. First off, all that he did is unpack the quadratic equation. If you look at what the q.e. does, it's just this "new" calculation folded together algebraically. And once you remember it, the q.e. Is very efficient. Moreover, because you have to divide through by the first coefficient to make it 1, you end up with crazy fractions that you have to divide by 2, and then even worse take square roots of. This is literally harder than the quadratic equation!</comment>


Ask HN: Seed Funding for Solo Founder? - <AUTHOR> Are there any funds/programs that provide seed funding to solo founders so they can leave their jobs to build a new product? <comment><USER2> This might be useful: [https://earnestcapital.com/shared-earnings- agreement/](https://earnestcapital.com/shared-earnings-agreement/)

</comment><comment><USER3> Pieter Levels does it. He is the kind of a guy you'd want to take money from.

Take a look [https://twitter.com/levelsio/status/1131797489818882049?s=20](https://twitter.com/levelsio/status/1131797489818882049?s=20)

</comment><comment><USER4> Generally, seed funding is difficult to obtain through institutions. If you are an expert in your field or have compelling career experience coupled with a novel and provable idea you may have luck through institutions.

However, you are more likely to build relationships with individuals who can afford to give you money. You'll likely end up with better terms and you'll have a better experience. I tried to raise through a regional angel program and we backed out as their terms were troubling and their lead fund manager difficult to deal with. I've heard similar stories from others as well.

If you can, find people who care about the field you are starting up in and get to know them. This is also a good litmus test for the potential of your idea.

</comment><comment><USER5> Yes, check out TinySeed [1], Earnest Capital [2], and Startup Chile [3]. There's also Indie.vc [4] for companies that are a bit further along.

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

[2] [https://earnestcapital.com](https://earnestcapital.com)

[3] [http://www.startupchile.org](http://www.startupchile.org)

[4] [https://www.indie.vc](https://www.indie.vc)

<comment><AUTHOR> Thank you very much for this. I will look into it

</comment></comment><comment><USER6> Consider WHO your product might be for?

WHO are the players in that industry/vertical/market?

Ex: members of the board for early-stage firms serving the same industry. Not only are these guys active investors. They're amazing plugged-in to the broader community.

</comment><comment><USER7> [https://robwalling.com/2018/10/12/my-next-act-the-first- star...](https://robwalling.com/2018/10/12/my-next-act-the-first-startup- accelerator-designed-for-bootstrappers/)

</comment><comment><USER8> Self fund through your job...?</comment>


Runtime Support for Multicore Haskell: A Retrospective - <AUTHOR> https://blog.sigplan.org/2019/12/16/runtime-support-for-multicore-haskell-a-retrospective/ <comment><USER2> Nice write-up. Haskell and GHC have definitely been enormously successful platforms for PL research in general, and research in parallelism in particular. However, one unfortunate side effect of all that research effort is that there are now at least half a dozen libraries for parallelism and concurrency (STM, Async, Control.Parallel.Strategies, etc), to the point that it is hard for a software engineer to grasp the tradeoffs presented by the various options. I feel like I succumb to decision paralysis when I attempt parallel programming in Haskell; from a purely pragmatic perspective, I much prefer the Go approach, where there is a single canonical concurrency mechanism which is baked right into the language and is extremely well- documented.

<comment><USER3> Been a while since I've done Haskell, but the essential breakdown as I understand it is this:

At lowest level you have the Control.Concurrent primitives: forkIO and MVar. forkIO allows you to spin up new Haskell threads (not OS threads) and MVar's can be used to communicate between them. MVar's can be empty or full and block when the operation can't be completed immediately (writing to a full MVar or reading from an empty MVar). They also have single wakeup semantics, so if you have multiple readers blocking on an empty MVar read, only one will be woken up when someone writes to it.

STM has transactional semantics. You can write to multiple STM variables atomically in a transaction, and your transaction will restart if any of your input variables have been written to while your transaction was running. Useful if you need to maintain consistency between several variables at all times.

Async is a wrapper around STM and provides common functions you would often write yourself to express common patterns, but more battle tested.

Strategies are about optimistically evaluating Haskell thunks in parallel. For example if you map a function over a list, now you have a list of thunks. You can use Strategies to now evaluate those thunks in parallel. Key thing with Strategies is that if you remove them from your code (or use a non-threaded runtime) it doesn't affect the semantics of your program, it just might make it slower due to loss of parallel evaluation.

The Par Monad isn't used much, but the key idea there is you build an explicit dependency graph of the values in your computation and the runtime tries to parallelize the nodes in the graph that it can. Similar to what make does if you run it with -j.

<comment><USER4> Thanks, excellent summary!

</comment></comment></comment><comment><USER5> Really nice paper, especially the bullet points near the end.

I applied for a job with Simon Marlow's Haskell team at FaceBook about three years ago. I really enjoyed talking with him in the phone, but it was obvious that I didn't have sufficient Haskell skills.

There is a lot of good synergy between meeting FB's platform requirements and research and development for the Haskell ecosystem.

</comment><comment><USER6> Sadly, Multicore OCaml [1] is nowhere near [2] completion yet. Nor it moves fast. There are still a lot [3] of issues to solve and sync with the mainstream OCaml until it will be ready for anything basic. I write OCaml mostly these days (along with Rust, C, Python, and a couple less mainstream languages), but often miss the ease of parallelization with Haskell, code clarity, and so on.

[1] [https://github.com/ocaml-multicore](https://github.com/ocaml-multicore)

[2] [https://github.com/ocaml/ocaml/labels/multicore- prerequisite](https://github.com/ocaml/ocaml/labels/multicore-prerequisite)

[3] [https://github.com/ocaml-multicore/ocaml- multicore/projects/...](https://github.com/ocaml-multicore/ocaml- multicore/projects/3)

<comment><USER7> Truthfully, I'm waiting for Multicore OCaml and I'll only use it, Rust and Elixir.

OCaml's typing system is in my eyes unbeatable. Still considering making a transpiler from it to Rust and Elixir but I'm grossly unqualified to write compilers. :(

Haskell though, I couldn't grok it. Seemed to introduce a lot of tension for very basic topics -- like strings -- and it lost me.

<comment><USER8> As someone who learned it casually a while back: Haskell's not great for strings, I'll give you that.

How does the OCaml type system compare with Haskell's though?

<comment><USER9> The big distinguishing difference is that OCaml doesn't have ad-hoc polymorphism and function overloading. You cannot have a function that operates on many different types; which is why you have two sets of arithmetic operators for integers and floats ("+" vs "+.", for example). In theory you can use modules for this, but it's awkward, and I don't think they're generally used this way. (OCaml is getting implicit modules, and this may help the situation.)

In Haskell, typeclasses make this super easy. It allows you define a family of functions/operators that together become what a Go or Java developer might call an interface. Code written to use a particular typeclass will work for any implementation of that typeclass.

On the other hand, OCaml's module system is very powerful and has no counterpart in Haskell. It allows you to package a whole type implementation into a single module that has a public signature, and can be instantiated with generic type parameters.

<comment><USER10> I don't know anything about OCaml so please forgive me if this question seems silly.

 _two sets of arithmetic operators for integers and floats_

What if I want to create more numeric types? Say vectors in R^n, for example. Do I need to create more operators for vector addition and scalar multiplication? How do I make sure the user can't add vectors of incompatible dimension?

<comment><USER9> Yes, you need to add new functions. You cannot redefine "+" to work a custom vector type.

Similarly, you cannot have a "print" function that works for all sorts of types. OCaml has print_string, print_int, and so on.

OCaml does have parametric polymorphism ("generics"). You can write functions which support generic parameters. And you can use modules as "functors" to sort of package up types in a similar way as Haskell typeclasses (e.g. see [1]).

[1] [https://stackoverflow.com/questions/14934242/whats-the- close...](https://stackoverflow.com/questions/14934242/whats-the-closest- thing-to-haskells-typeclasses-in-ocaml)

</comment></comment></comment></comment></comment></comment><comment><USER11> "there's a lot more to realising good parallel speedup than just choosing the right language"

from ye olde days - if you can't split up computation into nice isolated chucks point is moot, so relatively fine granularity of your algo stepping is the key here, lack or severe control of side effects means you don't get to make too many mistakes related to mechanics of running the computation.

<comment><USER12> _> so relatively fine granularity of your algo stepping is the key here_

Fine granularity requires pretty much zero overhead synchronization, which green threads or any shared memory multithreading implementations can't do, they need to spend like a few thousands of nanoseconds of useful work before synchronization costs become even just bearable.

<comment><USER13> > Fine granularity requires pretty much zero overhead synchronization

Yes, like a work-stealing scheduler. Many tiny tasks are fine as long as you keep them on one core. Other cores can steal a batch of them from the other end of your queue with minimal synchronisation every now and again.

<comment><USER12> No, work stealing is pretty high overhead.

<comment><USER13> That's not my experience. I think work stealing is low overhead as it amortises synchronisation, only does it at all when actively required to get more work, and reduces conflicts due to two ends of the queue. Why do you think it's high overhead?

<comment><USER12> It's only one part of the story (scheduler) and not even good enough idea considering non-locality overhead.

<comment><USER13> Isn't work stealing excellent for locality? Jobs stay on the same core until there's a need to steal, and then the most likely non-resident jobs are taken. Is it even cache oblivious?

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> Huh, it's almost like the idea of pure functional programming is all hype and it doesn't actually make performant concurrency any easier to implement…

<comment><USER15> Did you read the article?</comment></comment>


Ultra-High-Definition Quality Experience with MPEG-DASH Streaming - <AUTHOR> http://www.bitmovin.net/blog/2015/05/ultra-high-definition-quality-experience-mpeg-dash-part-1/

<comment><USER2> DASH is cool in terms of technology and cost saving, but as end-user experience, it's super bad. I just wanna constant quality, full length video buffered to my local and after that I start watching uninterrupted! Who the fuck want to watch a 720p video and then BOOOOOM 240p. It's really frustrating.

<comment><USER3> Some people would prefer scaled down quality instead of stuttering when watching eg. live streams or on-demand movies (and not have to wait for download to finish).

<comment><USER2> For live streams, yes, DASH might be super useful.

For on-demand movies, I'd like to it to buffer in advance to a sufficient time length, but don't stutter anymore after that!

Hell I would rather lag for 1 minute for live videos instead of DASH.

I think it boils down to personal habits, would you endure constant small problems with quicker progress, or would rather suffer at the start and enjoy a smooth ride afterwards.

<comment><AUTHOR> DASH is just a format, you can use it however you like, e.g. prebuffering parts or the whole movie ... that's the flexibility of an open standard. there are a lot of open source players or also commercial ones such as www.dash- player.com, which exactly enable this flexibility.

</comment></comment></comment></comment><comment><USER4> Is it better than Pied Piper, which is lossless?

<comment><USER3> A more relevant comparison would be HLS, Apple's HTTP Live Streaming tech, which works really well but is not very widely supported.

<comment><AUTHOR> Apple's HLS and MPEG-DASH share the same design principles. One big benefit of MPEG-DASH is that it is supported natively within HTML5 using the HTML5 Media Source Extentions. However, today HLS and MPEG-DASH are used in common.</comment></comment></comment>


What to Expect from Sony's Next-GEN Playstation - <AUTHOR> https://www.wired.com/story/exclusive-sony-next-gen-console/ <comment><USER2> The term Next-GEN may need to be phased out. We live in an age where Next-GEN is a transparent server update. Hi-fidelity graphics will soon be streamed over the web and game /content producers will write to some generalized platform and upload there games to be streamed. Graphics will improve transparently as servers and games are updated. Gone are the days of the console wars.

Basically, buying your own hardware for console gaming is dead (I don't agree with it but this is where things are going). There may be a PS5 but it will likely fail. Streaming games is the future (however big brother it is).

</comment><comment><AUTHOR> tl;dr

      * 7nm Zen 2 AMD Ryzen
      * GPU Ray Tracing support
      * SSD
      * 8k</comment>


What Affects Brew Time - <AUTHOR> https://coffeeadastra.com/2019/10/20/what-affects-brew-time/ <comment><USER2> Always love a good coffee science deep dive! Pour over is my brew method of choice (which this article focuses on) and it was really interesting learning more about the math (Darcy's Law) behind what affects flow rate/brew time. Worth a read!</comment>


PIA VPN to be acquired by malware company founded by former Israeli spy - <AUTHOR> https://telegra.ph/Private-Internet-Access-VPN-acquired-by-malware-business-founded-by-former-Israeli-spies-12-01 <comment><USER2> This article and articles like this miscast Kape in an incorrect light. To be clear, in the past the company was known as CrossRider and provided a developer SDK that could be used to integrate with browsers. Unfortunately, CrossRider didn't do enough to prevent malware (like platforms these days and their fake news) and the platform was used by some bad people for bad purposes.

When the new management team of CrossRider took over, they immediately ceased to engage in the previous business and focused on the opposite due to the insights they gained watching nefarious developers abuse their platform. With the focus on security and privacy, they changed their name to Kape and further the new company will be called Private Internet as it will be purely focused on privacy.

The merger between Kape and PIA affords PIA the resources needed to bring privacy to the mainstream. The company can now be decentrally owned by the people, and public reporting requirements are much stronger than those for private companies. Couple this with a new random audit program we are going to launch and its as transparent as it gets, and it's exactly the direction we at PIA want to go, where our users no longer need to just trust us, instead our actions are and will continue to be verified.

Ultimately, the choice of VPN is yours, but transparency is verification and with most VPN companies being incredibly secretive about their operations, who is behind it, and where they are located, what they do with their funds, etc. I stand behind the move to bring more transparency to privacy.

The company has always practiced sustainable karma - wherein we do what's best for the people/what people want, and that allows us to make a living doing what we love; that's not going to change.

Sincerely, Andrew - Co Founder PIA

<comment><USER3> >The merger between Kape and PIA affords PIA the resources needed to bring privacy to the mainstream.

You were one of the most, if not the most successful VPN provider for years. Did you really need more resources? For what?

The main benefit of PIA is the expectation for extra privacy. No matter how you look at it, selling to Kape is a strong signal that's not a priority. Similar, for hiring Karpeles to do your security (like he hasnt lost us enough already).

<comment><USER2> > Did you really need more resources? For what?

Yes, to bring freedom thru privacy to people, The coming battle against privacy and free speech is by far the strongest and worst yet; the narrative and our voices are quickly getting quashed.

Without the ability to communicate privately and speak freely, at best democracy is at risk; and at worst, humanity, or what it has meant to be human until now, itself may be at risk.

Divided we are not stronger.

> Similar, for hiring Karpeles to do your security (like he hasnt lost us > enough already).

Cryptocurrency has come a long way, and without MtGox and Mark at the beginning, it may not have been able to make such strides.

I prefer a battle hardened individual over a clean track record of no experience. Failure is the fastest and strongest way to learn and grow stronger.

Overall, I appreciate your words and concerns, but I believe we are strategically moving in the right direction to the world's benefit.

Time will tell.

<comment><USER4> So what exactly is the gameplan, how are you going to change the world by selling your stake?

<comment><USER2> The company is now no longer controlled by one man alone, but instead many. I'm still a major shareholder.

We are changing the world by fighting in the front lines with our PR as we always did [1], donating to organizations without pause or hesitation [2], and sticking to our decisions even when the world may not understand as they aren't deep in the battle like us.

Time will prove everything, and we will help the people (and freedom of speech and privacy) achieve victory.

[1] [https://www.reddit.com/r/pics/comments/61ns2w/private_intern...](https://www.reddit.com/r/pics/comments/61ns2w/private_internet_access_a_vpn_provider_takes_out/) [2] [https://www.privateinternetaccess.com/pages/companies-we- spo...](https://www.privateinternetaccess.com/pages/companies-we-sponsor)

Edit: Unable to reply below so I wanted to clarify - our ad spend often times goes toward the benefit of people as opposed to being direct ads about our company.

<comment><USER3> >We are changing the world by fighting in the front lines with our PR as we always did [1]

You are telling me you did it for PR reasons?? That's not even remotely believable - look at the 'PR' you are getting. This was the goal??

>donating to organizations without pause or hesitation [2]

Surely, you have even less of a voice where donations go than before.

>and sticking to our decisions even when the world may not understand as they aren't deep in the battle like us.

How are they helping you stick to your decisions? You are making entirely new decisions now, and corroding your previous. Are you saying they are 'deep in the battle' like you? What?

<comment><USER5> Even as a user that for now will not be trusting PIA, I do applaud the advertising I've seen in many corners of the mainstream net trying to educate users about issues they otherwise would have no exposure at all to, unlike us.

<comment><USER3> I completely agree, I just don't see in what possible way does Kape help with that.

Even if they start doing more outreach (doubt Kape helps much there but say they do) now the messages are just going to be tainted with 'yeah, dont trust those guys' comments when a user looks into it.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> Seems to me that the "spy" was doing mandatory military service when he was 18 in the Intelligence part of the army? It seems common for many Israeli technically minded teens to go into that or similar wings rather than the more on the ground units.

It was from 1995 to 1998 (that's 20 years ago now) before he was at University and is the first item in his work experience. And the length of the position is about the same as military service. I do not know his current age.

<comment><USER7> Yes, and CrossRider mostly did an SDK for cross-browser extensions. I used their product before they did ads and it worked pretty well.

I stopped using them because I could stop supporting IE but they had a real product back then.

Teddy Sagi is bad for other (gambling related) reasons - but he is just an investor...

<comment><USER8> Teddy has sold most if not all of his shares in Playtech and other gambling related businesses[1].

Also calling every one who ever served in 8200 an Israeli spy is ridiculous. Military service is mandatory in Israel. Lots of kids serve in 8200 because they get assigned there for their affinity for math and computers. Most of them do menial Ops tasks, I interview them occasionally for junior positions.

Here are some Israel startups founded by "spies": ICQ, CheckPoint, Wix ...

[1] [https://en.globes.co.il/en/article-sagi-bows-out-of- playtech...](https://en.globes.co.il/en/article-sagi-bows-out-of-playtech- sells-remaining-shares-1001261885)

</comment></comment></comment><comment><USER9> Disappointed. I've been with PIA for a few years now and I always recommended them and loved their support. I just cancelled my annual subscription which was due to expire in 100 days. Vote with your wallet. Any recommendations for a new VPN provider?

<comment><USER10> Me too. I cancelled my subscription about a week ago when I first heard of it (and I explained why on their cancellation form).

I'm looking at Mullvad and NordVPN. I know Nord had a MITM attack on a Finnish datacenter a few months ago and didn't immediately notify affected users. I'm having trouble understanding what it says about Nord's culture and likely behavior in the future. On a technical level, it's pretty bad when users of a VPN like this can be MITM'd. Blaming the datacenter's remote admin tools doesn't help me as a user because the same thing could happen again. I know they have a bug bounty program and audits now, but still I'm concerned that they didn't notify people which might indicate a cultural problem.

How would Nord handle a problem like this in the future, and can we still trust them?

<comment><USER11> NordVPN apparently using residential proxies is pretty iffy.

<comment><USER12> Makes blocking harder,cloud/hosting IP can't access some content.

<comment><USER11> I know that it makes blocking harder.

It's just that one wonders whether the people whose devices are being used as proxies are aware of the situation.

</comment></comment></comment></comment></comment><comment><USER13> Former PIA user who recently just moved to Mullvad [1]. Very transparent about their operations and they don't require any information from you to open an account. You can even mail them cash or pay with cryptocurrency to avoid having your real identity financially linked to your subscription.

[1] [https://mullvad.net/en/](https://mullvad.net/en/)

<comment><USER14> Their ios support isn't great.

I'm using ExpressVPN and while they cost more (as much as 3 times as these budget services) they so far seem to offer a fast product.

You can also sign up with crypto currency if you want.

<comment><USER11> > You can also sign up with crypto currency if you want.

But can you _renew_ with Bitcoin etc?

<comment><USER15> There is no difference between singing up and renewing. It's just a balance on some anonymous account number.

<comment><USER11> Have you tried it recently?

</comment></comment></comment></comment></comment><comment><USER3> I've been trying to cancel/shorten my year subscription since this came out. This + hiring Mark Karpeles as CTO are a solid guarantee that my data isn't safe.

Sadly, they just have a stock response to everyone emailing which is grating.

<comment><USER16> This is the first I have heard about Mark Karpeles being their CTO... I had to look it up, because it seemed too ridiculous to be real, but it is. Their judgment is compromised. I can't trust them with my network traffic anymore.

</comment></comment><comment><USER17> Just a general question about VPN services in general. When they advertise that they have hundreds of servers in a dozen or so countries, is it even possible to think that they are able to secure all of that themselves? Surely some State actor with enough know-how is going to be able to hack into some of the servers, right?

<comment><USER18> > When they advertise that they have hundreds of servers in a dozen or so > countries...

... they're often lying. In particular, servers in exotic locations are almost always the result of "creative" routing, and are physically located in a more standard country.

[https://restoreprivacy.com/vpn-server- locations/](https://restoreprivacy.com/vpn-server-locations/)

<comment><USER19> Could anyone who's more familiar with routing than me explain how these "virtual locations" work at a technical level? As far as I understand the VPN companies in question don't maintain boxes at those locations and an Azerbaijani IP address for instance literally gets routed to a machine in the UK. How is this possible? I always thought that IP addresses were tied to the location assigned to them by ICANN / regional internet registries.

<comment><USER20> You register as ISP with e.g. RIPE, buy some IP blocks from an ISP in the country you want to pretend to be in, and then announce them via BGP from your actual location.

Due to IPv4 shortage, we're actually seeing a lot of chinese and european companies buying IP addresses in AFRINIC space, from african ISPs, and using them in their own countries.

</comment></comment></comment></comment><comment><USER21> Whether this is true or not isn't really the point. The fact that it it's even possible is a huge red flag for my use case / threat model.

It's relatively easy, not to mention cheap (less than $10 per month) to spin up a streisand (0) instance and protect myself that way. As long as I keep my traffic encrypted, I can keep most / all of the vultures away that I'm concerned about.

Happy to walk anyone through it. Takes less than 30 minutes and it just works.

Edited to add link. Second edit to change reference # typo.

0\. [https://github.com/StreisandEffect/streisand](https://github.com/StreisandEffect/streisand)

<comment><USER22> VPNs have three purposes:

1\. Encapsulate traffic on the way from your machine through the first few hops of your Internet connection.

2\. Shield your identity from third parties trying to discover it, through technical or legal means.

3\. Provide a bottomless pit for disposal of DMCA complaints and other nastygrams.

Your solution covers only purpose 1, which is becoming increasingly irrelevant as almost everything uses HTTPS, and DNS-over-HTTPS and Encrypted SNI is coming.

<comment><USER21> I disagree with a couple of things.

First of all, you missed one thing that is really one of my primary concerns. I hate the idea of my ISP working with other ad surveillance companies to track and sell MY data about mine and my family's and friends' online activities.

Having a VPN stops that part of the surveillance machinery from working as intended. Combining that with pihole and other tools allows me to disrupt (at least a little bit) the business of the internet that I hate so much.

Also, Tor and other tools (all part of the same solution above) address #2 to the degree I need it addressed. And I am currently not worried about #3, but with the decentralization of streaming services, it won't be long now.

</comment></comment></comment><comment><USER23> For anyone displaced from their VPN by this... Not mine, but another HN user made a tool to automatically create a VPN instance on your choice of cloud provider.

[https://github.com/trailofbits/algo](https://github.com/trailofbits/algo)

<comment><USER19> And what good does setting up your own VPN instance do? Now people will be able to trace every single bit of your traffic back to your cloud instance and thus to you. The idea of signing up for a VPN provider like PIA or Mullvad is precisely that it's _not_ a personal VPN and you get to hide among the masses / their other customers.

<comment><USER24> There are many different reasons to use a VPN. Some are legal, some are privacy-related and some are just getting access to sites that are otherwise blocked.

I think your most common reason for using a VPN would be very different based on living in Russia, Sweden, USA and China.

</comment></comment></comment><comment><USER25> I'd suggest anyone looking fo a new vpn to have a look at this site: [https://thatoneprivacysite.net/#detailed-vpn- comparison](https://thatoneprivacysite.net/#detailed-vpn-comparison)

It was recommended by privacytools.io in an article a few weeks ago as being one of the few sites that don't take money from vpn providers to list them.

</comment><comment><USER26> It's not just PIA. Nord VPN, ProtonVPN, etc all have ties to or owned by shady companies.

It you want real anonymity, use tor. If you want to change your internet access location, lease a VPS, and set up OpenVPN/Wireguard on it.

<comment><USER27> ProtonVPN? i thought they are privetly owned.

<comment><USER28> That's correct, ProtonVPN is not affiliated or related to any other company. ProtonVPN AG (Switzerland) is a 100% wholly owned subsidiary of Proton Technologies AG (Switzerland), which also develops ProtonMail. All of this is in public record at the Swiss commercial register: [http://ge.ch/hrcintapp/externalCompanyReport.action?companyO...](http://ge.ch/hrcintapp/externalCompanyReport.action?companyOfrcId13=CH-660-1995014-1&ofrcLanguage=4)

</comment></comment></comment><comment><USER29> This could do without the clickbait title. "former Israeli spy" is obviously trying to make you think of something nefarious, even though there are no details besides where they worked. I was in an intel unit when I was in the military, and there's a lot of general IT people, managers, etc. It's deliberately deceptive to label anyone who has ever worked at an intel agency as a "spy".

<comment><USER30> His LinkedIn indicates that he was a developer in the unit that created the Student Virus... Spy has a broad definition but it probably fits for a SigInt developer in the Israeli military..

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

<comment><USER31> Stuxnet was created by the NSA in a joint operation with 8200. And yes there are 50,000 ex-8200 alumni, so calling all of them spies is kind of absurd

<comment><USER20> Calling them spy may be wrong, but I certainly won't ever work with, or use technology made by people who worked for an intelligence agency. That's something over which I'd also terminate friendships.

And many people have a similar mindset, so it's understandable to report this information, and make consumer choices based on it.

That said, Israel should probably consider solutions like other countries with mandatory military service have, e.g. in Germany (until it stopped being mandatory) it was possible to avoid military service by spending the exact same time instead working in social services, e.g. hospitals, daycares, retirement homes, etc.

<comment><USER32> Israel does allow it in some cases, but the security conditions in Israel and Germany are _very_ different, as is the size of their population. But I have some bad news for you: you are most likely using technology made by people who've worked for intelligence agencies. For example, if you're using Intel chips, many dozens of their designers served in Israel's military intelligence. Same goes for Google, Apple and Microsoft products. It's just that a very high percentage of engineers in Israel served in military intelligence, and a _lot_ of technology companies do R&D in Israel. But if you use Wikipedia, it's OK: its PHP engine was made by someone who served in the Israeli airforce, not military intelligence. Although, your packets are probably routed through Cisco routers, so maybe not so OK. Oh, Akamai servers, too. Also, there could be an issue with your Qualcomm Wifi chip.

<comment><USER20> In the end, it still makes sense to realize this, and to be cautious. The NSA, Israeli Intelligence, BKA, FSB, etc are all not much better than the StaSi, and one should treat them, and their (ex-)employees with as much trust and respect.

Of course using SELinux or TOR, or Intel products is something that's hard to avoid, but one shouldn't trust blindly.

<comment><USER32> > The NSA, Israeli Intelligence, BKA, FSB, etc are all not much better than > the StaSi

I guess it depends on your definition of "much better", but for roughly the same definition you'd need to use to make that statement, you could also make it about Google and Facebook. And note that we're not talking about Israeli intelligence; we're talking about people who, when they were in their late teens and early twenties served, like a big portion of tech workers in Israel, did their mandatory service in a military intelligence unit. I know it's hard for people not familiar with it to understand, but most of these people don't have contacts in intelligence, as the personnel circulation in those units is very high -- almost everyone is just serving a few years for their mandatory service.

<comment><USER20> > you could also make it about Google and Facebook

Would you trust Google or Facebook to run a VPN? No, I don't trust them at all. I only use them in the most limited amount necessary, and only entrust them with data which is already public.

I self-host everything else, because I don't trust them at all.

<comment><USER32> That's fine, but you should know that VPN implementors often particularly seek out former intelligence agency people to design their security, and that's pretty much where VPNs started. Feel free to trust whomever you like, but the assumption that people who've served in an intelligence agency can be trusted less than those who haven't isn't very logical. Those are often the people who understand security best, and as far as allegiances go, how can you trust anyone? When intelligence agencies want to insert backdoors etc., they can and do cover up their tracks. I.e., you won't know that the people involved are doing their bidding, nor would you have some special reason to suspect them. Your point of view might well lead to a _less_ secure system.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER33> Geez... This is a worse outcome than even the cynicals predicted.

</comment><comment><USER34> This is the most disappointing news that affects me personally that I've received this week. It's getting harder and harder to find tech companies you can trust, it seems. Just when things seem good, there's always a surprise waiting eventually.

</comment><comment><USER35> This kind of seems like a national security concern, which the US government would want to block the acquisition. Given it's US company that has access to a ton on US traffic it's certainly reasonable that a state actor would want all that data.

</comment><comment><USER36> Does a spy ever really become a former spy? From the outside, this reads as destroying PIA by providing user data to intelligence community, at a minimum. Perhaps even a play to get historical data.

</comment><comment><USER37> It is worth mentioning a large portion of Israel talented IT youth is enlisted to intelligence technological units in IDF. So, every cyber company founded / hiring in Israel will almost always have people from those units. But, this is not such a big deal and definitely doesn't make them spies.

<comment><USER38> Correct. It just makes them people that happen to have contacts with an especially competent spy agency.

</comment></comment><comment><USER39> It occurs to me that you can buyout major top 20 productivity apps, browser plugins with just couple billion dollars, silently change Eula and have field day with personal data of large chunk of population. This is not a huge amount for governments.

</comment><comment><USER40> > If that wasn't enough, Crossrider's Founder and first CEO Koby Menachemi, > was part of Unit 8200 – something that can be called Israel's NSA.

About half of my coworkers in Israeli game development companies have served there. Some wrote custom linux kernel modules, most did very low-level QA work, and in general had more or less the same skillset and level as any other coworker. Of course, they probably worked close to Stuxnet developers, but calling a typical kid, just out of his mandatory military service, a "spy" paints this in a completely different light.

</comment><comment><USER41> I've relied on PIA for years and I'm 100% dropping them for good. They promise to never log, but that's clearly an empty promise. Their TOS says that they can change the terms at any time without notifying anyone. This new partnership with Kape is an intelligence operation with the 14 eyes. A spy never becomes a "former" spy. I love my country, but I love my rights as well, and I refuse to be surveilled illegally.

</comment><comment><USER42> Thank you for posting this. I just cancelled my subscription (didn't really use it that often anyway tbh)

</comment><comment><USER43> Previous thread: [https://news.ycombinator.com/item?id=21612488](https://news.ycombinator.com/item?id=21612488)

Edit: Sorry, I meant prequel thread as they're related but not the same.

<comment><AUTHOR> A quick ctrl-f returns 0 results for "8200", "Israel" while it returns 1 result for "adware".

This article centres around the details pertaining to the company's operations in and around 2016 when it launched the Crossrider malware as well as the founder's former employment with Unit 8200 (Israel's IDF Signal Intelligence operations unit).

</comment></comment><comment><USER44> How does this affect Freenode?

<comment><USER45> Looks like they issued a statement: [https://freenode.net/news/freenode-pia- changes](https://freenode.net/news/freenode-pia-changes)

</comment></comment><comment><USER46> I've been using PIA for years. Chose them over others because they were more well known and larger, which to me meant they'd be less susceptible to having to enter into shady activity. I'm trusting them with my traffic, after all. This one doesn't sit well with me, it feels like a betrayal of trust. They have to know that people who signed up to use their service wouldn't be okay with something like this if it's as shady as it sounds. Good thing it's still cyber Monday, I think there might be a few VPN deals going around. Maybe it won't hurt to to try my luck with one of those.

</comment><comment><USER47> What do people use these VPN services for? Is it mostly for pirating, or public wifi users, or people that don't want their ISPs to know what they're doing? It all seems like niche use cases.

<comment><USER48> This might be not the case in the US, but outside VPN is very often used for opposite. Half of legal video / music / etc streaming companies have content locked behind per-country limitations and licensing. So if you want to pay for content you'll often need to pretend that you're from US.

For piracy it's cheaper to setup seedbox.

<comment><USER22> I believe that that is still technically piracy.

<comment><USER49> Tough question. Depends on EULA of a service and laws (both US/the target country and VPN's user) regulating the particular content type (for example the mandatory age rating for a film) and copyright.

A close counterexample: the Japanese guitar manufacturer ESP was forced to stop selling worldwide and producing MX-250/MX-2 models which exactly copied the shape of Gibson's Explorers (court decision and an agreement IIRC), but anyone can still order one in their Custom Shop with the restrictions of making an order by sending a letter with order form and paying from inside of Japan as well as picking it up from the factory (no delivery services). All of that because they can still sell them in Japan and by client's specification.

</comment></comment></comment></comment><comment><USER50> As a general rule I have trusted PIA for years and I now trust your judgement in choosing a partner. Seriously I've considered all alternatives, other companies don't say anything about themselves; who owns the other VPN companies? couldn't find any info. Service has been great, price has been right. and I appreciate the honesty. The fact that you are here responding means a lot; and more than I can say for other companies.

</comment><comment><USER51> Is there some sticky mechanism going on here or how is that raengan comment so far on top even with all those comments disagreeing with the content of it?

<comment><USER52> I'm just a casual HN reader, but my understand is that the up vote button is not to be used as an "I agree" button but rather as a "This is relevant to the conversation" button. That being said, as the comment is by a cofounder of PIA, it is extremely relevant regardless of opinion about this situation.

</comment></comment><comment><USER53> FWIW, if you want a VPN for protecting your traffic while you're out in the world, get a nice home router that provides VPN and dynamic dns support.

</comment><comment><USER54> Uninstalled. Sub cancelled. They had to know there would be a massive backlash from this? I can see why the PIA execs wouldn't care -- they would get their payout from the sell regardless. But Kape either is oblivious or doesn't care if a non-trivial percentage of their customer base drops them. I am not sure which option worries me more?

Now I have to spend the next week researching VPN providers.

</comment><comment><USER55> As a side note, calling someone who served in 8200 a "Spy" is a bit of a stretch... Story might be legit, but the title is a bit baity.

</comment><comment><USER56> So it's pretty much the story of the first Iron Man movie, but with malware instead of weapons.

</comment><comment><USER57> I recently extended my subscription by 2 years, now I guess I can just toss it.

</comment><comment><USER58> The name of this VPN is now very appropriate... see Urban Dictionary.

</comment><comment><USER59> PIA also claimed they were going to release the code of their new Windows desktop client.

They did not. They have not.

They lied.

They cannot be trusted.

</comment><comment><USER60> [https://riseup.net](https://riseup.net)

please donate if you use it

</comment><comment><USER61> [https://www.privacytools.io/providers/vpn/](https://www.privacytools.io/providers/vpn/) Looks like I'll be switching to Mullvad.

</comment><comment><USER62> It was time to change VPNs anyway...

</comment><comment><USER63> Just stick with AirVPN, they rock!

</comment><comment><USER64> [https://www.reddit.com/r/PrivateInternetAccess/comments/dhha...](https://www.reddit.com/r/PrivateInternetAccess/comments/dhha6o/piaservice/f8oabnl?utm_source=share&utm_medium=web2x)

Ha! After discovering that PIA runs a background process I posted that they were one evil change of ownership transaction away from fucking everyone.

Looks like they were way ahead of me.

</comment><comment><USER65> I've been very happy with Azire VPN.

</comment><comment><USER66> 300</comment>


Stanford "Intro to AI" course to be offered online for free - <AUTHOR> http://spectrum.ieee.org/automaton/robotics/artificial-intelligence/you-you-can-take-stanfords-intro-to-ai-course-next-quarter-for-free

<comment><USER2> Previously (with discussion): <http://news.ycombinator.com/item?id=2824780>

</comment><comment><USER3> I can't wait to see how well this works out. If the results are good it could put another nail in the coffin for classroom only education.

Although I foresee a lot of those that register for the free online course dropping out. Most people won't put a high enough value on a free class, especially if they're not getting credit.

<comment><USER4> I agree with your assesment that many (most?) will sign up without truly giving it the effort required. I wish it was $20 - some token amount. To extrapolate metrics on 'paid' users vs free users on most freemium apps, the vast majority of people won't even open their wallet for a dollar. If you aren't serious enough to pay $20 for the class, you aren't serious enough to buy the book and do the homework.

<comment><USER5> I'm really glad it's free. Where I live, $20 pays a month of lunch or public transportation. Even if it were $1 or $0.01 it would exclude people without international credit cards.

</comment></comment></comment><comment><USER6> Looks like I have two months to brush up on my probability and linear algebra. Could anyone who's read AIMA or taken the Stanford course suggest which topics I should (de)emphasize?

</comment><comment><USER7> has anyone started reading the AIMA? maybe we should set up a study group?

<comment><USER8> Anyone who's interested in joining a study group, I've added a Google Doc spreadsheet: <http://goo.gl/cbzUL>.

Based on the lack of comments here it's hard to tell what the overall interest level is for a study group, but personally I've found them to be quite rewarding.

As the course's start date approaches we'll see how many people have signed up and take it from there.

It might turn out a better alternative to doing this in an ad hoc manner to use one of the online study groups (like OpenStudy, for instance). Personally, I haven't any experience with them yet, but I'm sure there are others who have and can shed some insight.

</comment></comment><comment><USER9> What is the big deal? If you really wanted to learn AI there are plenty of books and free resources online to do it. Why wait to learn until somebody offers a free course online?

<comment><USER10> Peter Norvig.

<comment><USER9> Awesome, thanks!

</comment></comment></comment><comment><USER11> Some people seem to be _very_ excited by this. You don't have to wait until October. Andrew Ng's course on Machine Learning@Stanford is available for free on iTunes University (it also seems to be on YouTube). Do note that ML is a subset of AI. Also, my experience has been that the assignments and exams constitute a large fraction of the learning in a course. For that, you'll have to wait until October :)

<comment><USER12> It might be easier to take 229 (Machine Learning) after 221 (this class), since 221 is intended to be a lead-in. and less mathematically rigorous. It's still definitely worth a look but may be hard to understand without a background in algorithm design.

</comment></comment><comment><USER13> this has been posted like ten times

<comment><USER14> It is the first time that I have seen it though -- and I check HN far too frequently.

</comment></comment><comment><USER15> This is total awesomeness for the really motivated to learn. I don't think I'll have the time... although, maybe this is a good enough reason to quit my job. This is certainly an indication of what the future will bring for education. I hope other universities/professors do the same...

</comment><comment><USER16> Do you know if you'll need the 3rd edition of AIMA for the class? I have the 2nd edition and I would rather not buy the book again.

</comment><comment><USER17> "Without having to live in a dorm" ... I thought living in a dorm was the best part of college.

<comment><USER18> Then you didn't live in a building full of 200+ proto-adults, many of whom lacked bsaic cleaning skills, long enough... or maybe I just lived in one too long :)

</comment></comment><comment><USER19> Always wanted to do an AI course, would be signing up right away ...

</comment><comment><USER20> This is awesome !!! :)</comment>


How to build a news aggregator with backbone.js - Part 2 - <AUTHOR> http://blog.newsinapp.io/2012/05/01/how-build-news-aggregator-backbonejs-part-2/

<comment><USER2> The first part could be found here: [http://blog.newsinapp.io/2012/03/15/how- build-news-aggregato...](http://blog.newsinapp.io/2012/03/15/how-build-news- aggregator-backbonejs-part-1/)</comment>