Which GPUs to get for deep learning - <AUTHOR> https://timdettmers.com/2020/09/07/which-gpu-for-deep-learning/ <comment><USER2> I appreciate the time and care that went into this post, and there's a nice discussion of various features.

Unfortunately the performance charts are completely devoid from reality, and in particular the discussion on tensorcores may be true from an instruction count perspective but does not reflect any third-party benchmark I've seen. For example: [https://lambdalabs.com/blog/2080-ti-deep-learning- benchmarks...](https://lambdalabs.com/blog/2080-ti-deep-learning-benchmarks/). Nvidia has a history of straight-up-lying about tensorcore and other benchmarks (for example, see this thread from right after Nvidia announced an 8x improvement in speed on imagenet in tensorflow for V100: [https://github.com/tensorflow/benchmarks/issues/77](https://github.com/tensorflow/benchmarks/issues/77))

In general, fp16 is only 30-40% faster than fp32, and occasionally 2x in really optimal conditions.

<comment><USER3> > Unfortunately the performance charts are completely devoid from reality, and > in particular the discussion on tensorcores may be true from an instruction > count perspective but does not reflect any third-party benchmark I've seen. > For example: [https://lambdalabs.com/blog/2080-ti-deep-learning- > benchmarks...](https://lambdalabs.com/blog/2080-ti-deep-learning- > benchmarks/)

The performance numbers posted here appear to almost exactly reflect the LambdaLabs numbers.

Lambda Labs: the RTX 2080 Ti is 96% as fast as Titan V, 73% as fast as Tesla V100 (32 GB)

timdettmers: RTX 2080 Ti normalized to 1, Titan V looks about 1.1 to 1.2, V100 is just below 1.5

> for example, see this thread from right after Nvidia announced an 8x > improvement in speed on imagenet in tensorflow for V100

