Everything I know about Kubernetes I learned from a cluster of Raspberry Pis - <AUTHOR> https://www.jeffgeerling.com/blog/2019/everything-i-know-about-kubernetes-i-learned-cluster-raspberry-pis <comment><USER2> A good method for learning how clusters work and playing with them without having to spend a lot of time re-building when you break things is kind ([https://kind.sigs.k8s.io/](https://kind.sigs.k8s.io/)).

Each node is a Docker container, but the version of Kubernetes running inside it is vanilla Kubeadm, so it's quite representative of what "real" clusters would look like.

The great thing about it is you can spin up a cluster in < 2 mins locally to try things out, then it's a single command to delete.

<comment><USER3> How does this compare to k3s? [https://rancher.com/docs/k3s/latest/en/](https://rancher.com/docs/k3s/latest/en/)

<comment><USER4> Kind is explicitly not for production workloads[0]:

      Non-Goals: Being "production workload ready" - kind is meant to be used:

        for testing Kubernetes itself
        for testing against Kubernetes (EG in CI on Travis, Circle, etc.)
        for "local" clusters on developer machines
        NOT to host workloads serving user traffic etc.

K3s seems happy to support production workloads. It's a single binary and gets you a cluster in one command:

      curl -sfL https://get.k3s.io | sh -
      sudo kubectl get nodes

Personally, I use both Kind and k3s. Kind is great for running locally and k3s is awesome for single-node kubernetes on a vps.

[0] - [https://kind.sigs.k8s.io/docs/contributing/1.0-roadmap/#non-...](https://kind.sigs.k8s.io/docs/contributing/1.0-roadmap/#non- goals)

<comment><USER5> What are the benefits you find in using Kubernetes for a single-node cluster on a vps?

<comment><USER4> I host a few personal websites and Kubernetes allows me abstract the server setup. I don't need a highly available cluster and found k3s on a single node to be a nice replacement for manually configuring a reverse proxy, systemd services, deployment scripts, etc.

</comment></comment></comment></comment></comment><comment><USER6> Everything I know about Kubernetes I learned from a single-node (pseudo)clustered refurbished ThinkPad X201.

It cost me 90€ at an IBM refurbished sell. It is downstairs by the router, and it has been hosting everything for me except my email and my blog (which I want to host but I'm not sure about the reliability of my ISP's service, this morning it went down for 5h12m, without prior notice or anything).

It is amazing how much you learn from doing stuff. I'm currently on my 3rd year of univerity for CS, so I've tried the academia-style learning process, reading books on my own and doing stuff on my own. The latter is the best method by far.

<comment><USER7> I only really learn by doing stuff. I read books usually to get started but mostly quickly have to turn to building something. Then revisiting the book on the go. If I only read the book/paper/whatever, I usually 'think' I get it but nearly always that isn't the case :-)

</comment></comment><comment><USER8> 3 years ago, I also wanted a bare metal cluster for my homelab. I wanted x86-64, low power consumption, small footprint, and low cost. I ended up building this 5 node nano ITX tower:

[https://vyshane.com/2016/12/19/5-node-nano-itx-kubernetes- to...](https://vyshane.com/2016/12/19/5-node-nano-itx-kubernetes-tower/)

I think that the exposed boards adds to its charm. Doesn't help with dust though.

<comment><USER9> Very nice; I've considered doing something similar and running some production sites on it from my home, but the limitation has always been my terrible Internet bandwidth through Spectrum.

We almost got Verizon gigabit fiber a few years ago... then AT&T ran fiber to the front of my neighborhood last year, and then never ran it to the houses. As it is, I'm stuck with 10 mbps uplink, which is not enough to be able to do most of what I would want to do with a more powerful local cluster.

</comment></comment><comment><USER10> Great article! Never stop tinkering.

Here's how I got to know Kubernetes:

By end of 2016, the Kubernetes hype was just about to pick up real steam. As somebody who always liked the idea of running something like an own cluster in the cloud, I attended KubeCon Europe in early 2017. The event was sold out, and took place in a venue almost too small for the number of attendees. It was great. During the event I was just about to finish the Hobby Kube[1] project. Back then weren't any guides that addressed all the problems encountered when running Kubernetes on a budget, using low cost VPS on random cloud providers. So I dived into the subject in the second half of 2016 and started writing a guide, including automated provisioning using Terraform. I discovered WireGuard in the process of looking for a solution to efficiently securing network traffic between hosts. This still makes me feel like I was an early adopter to something that's becoming hugely popular.

If somebody would like to add a Terraform module for deploying to Raspberry Pi, please ping me or open a PR here[2].

[1] [https://github.com/hobby-kube/guide](https://github.com/hobby-kube/guide) [2] [https://github.com/hobby-kube/provisioning](https://github.com/hobby- kube/provisioning)

</comment><comment><USER11> I learned k8s with some NUCs we had laying around at work. Might be easier than Pi, but not as cheap. Some things I used: [https://metallb.universe.tf/](https://metallb.universe.tf/) (LoadBalancer) [https://cilium.io/](https://cilium.io/) (Networking) [https://rook.io/](https://rook.io/) (Persistent Storage)

<comment><USER12> Does Rook give you the equivalent of EBS root volumes for your nodes then? Is that the function you have it providing? Does it offer something beyond using local host storage and minio?

I ask because I've generally been confused about the use case for Rook despite having read the "what is Rook?" paragraph many times on the project home page. My assumption is that it lets you build your own internal cloud provider. Is that correct?

<comment><USER13> Not directly, rook provides a storage backend for in-cluster workload persistent volumes.

In theory you could manage kvm machines with kubevirt and back the machines with PVCs from rook. I have not tried this and would be curious how the performance is.

<comment><USER14> I would say they're functionality quite equivalent, you just wouldn't pull them in as a root volume.

You should be able to point your default StorageClass at Ceph and have it create RBD block storage devices for you, which would auto create pvc, that you mount you actual data in in your kube manifests.

<comment><USER13> The parent comment was asking about root volumes for kubernetes nodes

> Does Rook give you the equivalent of EBS root volumes for your nodes then?

I think we are saying the same thing if i'm not mistaken?

<comment><USER12> I only said "root volumes" as it's a common use case for EBS volumes. For instance with etcd running in a container you would want the host volume to be an EBS volume since it's critical it's a critical K8S component.

<comment><USER14> Right, but you would only need to mount the etcd data partition (/var/lib/etcd afaik), rather than the entire node and/or container.

The main problem you have here, is chicken and egg. How do you use a StorageClass, kubernetes PVC, or rook to provision Block Storage for etcd, when you need etcd for kubernetes to function, and you need kubernetes to function for rook, et all.

At some point, you need to bootstrap the world, which is people either start off with cloud APIs, ansible, or PXE.

<comment><USER12> ."The main problem you have here, is chicken and egg. How do you use a StorageClass, kubernetes PVC, or rook to provision Block Storage for etcd, when you need etcd for kubernetes to function, and you need kubernetes to function for rook, et all."

I totally agree. The EBS lifecycle management is generally handled by something like Terraform. That's why I was wondering if the use case for Rook is primarily bare-metal Kubernetes since AWS/GCP et al. already provide these. So I'm wondering that even in a bare-metal environment where you still need to use config management tools like Ansible/Terraform to do things like provision block storage what's the upside of Rook over existing iscsi/Ceph/minio installations?

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> Thankfully these days, places like Digital Ocean and Linode have managed K8s where you only pay for the compute nodes, for $5/month each.

So it's fairly cheap and easy to learn on a "real" cluster without having to build one.

<comment><USER16> Building a cluster is a fun and relatively easy project. You learn much more by having the hardware at your fingertips. You can simulate network failures and power failures or you can crash an important daemon. By causing problems you can see how K8s responds and manages itself when it does not have the nodes it expects. It is important to know these things because, for example, if you create a pod instead of a replica set then the loss of a node will mean the inability to use the pod assigned to that node. You need to know how a pod and a replica set differ in order to create a self-healing stack. You can learn all of that with the cloud solutions but the ability to answer your own questions will always be the superior means of learning.

The Agile movement has convinced many that the solution that gets you up and running today is the best. A good engineer is not afraid of working and learning instead of just buying a pre-baked implementation and calling themself an experienced user. The cluster that I know like the back of my hand is my "real" cluster. The production cluster is someone else's that I just rent.

<comment><USER9> Through my work on this project, I've learned a ton about kubectl, kubeadm, the control plane, etc. that I never learned when managing EKS clusters at a previous job. It's good to know more of the 'guts' of an insanely complex ecosystem like Kubernetes, which is why I often recommend people follow Kelsey Hightower's "Kubernetes the Hard Way" guide to install Kubernetes from primitives at least once.

</comment></comment></comment><comment><USER17> I LOVE Jeff's work and I own his Ansible book. The setup is pretty awesome. FWIW I think you could do this with local VMs a little more easily and provision with Vagrant. Having said that, a cluster of Pis is super fun!

<comment><USER9> What do you know, that's exactly how I do local development work for the cluster ;) [https://github.com/geerlingguy/raspberry-pi- dramble/tree/mas...](https://github.com/geerlingguy/raspberry-pi- dramble/tree/master/testing/vagrant)

<comment><USER17> Aha! Makes sense.

</comment></comment></comment><comment><USER18> Just an aside, your parts list for the pi dramble has 4 Pi 4B's but micro usb power cables

<comment><USER9> Oops! I forgot to update that when I switched everything out for the 4 Bs. I'll update that in a little bit.

<comment><USER9> It has been updated.

</comment></comment></comment><comment><USER19> This seems like a fun project and a great way to learn Kubernetes, but if I'm dropping this much money on it, I'd like it to have some productive purpose afterwards.

I'm a full-stack web dev primarily using node/react/postgres. I've also got some projects currently hosted on a Linode instance. Ideas on fun/productive uses for this cluster after I've built it and messed around with Kubernetes?

<comment><USER20> Move the projects to your cluster and see what happens!

Consider the fact that, if you make improvements to the cluster, all of your apps will see that same lift. So if you were to set up backups on the cluster's persistent volumes and its databases, you'd get free backups for all of the projects you've moved. Same with monitoring, autoscale, and so on.

</comment></comment><comment><USER21> I suppose I was lucky dabbling in one of my side-projects because I had money to burn. I put it all in Google Cloud and then learned just how much you have to complicate the stack (beyond the complication of K8S) to lower infra costs.

Suddenly I wasn't using basic Kubernetes any more, I was setting up a new ingress controller so Google wouldn't launch a new load balancer instance for _every_ public service I exposed. Those things aren't cheap.

It was an amazing way to experience just how much you can suffer in the cloud, and just how far you can go down the rabbit hole with this kind of tech.

</comment><comment><USER22> Wonder if some old netbooks could be used for this purpose. Doubt I am the only one with a small pile of them laying around.

<comment><USER6> From experience, anything with 2GB or more RAM can be a master node. Workers can even have 1GB and work just fine.

Be warned, though, in my experience etcd requires a somewhat decent read/write latency, or else it's going to fail, and when etcd fails everything fails. Your changes don't apply, etc.

<comment><USER9> _Technically_ 1GB is the limit, but yeah, at 1GB I was hitting OOM errors every day or so (this was on the Pi 3 B+). I was very happy when I found out the Pi 4 had 2 or 4GB models! No matter what, you should also make sure to not schedule Pods on the master node(s) when you have limited memory (or in most cases, really...).

<comment><USER6> Or set tight resource limits.

Setting resource requests also enables the use of HorizontalPodAutoscalers.

<comment><USER9> Very true. The Pi Dramble's web pods are set to scale using the HPA.

</comment></comment></comment></comment></comment><comment><USER23> Thanks Jeff for your great Ansible roles!

</comment><comment><USER24> This is also how my alma mater (Cal Poly SLO) teaches Hadoop. Building real world clusters are expensive, and giving each student their own is difficult. However, small clusters of Raspberry Pis are cheap, and it's also very easy to demonstrate how unplugging one affects the cluster.

</comment><comment><USER25> @alexellisuk almost all of my interest in Kubernetes is due to your work. Thank you for everything you do!

</comment><comment><USER26> You can also build a cluster on your computer if it's beefy enough by running multiple VMs. I bought a hp z820 workstation, 16 cores, 128gb for $1000 a few years ago and that's my k8s experiment land.

<comment><USER27> I don't fully understand where the line goes from "all I need is a Docker container for nginx + Postgres + Redis + my services" to "I need Kubernetes"

When does one need to go from just Docker containers to container orchestration like k8s?

<comment><USER28> Do you care about availability? Do you care about rolling upgrades? Do you want to practice any of those two? Then it might be time to make the switch.

Yes, Docker has Swarm Mode. And yes, it is easier to get started with than K8s.

The problem is that it locks you into a lot of choices when you first spin up each (Docker) Service, that can't be changed without taking down the Service and then recreating it with the new option. Want to change how upgrades are rolled out? Too bad!

Kubernetes still has a few settings like that, but since (K8s) Services are just responsible for routing traffic to separately-managed Pods, you can always fall back to rolling the upgrade manually, or doing a blue-green deployment.

<comment><USER27> I do blue-green deploys with Docker and I deploy the services as "app-1", "app-2", "app-3", etc.

<comment><USER28> How do you route dependencies to the correct service? If you're using a stack then you end up needing to blue-green the whole thing, if you're not then you still need to blue-green the whole dependent subset of the dependency graph.

And for anything exposed outside of the swarm you'd need to use some reverse proxy, since only one service (in the whole swarm) can bind a port at any one time.

<comment><USER27> > How do you route dependencies to the correct service?

Reload the nginx config with proxy_pass switch from blue -> green or green -> blue.

</comment></comment></comment></comment></comment></comment><comment><USER29> I can also recommend MagicSandbox ([https://www.msb.com/](https://www.msb.com/)) which provides a lot of learning content alongside a real k8s remote environment.

</comment><comment><USER30> For me it was a Blue Gene/L.

</comment><comment><USER31> Thanks Jeff!</comment>


Writing unit tests is reinventing functional programming in non-functional languages - <AUTHOR> http://www.erlang.org/pipermail/erlang-questions/2009-February/041969.html <comment><USER2> I'd say that it's true that the closer you get to pure functional programming (no state or side effects), the more unit testable your code becomes.

I'd have to take issue, however, with the author's implication that Java programmers who unit tests are idiots who don't realize they're reinventing the wheel. Good developers in any language recognize the importance of avoiding side effects, isolating parts of the system from each other (including minimizing state), etc. It shouldn't come as a surprise to anyone that testable code has some common characteristics across all programming languages. There are differences unique to the language as well, though, and unit testing in Java also tends to involve use of things like interfaces and polymorphism that are distinctly OO concepts as well.

And of course, unit testing isn't just for those "overly complicated" Java applications; it's for any type of system in any language. The author seems to me to imply that somehow unit testing is uniquely a requirement of Java systems that Erlang systems somehow don't need.

<comment><USER3> I agree that avoiding side effects and global state is a well-known practice (and OO languages have access modifiers, like private, to support it). It's not unique to functional programming.

Interesting to me was that the reasoning of the article was strikingly close to Dijkstra's "Goto considered harmful", and it makes me wonder if there is some small step that OO languages could take to automatically enforce testable code, in the way that structured programming made gotos safer.

The problem is that side-effects and global state are very useful for making some problems simpler - which is why Erlang has its transactional database mnesia, and Lisp is not purely functional.

Is there a way to _structure_ side-effect/global state to make it entirely testable, without destroying the benefits?

<comment><USER4> I can't see an argument that Erlang is automatically tested in the body of the link. Perhaps I missed something. All I read was the usual arguments for functional programming - which has some merits but ... whatever. Where is the unit testing connection?

<comment><USER3> Starting from the 5th last paragraph:

 _The funny thing is that the OOP world have found one way to manage the complexity and the code-bases that grow ugly: They are using unit tests, and practice the art of writing testable code. ("Testable code" is something that is simple to write unit tests for. )_

</comment></comment></comment></comment><comment><USER5> This actually is what drew me to functional programming in the first place. I'd recently been on a unit testing kick, and figured that if you get rid of mutable state and have function outputs depend only upon inputs, your code suddenly becomes much easier to unit test.

</comment><comment><USER6> Referential integrity in code-under-test is convenient for unit testing, so unit tests encourage (re)discovery of functional style by programmers who are working in non-functional languages.

But unit tests also have value in programs that are written in functional languages and in a functional style. Unit tests reinforce essential properties of the program and thereby formalize the accidental/essential boundary. They can provide guidance about how API elements are intended to be used together. They can present elements and properties of a program in an order that is best for explanation (they can be a crude form of literate programming). So, it's wrong to reduce unit testing to functional programming.

</comment><comment><USER7> Look up the technique of "dependency injection" sometime. This is all the rage among Java consultants, their favorite technique to make things testable. It's an elaborately disguised way of saying "let's rewrite this function so it obtains all its state from the caller". In other words, functional programming.

In cases where passing the same list of initialized objects up and down the call stack becomes tedious, Google's Java people have invented frameworks like Guice. This makes dependency injection appear to happen by magic.

<comment><USER8> Dependency Injection allows to assemble program on the fly. It allows to assemble programs written in different styles, including functional.

Look at Spring Dependency Injection Framework for example. It supports lot of libraries, which are written in traditional style.

<comment><USER9> I don't mean to be snarky, but that sounds a lot like passing a closure and maybe some other state in.

I don't really agree with the OP's point in any case. Even if I have an entirely purely functional library, I still need to unit test it to make sure it does what I think it will and that it observes the edge cases I _know_ of correctly and further so that I can regress it if I need to make changes, maybe for performance reasons at some point.

I mean, it is nice to reduce state in your code as much as possible, but its not always practical or efficient. I think it's great that people are getting more excited about Functional Programming because I believe that there are a lot of great techniques that become available when you understand it, but all that imperative knowledge is still going to have its place at the end of the day. After all, writing an in-place quicksort is always going to end up involving imperative directions to the computer!

<comment><USER10> Maybe you should try reading a bit about dependency injection. It is a declarative way to assembly pieces of software (in this case, objects) that have no knowledge of each other. You can do it manually, but this is an easier way to do it.

</comment></comment></comment></comment><comment><USER11> So... I am an avid TDD/Unit Test/BDD guy. I've been gravitating towards BDD lately and honestly I don't DI everything. Really if I'm just BDD-ing a layer I just need to DI the fringe dependencies, the things that would cause me to be dependent on other whole systems or sub-systems (think File I/O, Active Directory, Web Services, etc). My object still contains a lot of state.

I think saying that unit tests cause us to reinvent FP is a bit of a stretch. I do think that saying that unit testing causes us to write better code and we borrow heavily from many programming paradigms (DBC, FP, OOP, DSLs, etc) in order to write that better code.

<comment><USER12> I think you have overdosed on acronyms.

<comment><USER13> So... I am an avid Test Driven Development/Unit Test/Behavior Driven Development guy. I've been gravitating towards Behavior Driven Development lately and honestly I don't Dependency Inject everything. Really if I'm just Behavior Driven Develop-ing a layer I just need to inject the fringe dependencies, the things that would cause me to be dependent on other whole systems or sub-systems (think File Input/Output, Active Directory, Web Services, etcetera). My object still contains a lot of state.

I think saying that unit tests cause us to reinvent functional programming is a bit of a stretch. I do think that saying that unit testing causes us to write better code and we borrow heavily from many programming paradigms (Design By Contract, Functional Programming, Object Oriented Programming, Domain Specific Languages, etcetera) in order to write that better code.

:)

</comment></comment></comment><comment><USER14> Interesting point, although I would argue that writing unit tests is more like reinventing Design by Contract.

<comment><USER15> Not really, contracts can't send in invalid data to see what happens and ensure the proper actions are taken.

Contracts don't prevent the need for tests, they simply augment them. Contracts only state assumptions about how code should behave, but they don't make sure those assumptions are correct, only tests can do that.

<comment><USER16> Upvoted you after some baffoon voted you down for no apparent reason.

Seems like downvoting because of disagreement is getting more and more popular these days.

</comment></comment></comment><comment><USER17> I really like functional languages while others hate it, but I don't think functional languages will take off by itself. The reason why functional languages don't work is that they're they wrong metaphor. Object oriented programming works because it fits the user model of how to describe actions and the world.

Features of functional languages will influence PL (Ruby, EMCA script, Python), server paradigms (map reduce), but I don't think it'll ever go mainstream by itself.

</comment><comment><USER18> Better put 'functional programming is reinventing the way unit tests are written'. Its extremely easier to 'think of' and create unit tests on business logic that avoids using state and mutable data, as do all functional languages.

On the other hand, this is pretty much offset because structuring a program ( the one on which the tests will be performed) using a pure functional style is very hard, especially when its syntax/compiler doesn't enforce it.

Languages like Java which have fields, getter/setter methods and similar syntax are mine-fields for introducing state and mutable data. Erlang really forces you to think in functional style given its 'message passing' style, so unit tests are a snap. In Java and other non-functional languages unit tests would be just as easy, the problem is avoiding state and mutable data.

Though I would still argue the effort forgone in unit testing, still needs to be invested designing the actual business logic taking care it doesn't introduce state and mutable data(non-functional behavior).

</comment><comment><USER19> Loads of "modern" stuff - unit testing, design patterns, continuous integration, aspect-oriented programming, etc - is people trying to retrofit FP ideas back onto OO code.

This is far, far more work than just using a functional language in the first place!

</comment><comment><USER20> This will sound like a trollish comment, but can anyone point to a modern web- app written in a purely functional language?

I'm curious how several design problems, such as DB access and authentication, have been handled...

<comment><USER21> There are some things linked from [http://www.haskell.org/haskellwiki/Practical_web_programming...](http://www.haskell.org/haskellwiki/Practical_web_programming_in_Haskell) but I don't know if they're Modern. Maybe they're Postmodern or Futurist or something.

<comment><USER4> Or maybe they just seem rather, uh, _simple_. If you are saying you this is a serious programming language, shouldn't you be able to show several large, complex and commonly used application - _by now_?

I, too, studied fp in grad school, fifteen years ago now. "Where's the beef" can seem like a cheap but if you have ... beef, it should be easily answered.

</comment></comment></comment><comment><USER22> I appreciate side effect programming, but I really think the java criticism is unwarranted. The first thing I think of is: "How do you do a CRUD app in your functional language?"

I enjoyed ML when we were doing it in school. However, I've only worked on one application that could be translated easily to the functional paradigm. The rest have parts that would be well suited to functional programming, but the rest of the program is one giant side effect. Monads aren't the answer there, they're a workaround.

<comment><USER4> A LOT of "ordinary programming" is moving some messy bits of information from one place to another, taking into account some messy cases and occasionally putting information into a third, messy place.

This kind of programming has little mathematical content and little similarity to the canonical factorial example that every functional programming language LOVES to give.

Here, functional programming seems to lose its elegant minimalism. Indeed, when you have a bunch of arbitrary, (meaning random) cases and conditions, no language can make your code elegant and minimal since your code must contain the information in the cases and random information is incompressible.

I mean, how would you write a WIN32 GUI in a functional language?

Show me otherwise but I haven't _seen_ the good argument for functional programming languages as general purpose languages and so the folks dumping Java don't really seem very much better.

<comment><USER23> _I mean, how would you write a WIN32 GUI in a functional language?_

Just like you would in any other language?

Functional programming is not different from any other type of programming. It makes some things easier, but other things are about the same.

I think a GUI app would be easier in, say, Haskell, than Java, for a number of reasons. The lack of global state will make threading easy, which keeps the GUI responsive. Abstractions like functional reactive programming will make the app's implementation cleaner. Finally, if you do it right, most of your app won't depend on the GUI, and will be very easy to test. (You can do that last one in any language, of course.)

Assuming your application does something useful, implementing the algorithmically complex part will be simpler as well.

Anyway, you can't understand the advantages of functional programming from reading some comments on a social news site. You actually need to try writing the application -- then you can see exactly what the benefits are, and whether or not _you_ care about them. If you don't want to invest any effort in learning, well, that's another issue entirely. (And is really the reason why many people don't all switch to Haskell. Learning something new is scary!)

</comment></comment></comment><comment><USER24> There is no reason that side effects have to be difficult to debug. You can think of the lookup chain for a variable as being part of a data structure being passed in to a function. It is just as easy to design a convoluted data structure that gets passed in to a function as it is to design a convoluted object hierarchy.

The difference is that you can't get implicit lookups for free in an fp language unless you implement something like messageSend(name, obj, args).

</comment><comment><USER25> This is unrelated to the post, but I noticed that instead of removing the email addresses from the thread, they've replaced them with images that are using a vary standard looking monospace font. I would think that any program that mentions "OCR" (including the 20 minute template matching hack you could do in Python with PIL), would be able to harvest addresses from it...

</comment><comment><USER26> I'll have to tell those haskell guys to throw quickcheck away then, since they don't need unit testing...

<comment><USER27> Did you just read the headline? Maybe a better phrasing would be "The need for unit testing is causing OOP guys to write in a functional programming style."</comment></comment>


The anorexic startup: A fable of drugs, sex and C++ [pdf] - <AUTHOR> http://theanorexicstartup.com/wp-content/the-anorexic-startup.pdf

<comment><USER2> Interesting enough. But the tenuous reality breaks for me when he retires to a farm. I've know people who did that. I grew up among them. It's not easy. Real farming is stunningly difficult. And even if they're just hobbyists, people used to the city go stir-crazy very quickly. It's a little knit-pick, but it strikes me.

</comment><comment><USER3> Real programmers use heroin.

<comment><USER4> Real programmers clearly use Accela.</comment></comment>


A History of Modern 64-bit Computing (2007) [pdf] - <AUTHOR> http://courses.cs.washington.edu/courses/csep590/06au/projects/history-64-bit.pdf <comment><USER2> If you found this PDF interesting then also read this 2009 article from John C. Dvorak [http://www.pcmag.com/article2/0,2817,2339629,00.asp](http://www.pcmag.com/article2/0,2817,2339629,00.asp)

<comment><USER3> The PDF was interesting, but the Dvorak article linked was meh.

</comment></comment><comment><USER4> This mentions only in passing the 64-bit RISCs that preceded AMD64 & Itanium. Also some outright fiction like "IA64 provided unmatched performance on scale- up workloads". I guess the Microsoft authors don't want to talk about shipping a 32-bit NT on those while the competition had all 64-bit sw stacks :)

Very interesting read still.

<comment><AUTHOR> I'd argue that there was no true demand for 64 bit computing prior to 2001-2002, if you look at say the Sun Ultra series of workstations, most couldn't go beyond 4 gb of ram per processor, many much less, the same appears to be the case for DEC. The exception largely was SGI.

Even then, the markets Microsoft was selling NT into, wouldn't have benefitted much from the extra memory (or the greater floating point performance) allowed by 64-Bit processors. Microsoft has never been in the scientific computing part of the business that SUN, DEC, and SGI were playing in.

<comment><USER4> Sure, workstations didn't need 64-bit at that time. But servers did, and at that time Windows was still trying to prove its credibility as a server OS vs the incumbent Sun/HP/IBM/etc platforms. Another field where 64-bit was an even more urgent requirement was HPC. At the time HPC was more focused on big iron than PC clusters.

Here's a classic post from John Mashey outlining the rationale for 64-bit in the early 90s: [http://yarchive.net/comp/64bit.html](http://yarchive.net/comp/64bit.html)

Also remember how long and painful the 16-to-32 transition was on Microsoft's platforms. They had every reason to get their platform and running up many years before customers needed the 64-bit apps.

<comment><AUTHOR> Yeah, that's more or less the argument I was making - (though I seem to recall that it wasn't until the late 90's that the sun user land was 64bit, it was all still 32bit) I don't consider Windows Server a really good general purpose server system, its excellent at some workloads though.

IA-64 was a mistake, it has hurt everyone who touched it, I believe it killed VMS (beyond the crazy way VMS is licensed) (and did no favors for HP-UX either.) - it is and was too hard to build a really efficient compiler for - thankfully microsofts porting effort to IA-64 got the codebase set up to go to AMD64.

In many ways though, as much as I'd like to see other microarchitectures, x86 is the UNIX of hardware, it's good enough for most applications, and in the long run, good always beats perfect.</comment></comment></comment></comment>


Ask HN: How's your experience the last time you used a Web Analytics tools? - <AUTHOR> <comment><USER2> I deployed my own Matomo. Admittedly, I don't get much traffic so I am not a power user but I really like having control over it and the deployment was easy.</comment>


What it's really like to work for a tech giant - anand-s https://medium.com/the-coffeelicious/what-it-s-really-like-to-work-for-a-tech-giant-4462fd18ce19

<comment><AUTHOR> Nope. Bizarre fantasy.</comment>


A sharp knife slices more easily through a tomato because it has higher friction - <AUTHOR> https://www.stle.org/files/TLTArchives/2018/03_March/From_the_Editor.aspx <comment><USER2> "Obsidian (volcanic glass) scalpels have been considered as an alternative to steel scalpels due to the narrowness of the cutting edge. When incisions made with each type of scalpel are viewed microscopically, one made with a steel scalpel will reveal tearing of individual cells, yet obsidian cuts between individual cells."

That's pretty incredible.</comment>


Proof of History – A clock for blockchain - <AUTHOR> https://medium.com/@anatolyyakovenko/proof-of-history-a-decentralized-clock-for-blockchain-9d245bd5abb3 <comment><USER2> Seems like a response to the PoW as the clock discussion from yesterday ([https://news.ycombinator.com/item?id=16862077](https://news.ycombinator.com/item?id=16862077)). Specifically, "Figuring out a way to pace ticks with less work is a trillion dollar problem"

<comment><AUTHOR> Yes, exactly!</comment></comment>


New paper: "Why most of psychology is statistically unfalsifiable" - <AUTHOR> https://medium.com/@richarddmorey/new-paper-why-most-of-psychology-is-statistically-unfalsifiable-4c3b6126365a <comment><USER2> Short, good read. The money quote is near the end:

> We also suggest a way of powering future experiments: power your experiment > such that you, or someone else, can conduct a similarly-sized experiment and > have high power for detecting an interesting difference from your study. We > need to stop thinking about studies as if they are one-offs, only to be > interpreted once in light of the hypotheses of the original authors.

<comment><USER3> Isn't this simply maximizing the probability of a successful reproduction? Seems almost obvious given the whole problem was low reproducibility in the first place.

<comment><USER4> Sufficiently advanced reproducibility is indistinguishable from correctness.

<comment><USER5> Or systemic (as opposed to systematic) bias.

 _Independent, adversarial_ reproducibility implies some possibility of correctness.

But psychology doesn't seem to do what science usually does - build models and make independent predictions from them.

Finding patterns in data is not the same as testing a null hypothesis which is the result of a model, and not just a random query. Or an accidental discovery.

</comment></comment></comment></comment><comment><USER6> Is whether some psychological are falsifiable matter? Why is a paper like this one concerning itself with falsifiability?

These are questions the present paper does not concern itself with. It seems to take for granted that falsifiability of a study is something important, but never bothers to say why.

Falsifiability was popularized in the mid-20th century by the philosopher Karl Popper, who proposed it as a criteria of measuring whether something is "scientific" or not.

Unfortunately for his project, and perhaps for the authors of this paper, the falsifiability criteria was largely rejected by later philosophers:

 _" Sir Karl Popper is not really a participant in the contemporary professional philosophical dialogue; quite the contrary, he has ruined that dialogue. If he is on the right track, then the majority of professional philosophers the world over have wasted or are wasting their intellectual careers. The gulf between Popper's way of doing philosophy and that of the bulk of contemporary professional philosophers is as great as that between astronomy and astrology."_[1]

More critiques here: [1]

I'm not sure if such critiques or philosophers of science other than Popper are looked to by scientists, if scientists have some special reason for still caring about falsifiability, or if they just latched on to the concept and now either don't know or don't care what philosophers of science think about the demarcation between science and non-science.

One other thing that goes unremarked on by this paper is why whether a study or branch of psychology is considered scientific or not matters. There is in fact sometimes a lot of money involved, and certainly careers to make or break. Scientists and psychologists both have a vested interest in making their way of doing science or practising psychology the most highly respected, desirable, and valuable way.

In the current money-conscious climate, insurance companies are often keen to pick the shortest possible (ie. cheapest) and most "evidence-based" (or most "scientific") treatment, and reject the rest. This way, they can reject as much as possible, and pay as little as possible for treatment. Consumers, usually knowing little about psychology or the battles that have happened between branches of psychology often pick the most "scientific" sounding treatment (if they have, or one that their insurance company covers, if they don't -- and they often don't). So that's where the money goes.

[1] - [https://en.wikipedia.org/wiki/Falsifiability#Criticisms](https://en.wikipedia.org/wiki/Falsifiability#Criticisms)

<comment><USER7> It's not necessarily that falsifiability is important, but that these studies claim it to be so, and yet aren't.

<comment><USER8> It seems to me the authors of the original paper are confused about, or are confusing the meaning of "falsifiability" as it's usually meant in philosophy of science.

It was an interesting paper, if not entirely original, but I wouldn't say it's about falsifiability. It's about power. There's some overlapping issues, sure, but they're not the same concepts.</comment></comment></comment>


Show HN : Founder Kit for Technical Savvy - <AUTHOR> http://www.ideatomvp.com/Index.ashx/FounderKit

<comment><USER2> The idea is neat, but author's choices for design and wording make it _really_ hard to trust and understand the offer. I'm pretty sure that potential non- technical founders won't convert on this page due to great amount of actually technical language.

<comment><USER3> I agree, you could try to improve the design and wording to make it more professional.</comment></comment>


New tab Chrome extension tying your goals to your habits and to-do's - <AUTHOR> https://chrome.google.com/webstore/detail/purposetab-your-clarity-f/fmhpabfiomkjppgbgjbfecjbphmiphmj <comment><USER2> I ditched Momentum for this and I really dig it. I love seeing my goals every time I open a tab VS just seeing the time and a pretty picture.</comment>


Zugzwang: when a game player is at a disadvantage because they must make a move - <AUTHOR> https://en.wikipedia.org/wiki/Zugzwang <comment><AUTHOR> I like how this concept applies to decision-making outside of games in daily life. I've certainly been in various situations where a clear yes/no decision felt arbitrary or forced, yet waiting it out (a.k.a. not making a move) would simply bring clarity or eliminate the need for the decision altogether.

</comment><comment><USER2> Does anyone have any classic examples of zugzwang in the game of Go?

<comment><USER3> You can pass in Go, so there is no such thing.

But there are many simple examples from chess, especially in the end game. The king-rook checkmate, for example, relies on the fact that the player must move (inevitably, into opposition).</comment></comment>


Pre-Safe Sound: Playing 'pink noise' in the split second before impact (2015) - <AUTHOR> https://www.mercedes-benz.com/en/mercedes-benz/next/connectivity/pre-safe-sound-playing-pink-noise-in-the-split-second-before-impact/ <comment><USER2> This is a comment from Reddit on the same [0]; though I cannot vouch for its veracity, I found it interesting nonetheless:

Former Benz master tech here.

I've spent a good bit of time diving into the nitty gritty of these systems.

It uses all of the vehicle sensors to determine crash logic.

You want to fire the pretensioners before the airbags if at all possible. This locks the occupants in a much more secure and predictable psition.

Accelerometers can determine if something like a rollover is in progress.

Heavy braking + high speed + sudden activation of the parking sensors indicates a crash before physical contact happens.

It can use the radar on distronic equipped cars to predict a crash.

If the vehicle is in a slide, and a sudden yaw correction happens, this means a collision has occurred, even if the airbag sensors haven't been triggered. This is useful because the airbag sensors are only good at detecting force in one dimension.

It's even possible for the vehicle to determine to fire the pretensioners but no airbags based on occupant size and weight (determined through seat/steering wheel position and capacitive mats in the seats) and impact vectors.

It will even do things like full field the alternator up to 18+ volts to slam the windows shut super fast in the event of a rollover.

The actual detection logic fills a 4" thick book.

It's a big reason those cars are so damn expensive.

Mercedes doesn't fuck around with safety.

If I had to be in a wreck, it would be in an S class. Hands down.

0: [http://www.reddit.com/r/todayilearned/comments/59qhaw/til_ne...](http://www.reddit.com/r/todayilearned/comments/59qhaw/til_new_mercedesbenz_cars_will_play_a_short_blast/d9avtav)

<comment><USER3> This is all fascinating stuff, thanks.

Of course, in the future when all cars are connected (even if they're not self-driving), combining all this sensor data and sending it to the vehicles behind you would save countless lives. The number of times you hear about pile-ups in fog and heavy rain - that could all be avoided by cars talking to each other.

But I'll bet there's still no open (or even closed) standard on inter- manufacturer comms yet?

<comment><USER4> That does raise interesting security problems though - my car receives a message saying to stop as quickly as possible, how does it decide whether this is a valid message or someone hacking cars for fun?

<comment><USER5> I don't have an answer for you, but maybe it stems from some sort of idea of identity? Maybe the car sends a message authenticated with your license ID. Cars are (hand waves) able to authenticate the validity of a message. If you send a message saying you were in a collision, that comes with the side effects of saying you were in a collision - emergency contacts and police may be notified, maybe something pings cars registered to you to see if it was actually in an accident based on sensor data. Your insurance rates may go up. If it turns out you were lying, maybe your car gets flagged for repairs next time you try to re-register your tags. Or maybe you are flagged for trolling and you get the "boy who cried wolf" effect.

<comment><USER3> Sure, the actual vehicle systems had better work and be properly authenticated, and that could be achieved in numerous ways... but none of this stops a hacker war-driving with a laptop, or sitting on an overhead bridge, or on the other side of the world.

There is no doubt that intelligent highways would be a massive target for terrorist and cyber attacks. However, one thing in our favour is the fact there is so little technology already in place, since they won't be burdened with decades' worth of insecure legacy systems: at least they'll be able to start out building infrastructure in full knowledge that it better be secure.

<comment><USER6> I'm tempted to qualify the second point as optimist.

US voting machines didn't have to deal with legacy technology and still turned pretty bad from an infosec POV.

<comment><USER7> Exactly, and it is not just this one case: serious, avoidable security cock- ups have happened every time a new class of device has been put on the internet, with the IoT DDOS debacle being perhaps the latest example.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> The interesting bit:

 _If an impending collision is detected that would be expected to produce a loud crash, the vehicle's sound system plays a short interference signal. This causes the stapedius muscle in the ears to contract, which for a split second changes the link between the eardrum and the inner ear and so better protects it against high acoustic pressures. Most importantly, the reflex reduces the damage to hearing._

<comment><USER9> I wonder if it as cool hypothesis that they decided to implement as a cheap bit of marketing, or whether the protective factor is actually evidence-based.

<comment><USER10> Did you actually read the article, or are you just here to snark on HN?

Here, let me do your research for you. First link on a search for "stapedius reflex" is [https://en.wikipedia.org/wiki/Acoustic_reflex](https://en.wikipedia.org/wiki/Acoustic_reflex)

A quick search on Google Scholar for "acoustic reflex noise" turns up this paper from _1962_ which states in the abstract that the acoustic reflex is more easily triggered by wide bandwidth noise than a single sinusoidal tone. [http://scitation.aip.org/content/asa/journal/jasa/34/9B/10.1...](http://scitation.aip.org/content/asa/journal/jasa/34/9B/10.1121/1.1918384)

I think we can safely say that this work is pretty evidence based.

<comment><USER11> A friendly reminder: "a quick search on Google Scholar" is not research.

That paper you mention is just a functional description of the "accoustic reflex". I don't think the parent comment was putting the existence of the "accoustic reflex noise" in doubt; rather, and I agree with him, it's its effectiveness to protect the driver in a car crash what is in doubt.

The page makes a reference to a human trial in 2011. It would be great if they included a footnote with the reference to the actual paper.

<comment><USER10> It's not "research research" but it is "does this phenomenon actually exist in the literature" research.

Insisting on testing the phenomenon in an actual car crash seems superfluous to me. A car crash produces a loud noise that can potentially damage hearing, which can be alleviated to some extent by triggering the acoustic reflex with a quieter noise immediately before impact. So long as the generated noise is well below the threshold of damage then I'm really failing to see why more specific research is required in order to believe that this would be an effective intervention.

<comment><USER12> The bit about the noise from a car crash being loud enough to damage hearing after a one-time short exposure is what I doubt. Sure it's loud, but does a split second exposure to it really do permanent damage? I don't know what the answer is, but I am skeptical about the usefulness of this feature.

<comment><USER13> Stand by some one at the range without ear pro and ask them to shoot one shot.

The sound is only a fraction of a second but that ringing you'll hear is the death sound of the frequency you'll likely never to be able to hear again.

You also need to understand that sound and loudness isn't what causes hearing loss it's the pressure shockwave.

If a blast "noise" is mostly outside of your hearing range the pressure will still do permanent damage.

When a bomb goes off most of the energy can very well be outside of the normal frequency range of the human ear, it will still however rip your ears apart.

<comment><USER14> _that ringing you 'll hear is the death sound of the frequency you'll likely never to be able to hear again_

or you'll hear it all the time

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> Forwarded this onto my dad who is an ENT specialist. He responded:

"The Stapedius reflex has been use for artillery gunners for decades but the pink noise use is certainly novel."

<comment><USER16> I was going to ask if this would work at the gun range

</comment></comment><comment> martin-adams I worked with an audio engineer on real-time video encoding hardware and he said that in audio compression, you can throw away audio data immediately after a loud noise because the ear can't pick it up. This is probably an oversimplification, but sounds like a similar technique in this safety feature. I like it.

<comment><USER17> This is actually a big part of how MP3 compression works. Rather than using straight up data compression, it uses a psychoacoustic model to simplify different components of the signal that are affected by masking.

There's a nice high-level (human readable) technical overview here if you'd like to learn more: [http://arstechnica.com/features/2007/10/the-audiofile- unders...](http://arstechnica.com/features/2007/10/the-audiofile- understanding-mp3-compression/)

<comment><USER17> I should add, as another side note / rabbit hole to those new to the art of 'fucking with brains through audio' — masking is also frequently put to use in mixing, particularly EDM and more percussive genres.

To help squeeze every last drop of perceived dynamic range out of a track you can use a technique known as sidechain compression ([http://samplesfrommars.com/blogs/tips-tricks/18999227-how- to...](http://samplesfrommars.com/blogs/tips-tricks/18999227-how-to-use- sidechain-compression-to-make-kicks-cut-through-the-mix)) to dynamically compress other components of the mix in response to (usually) a kick drum.

<comment><USER18> Thanks for that informative link.. I would say the advice to simply re-write a musical composition so that bass and kick don't happen at the same time seems to put the cart of mix aesthetics before the horse of musical intent! :)

"Sideband compression" sounds like an interesting dsp project! But I think the term is "sidechain compression", right?

<comment><USER19> In electronic music, mix aesthetics is quite often exactly the musical intent - you're trying to create a track that sounds a certain way first, and think about melodies and harmonies (if you even have them) second. You would often pick specific key and bassline because of how low frequencies (55-110 Hz octave and below) sound in the mix on your intended equipment. You would even distinguish between open-air and club tracks sometimes because of how open space affects sonic qualities of your mix.

</comment></comment></comment></comment></comment><comment><USER20> Dear everyone,

Mercedes is a good marketeer and with best intentions they included protection of hearing in their campaign. I wouldn't blame them for not knowing and after having spent lot's of money on this it could be dissapointing to hear that in fact, the acoustic reflex arc, otherwise known as the stapedius reflex does not protect hearing against loud sounds. It is simply a myth that even among many professionals is believed.

The facts are that the ear's transparency for sounds is traditionally tested with only a single frequency, around 226 Hz, and around that frequency the sound levels get reduced by the acoustic reflex. Thus it seems as if the ear protects itself for loud sounds and the myth is born although it has only been measured at a single frequency.

Technology to measure the same prinicples for a wider frequency range is currently only available for a selective group of researchers and for the industry developing medical instruments in this direction (for which I work). We know that above 1000 Hz the stapedius reflex is doing the opposite of protection. It will increase the sound levels.

I could explain why the reflex is doing this, why did it evolve like this during the last many thousands of years. It is certainly easy to understand that a couple of hundred years ago (before industrialization) no protection for loud sounds was actually needed and thus hearing protection is not a logical candidate for explaining why we have such acoustic reflex...

Though this is not the point. The point is that Mercedes' feature is not protecting your hearing during a collision impact. They made it with best intentions and for that they deserve a compliment and credits.

A little more info about the acoustic reflex that I consider to be correct can be found here: [https://youtu.be/3a3Eeuhkh-c?t=1164](https://youtu.be/3a3Eeuhkh-c?t=1164)

Feel free to try to get in touch with me as well if you want to find out more about this topic.

Cheers Jos

</comment><comment><USER21> Mildly interesting: when I played the sample pink noise in the article, my dog went mental.

<comment><USER22> Of course he did. Poor thing, he realized you were going to be involved in a car crash in the next 100ms.

(sorry couldn't resist :-))

</comment></comment><comment><USER23> I wonder if that noise is going to be a major ptsd trigger for people involved in an accident afterwards. (Of course probably any loud noise would be). It will be interesting to see any data they can collect out of this on the benefit in practice.

</comment><comment><USER24> Fascinating stuff. Kudos to Mercedes-Benz for pushing the envelope and making driving safer.

</comment><comment><USER25> The pink noise in the video has some strange dropouts and is compressed. If you want to listen to real pink noise I suggest this: [http://stenzel.waldorfmusic.de/post/pink/](http://stenzel.waldorfmusic.de/post/pink/) Source Code: [https://github.com/Stenzel/newshadeofpink](https://github.com/Stenzel/newshadeofpink) disclaimer: I made this.

</comment><comment><USER26> I often listen to pink noise while I work to suppress room noise and mask tinnitus. Ironically, I find it is also good for relieving headaches! :) I have a CD with hour-long tracks of just white noise (sounds like static), pink noise (sounds like waves), and brown noise (sounds like airplane hum).

[http://whitenoisemeditation.bandcamp.com/](http://whitenoisemeditation.bandcamp.com/)

<comment><USER27> You can also use SoX!

`[audey@feather ~]$ play -c2 -n synth whitenoise lowpass 400 highpass 40`

</comment></comment><comment><USER28> Sounds more like white noise to me. What makes it pink??

<comment><USER29> Redshift

<comment><USER30> The sound is distinctly crisper on BigQuery, though. Of course, cables can make a difference but not always -- use CAT-8.2 if possible.</comment></comment></comment>


★ Is it possible to deliver offline messages in P2P network on iOS/Android? - <AUTHOR>

I'm working on secure and anonymous instant messenger for Android and iOS. I believe that true security and anonymity can't be achieved in client-server architecture, therefore I'm building up a P2P mobile IM without servers or "super" nodes. I have opted out of XMPP in favor of Torchat. So at this point my team is porting Torchat and OTR to iOS and Android. Source code is open on Github (https://github.com/prive). Torchat and OTR solve my objectives perfectly well — it provide security, lack of central nodes and servers, IP address masking, ease of use, reliable connectivity, encryption and authentication. But neither of them work if recipient of the message is offline. Message is lost and recipient never receives it when becomes online.
My assumption is that messages should be buffered inside P2P network and conveyed to users by mediators, other participants of the network. I looked over the Internet and found a Bitmessage protocol. It's based on Bitcoin protocol and implements P2P serverless instant messaging. Each node in Bitmessage network receives all messages and attempts to decrypt them using own private key. To solve scalability issues network is split automatically into multiple clusters (called streams). It allows to keep network traffic and CPU consumption within acceptable threshold.
1. Am I using the right protocol to implement P2P offline messaging on iOS/Android? 2. Can I estimate network and CPU load that will occur on mobile device? 3. Is it possible to receive and decrypt Bitmessage data on iOS while application is in background? <comment><USER2> Very interesting project, interested to see how you get on.

<comment><AUTHOR> Thank you. There are some technical issues, but I believe it's all feasible.</comment></comment>


The Lean Startup Ebook - <AUTHOR> http://luigivibal.com/2012/07/the-lean-startup/ The Lean Startup provides a scientific approach to creating and managing startups and get a desired product to customers' hands faster. The Lean Startup method teaches you how to drive a startup-how to steer, when to turn, and when to persevere-and grow a business with maximum acceleration. It is a principled approach to new product development. <comment><USER2> Is this legal?

<comment><USER3> no, the book is still under copy-right protection. I've flagged the link.

<comment><AUTHOR> flagged as what?</comment></comment></comment>


Chrome 76 Has Given Billions of Google Users an Incentive to Use Firefox Instead - <AUTHOR> https://www.forbes.com/sites/daveywinder/2019/08/02/has-chrome-76-given-billions-of-google-users-an-incentive-to-use-firefox-instead/#7f9674017f83 <comment><USER2> I'm not clicking on that bait. Could someone change the title to something that actually says what it's about?

Original title was: "Chrome 76 Has Given Billions of Google Users an Incentive to Use Firefox Instead"

<comment><USER3> The whole article is clickbait and low effort journalism. If anything, it actually does a lot more praising Chrome?

Starts up with

> Chrome 76 update which brings plenty of things to like from a security and > privacy perspective, and one real stinker as far as usability

Then follows with 3 paragraphs of explaining the upsides. Next, there's a completely unrelated paragraph about the whole ad-blocker extension v3 kerfuffle, which then transitions into a rant about the word "omnibox".

Finally half way through, we get to the crux, which is about the url simplification, which is insane to think that out of all the things people would leave Chrome for, it'd be because removing www. and [https://](https://). As if average users care one bit...

</comment></comment><comment><USER4> Title is inaccurate as proven by the authors opinionated statement in the first paragraph.

> Google has just released the Chrome 76 update which brings plenty of things > to like from a security and privacy perspective, and one real stinker as far > as usability and the potential for cyber-shenanigans is concerned. Whether > it is enough to give many of the billions of mobile users of the Chrome > browser (it has been installed five billion times according to Google Play) > an incentive to march towards Mozilla Firefox remains to be seen. One > thing's for sure, though; it's undoubtedly annoying the heck out of web > developers.

</comment><comment><USER5> The question is if removing 'www' and the protocol are strong enough incentives to take the trouble to manually switch from an integrated (on Android) and bundled (just about everywhere) browser.

On the other hand I suspect that users will get used to not seeing 'www' and the protocol and in no long time, will call browsers not following suit as "having cluttered UI."

Monopolies (even de facto ones) train their target users, and not the other way around. We will get used to yet another small erosion of choice, complexity and the appreciation of diversity that exposure to them brings.

<comment><USER3> Out of all the things that would make people go from Chrome to Firefox, removing www is literally at the very very bottom of the list for average users... I understand technical people and power users caring and claiming it's not a good idea, but the majority of people won't even notice anything changed.

<comment><USER5> That's my point. Any single factor by itself seems hardly a reason to switch. Sadly the "whole picture" is not something the vast majority of users are likely to be informed about, so barring severe and protracted regression, I don't see any large-scale switch away from Chrome.

</comment></comment></comment><comment><USER6> Chrome removed the green padlock as a way to show the its secured by default. Therefore, an error will show when it's not https. Could the author please explain why that is bad?

<comment><USER7> I don't use Chrome on iOS but Safari explicitly shows "Not Secure" for a non- HTTPS site. The secure ones have a padlock. My non-tech friends find this to be very clear; they have learned not to enter information when a website is "Not Secure".

If this is the direction in which Chrome is heading, the 5-billion or so users will know, without a doubt, whether a site is secure or not. I don't see a problem with this change, per se. The others, especially targeting ad blockers, seem to be a step in the wrong direction.

</comment></comment><comment><USER8> This is basically just a summary of the most visible changes in Chrome 76. The ones that the author seems to have the most concerns about are the hiding of https and the hiding of what Google calls trivial subdomains like www.

The actual article title is also phrased as a question not as a statement, "Has Chrome 76 Given Billions Of Google Users An Incentive To Use Firefox Instead?"</comment>


Why are CDC's Covid-19 daily case count numbers so low? - <AUTHOR> A key measure for whether an epidemic is getting worse or better is "new cases per day". If that number is the same or lower than the previous day (regardless of the absolute number), the in theory the epidemic has reached the inflection point on its logistic curve. So I looked for case counts reported in this way (most headline graphs only show the accumulated total case count). I noticed the graph on the CDC's web site shows very low numbers[1] compared to another non-CDC site[2]. What's going on here? How am I misinterpreting the data?<p>[1] https://www.cdc.gov/coronavirus/2019-ncov/cases-in-us.html (under "Cases by date of onset").<p>[2] https://www.worldometers.info/coronavirus/country/us/ (under "Daily new cases"). <comment><USER2> You can't manage what you don't measure.

</comment><comment><USER3> My state, Georgia, has only one testing center and it can only process 100 tests per day.

[https://www.wabe.org/georgias-coronavirus-testing- capacity-t...](https://www.wabe.org/georgias-coronavirus-testing-capacity-to- double/)

</comment><comment><USER4> Absolute lack of testing, the real number could be 10,000 or 50,000. Nobody knows.

</comment><comment><USER5> the CDC site states that they only include tests performed by the CDC. There are hospitals performing tests that don't have to report to the CDC.

<comment><USER6> There are also many people who are not being tested, and governments which have a formal policy of not testing people unless they exhibit severe symptoms requiring medical attention

<comment><AUTHOR> Just to be clear: I'm not asking about the lack of testing (which is of course problematic) but rather why the other web site has much larger numbers. Why is it that some web site has different and much higher numbers than the official US government site?</comment></comment></comment>


An iPad Lover's Take On The Nexus 7 - <AUTHOR> http://techcrunch.com/2012/07/15/omg-he-likes-it-he-really-likes-it/ <comment><USER2> I actually think that post-ICS and especially with Jelly Bean that Android is a superior tablet OS to iOS, at least for me. There's basically no feature on iOS that I miss when I'm on Android, but a few (eg. custom keyboards, the overall intent system, etc) that I miss when I'm on iOS.

iOS still kills Android for app availability though (especially when it comes to "tablet optimized" apps) and between that and iOS ecosystem lock-in, Android/Google still has some catching up to do to make tablets a true two- horse race.

<comment><USER3> > iOS still kills Android for app availability though (especially when it > comes to "tablet optimized" apps)

I keep hearing that. But never seen it backed up. Based on exactly what does people say this? There's no efficient way to "count" Android tablet optimized apps. So how do you compare? Is it because there are some major apps that still works bad on Android tablets? If so, which ones?

I remember when Honeycomb just came out. It was terrible, most apps I'd download looked terrible, and I furiously uninstalled many of them. It was so frustrating. But it has been a long time since I don't feel like that anymore. Today, every app I use on my phone is nicely optimized for my tablet as well. I literally cannot think of a single example of one app I'm missing tablet support for. Yet, the "Android still doesn't have tablet optimized apps" meme didn't stop.

But maybe I'm just living under a rock and haven't been using the same apps as others. So I humbly ask, could anyone please give me an objective argument for this point to understand if there's actually still any merit to it?

<comment><USER4> I use skritter.com for practising Chinese. They recently released an iOS app after several months work. There is currently no plan to produce an Android app, partly because there is a partial web / flash solution available on Android, but I assume also that the numbers didn't add up for putting the work in to porting the iPhone app.

This is a must-have application for learning to write Chinese in my opinion, to the extent that people would buy an iOS device just to use it. There is no equivalent for Android. I carry around an iPhone as a work phone, and pretty much only use it for this.

So learning Chinese is a little niche, but I'm sure there are other niches where people rely on a particular app, this app is not available on Android, and so they wouldn't switch for this reason.

<comment><USER5> >There is no equivalent for Android.

Have you tried MonkeyWrite? <http://www.monkeywriteapp.com/>

(Android only)

<comment><USER4> Just tried it, nice enough, but not really on the same level. I'm up to 1,500+ characters on Skritter after hundreds of hours, I think that whole app with all the add-ons would take about 30 minutes to get through for me. Doesn't look to have spaced recognition like Skritter does either.

</comment></comment></comment></comment></comment><comment><USER6> I have to give Siegler credit for actually posting an objective review of an Android device.

No matter which side you favor in the tablet wars I think you have to agree that we're better off as hackers and consumers in a market with real competition. Rather than picking sides we should be happy that Apple and Google are pushing each other to improve their hardware and software at a rate we rarely see in consumer electronics.

<comment><USER7> > we're better off as hackers and consumers in a market with real competition

On the tablet market, the competition was decimated by the iPad, which was, objectively, overall better than any contender, and by a comfortable margin. Yes Android could potentially do stuff better than iOS, yes hardware could be non-crap, but what was going out of the door was not even in the same league at all. The only one that had real potential at some point was the WebOS based one†.

Until now.

The trouble was that if you had the balls to tell this fact you were irrevocably dismissed as an Apple fanatic.

I long for this tablet to be available outside North America.

†The Kindle Fire is completely under-specced in terms of quality. The Nexus 7 and iPad are both way better.

<comment><USER8> >Until now.

Now was 6+ months ago. You could get a nice fast Tegra3 tablet for a while now at a competitive price. The Nexus is really just an Asus TF201/TF300 shrunk down to 7 inches and with a hefty reduction in price.

>The trouble was that if you had the balls to tell this fact you were irrevocably dismissed as an Apple fanatic.

Or unaware of the last 2 Asus Transformer models (three now as the new one just launched) or even the budget Acer tegra3 tablet. Galaxy tablet isn't bad either, just slow to updates.

I've owned both the TF101 and the TF300 and really feel no need or want for an ipad. The Fire/Nook aren't tablets, they're appliances. If someone wants an android tablet, there are at least 2 or 3 very nice models for sale and 4 or 5 mainstream lower tier cheaper ones.

The Nexus is just a big price cut. Its the same hardware we've been using for some time. That's partly why its so cheap. The Tegra3 chipset is ancient by SoC standards (November 9, 2011.).

<http://en.wikipedia.org/wiki/Tegra#Tegra_3>

</comment></comment></comment><comment><USER9> Awesome! Now if Google can just distribute it beyond the initial five launch nations, create meaningful product support, rework a half million third-party applications, and answer growing malware concerns they'll have a sweet two- month sales window all to themselves before you-know-who barges into their market.

I want one anyway.

<comment><USER10> > Now if Google can just distribute it beyond the initial five launch > nations...

That's still much better than the Amazon Fire which AFAIK isn't even sold outside of the US.

See also this article from The Verge: [http://www.theverge.com/2012/6/28/3122716/nexus-7-internatio...](http://www.theverge.com/2012/6/28/3122716/nexus-7-international- price) ("The Nexus 7's most important price is £159, not $199").

<comment><USER11> Amazon Fire is available in Australia I know that much.

And why compare yourself against Amazon when Apple is rumored to be launching an iPad Mini which will be sold in 30+ countries almost immediately after launch.

<comment><USER12> There's available and "available". I have do doubt there are at least a few importers who buy Kindle Fires in the US and are selling them in Australia, but that's not the same as the Kindle Fire truly being available in Australia (the way the Nexus 7 is). Unlike other Kindles, Amazon will refuse to ship a Kindle Fire to Australia. I think that's a pretty clear statement from Amazon on Australian availability.

</comment></comment></comment></comment><comment><USER13> As much as a I love the idea of a 7 inch tablet, there's just one thing that I really _really_ use my tablet for and that's reading PDFs and old scanned comic books (guilty pleasure). The size of a ~10" tablet is more or less perfect for this despite the difficulties in handling the size of the device while in bed vs. a 7".

<comment><USER14> I have to disagree on this. 7 inches are so much better when you want to read on the crowded NYC subway. I already tried with an iPad and it's a whole lot more inconvenient.

<comment><USER15> PDFs with images - ie, technical manuals or papers - still don't see it for a 7" screen. Reflow don't help much here.

<comment><USER16> The Nexus 7 has the same resolution that most 10" tablets have now, so why would you need reflow? Shouldn't everything look the same as on the current 10" tablets, just sharper?

It might be because my eyes are still young, but I prefer smaller screens with a high pixel density to larger screens with a lower pixel density.

<comment><USER17> >It might be because my eyes are still young

It is because your eyes are still young.

</comment></comment></comment></comment></comment><comment><USER18> Author talks about some mysterious elements of force in iPad that Android doesn't have. I am not sure what he means.

</comment><comment><USER19> What I read from this article is: "Apple should release a 7" iPad and I will buy it at once. I am sad I have to use a Google product now but this 7" form factor is really irresistible".

</comment><comment><USER20> A fair review. It is really a good move that Google offers a device to him.

<comment><USER21> The saying goes, keeps your friends close, enemies closer :)

</comment></comment><comment><USER22> Let's hold on a sec and put things in perspective. Although MG is regarded by some as an Apple fan boy, this is not the first time he has been enthusiastic about a non-Apple tablet. <http://m.techcrunch.com/2011/09/02/amazon-kindle- tablet/> and we aren't still aren't sure what the prospects are for the Fire. This is important to note because although Amazon has a strong commerce offering and can provide music and videos, it's own tablet lacks in apps. The Nexus offers plenty of apps, in my opinion, but the music and video offerings are pretty weak right now. The iOS ecosystem still offers it all, with a strong retail presence to boot, and if Apple introduces a 7ish" tablet at a good price point, I'm not sure how this will stack up then.

</comment><comment><USER23> Why would you want to hold your tablet with two hands, other than perhaps gaming? But I figure it should be easier to play them if it's smaller. You're using the iPad with 2 hands, because you don't usually have a choice.

I do think Google needs to make the next version 7.7"-8", though. I think 7" is a little too small. Basically they should make one that is as large as possible (but up to 8"), which you can still hold easily with just one hand. From what I've noticed I think Samsung's 7.7" tablet qualifies for that.

<comment><USER11> The same reason everyone doesn't read books with one hand.

It's more comfortable to hold it with two.

<comment><USER24> Don't be silly. I read books with one hand all the time--small books, paperbacks, thin hard-bound books. Enormous 700-page O'Reilly books? No.

</comment></comment></comment><comment><USER25> In his review he says that he accidentally has pressed the software buttons while playing games. I don't know about Jelly Bean but on my TF101 ICS there's an explicit option to enable locking/unlocking of the soft buttons if you check the advanced page on the system settings. Once that's enabled, a small "slide to lock" padlock is constantly visibly in the middle of the status bar screen. So the next time when you want to play or something, just slide to lock the soft-buttons.

<comment><USER26> That is an ASUS only thing it seems. I have not seen it on other tablets yet. And it is very useful, especially if you let your kids use the tablet.

</comment></comment><comment><USER27> Wow. Someone not only discovers that a 7" inch tablet is smaller than an iPad, but that a smaller tablet is also a thing unto itself with special use cases. Welcome to 2010.

</comment><comment><USER28> I hope the experience using it is nothing like the unboxing...

[http://www.youtube.com/watch?feature=player_embedded&v=3...](http://www.youtube.com/watch?feature=player_embedded&v=32DD4DF7Qpo)

</comment><comment><USER29> How does the screen of Nexus 7 compare to Retina display iPad offers?

<comment><USER30> In terms of density, it's between iPad 2 and iPad 3.

<comment><USER31> iPad 2 has a dpi of 132, Nexus 7 213, and iPad 3 264.

Nexus 7, while not "retina", is closer to iPad 3 than iPad 2.

<comment><USER32> No. You _usually_ hold a 7" tablet closer to your eyes than a 10" one. So, for its pixels to appear the same to your poor eyes as pixels on an 246 ppi iPad 3, it must have a pixel density of 290 or so.

<comment><USER32> I think what I said is true. I can't understand why it's been downvoted...

<comment><USER33> I didn't downvote you, but I'm skeptical of the claim. They're both hand-held devices. I don't generally hold my Galaxy Nexus closer to my face than my iPad.

<comment><USER32> I personally _do_ hold an smaller tablet closer, but I might be wrong and most people don't do it. You're the living example :)

</comment></comment></comment></comment></comment></comment></comment><comment><USER34> read the title and i know it's gonna be Siegler.

<comment><USER35> Well that's because it's his "line" of review posts. He has done many of these before.

</comment></comment><comment><USER36> Am I the only one that thinks Asus isn't getting enough credit for the Nexus 7?

<comment><USER37> Does their logo appear anywhere on the device?

<comment><USER38> It does appear prominently at the back [1]

[1] <http://images.anandtech.com/doci/6054/GoogleIO2012-2261.jpg> via [http://www.anandtech.com/show/6054/google-nexus-7-mini- revie...](http://www.anandtech.com/show/6054/google-nexus-7-mini-review/)

</comment></comment></comment><comment><USER39> Why after a few years is noone able to build a 10 inch tablet? I honestly don't care how good an Android tablet is, I'm just so accustomed to the iPad form factor that I won't give it up. To get me interested, an Android manufacturer needs to come up with a bezel-less 9" or 10" tablet with more screen real estate than the iPad.

<comment><USER40> I've had a Transformer Prime for several months and have been enjoying the supposedly unobtainable Android tablet experience that everyone is waiting for. It runs stock ICS and has a 10.1" screen, and I actually wish it had a bit more of a bezel. I really don't understand why people are ignoring the Transformer Prime.

And the Transformer Infinity is coming out tomorrow, with a 1920x1200 screen, fixes to the Transformer Prime's GPS/Wifi issues (which I have not personally seen), and a micro SD slot & HDMI out (two of the things missing from the Nexus 7).

Ignoring good products seems to be a big issue with Android - with phones, people are complaining about skinning and lack of updates when the Galaxy Nexus is just sitting there waiting for buyers (I've already got Jelly Bean running on my GN).

<comment><USER41> I bought a Galaxy Nexus phone for my girlfriend so we wouldn't have to worry about updates anymore.

It's still stuck on 4.0.1 with no update in sight...

<comment><USER42> Jelly Bean is a development preview at the moment. I suppose that, like iOS 6, you have to enroll into the developer program to get it.

<comment><USER43> No it isn't? OTAs for Jelly Bean have been going on for a few days now.

[http://thedroidguy.com/2012/07/google-releases-jelly-bean- ot...](http://thedroidguy.com/2012/07/google-releases-jelly-bean-ota-to-hspa- galaxy-nexus-other-devices-to-come/)

<comment><USER44> That OTA is for the GSM model of the Galaxy Nexus, which is for T-Mobile, AT&T, (and most of the non-US countries) and gets its updates directly from Google. The post above is talking about the Verizon model, which does not get updates directly from Google (because you didn't buy it directly from Google), and is instead forced to wait for updates from Verizon. The only other option is to unlock the bootloader and install a community ROM.</comment></comment></comment></comment></comment></comment>


Lawsplainer: Why John Oliver Is Anti-Diversity Now - <AUTHOR> https://www.popehat.com/2017/08/11/lawsplainer-why-john-oliver-is-anti-diversity-now/ <comment><USER2> As informative as this article was, and it does cover some useful Civil Procedures, the headline is something I might have expected from the Daily Mail. That alone makes the entire thing seem rather disingenuous.</comment>