Well a non-NVidia person managed to get it up to just above 4x improvement without "using unreleased libraries from NVIDIA". From the same thread: [https://github.com/tensorflow/benchmarks/issues/77#issuecomm...](https://github.com/tensorflow/benchmarks/issues/77#issuecomment-394541623)

In my experience NVidia benchmark numbers in deep learning are rarely lies - they are highly optimised, in optimal conditions and rarely achievable in the real world. About what you'd expect from a vendor benchmark.

<comment><USER2> Thank you for cross-referencing that, the data does look accurate and my statement now seems exaggerated. I do think we need skepticism on the A100 charts though until third party benchmarks.

> In my experience NVidia benchmark numbers in deep learning are rarely lies - > they are highly optimised, in optimal conditions and rarely achievable in > the real world.

Right, but Nvidia claimed 1360 images/sec for resnet-50 on imagenet. To my knowledge this still hasn't been realized by a third party. It also isn't a 4x improvement for fp32 vs fp16, that's comparing to previous generation. Improvement is more like 1.5x: [https://lambdalabs.com/blog/best-gpu- tensorflow-2080-ti-vs-v...](https://lambdalabs.com/blog/best-gpu- tensorflow-2080-ti-vs-v100-vs-titan-v-vs-1080-ti-benchmark/)

Even in very simple synthetic benchmarks the speed up is only 2x: [https://github.com/tensorflow/benchmarks/issues/77#issuecomm...](https://github.com/tensorflow/benchmarks/issues/77#issuecomment-349838985)

I have not seen any benchmarks showing an 8x speedup. Have you? If not -> Nvidia lied.

<comment><USER3> > Right, but Nvidia claimed 1360 images/sec for resnet-50 on imagenet.

On [https://images.nvidia.com/content/technologies/volta/pdf/vol...](https://images.nvidia.com/content/technologies/volta/pdf/volta-v100-datasheet- update-us-1165301-r5.pdf) they claim 1,525 images/sec (!)

Dell hit 5,243 images/sec with one of their 4 V100s servers, which comes to 1,310 images/sec per V100. I find it very believable that NVidia would get ~200 images/sec more, since Dell jumped 50% with a change in their CPU/GPU connection topology.

See [https://www.dell.com/support/article/en-au/sln317397/deep- le...](https://www.dell.com/support/article/en-au/sln317397/deep-learning- performance-on-v100-gpus-with-resnet-50-model?lang=en)

<comment><USER3> Also I just noticed that Google's XLA gets 1278 images/second on a single V100 in FP16 mode.

[https://www.tensorflow.org/xla](https://www.tensorflow.org/xla)

<comment><USER2> Thank you for finding that! I'm glad to see the situation has improved since I last looked. 3x improvement over fp32 is impressive for sure. Their marketing claims of 8x still bother me though.

<comment><USER3> What exactly is the 8x claim?

The thing I've seen is very limited ( _NVIDIA GPUs offer up to 8x more half precision arithmetic throughput when compared to single-precision, thus speeding up math-limited layers._ [1]) which is probably true.

The problem with performance improvements is the diminishing returns part of Amdahl Law: an 8x improvement in math performance will just mean the math part becomes less important in terms of absolute performance.

In any case, I've found NVidia's claims in the machine learning area to be pretty good. Like most claims you have to read carefully to see exactly what the claim is, but that's not uncommon with performance claims.

[1] [https://docs.nvidia.com/deeplearning/performance/mixed- preci...](https://docs.nvidia.com/deeplearning/performance/mixed-precision- training/index.html)

[2] [https://en.wikipedia.org/wiki/Amdahl%27s_law#Relation_to_the...](https://en.wikipedia.org/wiki/Amdahl%27s_law#Relation_to_the_law_of_diminishing_returns)

<comment><USER2> > NVIDIA GPUs offer up to 8x more half precision arithmetic throughput when > compared to single-precision, thus speeding up math-limited layers

Right but I've benchmarked the best case scenario, ie a large GEMM call in C++, and still not seen anywhere close to 8x. I've never seen a code example, no matter how limited, showing a 8x speed up.

<comment><USER4> [https://developer.nvidia.com/blog/programming-tensor- cores-c...](https://developer.nvidia.com/blog/programming-tensor-cores- cuda-9/)

See cuBLAS mixed-precision GEMM.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> Bought a second hand GTX 1060 a while ago to play around a bit more serious with neural networks. It's a good balance between being cheap, 6GB of memory but still being serious enough to get some work done. If you are a professional researcher or do multiple kaggle's per month, then yes, get the best card. But I suspect a lot of people are one category "below", where a 1060 is sufficient most of the time, and you go to cloud for the actual big workloads.

This strategy can keep you going for a couple of years. With models becoming as big as they are, I doubt how much SOTA an RTX 3070 is going to do in 2-3 years. (actually none of these cards come close to GPT-3). By that time you can pick up a second hand RTX 30x and still get the latest offerings in the cloud.

Buying second hand GPU comes with a bit of a risk by the way, someone suggested only buying if the price is less than half of the original price (can't remember the link).

<comment><USER6> Interestingly, the 1060 was mentioned among the suggested cards in one of the old versions of this same article (it gets updated every time Nvidia releases a new series).

</comment></comment><comment><USER7> I'm confused:

> Do not buy GTX 16s series cards. These cards do not have tensor cores and, > as such, provide relatively poor deep learning performance. I would choose a > used RTX 2070 / RTX 2060 / RTX 2060 Super any day over a GTX 16s series card

...a few paragraphs later...

> If that is too expensive, a used GTX 980 Ti (6GB $150) or a used GTX 1650 > Super ($190).

<comment><USER8> This is good feedback. Will note this down and incorporate it in a small update.

<comment><USER8> I just did a small fix to address this. Thanks again.

</comment></comment></comment><comment><USER9> Kudos to the author on producing an excellent, comprehensive yet readable, post (based on my initial very brief review)! Much appreciated. One thing that jumped at me, though, is the recommendation for the _" I want to try deep learning, but I am not serious about it"_ scenario. Advising to use a physical GPU (unless it's already a part of the system at hand), especially RTX 2060 Super, IMO does not make any sense in this case. Using cheap cloud GPU instances is the optimal way to _try_ deep learning.

<comment><USER8> Thank you! You have a good point. I think I would agree with you if somebody already has cloud computing skills, then the cloud is much more powerful to learn deep learning than your own GPU.

I figured that most people that start with deep learning might also lack cloud computing skills. Learning one thing at a time is easier and as such, just sticking a GPU into your desktop and focus on deep learning software / programing might yield a better experience.

I might update my blog post in the future with this detail.

<comment><USER9> You're welcome! While I understand your rationale now, I'm afraid I still disagree with it. :-) Simply because I find it very unlikely that people interested in and having enough skills to embark on any reasonable deep learning journey (even if just to try) would lack enough cloud computing skills to use cloud GPU instances. After all, using GPUs in the cloud is not much different from (and, thus, not more complex than) using physical GPUs in your local machine.

Fun fact: I've saved your post as PDF for offline reading and it clocked at 649(!) pages at the time of saving (32 pages for the post per se and the rest for the blog post comments). Combining that with feedback here at HN, it is clear that there is quite a lot of interest in the topic ...

<comment><USER8> Haha, 649 pages! Thanks for the discussion. I can understand your perspective. Maybe it would be best to add something to the blog post that discusses it from both perspectives and readers can then choose which perspective suits them better.

I should also a bit more in general about cloud computing, it seems some people agree that the post ran a bit short on that. At some point I just wanted to be done with it though — editing 10k word blog posts is not so much fun anymore!

<comment><USER9> It's my pleasure. I agree - it's a good idea to present both perspectives and allow readers to decide what works best for them.

I can certainly understand you being hesitant to add more content to an already sizeable post. Perhaps, several small paragraphs on important relevant aspects might still be worth considering (take it with a grain of salt, since I haven't actually read your post in detail, including cloud-related parts). Anyway, thank you very much, again, for your time and effort. Keep it up!

<comment><USER8> Thank you so much!

<comment><USER9> You're very welcome! BTW, do you have any interest in and time for potential consulting or advisory for a frontier/deep tech startup (ambitious goals, challenging tasks, great impact)? Not an immediate need, but, hopefully, it will be a more real opportunity in not so distant future.

</comment></comment></comment></comment></comment></comment></comment><comment><USER3> Just noting that you can (still) do very well on non top-of-the-line cards.

I've won multiple silver Kaggle medals on a 1070. It's true that more power would be helpful, but I feel it's lack of technique (and time!) rather than compute that has held me back from gold medals.

<comment><USER10> Not disagreeing with you, but from what I've heard, the people who win kaggles are people who can try more things, having a faster card presumably would allow you to try more things because each attempt would take less time.

<comment><USER3> There is some truth in this, but it's not the entire picture.

I've thought about it a lot, and talked to lots of really good Kagglers about it. Most of them use multiple machines, rather than having maximum performance in a single machine.

This lets them run multiple completely different experiements at once, and then put extra compute onto the ones that seem good.

That is a big difference to me, when I have to experiment sequentially. The parallelism is more important than absolute speed a lot of the time.

</comment></comment></comment><comment><USER11> Good article! But the comment on NVLink / PCIe4 (and PCIe3 x4 is good enough) doesn't fit my experience. PCIe3 x4 can really impact your all-reduce performance for models such as Transformers. For ResNet, it can impact a bit too, but to the 5% to 10% range like the author mentioned.

I am also interested in whether PCIe4 can help unified memory for larger models. Guess have to wait for RTX 3090 actual release.

<comment><USER12> _unified memory for larger models_

What are you talking about? Are you writing custom CUDA code to run those large models? Because there's zero support for unified memory in any of the existing DL frameworks.

<comment><USER11> Yes. I have an alternative DL framework to play whatever I want with :)

<comment><USER12> Link?

<comment><USER13> Probably this:

[https://libnnc.org](https://libnnc.org)

[https://github.com/liuliu/ccv/tree/unstable/lib/nnc](https://github.com/liuliu/ccv/tree/unstable/lib/nnc)

</comment></comment></comment></comment></comment><comment><USER14> Sadly, this is mostly purchase advise.

In short: You need lots of RAM.

And stay away from overclocked (founders edition) and from datacenter models due to heat or price problems.

<comment><USER8> What else would you like to see?

<comment><USER14> The HN submission was initially called "advice on using GPU for deep learning" so I was hoping for optimization tips, too.

</comment></comment></comment><comment><USER15> I want an external 3090 chassis on Thunderbolt, similar to this box. No muss, no fuss. AC, liquid cooling, all in an engineered box. Gaming or ML with my laptop or tablet pc.

[https://www.gigabyte.com/Graphics- Card/GV-N208TIXEB-11GC#kf](https://www.gigabyte.com/Graphics- Card/GV-N208TIXEB-11GC#kf)

<comment><USER16> Just buy a good ITX PC. eGPU boxes often costs more than a PC, larger than one as well, while performing less than one due to TB3 link and overall clunkiness.

<comment><USER17> Thunderbolt 4 is on it's way with Intel Tigerlake which doubles the bandwidth but that still leaves limitations such as being limited to x8 PCI lanes which means you're leaving performance on the table if you use high eng GPUs and being locked in to Intel ecosystem so no Ryzen CPUs for you :(

And also cost $$$ which makes it a luxury solution only suitable for the users who absolutely want a thin portable notebook for on the go and a powerful GPU at home for AI/Gaming.

</comment></comment></comment><comment><USER18> Out of curiosity, there are now enterprise sellers offloading old Tesla cards for relatively cheap (ie K40 ~$100 - $150, k80/M40 ~$150 - $200); are these worth looking at on a budget versus the 900 or 1600 series cards? Especially given memory options.

</comment><comment><USER19> Is anyone else trying to decide if you should upgrade from 1080 ti's?

I have a box with four of them which have served me well for a while now, and based on just raw performance it looks like upgrading to two RTX 3080s would exceed the performance of my current system.

I'm wondering if I should rush to sell off the cards on the used market before the prices crash and then use that money to swap over to Ampere.

Then, there's also the question of if there will be an RTX 3080 TI which will blow away the RTX 3080 and be a viable card for the next five years like the 1080 TI.

I'm really uncertain about what to do and wonder the calculus other people have done on this decision.

<comment><USER12> 4x 1080Ti are probably about as fast as 2x 3080 if you're able to use FP16. They are most likely faster for FP32. And in any case they provide almost 2x memory.

</comment></comment><comment><USER20> Mmm I don't see any mention of Cloud offerings or T4 model, specifically Google Cloud team revealed a more detailed and comprehensive blog post which include more important aspects: inference, training, cost and time. [https://cloud.google.com/blog/products/ai-machine- learning/y...](https://cloud.google.com/blog/products/ai-machine- learning/your-ml-workloads-cheaper-and-faster-with-the-latest-gpus/)

</comment><comment><USER21> Really great to publish these builds and GPU suggestions. Putting together a system that works can be really frustrating, and knowing where to start is really helpful.

I've gone with GPU spot instances for my personal experiments. The key is to be able to bring up a machine in a couple minutes so you're ok with always tearing one down. A combination of ansible and some scripts that push code around helped a lot to create a useful environment for experimenting.

</comment><comment><USER22> One thing I did after the RTX 30-series announcement was a back-of-the- envelope comparison of performance per dollar and performance per watt, taking NVIDIA's numbers at face value. The 3070 and 3080 are surprisingly close on both metrics. You pay a substantial premium for the 3090, but it does have the best performance per watt.

<comment><USER23> It looks like most are thinking 3080 might be the sweetspot for value?

<comment><USER24> Definitely, especially from a memory bandwidth perspective: [https://youtu.be/KpnIx1kLq9w](https://youtu.be/KpnIx1kLq9w)

</comment></comment></comment><comment><USER25> For NLP applications, the deciding factor is actually GPU memory, so the choice is limited (V100 32GB the best, and nothing below 16GB is worth considering)

<comment><USER12> Quadro 8000 has 48GB and costs ~$5,300, so it's a much better value than V100.

</comment></comment><comment><USER26> Thanks for the post, it was very good!

It would be great if you could add something about the hardware requirements of the reinforcement learning and video prediction.

</comment><comment><USER27> Are any of the bigger frameworks supporting AMD yet?

<comment><USER28> Pytorch has support to ROCM.

<comment><USER29> Do you know how performance/$ compares?

</comment></comment></comment><comment><USER30> Why not just use a cloud offering? The AWS analysis is interesting, but there are other great offerings like Google's colab, which offers a free GPU [https://colab.research.google.com/notebooks/intro.ipynb](https://colab.research.google.com/notebooks/intro.ipynb).

<comment><USER31> Not everyone gladly puts private stuff on other people's computers.

<comment><USER32> You can remove the word private - not everyone gladly puts stuff in general on other people's computers

<comment><USER30> You just did when you posted this comment

</comment></comment></comment></comment><comment><USER33> Answer: Whatever your current generation mid-level Nvidia Geforce is. It's been this way for a while.

Though, you should probably use AWS ML Compute, since they even have Nvidia Ampere 100's, which cost $10,000 each, and it'll probably be more cost effective for heavier workloads.

</comment><comment><USER34> Would be interested to know how the Tesla T4's fit in, if at all. They seem to be by far the most "affordable" if your goal is to get in at the low end in the data center space. But not at all sure if they represent value in terms of $/compute?

<comment><USER35> T4s are essentially a 2070 super with twice the device memory (plus minor changes to clock speeds to account for power/cooling). ~ 5x the price, but suitable for the data centre and larger networks.

</comment></comment><comment><USER36> Anyone here knows an article comparing GPU architectures for non deep learning that has a similar depth as this article addressing stuff like memory latencies, cycles, caches etc. too? Kudos to the author of above article, I really enjoyed reading it!

</comment><comment><USER37> Before I push that button have to say that I bought two 1080ti based on the site 3 years ago. Still remember the concern on memory.

Hope it will not ... 3090 got 24 and price is not as unreachable as Titan then.

<comment><USER23> agreed!

</comment></comment><comment><USER38> Looks very Nvidia centric. What about using other GPUs for deep learning?

<comment><USER39> CUDA owns the industry. AMD has to step up with a good alternative to disrupt it. Any serious work is being done in CUDA and there are _lots_ of resources for CUDA.

<comment><USER38> You don't need to use CUDA for GPU programming, no? It's simply a lock-in. But I'm sure Nvidia was pushing it quite lot to make sure it's hard not to use it. But it clearly has to go. It's not healthy for the industry.

<comment><USER40> > You don't need to use CUDA for GPU programming, no?

No, you don't _need_ to use CUDA for GPU programming, you can use OpenCL or Vulkan or probably even PHP instead.

I do, however, _want_ to use the best programming language for the task at hand. If that task is GPU programming, CUDA is the best language I know for that, much better than SyCL, OpenCL, Vulkan / OpenGL + shaders, etc.

If these other technologies would be better, I would use them instead.

<comment><USER38> CUDA can't be best if it's tied to a single GPU. It's DOA by definition. This idea of "a language that only works on this hardware" is out of some dinosaur lock-in handbook from the last century.

<comment><USER40> CUDA compiles to CPUs, and AMD has support for CUDA via HIP.

Not that this matters because your argument is flawed.

The claim that CUDA is not worth using because it lacks portability, only holds, if there is hardware worth using that's not supported by CUDA.

The only GPUs worth buying for compute are from nvidia and support CUDA, so your claim isn't true.

The only thing you achieve today by not using CUDA is paying a huge price in development quality for portability that you can't use.

The startup cemetery is filled with companies that made this trade-off and picked OpenCL just in case they wanted to use non-nvidia hardware. They were all killed by the velocity of their competitors that were using CUDA to deliver better products that payed the bills.

The only people for which it might make sense to avoid CUDA are "non- professionals" (hobbyist, etc.). If you only want to use OpenCL to "learn OpenCL", then OpenCL is the right choice. But if you want to make money, then CUDA was the right choice 15 years ago and still is the right choice today.

If that makes you angry, direct your anger properly. It isn't NVIDIA's fault that CUDA is really good. It is however, AMD's, Intel's, Apple's, Qualcomm, ARM's... fault that everything else _sucks hard_. Being angry at nvidia for delivering good products is just stupid. Its the other companies fault that they can't seem to be able to get their sh __* together when it comes to GPU computing.

<comment><USER38> _> The only GPUs worth buying for compute are from nvidia_

That sounds like koolaid marketing to me. AMD GCN was more compute oriented than Nvidia for years and only lately AMD increased focus on gaming with RDNA.

<comment><USER40> > That sounds like koolaid marketing to me.

That's a fact: check HPL, MLPerf, Spec, etc. results. MLPerf is the perfect example, were your results are only accepted if they can be verified by others. Where is AMD in there? (nowhere, their products suck for compute).

> AMD GCN was more compute oriented than Nvidia for years

No, the only thing AMD GCN was good for is as a very expensive stove.

AMD GCN had a lot of compute, on paper, and higher numbers than nvidia GPUs of the time. Unfortunately, AMD GCN's memory subsystem sucked, and it was impossible to deliver data fast enough to actually be able to use the compute.

So nvidia's hardware essentially destroyed GCN for any useful practical application.

IIRC, the only application for which GCN's got some use was bitcoin mining, which avoided hitting GCN's issues because it just requires doing a ton of useless work on a tiny amount of memory. Perfect for GCN right? Nope, nvidia's hardware was still better, but sold out, and GCN wasn't horrible at this, so it got some use.

AMD actually fired the architect of GCN over this. Yet this still perfectly summarizes AMD's GPGPU strategy of the last 15 years: higher numbers on paper, that cannot be achieved in practice, and lower that the numbers that nvidia's hardware achieves in practice.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER41> Wish they would make dedicate ML cards so the gamers don't have to fight with the deepfakers and miners

</comment><comment><USER37> No comment on the direct transfer from Ssd to Gpu bypassing cpu ... Amy relevance.

</comment><comment><USER42> Site down apparently

<comment><USER43> Same situation for me, luckily it looks like archive.org snagged a backup while it was up!

[https://web.archive.org/web/20200907164516/https://timdettme...](https://web.archive.org/web/20200907164516/https://timdettmers.com/2020/09/07/which- gpu-for-deep-learning/)

This post looks very thorough, and came just in time for me. I'm looking to snag an upgrade from my GTX 970 for a mix of flight sim 2020 and digging into Fast.ai's course part 2.

The 970 has been my big hold-up, right now even simple models take a really long time to work with.

<comment><USER44> Have you tried using Google Colab and other online platforms? I started the course a few days ago and so far Colab works well (I don't really like Jupiter but that's a detail...). It's free and you have the choice between a CPU, a GPU, and a TPU.

<comment><USER43> Disclosure (since Colab is a Google product): I work at Google, but everything I say is my personal opinion and experience.

I really dig the overall idea of cloud notebooks. Back when I did fast.ai part 1, I used Paperspace Gradient. It was a pretty good experience, but moving files around was a bit of a hassle. For example, getting the images for the Planet Labs exercise took a round trip of downloading from Kaggle to my computer and re-uploading into Jupyter to do analysis.

Because of all those moving parts, I decided to give a try running things locally. To my surprise, setup was super easy and I was quickly productive! I really dig how customizable a local Jupyter server is, too.

I do use Colab, it's particularly great for collaboration/sharing notebooks, but my past experience has me hooked on the idea of a capable ML machine at home.

Plus: I can pitch it to myself and my spouse as an investment in personal development that happens to be able to game :D

<comment><USER14> Go for it! I have my own Jupyter docker image that I run on a server in the basement. PyCharm can even do code completion for TensorFlow inside a remote docker container. So it's instant, reproducible, and I don't hear a thing in my office :)</comment></comment></comment></comment></comment>


OpenBSD 6.5 - <AUTHOR> http://openbsd.org/65.html <comment><USER2> Been running 6.5 snapshots in my travel laptop for some weeks and everything just works. The laptop is a ThinkPad X200 which is a bit slow for my needs, but upgrading it to ThinkPad X230 later this week should help.

I really enjoy how simple the system is after all these years with Linux. I will always continue using Linux in my main computers, but for surfing, some hobby programming and as a travel OS OpenBSD definitely won me over.

And I guess it runs quite nicely in the X250 and T450 tier already, maybe even newer ThinkPads. And when I say runs, I mean runs much nicer than many Linux distributions with their default installation.

<comment><USER3> Odd that you put this on a the travel laptop and not the desktop, I imagine most OS polygot its the inverse for things like battery life, touchpad drivers, webcam driver. Am curious why not make the switch on desktop? Same semantics? Same dotfiles?

Do you use the same window manager across both linux and openbsd?

Also what's the "much nicer" you refer to.. Please sell me

<comment><USER2> Oh, I need Docker a lot. And our target platforms are Linux and OSX, so I just want to have some kind of standard OS on Desktop.

Also stuff like Signal, Spotify etc. I still haven't been able to get running on OpenBSD, maybe some day...

Nicer in a way that setting up the wifi, suspend et. al. just works. And is very easy.

<comment><USER4> All the OS X users seem to be content running Docker in a Linux VM. It's more secure that way too, fitting with OpenBSD mentality :)

Doesn't help with the desktop OS part though.

<comment><USER2> OpenBSD does not yet have kvm support, so you can run qemu, but it'll be very slow.

<comment><USER5> OpenBSD has its own hypervisor these days [https://www.openbsd.org/faq/faq16.html](https://www.openbsd.org/faq/faq16.html)

<comment><USER6> Do you know how VMM performance compares to something like KVM2?

<comment><USER7> KVM has more than a decade of performance enhancements from companies like rhel/intel/google.

It will definitely perform better. But that doesn't mean you shouldn't experiment and see if the performance hit is something you can accept.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> Of all of the places a Bee and Puppycat fan might expect to find Natasha Allegri's work ... release art (?!) for OpenBSD 6.5 is perhaps the last I would have expected.

<comment><USER9> I love it when software projects does whimsical artwork like this :)

<comment><USER8> It's pretty great. As someone said below: I'd buy a tshirt.

<comment><USER10> There's a funny story by Linda Branagan, of an earlier BSD T-shirt: [https://www.astro.umd.edu/~avondale/extra/Humor/ComputerHumo...](https://www.astro.umd.edu/~avondale/extra/Humor/ComputerHumor/Daemons.html)

<comment><USER8> This confirms a whole host of my baseless presuppositions about things. Mostly Texas.

<comment><USER10> The story is written so well, I'm not sure it's not a bit embellished. :)

Anyway, there's all kinds of people, everywhere, and I don't think those two characters are representative of Texas as a whole. Texas has a lot of diversity, a lot of good work comes out of there, and people are generally decent and not like the extremes that sometimes percolate to the TV news.

Also, to the extent that Texans overall might tend to have qualities like, e.g., valuing principles and individual responsibility, I think that's good input to have, in a diverse marketplace of ideas (even though it might not be quite my own current thinking).

(Please pardon the straight response, on a humor tangent, but I felt a little bad when I realized I'd invoked a stereotype, and I felt I should clarify.)

</comment></comment></comment></comment></comment></comment><comment><USER11> Oh my, what is the story behind the piece of artwork in this release?

The buzz around OpenBSD always led me to believe it's developed by mole people who subsist on cryptographically secure random donations of soda crackers and water.

Yet here on their release page is a big beautiful image that _precedes_ technical release desiderata.

Can more projects do more beautiful artwork like this?

Also, can I support OpenBSD by buying a tshirt with this artwork on it?

Edit: Just noticed that the stem of the "p" in "OpenBSD" is not obscured by the underline (at least in Chrome). That, along with the italic "Open" with non-italic "BSD" is quite aesthetically pleasing. Is this due to a design whiz who got interested in BSD, or is this just HTML5 doing its thing?

<comment><USER12> > Edit: Just noticed that the stem of the "p" in "OpenBSD" is not obscured by > the underline (at least in Chrome). That, along with the italic "Open" with > non-italic "BSD" is quite aesthetically pleasing. Is this due to a design > whiz who got interested in BSD, or is this just HTML5 doing its thing?

This is just Chrome's default rendering of underlines, which occurs even with no explicit styling:

        data:text/html,<u>upu

In my opinion, it's a cute stylistic effect which looks nice in headers &c., but feels inappropriate in running text. An odd default.

</comment></comment><comment><USER13> > First release of unwind(8), a validating, recursive nameserver for > 127.0.0.1. It is particularly suitable for laptops moving between networks.

When systemd-resolvd was first released it was the biggest mistake ever to write a new recursive resolver instead of using unbound or dnsmasq. Also since DNS ".. wasn't broken, so it did not need fixing".

I wonder if unwind will be received with the same hostility.

<comment><USER14> OpenBSD has done a few of these daemons over the years, where they reject existing popular implementations to do their own with their own priorties. I started typing a list but really there are too many, big and small. They tend to have the OpenBSD minimalist, security focused, "no bullshit" approach.

It's not very much like systemd.

<comment><USER15> In a way, OpenBSD isn't really written in C. It's written in a special subset of C that uses some different, more secure core functions and any where any trade-off for performance instead of security is ruthlessly weeded out when reviewed by the people involved.

I'm of the opinion that using C and C++ for future major work where there's not good reasons forcing you to is more trouble than it's worth, but I wouldn't mind if it was all done with the care and attention the OpenBSD developers put into their projects.

<comment><USER16> While I'm generally sold on the OpenBSD strategy of replacing mainstream daemons with stripped down secure versions, I don't think it is at all reasonable to suggest that OpenBSD's library idioms mean it's implemented in something other than C (nor would it be reasonable to say that about Dan Bernstein's software, which goes even further in this direction). It's still C, and it still has memory corruption vulnerabilities.

<comment><USER15> Sure. I just meant that since they adopt and _enforce_ the usage of secure equivalents to some common functions (e.g. some string utilities), and along with very strictly enforced rules about how code gets accepted, it's about the best we can expect in some situations. Not everyone is willing to consider using something other than C. I think the pragmatic approach is to point to C projects that have been largely successful in their security approach. If it causes them to adopt the onerous requirements for safe C, or to reevaluate their position, I count those both as positive outcomes.

</comment></comment></comment></comment></comment><comment><USER17> > Xorg(1), the X window server, is no longer installed setuid. xenodm(1) > should be used to start X.

That is really great!

<comment><USER18> Does this mean that I can't startx on a machine that I rarely use X on? Is a display manager now required for running X?

From a security standpoint this makes sense, of course, but how are you supposed to deal with a half-desktop-half-server system?

<comment><USER19> No. It just means that startx no longer requires root to start X. It removes setuid root from one more executable.

<comment><USER18> Even better. Then it's a win-win.

<comment><USER18> I was incorrect: It appears that you do in fact need root to run startx now:

(quoting the faq page for upgrade65):

 _Xorg(1). The Xorg binary is no longer installed setuid, so startx(1) can no longer be used by non-root users. The xenodm(1) display manager has to be used instead._

</comment></comment></comment></comment></comment><comment><USER20> > Released May 1, 2019

Woah, it's from the future!

<comment><USER21> I have done this before. Marked a release in the changelog set to two weeks in the future, then installed from master and made sure nothing broke during those two weeks.

</comment></comment><comment><USER22> What!? They don't have OpenBSD t-shirts anymore !?!?!?!?! My old OpenBSD 2.3 tshirt (the wireframe daemon) will die soon and I need a replacement!

<comment><USER23> [https://www.openbsd.org/artwork.html](https://www.openbsd.org/artwork.html)

> [...] This artwork emblazoned CDs and posters up until version 6.0, after > which we stopped producing product and only release software on the > internet.

See also [0]; you should be able to make your own t-shirt with official logos, and donate as usual [1,2,3]

[0] [https://marc.info/?l=openbsd- misc&m=155439809001096&w=2](https://marc.info/?l=openbsd- misc&m=155439809001096&w=2)

[1] [https://www.openbsd.org/donations.html](https://www.openbsd.org/donations.html)

[2] [https://www.openbsdfoundation.org/campaign2019.html](https://www.openbsdfoundation.org/campaign2019.html)

[3] [https://www.openbsdfoundation.org/donations.html](https://www.openbsdfoundation.org/donations.html)

<comment><USER15> What with the artwork thumbnails for the first row of the "CD-Rom era" (6.0 - 5.2) not matching the artwork shown at the top of the linked page when you click it? Some of those look really interesting, but you get something entirely different when you try to find a larger version.

</comment></comment></comment><comment><USER24> Just to say I also love this OS, although I'm very far from a hardcore hacker.

It just worked out of the box on that generic unbranded laptop I retrieved (no touchpad though). I use Xfce wich is well integrated, and the package manager is plain simple and easy.

Definately better experience than my previous Linux ones. Some penalty on performance though.

PS : I've put it on my Raspberry Pi too.

</comment><comment><USER25> This is some serious OpenBSD artwork. I would love that they reconsider the 'no product' policy. I understand the logistical nightmare of pressed CDs though...

<comment><USER26> Well, at this point it'd be pressed dual layer blu rays though, i downloaded the entire version and just the amd64 directories are around 45GB in size. I do not understand why they feel the need to associate OS versions with 3rd party packages though, why have an OpenBSD 6.5 version of -say- the 0ad game instead of an OpenBSD version of it that you say it needs at least OpenBSD 6.5 (or whatever) version to run?

(same question about Linux distros in general, FWIW... i just do not see the point of packaging so much stuff for a single OS version, it is like if Windows did the same thing - ignoring licensing - Windows 10 would include Photoshop, Steam, DOOM, Visual Studio, Maya, 3ds max and pretty much every other program with a bit of popularity ever made)

Well, at least a single arch version still fits on a single disk medium, last time i checked Debian needed several DL BDs (although perhaps a single BDXL disk, once they become available, will work... assuming we also ever burners for those).

<comment><USER27> Packages are dependant on certain version of system librairies, and binary compatibility isn't a huge concern from version to version.

<comment><USER26> Hence the "needs at least" part, or does OpenBSD break backwards compatibility in every version for every package?

<comment><USER28> OpenBSD is particularly aggressive about breaking backward-compatibility, yes. For example: the switch to a 64-bit time_t on 32-bit systems to stay ahead of the Year 2038 problem.

</comment></comment></comment></comment></comment><comment><USER29> As a long time Linux user, I keep thinking about trying a BSD variant, but I get hung up on two things. 1) Which do I pick? NetBSD? OpenBSD? 2) Hardware? I'm thinking about an old ThinkPad for programming, and it looks like OpenBSD at least should run fine on that. What's hardware support like overall?

<comment><USER2> I just got a ThinkPad X230 with an IPS screen and an i7 CPU for 180 euros. It's the last one with a non-ULV CPU, which means it's still quite fast. And it all works perfectly, except maybe the bluetooth and fingerprint reader. With a 9-cell battery you'll get easily enough hours of usage, with apmd I'm clocking around 5-6 hours, which is fine for my use.

<comment><USER30> Openbsd does not support Bluetooth

</comment></comment></comment><comment><USER31> I use OpenBSD as firewall appliance, router, SSH bastion, even a general purpose terminal server that takes care of a few cron automated bash scripts.

For the typical workstation - being able to run Linux VMs, Docker/Containers are a blocker for me to use OpenBSD. The closest I have got to the OpenBSD experience is with Void linux. No Systemd, No frills minimal Linux. It is as safe/bloated/feature rich as you configure it to be.

</comment><comment><USER32> Good to see another version of OpenBSD out. I love it for servers, the easy setup, solid package management, and security are first rate. The only reason I can't switch to it for desktop is that the Jetbrains IDEs have some issues due to no OpenBSD support Pty libraries, so debugging doesn't work, otherwise I'd be a full convert.

</comment><comment><USER33> I know this is pretty much a blanket question I could make about any distro but:

Can anyone here share their "switch to BSD" story and what advantages it offered over their departing distro?

<comment><USER34> [https://runbsd.info/](https://runbsd.info/)

</comment></comment><comment><USER35> Still no unified buffer cache. :-( The lack of coherence and memory reuse between mmap(2) and read(2) is my single biggest beef with OpenBSD right now. It's a great system in terms of robustness, documentation, and philosophical unification. It's a shame its kernel still thinks Ronald Reagan is president.

<comment><USER36> What coherence is lacking? OpenBSD supports msync(2), which is the only POSIX mechanism I know of for ensuring coherency between read(2) and shared file mappings. Otherwise relying on unspecified behavior sounds dangerous.

<comment><USER35> Oh, come on. Every other system in common use is fully coherent. POSIX allowing OpenBSD's behavior doesn't make that behavior a good idea or a quality implementation.

<comment><USER36> OpenBSD's choice is arguably reasonable, given their prioritization of security, since it reduces opportunities for user programs to corrupt kernel memory.

What is the problem with OpenBSD's plan for coherency? Why is the burden of explicitly calling msync(2) too much?

<comment><USER35> > reduces opportunities for user programs to corrupt kernel memory

I don't see how it could. Kernel data structures don't go on pagecache pages.

> OpenBSD's choice is arguably reasonable

At a human level, the OpenBSD people have spent way too much time coming up with rationalizations for their obsolete VM design to back down now. Whether OpenBSD's VM subsystem is good or not, their pride will force them to keep claiming that it's good, practically forever.

<comment><USER36> > I don't see how it could. Kernel data structures don't go on pagecache > pages.

Kernel data structures could end up on a pagecache page: all it takes is a reference counting bug and the page could be reallocated in the kernel heap, which is directly mapped by user space. Keeping user-mapped pages and pagecache pages distinct makes this less likely.

I am otherwise not convinced that there is an actual problem with OpenBSD's coherency plan.

</comment></comment></comment></comment></comment></comment><comment><USER37> I know it's often mentioned, but I love the simplicity of OpenBSD. Thank you all for the great work.

<comment><USER38> Well, simplicity is one thing, but I was shocked to learn that it doesn't even come with the complete POSIX toolbox (e.g. out of the box awk is missing). And finding out that `ftp` also handles http and https was a bit weird too.

To some extent, I like that simplicity too (especially security wise) but I wonder if they are taking it too far.

<comment><USER39> How did you manage to get an OpenBSD install that didn't include awk?

<comment><USER38> I downloaded install64.iso started it and entered the shell. Next, I entered 'awk' and got the response:

sh: awk: not found

Maybe their live cd doesn't include the whole 'base' set?

<comment><USER39> The installer is not a live CD. It's only enough tooling to install openbsd.

<comment><USER38> Okay thanks, unexpected but good to know (at >340MB I would have expected a complete base system at least). Do you know if there is some up to date OpenBSD live CD somewhere?

<comment><USER28> At >340MB it does indeed have a complete base system. You just have to install it somewhere first :)

I don't know of any up-to-date prebuilt live CD/USB images, but I do know of guides to create them from another OpenBSD install (e.g. one in a VM): [https://www.alti.at/knowhow/obsdlivecd/](https://www.alti.at/knowhow/obsdlivecd/)

</comment></comment></comment></comment></comment></comment></comment><comment><USER40> > ROP mitigations in clang(1) have been improved, resulting in a significant > decrease in the number of polymorphic ROP gadgets in binaries on i386/amd64.

Does anybody know if there's a writeup somewhere? Or what are the commits to look at.

<comment><USER41> I haven't followed this work but Todd Mortimer's slides[1] from last year stuck with me as a good introduction.

[1] [https://www.openbsd.org/papers/eurobsdcon2018-rop.pdf](https://www.openbsd.org/papers/eurobsdcon2018-rop.pdf)

</comment></comment><comment> rooam-dev Sorry for noob question, but why would one use OpenBSD instead of FreeBSD? I like latter, but also hear good things about former, although there are some limitations (e.g. no ZFS).

Thank you in advance.

<comment><USER21> Strengths of OpenBSD:

* security -- the code is audited and hardened to a greater degree than any other general purpose OS on the planet (embedded safety critical microkernel systems would be the exception)

* routing suite -- one of the most well integrated open source routing suites out there (alternatives include BIRD and free range routing / quagga)

* firewall -- their firewall is flexible, fully featured, and easy to configure. It has been adopted by other _BSDs, but development and new features happen in OpenBSD first.

Weaknesses of OpenBSD:

_ performance -- security is valued over optimized code, so the OS will not be as efficient or handle as many connections as a Linux or FreeBSD server could

* lack of ZFS

Compared to OpenBSD, FreeBSD has a slightly worse firewall implementation (originally sourced from OpenBSD), better networking and computing performance, and ZFS.

What type of device are you considering using OpenBSD or FreeBSD for?

<comment> rooam-dev Not sure what device, it depends what it would allow me to do. Thank you.

</comment></comment></comment><comment><USER42> Replying from the latest -current snapshot on my desktop (AMD Ryzen 7 / B450 chipset / ECC RAM) and have nothing but good things to say about OpenBSD. As others have iterated, this operating system is extremely reliable, secure by default, very well documented, and I have not found performance to be an issue whatsoever. Definitely recommend everyone, especially Linux users, to check it out!

</comment><comment><USER9> The pvclock driver seems neat.

[https://www.mail- firstname.lastname@example.com/msg49128.html](https://www.mail- email@example.com/msg49128.html)

Does anyone know if that driver eliminates the need for doing NTP sync in the guest VM?

<comment><USER43> On Linux, for information, the systemd people aim for guest services that synchronize to the host clock to prevent the use of (S)NTP clients.

* [https://unix.stackexchange.com/a/467632/5132](https://unix.stackexchange.com/a/467632/5132)

</comment></comment><comment><USER44> This is a better link. [https://marc.info/?l=openbsd- announce&m=155611207805565&w=3](https://marc.info/?l=openbsd- announce&m=155611207805565&w=3)

</comment><comment><USER45> I don't think it has been actually released yet... The main page is still pointing to OpenBSD 6.4, and the 6.5 page says it will be released on May 1.

</comment><comment><USER46> The list of available applications look promising! I think I would miss Sway and perhaps even Docker, though.

I am impressed that OpenBSD comes with Go 1.12.

<comment><USER47> OpenBSD ports are always very up to date. In snapshots, packages are frequently updated before most Linux distributions, including Arch.

</comment></comment><comment><USER48> > MariaDB 10.0.38

Can anyone share some insight why OpenBSD does not provide a more recent MariaDB Version ?

<comment><USER48> ok, found it.

[http://openbsd-archive.7691.n7.nabble.com/Update-MariaDB- fro...](http://openbsd-archive.7691.n7.nabble.com/Update-MariaDB- from-10-0-33-to-10-2-10-td330155.html#a330318)

10.2 is a no go for us as the new client library requires atomic ops killing the client library on a handful of archs.

</comment></comment><comment><USER49> Why doesn't OpenBSD do KASLR?

<comment><USER39> The typical approach of sliding the kernel around only offers limited benefit. One leaked address and you're done.

The current approach, called KARL, relinks the kernel so that while it may load at the same address, symbols internally do not have the same offset. Learning the address of _printf_ will not reveal the address of _malloc_ and so forth. In the context of kernel defense, I would argue this is more effective.

Also, simply as a practical matter, the bootloader and kernel are tightly coupled in ways that make altering the load address a nontrivial endeavor.

<comment><USER49> Why not both KARL and KASLR though?

<comment><USER34> KARL also includes a random offset in front of the kernel, and the bootstrap code is unlinked once the machine has booted.

        |</comment></comment></comment></comment><comment></comment><comment>---kernel</comment><comment></comment><comment>-----|
        |-boot-|-rnd offset-|--running kernel--|

</comment><comment><USER50> Up until now (see rdsetroot), OpenBSD never had an equivalent to mdsetroot (NetBSD)?

<comment><USER51> It did, it was just not installed by default, it was originally only available at build-time (as eflrdsetroot).

This just promoted it to a regular base utility, and also it was rewritten using libelf(3).

</comment></comment><comment><USER52> Can anyone share if Surface Go support has improved with this release?

</comment><comment><USER53> Haven't OpenBSD'd since high school, gonna give it a spin.

</comment><comment><USER54> The artwork makes me think of MIKA's 'Lollipop' mv.

</comment><comment><USER55> No songs now?

</comment><comment><USER56> >HOWTO upgrade

>Remove files no longer included in the current release of perl(1):

Do they consider this a production-grade operating system or a toy one? Why couldn't it be done with a package manager?

<comment><USER51> Because perl is part of the base system, and not a package, harmless files are typically not removed by the OpenBSD Installer.

You don't have to remove those files, the upgrade guide simply indicates they're no longer required.

<comment><USER56> Sure, but manual upgrades with `tar'ring userspace, copying kernel and removing files seems abysmally error-prone to me.

<comment><USER51> You're reading the manual upgrade guide, for remote systems where you would otherwise cannot boot the ramdisk kernel to upgrade, which handles all of that for you.

If you have console access to the machine, serial or glass. Things are far easier.

<comment><USER39> More evidence the hard way instructions should simply be deleted.

<comment><USER57> Don't let one guy ruin it for the rest of us!

Thanks for your work on OpenBSD Ted.</comment></comment></comment></comment></comment></comment>


Netflix hammers cross-border watchers and there may be no way out - <AUTHOR> http://www.cbc.ca/news/business/netflix-border-hopping-television-1.3805525 <comment><USER2> I know that it's not Netflix's fault per se and they're under pressure from the dinosaurs running the media companies. However really well done - you're now leaving people with no choice but to torrent again.

<comment> dorian-graph They have the choice to not torrent and not watch whatever content.

They don't _have to_ watch it.

<comment><USER3> You are correct.

However, the purpose of copyright is to encourage cultural development, not enable cultural rent seeking. The latter is merely the mechanism proposed to do the former. To the extent the latter doesn't encourage the former, we should completely disregard the artificial construct of the latter.

I would argue that media companies have made this shift: Disney is no longer using the profits from copyright to enrich society with new cultural content (see very limited number of new properties), but is instead consolidating cultural control and rent-seeking (see studio/IP purchases, remakes and sequels). We should simply disregard their copyrights for as long as they continue this behavior.

Copyrights, after all, are fundamentally a deed from the public to a company or individual in exchange for a (future) service. If the company fails to render the service, the deed is revoked, and the property redistributed for better public use.

</comment></comment></comment><comment><USER4> My solution to this was to pay a friend in the states to share his residential connection. I'd like to see them try and block Comcast's residential blocks.

There's potential here for a middleman to write software/develop hardware that can share residential connections whilst filtering destination IPs (e.g. allowing AWS addresses) to try and minimize the potential for abuse with the goal of discouraging traffic other than that required for Netflix. The user using the service would pay a fee which the middleman would take a cut from, with the rest going towards the home owner's broadband costs.

Payment is still problematic, ideally I'd be using a US bank account and credit card. But if they start clamping down on use of 'foreign' credit cards they will alienate those taking vacations etc.

<comment><USER5> This won't work longer term if you also watch shows from your home region. A former Netflix engineer and I were talking about enforcing this sort of thing and people who "hop regions" always watch shows from different regions at different times. That flags your account, and your "home region" is known from your billing address and the "other" regions will get locked out.

From what I understood they were still working on the "driller" problem where people who live in Canada but work in the US as oil drillers/exploration folks during the week in the northern part of the state, and go home for weekends. But the thing you can't change are watching shows from two different regions on the same account.

<comment><USER6> Huh? If you have US billing, you can only watch the US catalog, and you need a US IP, right?

But that's fine with the OP, that's why he is using his friends broadband anyway. The US catalog is what you want.

<comment><USER5> It probably is fine, unless he wants to watch something that is only available in his local, non-US, region. As far as Netflix is concerned, if you pay in the US and you stream from a US IP address, you're from the US region.

But the question for the OP is, is that enough? As far as I can tell Netflix doesn't care at all about people who only stream from one region but they do care about people who stream from multiple regions.

<comment><USER4> > unless he wants to watch something that is only available in his local, non- > US, region

Not sure there's anything good that's UK-only. It's usually the other way around with all the good shows being available in the US.

</comment></comment></comment></comment></comment><comment><USER7> Netflix has been messing with settings in their system that are breaking the experience for users in the middle of the US too. For the last two weekends I've been getting strange experiences accessing their site from my house.

My PC works fine and can access content. My cell phone, connected to the same home wireless randomly gets messages "You are using a proxy and cannot access this content". Testing both units on whatismyip.com and my own web server show that requests are coming from the same IP. A day or two later it will start working just fine. Stop breaking things or I'll just stick with Amazon and drop your service.

<comment><USER8> Do you have IPv6 anywhere -- I have found that they think that my IPv6 address is a proxy, and the IPv4 is OK.

<comment><USER7> Yep, I have an HE tunnel. That's probably it. Thanks.

</comment></comment></comment><comment><USER9> Their data scientists will now be building features like "tried to watch a movie from a VPN IP" for their churn models.

And another note: there are also people who simply do not allow comcast to filter their traffic and therefore always have a VPN. These people despite their efforts to watch netflix content approved for their own country, would be blocked.

</comment><comment><USER10> > UFlix

Maybe they should not call it UFlix but something like "VPN for your business needs, and for avoiding corrupt and oppressive governments".

<comment><USER11> You may or may not be joking but it's true they really should've. There's no way Netflix can justify to content owners that they are trying seriously when they neglect to block something so obvious.

<comment><USER12> It doesn't matter. Netflix is successfully blocking most of the commercial VPN providers. It is very hard to actually access Netflix via any sort of VPN used by more than a handful of people. Is suspect even running your own VPS somewhere in the US and using a private VPN is mostly pointless unless you get assigned a residential IP address.

<comment><USER13> True. They are blocking Linode ip ranges.

</comment></comment></comment></comment><comment><USER14> What bothers me the most is that Netflix declared Hurricane Electric's Tunnelbroker service a VPN. I have IPv6 on my home network via HE.net and, since Netflix is a good network citizen and supports IPv6, I can't watch on my computer or any other device that also talks v6.

My household gave up our Netflix subscription in lieu of giving up IPv6.

</comment><comment><USER15> I was about to cancel my Netflix subscription as my family had exhausted its interest in the paltry syndicated cast-offs and young-adult anime that amounted to the totality of Canadian Netflix; but then Stranger Things came out, along with the rest of their fall originals.

Well, you've got me hooked for another month or two.

</comment><comment><USER16> This is a small issue in Netflix's path to its end-game. As content owners build their own streaming platforms in the US, Netflix is gradually losing content but in the meantime its gaining more exclusive content. At some point the exclusive content will be enough to justify international users paying for it Netflix since that content is not region blocked.

Netflix also seems to be striking some good deals to lure in more international viewers, e.g. they recently acquired the world-wide rights minus US for the new Star Trek series and also the well regarded The Expanse series by SyFy which is a great bonus considering subscribers in US would need to have services at additional cost in order to watch them.

</comment><comment><USER17> Any ideas on what technical means Netflix is using to tip the scales in their favor?

<comment><USER18> I can't speak on this with any authority, but I feel like it would be fairly easy to detect.

If you suddenly see 500 different accounts all connecting from the same small block of IP addresses and most of them use out-of-country credit cards, blocking that IP range would be a logical conclusion. This could be managed automatically (or at least alerted to a human to check) with not much effort.

<comment><USER19> Actually, it's even easier than this: they just make a list of accounts that have connected via a border-hopping service, then block that service, and then see where the listed accounts connect through. Since the accounts themselves can be flagged, Netflix will always have the advantage in detecting new workarounds.

</comment></comment></comment><comment><USER20> It is interesting to note, that in a consumer focused market such as the US, highly competitive areas consider "the customer is always right" (I.e. catering and hospitality). In oligopolistic niches, the customer is unimportant (I.e. broadband provision), and in monopolistic niches, such as media consumption, "the customer is always a criminal".

It says a great deal about the market conditions of the media industry.

</comment><comment><USER21> I doubt anyone on HN would pay for a service like UFlix when the DIY alternative is much more efficient.

For less cost we use our own US-based vps, running something like the shadowsocks proxy. It's the same rig we found to work the best in China against the great firewall.

With its own dedicated IP, it would likely be cost-inefficient for Netflix to detect without blocking an entire range of legitimate IP addresses.

<comment><USER22> Tried that... I think by now, Netflix has banned pretty much all VPS providers, most likely as all the unblocking sites went from one to another

</comment></comment><comment><USER23> There's so much content on Canadian Netflix these days (Star Wars!), why would anyone bother with it?

As an aside, when I was in Paris, a hotel I was staying at routed their free WiFi through a US VPN (presumably so the Americans wouldn't be offended by having Google return results in French or some shit), and I couldn't even watch French Netflix in France! So annoying.

</comment><comment><USER24> This is pretty annoying but I will say that I still get my moneys worth out of watching international netflix. All of their original titles are available across all regions and they are coming out with new stuff at an increasing rate. When we really want more we just rent a movie on the apple tv every once in awhile.

</comment><comment><USER25> Huh, people put blame for their piracy on Netflix as if they are suppose to take moral responsibility for pirate's actions. Just like people have freedom to not watch content they do not want to, rights owner should have freedom to not show content to those they don't want to.

</comment><comment><USER26> I just tried it from a commercial VPN provider. Tried New York, Miami, Los Angeles and Atlanta.

Worked just fine. I was able to watch a show that's only on American Netflix.

I also have a VPS in Texas that I use with openvpn. It works fine too.

Are they just blocking the "watch American Netflix" services?

<comment><USER27> They are blocking the low hanging fruit first... Being the advertised unblocking services.

Likely commercial VPNs aren't heavily used and may have more of a legitimate use... If Netflix sees a lot traffic from specific methods of access they will look into it...

They have been expanding the blocking efforts since last year. The list continues to grow of failed methods... Wasn't a hard cutover.

Likely this initiative is cause 3rd parties are making money, and content providers werent

</comment></comment><comment><USER28> ugh. Hollywood should just release content globally at the same time so this won't be an issue.

</comment><comment><USER29> How can they know all VPN? Can I setup a private VPN somewhere?

<comment><USER30> Netflix also tracks which region you're accessing data from, which means that if you live in Croatia and your billing info states that you're in Croatia but you're consistently switching back and forth between accessing US Netflix and Croatian Netflix, they can still tell that you're circumventing the region system despite using a private VPN.

<comment><USER31> So you need one Netflix account per region?

(to avoid that particular method that Neflix is using)

<comment><USER32> If you're planning on technically circumventing region locks then you, apparently, need an account with a valid billing address in that region to avoid this form of detection.

If I were actually meaningfully affected by this change I would just drop their service and get my content from my peers. It's honestly just not worth the effort.

</comment></comment></comment></comment><comment><USER33> So they are blocking by blacklisting foreign ISPs? What happens in tor network?

<comment><USER22> Netflix is available worldwide, but content is different in each country. They're blocking vps providers.

You mentioned TORONTO. two problems : you don't know which country the exit node will be in, and the speed is horrible

<comment><USER33> I think your auto correct fucked you up here.

</comment></comment></comment><comment><USER34> This is one way to increase and encourage piracy while pissing off customers, including those in the US like myself, who like to keep the VPN on all the time. They deserve all the lost revenue this brings them.</comment>


Do the Real Thing - <AUTHOR> https://www.scotthyoung.com/blog/2020/05/04/do-the-real-thing/ <comment><USER2> Definitely agree with the article, and would like to offer a useful supplement to "doing the real thing": "watch someone very skilled do the real thing".

Watching a pro can really accelerate skill acquisition because it will expose you to high quality ideas that would have been difficult to develop on your own.

Want to get better at Backgammon/Chess/Go? Play a lot of games (at various time controls). Yes. But also watch professional players and read their analyses of games.

Want to get better at programming? Write a lot of programs. Yes. But also read a lot of high quality code written by others.

Want to become a better mathematician? Spend your time mastering mathematical knowledge and techniques. Yes. But also spend some time trying to get in the heads of the masters - learning their patterns of thought at the mathematical and meta-mathematical levels.

The increased accessibility of this kind of content is one of the greatest achievements of the internet.

<comment><USER3> Just watching someone doing the real thing is one of the most prominent strategies to avoid doing the real thing.

It is not enough to watch someone very skilled do the real thing. You have to imitate them: Reading a lot of great novels will not make you a better writer. Instead write a story in the style of any writer you admire and you will learn a lot while still doing the real thing. The same is true for almost any art you want learn.

<comment><USER4> Our brains have mirror neurons[1] that allow us to learn by watching.

1\. [https://en.wikipedia.org/wiki/Mirror_neuron](https://en.wikipedia.org/wiki/Mirror_neuron)

<comment><USER5> Mirror neuron mythos is ridiculous. They're just normal neurons, they just happen to fire in response to externally observed behaviour as well as personal behaviour.

They aren't magic, they can't actually mirror what's going on in another person's head or give you a high-resolution idea of how their brain works. They aren't even that good at mimicry unless you already have a pretty high- resolution understanding of what you're trying to improve. You can't learn to juggle by watching people juggle. You can't learn to play piano by watching people play piano. You might be able to improve those skills if you already have them and watch someone who's better, but it's limited and whether that's even osmotic mirror neuron activity is controversial.

</comment></comment></comment></comment><comment><USER6> Possibly an over-simplification. Take this example: I want to sight-sing hymns. I know a bit of music theory but it's been cobbled together over the past year in an haphazard fashion. I pick up a hymnal to sing the first hymn and immediately need to look up the key signature (I never memorized them). Then I see the hymn is 12/8 time and realize I only superficially covered rhythm and time signatures. I go on YouTube to refresh my memory. This is before being able to sing a single note.

When I do attempt to sing, my mind's ear says I'm way off (even when I've never heard the hymn before). I'm not hitting the notes. So now I need to learn solfège and music intervals.

Doing the "real thing" requires having the tools and basic skillset first. I suggest the opposite of this article: break the goal down into manageable parts and work the periphery. Get some small wins. Then you can realistically take on the "real thing". There may be no other way.

<comment><USER7> Have you considered that sight-singing anything is not the real thing? Singing is the real thing.

<comment><USER8> Among the musical skills that can be acquired, "sight reading" is somewhat specialized, but definitely real. I'm a part time musician, and a fair amount of my performance work over the past decades has involved sight-reading. In addition to its usefulness for performance, it's an efficient way to digest a lengthy or complex work.

</comment></comment></comment><comment><USER9> As with all good advice, this reads well and makes sense but the devil is in the details.

> Eric Barone, who went on to sell millions of copies of his game, overcame > his struggles at creating art by making and remaking the art assets for his > game dozens of times.

To someone else, frigging around with their art assets and remaking then over and over again could be the very definition of not doing "the real thing".

<comment><USER10> I think you missed the entire point of the article. The "real" thing is subjective and varies from person to person depending on their experience with the subject.

If someone else had no trouble creating art then this situation simply doesn't apply to them. That person might have a different part of the process that gives them trouble that they SHOULD be practicing.

For Eric, practicing the thing he had trouble with over and over was the best way for him to get over his struggles. Now he can move onto the next thing he needs to work on and continue to make progress.

</comment></comment><comment><USER11> You gotta do both. Research, analyze, digest, and then execute. With time, you can reduce the duration of the cycle. Taking the first step often requires a lot of research and thinking, and then a lot of execution to go from zero to one. Then, iterate, with shorter cycles. Failing to think is as much a problem as failing to execute, you have to balance it.

<comment><USER12> > Taking the first step often requires a lot of research and thinking

I generally agree with your comment, but strongly disagree with this part. You will have much more success if you take this first step as soon as possible. No research, no thinking. And a "real thing" first step. You want to start running? Put on some shoes and go for a run. Don't sign up for a race, don't look up running tips, don't buy nice shoes. Just go run for a bit.

Coding? Pop open repl.it. Scuba? Get your head under water. Even for things that might be out of reach like flying an airplane, read up on something specific like how to land.

With your very first step out of the way, you can then start thinking a bit more.

<comment><USER11> Disagree, strongly.

Gonna learn to lift? Read starting strength. Set yourself up for success by structuring an environment for habit formation. Take the steps to ensure you are getting good nutrition before you start. Don't just run to the local gym and staring trying to mess around in the squat rack.

Going to build a new app? Get up to date on tech stack choices so you don't make a dumb decision. Look at prior art and understand the work that has come before you can learn from.

Trying to learn a new skill? Do some research to find out what the best, most high quality resources there are first. Determine what level of mastery you'll be happy with before diving in unprepared to know how to assess opportunity costs, which can

This doesn't mean get stuck in analysis paralysis. I feel pretty strongly those who give advice like the advice you mention do not think it's possible to avoid this obvious trap. It is if you are disciplined and have enough self awareness to know when you have hit the point of diminishing returns. Literally one day of focused thinking can outflank a week or more of pointless execution, even at the beginning. Thinking is underrated, execution without preparation is overrated. The most effective people know how to prepare the mind for execution and not get bogged down doing so. Taking an immediate first step can lead to a bad first impression: a bad lift, a mess of a prototype, or a garbage online course. That can be hard to unwind, since it forms busted initial mental models - and can undermine long term success. There is no hard rule, but aversion to pre-emptive research and analysis is an anti pattern unless you know yourself to be unable to do so.

<comment><USER12> I agree with every activity you recommend, even down to suggesting Starting Strength.

> Literally one day of focused thinking can outflank a week or more of > pointless execution, even at the beginning.

This (and the many other replies) make me think I did a poor job of expressing myself. I absolutely, 100%, do not think people should screw around for a week before figuring out the right way to do things.

I am a huge fan of thinking. I write out long, detailed syllabuses for my students and myself. I am constantly trying to improve both my skills and my process. And I think most people would be well served to do more of that.

I only see one real difference between your comment and what I suggested. I think when someone wants to start weightlifting, they shouldn't reach for a book first. Do a tiny workout first. Maybe what you remember from PE, maybe life that heavy box in the garage 5 times. Then, with one shitty workout under your belt, open the book and do better next time.

<comment><USER11> It sounds like we are in more agreement than it seemed - for a full throated defense of thinking over execution, I like Rich Hickey's talk "Hammock Driven Development" [https://m.youtube.com/watch?v=f84n5oFoZBc](https://m.youtube.com/watch?v=f84n5oFoZBc)

</comment></comment></comment></comment></comment><comment><USER13> Recently, (or maybe it's just me) I have seen a surge of articles providing advice on $Thing. Most of these articles seem to me an expansion of aphorisms which people have been saying since time immemorial. This reminds of the saying,

"Tell me and I forget. Teach me and I remember. Involve me and I learn."

Such articles can be compressed into a common adage that most people are aware of.

<comment><USER14> Yes.

I'll take it a step further and ask, do adages actually contain any signal at all? If you have a saying "try try again" and another saying "don't bust your head against a brick wall" which one wins? When?

Getting fluent in French is probably best done without a plan, but just practicing a bunch. But I'm sure you can think of several activities where "just try it" is godawful advice. Who says writing is in the former camp? Prove it.

<comment><USER15> There is no such thing as universal advice. All advice is useful in some context, but no advice is useful in all contexts. Coaches and mentors can be so effective because they consistently deliver the right advice in the right context. Advice from the internet, on the other hand, is almost always mismatched to the context of the reader.

<comment><USER4> The advice "there is no such thing as universal advice" is, by its own rule, not universal advice, and therefore serves as its own counter-example.

<comment><USER15> True, if you interpret "advice" as we do in cryptography to mean "any arbitrary string that could provide an advantage in solving the problem at hand".

</comment></comment></comment></comment></comment><comment><USER16> > People trying to get in shape who buy fancy workout gear instead of > exercising.

Translating this idea to learning a programming language, the best way to learn a language is to apply it to something real, almost immediately. Following tutorials has a use, but you'll get a lot more out of it after having flailed around trying to make the most ridiculously minimal version of something you really want to build.

This is one of the main problems with science education. In most cases, there's nothing like the "flail around" stage while you try to do something applied but which you are desperately underqualified to do.

</comment><comment><USER17> This article reminds me that I don't really know what I want to do in the first place.

<comment><USER15> Yeah I think that's something Mr. Young glosses over in his book—it's hard to muster the courage to suffer through this kind of direct approach when you're anything less than absolutely committed. I think it takes a certain personality to be able to just pick some random skill and convince yourself that it's do or die.

</comment></comment><comment><USER18> After tens of thousands of photos, hundreds of songs, and millions of words, I can confirm that doing the thing is more effective than aimless research and analysis. The doing guides the learning.

</comment><comment><USER19> I'm glad there's this internet website that can make me _feel_ like I know what the best way to do something (without the inconvenience of actually like DOING it).

(which is the problem described)

</comment><comment><USER15> I'm in the middle of listening to Scott Young's book _Ultralearning_ , and honestly this article captures the most important idea. 90% of becoming an "ultra learner" is having the courage to tackle the real thing immediately; the rest is just tactics.

</comment><comment><USER20> C25K does not start with a marathon. Skiing lessons do not start on a black diamond. Intro CS does not start by writing an OS. Skill development is an incrementalist game for patient people. I've made much more progress by finding a sustainable pace and chipping away over time, than by trying to conquer something in a weekend.

Natural language acquisition is kind of a special case here, in that you are _actually_ wired to do this one from scratch.

<comment><USER21> "The real thing" does not mean the absolute hardest iteration of whatever you're trying to do.

C25K doesn't start with a marathon, but it does involve actually getting your ass out the door and running. It does not involve shoe shopping, reading about stretching techniques or tinkering with your training schedule in Excel. Running is the real thing.

</comment></comment><comment><USER22> For a contrary view, see "This is It".[1] (The one from the US Navy, not the one from the dead singer.) It's the story of four pilots who didn't take their training seriously enough.

[1] [https://www.youtube.com./watch?v=fNBwBHTWec4](https://www.youtube.com./watch?v=fNBwBHTWec4)

<comment><USER23> Reel 2: [https://www.youtube.com./watch?v=a7pH6CQcGMU](https://www.youtube.com./watch?v=a7pH6CQcGMU)

</comment></comment><comment><USER24> My takeaway from this is to always try for the thing that is just out of reach.

Doing what's comfortable isn't going to lead to growth. At the same time, as others in this thread say, doing things that are radically out of reach is too likely to fail without a good foundation.

Learning is in the struggle, so find something that is a little harder than you think you can handle.

</comment><comment><USER25> This is the kind of advice that, for one person, might be exactly what they need, and for another it might be the exact opposite of what they need. For example, Christopher McCandless dove head-first into the real thing (that is, surviving without help in the Alaskan wilderness), without proper preparation and training, and died. He didn't have to, he could have built up to it gradually by training various survival skills (aka "faking" it).

Also, the author claims that the difference between "doing the real thing" and faking it is what success largely boils down to. That is a completely wild claim, with of course not a shred of evidence to back it up. Does the author really believe that this is a necessary and largely sufficient condition for success?

<comment><USER26> > For example, Christopher McCandless dove head-first into the real thing > (that is, surviving without help in the Alaskan wilderness), without proper > preparation and training, and died.

He didn't go straight from normal life to Alaskan wilderness though. He spent a good bit of time traveling and being homeless. If anything, he was in the uncanny valley of being skilled at most aspects of living in the wildnerness, but unaware of the specifics of being in Alaska and how the environment would change between seasons.

</comment></comment><comment><USER27> Also by the same guy [https://www.scotthyoung.com/blog/sales-pages/learn-more- stud...](https://www.scotthyoung.com/blog/sales-pages/learn-more-study-less/)

Quite spammy.

</comment><comment><USER28> Want to learn heart surgery? Start by doing the real thing.

</comment><comment><USER29> No shit that doing something makes you better at something. Hacker news turns more into an advertisement orgy every day

</comment><comment><USER30> This really hit the mark.

</comment><comment><USER31> This kind of writing makes me upset.

* It's really self-important. Not only is it selling you on a particular strategy for attaining success, it also tries to sell success in things like public speaking and doing architectural work as an absolutely important part of one's life, and that implicitly a person's existence is invalidated if they aren't constantly trying to achieve this kind of success. It doesn't do it explicitly but the very notion of "real" and "fake" and other words like "wasted" complete with the trite diagrams showing that "hey, all your efforts are going into this small circle" give a very strong implicit value-judgement of the reader.

* There's no proof. I don't know if I'm on the mark with this one, but I think that the act of omitting any sort of data about measuring the outcome of success when taking different approaches seems to imply to the reader that the argument should just "make sense" i.e. it's a truth that the reader already knows, they should just find it within their own observations in order to understand it. Here, have a handful of anecdotes to top it all off in case you weren't convinced. Overall this just feels like it's made to make the reader feel a certain way (motivated) rather than actually teach them any solid information.

* What even is real and fake? The readers are given a bunch of examples and then we're left on our own to figure out what falls into which category. Someone commented on the article saying that if someone wanted to watch and understand anime in Japanese, they could just do that and that'd be the real thing, with the fake thing being taking the time to learn Japanese. This is obviously not going to be successful, so at this point the author's prescription has failed as a framework for achieving success.

\---

This kind of fiery motivational content could be harmful as much as it is useful. It'd be fine if an article, devoid of substance as it may be, was only meant to make readers feel motivated, but the problem is that this kind of fiery motivational content does different things for different readers. A person in a bad, self-loathing emotional state could be rendered feeling even worse, thinking that everything that they're doing at present is fake while everything that their peers are doing are more real, even when that's blatantly untrue. The devil's in the details and personally, I'm not going to let myself get affected by this personal philosophy if the case for it is this weak.

<comment><USER10> I think for your first point, you're definitely reading into it too much...

As for you second point, what kind of proof do you need? Do you want scientific studies that dive way too deep into specifics and are not applicable to real life? This article is targeted towards learning, which varies heavily from person to person and can be very subjective. Think about it from your perspective and see if the ideas apply to what you do. Simple as that.

For your third point, yeah sure real and fake are pretty subjective. In the end it's obviously up to you to decide or come to a decision about what is and what isn't. Our gut instinct usually fails here thought...

However, to address the point about learning Japanese, I would argue that taking the time to learn before doing so is the "fake" way. How do children learn a language if they can't use a computer or phone to get on Duolingo or go to a community college to take a course? They literally just are exposed to it and pick it up over time.

People may not know his background but he is a prominent figure when it comes to language learning and his strategies are to replicate natural learning methods and ignore the canned courses like Duolingo that don't do you any good...

</comment></comment><comment><USER32> One variant of this is "Do the Hard Thing" and not just that but do the hard thing _first_.

</comment><comment><USER33> Anyone else notice how the first diagram contains the word "SEX"?

</comment><comment><USER34> Also— do what makes you happy, not what you think will make you happy. ;)

<comment><USER35> How to know though?

<comment><USER36> [https://en.wikipedia.org/wiki/Reflective_practice](https://en.wikipedia.org/wiki/Reflective_practice)

</comment></comment></comment><comment><USER37> to me, it feels overly optimistic in 2 ways.

1\. it makes the assumption that failure is always positive

self improvement dogma: "fail faster, you learn from each failure"

peter thiel: "each failure is a tragedy, it is multivariate and therefore often too complex to truly learn from"

2\. dunning kruger syndrome and learning something "the wrong way" is possible in more than one field.

Overall it was a nice read though

</comment><comment><USER38> Praxis.</comment>


Apple Claims New iPhone Only Visible To Most Loyal Of Customers - <AUTHOR> http://www.theonion.com/content/news/apple_claims_new_iphone_only <comment><AUTHOR> I wasn't sure about posting this... flag away if you don't think it's appropriate. I thought it was pretty funny though:-)</comment>


Go: Planning the 1.5 release - <AUTHOR> https://groups.google.com/forum/#!topic/golang-dev/2ZUi792oztM <comment><USER2> I played with Go a bit and I like the idea of Go replacing C/C++ to write *NIX tools (no, not the GUI ones, the command-line ones, the daemons, the utilities, the server/collectors).

<comment><USER3> Once Rust is stable, it would be really cool to see these rewritten in Rust.

<comment><USER4> When will it be that Rust is stable? Many moon ago I was of the told that December of 2014 would be the calendar date of the Rust stable version. Yet December is now and I see no Rust stable version. When come it? When?

<comment><USER5> Release candidate around the end of the year. See [http://blog.rust- lang.org/2014/10/30/Stability.html](http://blog.rust- lang.org/2014/10/30/Stability.html) and [http://blog.rust- lang.org/2014/09/15/Rust-1.0.html](http://blog.rust- lang.org/2014/09/15/Rust-1.0.html) for more details.

<comment><USER6> If the release candidates are a few weeks out then it must be beta and very close to stable? Can anyone who's using Rust daily discuss performance and reliability. It should be ready for weekend projects.

<comment><USER7> They have 31 blocking issues to take care of before 1.0 is a possibility: [https://github.com/rust-lang/rust/milestones/1.0](https://github.com/rust- lang/rust/milestones/1.0)

The project has 2,100 open issues and 8,500 closed issues.

The stability more or less comes down to the community moving away from targeting nightly, and that can only happen when all of the fires are put out. There are still a lot of breaking changes and clean-up being done in the final hour.

Some people consider stable to mean that the language is "production ready", which often implies a complete set of common libraries. There is still a lot of work to be done in this regard after 1.0. Doing the nightly build whack-a- mole is too frustrating for many, though, so 1.0 will help a lot for developing the ecosystem that a "public ready" language needs.

<comment><USER8> I recommend looking at "This week in" blog and the RFC's also, to form your own opinion of stability

[http://this-week-in-rust.org/](http://this-week-in-rust.org/)

[https://github.com/rust-lang/rfcs#active-rfc-list](https://github.com/rust- lang/rfcs#active-rfc-list)

__________________________

discussion re: stdlib and 1.0 [https://www.reddit.com/r/rust/comments/2mo0zb/the_race_towar...](https://www.reddit.com/r/rust/comments/2mo0zb/the_race_towards_10_and_the_standard_library/)

<comment><USER7> Thank you for this. I thought this-week-in-rust stopped a while ago. Very useful!

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Really exciting to hear a focus on stability and performance improvements. The GC improvements are absolutely necessary first and before anything else, in my opinion. Go is new and it doesn't have the benefit of all the hard work and learning that happened in other languages, particularly Java and the JVM. We're playing catch-up there, to be sure.

For what it's worth to those new to Go, it's well-worth learning. It's not a perfect language but I've thoroughly enjoyed working with it. It strikes a lot of balances very well.

</comment><comment><USER10> "more complete support for Android"

Will we be able to write at least a simple CRUD android app using pure Go?

<comment><USER11> Per [http://golang.org/s/go14android](http://golang.org/s/go14android), apps that don't need the Android UI (e.g. if it's only using OpenGL) should not need Java and could be written in pure Go.

<comment><USER12> In fact, there's a user on Reddit that built an entire Android app with a UI using a webview: [https://github.com/MarinX/godroid](https://github.com/MarinX/godroid) and [http://www.reddit.com/r/golang/comments/2kv0s1/go_14_on_andr...](http://www.reddit.com/r/golang/comments/2kv0s1/go_14_on_android/clpuscd)

It's entirely possible right now — we just need it to mature.

<comment><USER13> Webview != pure Go, which is what the OP was asking for.

<comment><USER12> My point was that even apps that _do_ need a UI can be written without Java using Go.

<comment><USER13> Faire enough.

</comment></comment></comment></comment></comment></comment><comment><USER14> I have mixed feelings about this roadmap. On the one hand it's refreshing to see that they are not pushing new features recklessly and rather focus on core improvements. On the other hand, I think many would agree that the language is ripe for a little bit of innovation at this point.

<comment><USER15> Obligatory comment regarding generics. God I can't wait - if they add generics and a decent package manager, I'm gonna be pushing hard for Go at our shop.

<comment><USER16> What sort of "decent package manger" do you mean? `go get` is pretty solid as far as I can tell, the only thing it's missing is the ability to lock to a particular version...

<comment><USER17> It's missing the ability to publish or lock to a particular version, which is a game breaker for shops with >5 people, and the go maintainers don't seem to see it as a problem, making it a permanent game breaker.

<comment><USER18> The idea is that there are a few community-developed and supported dependency managers that do this for you to choose from:

[https://code.google.com/p/go- wiki/wiki/PackageManagementTool...](https://code.google.com/p/go- wiki/wiki/PackageManagementTools)

<comment><USER19> Been using godeps for a while, and absolutely no complaints so far.

</comment></comment></comment></comment></comment></comment><comment><USER20> _" the goal is to eliminate C from the source tree so that—except for programs that use cgo"_

What does the future hold for cgo? Yesterday I ran into erratic DNS success with a cross compiled program, win to lin. Haven't had a chance to look further, but I'm wondering when I'll run into similar snags again.

<comment><USER21> Can you please raise bug report or let me know what you find here? I work on go native dns library for linux, which iirc is used when crosscompiling rather than libc.

<comment><USER20> Not sure it's a bug, may be _" a well-known limitation"_ (unknown to me) - [https://inconshreveable.com/04-30-2014/cross-compiling- golan...](https://inconshreveable.com/04-30-2014/cross-compiling-golang- programs-with-native-libraries/)

Have a Go: package main

      import (
              "fmt"
              "net"
              "os"
      )

      func main() {
              hostname := "feeds.feedburner.com"
              if len(os.Args) > 1 {
                      hostname = os.Args[1]
              }
              addr, err := net.LookupHost(hostname)
              if err != nil {
                      fmt.Printf("err: %v", err.Error())
              } else {
                      fmt.Printf("addr: %v", addr)
              }
      }

      set GOOS=linux
      set GOARCH=amd64
      set CGO_ENABLED=0

<comment><USER21> Hi,

I do not have windows box to crosscompile any longer. I did test go 1.4 rc2 with CGO_ENABLED=0, which builds a static binary, and it gives -

addr: [184.108.40.206 2607:f8b0:4001:c00::76]

Are you seeing different behavior? Please describe...I'll see if I can look into it.

<comment><USER20> Hi,

      $ ./dns-win-xc.bin
      err: lookup feeds.feedburner.com on [188.8.131.52]:53: no such host
      $ ./dns-lin.bin
      addr: [18.104.22.168 18.104.22.168 126.96.36.199 22.214.171.124 18.104.22.168 188.8.131.52 184.108.40.206 220.127.116.11 18.104.22.168 22.214.171.124 126.96.36.199 2a00:1450:400c:c0a::76]

Win 8.1, go1.3.3., Centos 7. There's a downvoter for some reason, maybe they have something to add...? Don't let me lead you astray - I haven't yet read that article I linked to, but a quick glimpse suggested to me that this isn't a bug.

<comment><USER21> I didn't(actually, can't) downvote. Before I dig further, can you try 1.4 rc2? We heavily refactored DNS this release.

Secondly, your dns-lin.bin, is that with go built with CGO_ENABLED=0? Ie...if you ldd both files, do they both claim to be statically linked?

If you'd like to continue by email, please click my username.

Thanks

</comment></comment></comment></comment></comment></comment><comment><USER22> Interesting that a lot of serious and important tools of today are being written in Go (like Docker and Rocket which made another news today). Very impressive for a young programming language which is still at version 1.3.

<comment><USER23> [http://blog.codinghorror.com/the-magpie- developer/](http://blog.codinghorror.com/the-magpie-developer/)

<comment><USER24> Except that Docker and probably Rocket work really well. And the speed of development on the projects looks to have benefitted from using Go.

Speed of development is the killer feature that Go has. For me and most people I know who enjoy the language it provides an almost frictionless development experience that makes us more productive than any other language I know.

I'm a language geek so I totally get the whole "Why doesn't go have {Generics,Typeclasses,Hindley-Milner Type Inference,...}" arguments. Sometimes I miss them too. But then I remember how I literally cut months off a personal project's development time using Go. That's when I remember to be greatful for the core teams approach to making a purely pragmatic language that is geared toward frictionless development above all else.

<comment><USER23> > Except that Docker and probably Rocket work really well. And the speed of > development on the projects looks to have benefitted from using Go.

By this you mean that people adopted Go because it is good (in a technical sense), and because of the speed of development rather than because it was "new and shiny"? Fair point.

> I'm a language geek so I totally get the whole "Why doesn't go have > {Generics,Typeclasses,Hindley-Milner Type Inference,...}" arguments.

Why do you bring this up?

<comment><USER24> While it was slightly off topic I was trying to head off the inevitable thread about how Go sucks because it doesn't have favorite language feature X.

<comment><USER23> Don't be presumptuous.

<comment><USER11> It's not presumptuous if that's what almost every HN comment section on an article about Go devolves into.

<comment><USER23> It's presumptuous to assume that _I_ will bring it up, to be specific.

<comment><USER24> I truly didn't mean to target you specifically.

I was trying to be preemptive instead of presumptuous. Please accept my apology. I can see how it might have been misinterpreted.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER25> Not being an expert on language design, but these improvements "compiler, assembler, linker, and runtime for 1.5 will be entirely in Go" look like they could lead the to large enhancements in 2.0.....

puts on trollface.. possibly even generics :)</comment>


RFC: Lanai backend – Google internal processor architecture - <AUTHOR> http://lists.llvm.org/pipermail/llvm-dev/2016-February/095118.html <comment><AUTHOR> _" This is internal hardware for us, so there's not a lot we can share, and you can't really grab a version of the hardware. If that's a problem for the community, I completely understand.

Mostly, I wanted to offer to upstream this because it seems likely about the same utility as the AMDGPU backend for folks without an AMDGPU, or the XCore backend, etc. It's small, and we're happy maintaining it and taking on any of the effort around it."_

[http://lists.llvm.org/pipermail/llvm- dev/2016-February/09512...](http://lists.llvm.org/pipermail/llvm- dev/2016-February/095123.html)

</comment><comment><USER2> Appears to be a network card.

<comment><USER3> Interesting theory. What do you case this on? The lack of FPU?

<comment><USER2> A guess, but myricom makes cards based on a chip explicitly called lanai: [https://www.myricom.com/hardware/myri-10g-network- adapters/2...](https://www.myricom.com/hardware/myri-10g-network- adapters/203-what-s-the-difference-between-myri-10g-8a-and-8b-network- adapters.html)

"LANai"

<comment><USER2> Then again, someone mentioned this very card, and the response was that it was internal hardware, so still a mystery.</comment></comment></comment></comment>