Image Compression with Neural Networks - <AUTHOR> https://research.googleblog.com/2016/09/image-compression-with-neural-networks.html <comment><USER3> This is pretty neat. But is it just me or does the dog picture look better in JPEG?

When zoomed in, the JPEG artifacts are quite apparent and the RNN produces a much smoother image. However, to my eye when zoomed out the high frequency "noise", particularly in the snout area, looks better in JPEG. The RNN produces a somewhat blurrier image that reminds me of the soft focus effect.

<comment><USER4> It looks like they are using a "multi-scale structural similarity" (MS-SIM) metric as a proxy for how well a human will think a compressed image reproduces the original image. Both the JPEG and the RNN images are compressed to the same MS-SIM metric, which in this case makes the RNN image take 25% fewer bytes.

Part of the reason JPEG looks better in this case is that they have chosen to feature a detail- and noise-rich portion of the image, which favors JPEG... High JPEG compression has a sharpening effect around edges, including "ringing" which hides well in noise. However, if you view the full-sized comparison of the dog images, you can see that JPEG has essentially no detail in the darker portions of the image. Presumably both the MS-SIM metric and humans would judge RNN better for these portions.

<comment><USER5> The NN images, for sure, have a problem reproducing sharp edges/have less high frequency content. Just look at the grass.

It appears to be a severely flawed metric.

<comment><USER5> By severely flawed metric, I meant,

> Presumably both the MS-SIM metric and humans would judge RNN better for > these portions.

doesn't remotely hold for detailed/high contrast. If I can see a huge difference, and vastly prefer one over the other, the metric is not useful by its definition. Please don't get emotional about figures of merit.

I'm guessing a genuinely useful figure of merit would have put both file sizes a bit closer together, and the NN would have shined, especially since it works so well in low contrast areas.

</comment></comment></comment></comment><comment><USER6> jpeg 2000 had about a 20% reduction in size over typical jpeg, while producing virtually no blocking artifacts, 16 years ago[1]. Almost no one uses it, though. Now in 2016 we are using neural networks to get a similar reduction, except the dog's snout looks blurry, and with a process that I assume is much more resource intensive. It's interesting for sure, but if people didn't care about jp2, they would have to be drinking some serious AI Kool-aid to want something like this.

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

<comment><USER7> There's also BPG [1], a javascript image decoder that can be used on the web today, with (in my estimate) about a 40% improvement over jpeg. It's a bit disingenuous to use something so far from the state of the art as baseline, but it's still an interesting line of research IMO.

[1] [http://bellard.org/bpg/](http://bellard.org/bpg/)

<comment><USER8> BPG is derived from HEVC and thus patent encumbered as JPEG2000. But we have new codec like Daala or AV1 that could be used as a still image formats when they'll be mature enough.

I made a website where one could compare various formats:

[http://wyohknott.github.io/image-formats- comparison](http://wyohknott.github.io/image-formats-comparison)

</comment></comment></comment><comment><USER9> Important quote from the paper:

"The next challenge will be besting compression methods derived from video compression codecs, such as WebP (which was derived from VP8 video codec), on large images since they employ tricks such as reusing patches that were already decoded."

Beating block based JPEG with a global algorithm doesn't seem that exciting.

<comment><USER10> I would be extremely surprised if someone were able to create a neural network that can come anywhere close to H.264/265\. A lot of research has happened in the area of video codecs. Neural networks are good at adaptation, but useless at forming concepts about how the data is structured. For example: in video we do motion compensation, because we know video captures motion since objects move in physical reality. A neural network would have to do the same in order to get the same compression levels. And I also doubt it can outperform dedicated engineers in motion search estimation. But it's certainly interesting to see the development.

<comment><USER11> While I agree with you that the reason why modern video codecs work so well is because they embody knowledge about the statistical structure of natural scenes, there is no reason why a data driven / neural network approach could not also learn these sorts of hierarchical spatiotemporal contingencies as well.

The image labeling neural networks are a good proof of concept of this possibility. After all, what is a text label other than a concise (ie highly compressed) representation of the pixel data in the image. Obviously, being able to represent that a cat is in an image is quite lossy as compared to being able to represent that a particular cat is in an image (and where it is, and how it's scaled, etc). However, it's easy to imagine (in principle) layering on a hierarchy of other features, each explaining more and more of the statistics in the scene, until the original image is reproduced to arbitrary precision.

Could this outperform a hardwired video compressor? In terms of file size/bitrate, my intuition is yes and probably by a lot. In terms of computational efficiency, no idea.

<comment><USER9> But isn't there a fundamental difference between labeling and compression? For compression I would like stable guarantees for all data. For labeling it is enough to do better. Think of the classic stereotype that all asian faces look alike to europeans: that's ok for still labeling a human face, and useful. But for image compression to have different quality based on the subject would be useless!

<comment><USER12> Not really a fundamental difference. The better you can predict the data, the less you have to store. And the performance of all compression varies wildly depending on subject matter. The deeper the understanding of the data, the better the compression - and the more difficult to distinguish artefacts from signal. A compression algorithm that started giving you plausible, but incorrect faces if you turned the data rate too far down wouldn't be useless - it would be a stunning technical achievement.

</comment></comment></comment></comment></comment><comment><USER13> Why does a blog page showing static content do madness like this? I'd think google engineers of all people would know better. The site doesn't even work without javascript from a 3rd-party domain.

[https://my.mixtape.moe/klvzip.png](https://my.mixtape.moe/klvzip.png)

Static mirror: [https://archive.fo/yyozl](https://archive.fo/yyozl)

<comment><USER14> Engineers are expensive. Google's research blog probably isn't a very high- traffic surface, and most visitors are probably on modern machines and fast networks. It doesn't make sense to spend a bunch of engineering resources on optimizing something like this. So instead, you do whatever is easiest to implement and maintain.

</comment></comment><comment><USER15> > Instead of using a DCT to generate a new bit representation like many > compression schemes in use today, we train two sets of neural networks - <USER2> > to create the codes from the image (encoder) and another to create the image > from the codes (decoder).

So instead of implementing a DCT on my client I need to implement a neural network? Or are these encoder/decoder steps merely used for the iterative "encoding" process? It seems like the representation of a "GRU" file is different from any other.

<comment><USER16> It sounds complicated, but neural networks these days are basically just a bunch of filters with nonlinear cut-off and bining. (From a signal processing point of view..)

Super simple to implement the feed-forward scenario for decoding.

Not entirely sure what the residual memory aspect of these networks add in terms of complexity, but it's probably just another vector add-multiply, or something to that effect.

</comment></comment><comment><USER17> It's fun and scientifically interesting, but the decoder model is 87MB by itself.

<comment><USER18> Many NNs can be compressed considerably without losing much performance. The runtime of RNNs is more concerning, as is whether anyone wants to move to a new image format, but it's still interesting pure research in terms of learning to predict image contents. It's a kind of unsupervised learning, which is one of the big outstanding questions for NNs at the moment.

</comment></comment><comment><USER19> I asked about the possibility of doing this type of thing on CS Stack Exchange two years ago.

[http://cs.stackexchange.com/questions/22317/does-there- exist...](http://cs.stackexchange.com/questions/22317/does-there-exist-a-data- compression-algorithm-that-uses-a-large-dataset-distribu)

They basically ripped me a new one said it was a stupid idea and that I shouldnt make suggestions in a question. Then I took the suggestions and details out (but left the basic concept in there) and they gave me a lecture on basics of image compression.

Made me really not want to try to discuss anything with anyone after that.

<comment><USER20> Expecting 2 years of research by around 20 of the best DNN researchers on the planet to be compressed into a StackOverflow answer before it has been done seems a fairly large amount to expect.

Not a huge fan of the negativity on StackOverflow, but until August 2016 (when the paper this was based on was published - or maybe 2015, with DRAW[2]) people actively working in this area didn't think it was possible.

Also, the single answer there certainly didn't say anything like it was a stupid idea. I don't think the author of that answer knew much about autoencoders.

Also^2, your question isn't really anything like what this addresses. Your question concentrates on the idea of compressing a large set of images, and sharing some kind of representation.

That certainly is possible without using a ML approach. And yes, autoencoders have been around for a long time.

But hoverboards are a great idea, too.

[1] This paper has 7 authors, Gregor et al has 5 authors, DRAW has 6.

[2] [https://arxiv.org/pdf/1502.04623v2.pdf](https://arxiv.org/pdf/1502.04623v2.pdf)

<comment><USER19> It really is like what it addresses.

</comment></comment></comment><comment><USER21> It's quite exciting to see progress on a data driven approach to compression. Any compression program encodes a certain amount of information about the correlations of the input data in the program itself. It's a big engineering task to determine a simple and computationally efficient scheme which models a given type of correlation.

It seems to me like the data driven approach could greatly outperform hand tuned codecs in terms of compression ratio by using a far more expressive model of the input data. Computational cost and model size is likely to be a lot higher though, unless that's also factored into the optimization problem as a regularization term: if you don't ask for simplicity, you're unlikely to get it!

Lossy codecs like jpeg are optimized to permit the kinds of errors that humans don't find objectionable. However, it's easy to imagine that this is not the _right kind_ of lossyness for some use cases. With a data driven approach, one could imagine optimizing for compression which only looses information irrelevant to a (potentially nonhuman) process consuming the data.

</comment><comment><USER22> This seems so overly complicated, with the RNN learning to do arithmetic coding and image compression all at once. Why not do something like autoencoders to compress the image? Then you need only send a small hidden state. You can compress an image to many fewer bits like that. Then you can clean up the remaining error by sending the smaller Delta, which itself can be compressed, either by the same neural net, or with standard image compression.

The idea of using NNs for compression has been around for at least 2 decades. The real issue is that it's ridiculously slow. Performance is a big deal for most applications.

It's also not clear how to handle different resolutions or ratios.

</comment><comment><USER23> I see there being a number ofpaths for Neural Network compression.

She Simplest is a network with inputs of [X,Y] and outputs of {R,G,B] Where the image is encoded into the network weights. You have to per-image train the network. My guess is it would need large complex images before you could get compression rates comparable to simpler techniques. An example of this can be seen at [http://cs.stanford.edu/people/karpathy/convnetjs/demo/image_...](http://cs.stanford.edu/people/karpathy/convnetjs/demo/image_regression.html)

In the same vein, you could encode video as a network of [X,Y,T] --> [R, G, B]. I suspect that would be getting into lifetime of the universe scales of training time to get high quality.

The other way to go is a neural net decoder. The network is trained to generate images from input data, You could theoretically train a network to do a IDCT, so it is also within the bounds of possibility that you could train a better transform that has better quality/compressibility characteristics. This is one network for all possible images.

You can also do hybrids of the above techniques where you train a decoder to handle a class of image and then provide a input bundle.

I think the place where Neural Networks would excel would be as a predictive+delta compression method. Neural networks should be able to predict based upon the context of the parts of the image that have already been decoded.

Imagine a neural network image upscaler that doubled the size of a lower resolution image. If you store a delta map to correct any areas that the upscaler guesses excessively wrong then you have a method to store arbitrary images. Ideally you can roll the delta encoding into the network as well. Rather than just correcting poor guesses, the network could rank possible outputs by likelyhood. The delta map then just picks the correct guess, which if the predictor is good, should result in an extremely compressible delta map.

The principle is broadly similar to the approach to wavelet compression, only with a neural network the network can potentially go "That's an eye/frog/egg/box, I know how this is going to look scaled up"

</comment><comment><USER24> That neural network technology is all fine and good for compressing images of lighthouses and dogs - but what about other things?

</comment><comment><USER25> Now that Google is full on the neural network deep learning train with their Tensor Processing Units we'll be seeing NN applied to everything. There was an article about translation now imagine compression. It is a bit amusing, but nothing wrong with it, this is great stuff, I am glad they are sharing all this work.

</comment><comment><USER26> I've been wondering when neural networks might be able to compress a movie back down to the screenplay.

</comment><comment><USER27> Is there any image compression that uses Eigenfaces? Using the fact your face may look similar to someone else face.

What if you use uniqueness and eigenface look up table for compression?

<comment><USER28> Not an expert in this, but you would need a lot of eigenfaces to capture the variance (i.e. a lot of upfront cost storing all the eigenimages). It might be good for something that is very standardized (e.g passport photos where everyone is in the same position) but otherwise I think there probably is too much variance to keep the number of eigenimages to a reasonable number.

</comment></comment><comment><USER29> Compression engineers shaking in their boots.

</comment><comment><USER30> I knew this was coming. Great stuff.

</comment><comment><USER31> you could probably reach 20% by building custom quantization table (DQT) per image alone

</comment><comment><USER32> Was this this inspired by silicon valley?

</comment><comment><USER33> Nice!! They should call it PiedPiper :D (I can't believe I was the 1st one with this comment)

<comment><USER33> wow, such a hated comment.. I don't get it, I guess that there aren't many fans of the show around here</comment></comment>


Send Documents Like a Pro - <AUTHOR> http://www.pandadoc.com/

<comment><USER2> I find it amusing that the team consists of 12 people, and only one of them is a developer (maybe 2 if we count the CTO).

Is this normal for tech startups?

<comment><USER3> Yes it's normal for developers to do all of the work and for sales, marketing, finance, HR, the CEO, CTO, COO etc. to get all of the money.

<comment><USER4> yeah, but a group of 12 managers for a startup is the recipe for failure.

</comment></comment></comment><comment><USER5> _There are only 1,600 giant pandas left in the world, their numbers cut down by deforestation._

Reminds me of the Cree Indian saying: "Only after the last tree has been cut down. Only after the last river has been poisoned. Only after the last fish has been caught. Only then will you find that money cannot be eaten."

</comment><comment><USER6> > PandaDoc tracks your docs, let's you know who has looked at what, when, and > then gives you detailed analytics to help you plan your next move.

Aka a service where I as receiver would feel violated from being spied on. It is no one's business when and where I read what and how.

Also, it being cloud-based you never _really_ receive the documents, but you are just enabled to view them if the site is online. Or maybe I am misreading the marketing speak.

<comment><USER7> > Also, it being cloud-based you never really receive the documents, but you > are just enabled to view them if the site is online.

Yeah this worries me. If it's a document that requires my signature, I want a real live document in my hands that I can file away for safe keeping... I know it's about preserving forests and all that good stuff, but legal documents are something I want physical copies of.

<comment><USER8> True, but 85% of identity theft cases are from offline docs.

<comment><USER6> Source?

<comment><USER8> [http://www.payitgreen.org/consumer/faq](http://www.payitgreen.org/consumer/faq) :)

it's mostly from mail i think.

</comment></comment></comment></comment></comment><comment><USER9> On the general issue of securely sending signed documents, I'd like to see a federal agency with credibility provide such a service. In particular, this seems like a great opportunity for the post-physical US Postal Service

<comment><USER10> Decades ago this was one of the features of the OSI X.400 email standard the idea was you could do physical delivery as well as electronic - leveraging the fact that many PTT's had relationships with their country's post office.

I think the 88 version of x.400 also had non repudiation and electronic signatures - its a long time since I read the blue books.

</comment></comment><comment><USER11> Interesting how you can open Finder on your iPad.

<comment><USER12> that was just a screencast - going really lean about it :)

</comment></comment><comment><USER13> I think this is a bit of a pivot from their business at Quote Roller

</comment><comment> UVB-76 I know it's not really to do with the service, but 1% of profits go to preserving pandas?

Surely if you care about pandas enough to name your service after the creature, you can do better than 1% of profits?

<comment><USER14> I agree - 1% of revenue might be something but 1% of profits, after all expenses? I hope that it's still _something_ but I don't think that's enough to pride yourself on it or to use it as marketing.

Of course, 1% is still a lot more than most companies. And aside the donations, this might help get the issue some attention too. But that doesn't seem to be the motivation either, given that they barely go into the problem (and they end with "Plus… pandas are just so cute! :)" \- ever heard of speciesism? [https://en.wikipedia.org/wiki/Speciesism](https://en.wikipedia.org/wiki/Speciesism) )

</comment></comment><comment><USER15> tell me more about the "tracks changes"

Can I upload an updated version of the document (say a contract) and you will see what changed?

<comment><USER12> that would be a nice one. definitely will consider it down the road.

</comment></comment><comment><USER16> look nice but I don't think the whole panda branding and "save the panda" going to work for your target market which is SME and up.

<comment><USER8> do you think it's going to hurt us? (i personally prefer Hootsuite and MailChimp to our other software because of the whimsical characters.) ;)

</comment></comment><comment><USER17> Will you have an API?

<comment><USER8> Yes PandaDoc will definitely have an API. It's on our priority list.</comment></comment>


Apollo 11 and Other Screw-Ups - <AUTHOR> https://www.doneyles.com/LM/Tales.html <comment><USER2> Eyles has written a book _Sunburst and Luminary: An Apollo Memoir_ , [https://www.amazon.com/Sunburst-Luminary-Apollo-Don- Eyles/dp...](https://www.amazon.com/Sunburst-Luminary-Apollo-Don- Eyles/dp/0986385905), published earlier this year which recounts his role in designing and building much of the software in the Apollo guidance computer. It recounts much of this history and is a worthwhile read for space and Apollo junkies.

</comment><comment><USER3> Discussion from a couple years ago: [https://news.ycombinator.com/item?id=12040503](https://news.ycombinator.com/item?id=12040503)

</comment><comment><USER4> See also: [https://en.wikipedia.org/wiki/Margaret_Hamilton_(scientist)#...](https://en.wikipedia.org/wiki/Margaret_Hamilton_\(scientist\)#Apollo_11)

</comment><comment><USER5> See also Mindell, David A. Digital Apollo. MIT Press 2011

<comment><USER6> I second your recommendation of _Digital Apollo_ \- an excellent book.

I also rate _How Apollo Flew to the Moon_ by David Woods (Springer Praxis, 2011) very highly. The cover is kind of cheesy but its full of the kind of technical detail that is hard to find without reading through old NASA docs.

</comment></comment><comment><USER7> Related article about Don & Apollo 14: [https://www.rollingstone.com/politics/politics-news/don- eyle...](https://www.rollingstone.com/politics/politics-news/don-eyles-extra- weird-looking-freak-saves-apollo-14-40737/)

</comment><comment><USER8> The most curious screw ups to me are the badly photoshopped images to get rid of UFO activity. Just look at the testimony by former NASA workers who independently heard the full transcript regarding Apollo team's sightings of extra terrestrial vehicles monitoring them.

<comment><USER9> Do you have any links for that? I would love to learn more.

<comment><USER8> [https://www.netflix.com/ca/title/80171742](https://www.netflix.com/ca/title/80171742)</comment></comment></comment>


16 Linux server monitoring commands you really need to know - <AUTHOR> https://insights.hpe.com/articles/16-linux-server-monitoring-commands-you-really-need-to-know-1703.html <comment><USER2> This is a terrible article which doesn't even meet the requirements for posting to hackernews.

</comment><comment><USER3> Starts by assuming that runlevels mean the same thing on all Linux variants.

<comment><USER4> Yeah... a buzzfeed style inbound marketing post asking me to modify my runlevel. What could go wrong?

<comment><USER5> Welcome to the modern world, where knowing what a run level IS, let alone know how to USE one, matters.

What could go wrong? You forget to try to understand the question: what is my run level?

</comment></comment></comment><comment><USER6> netstat is deprecated on Linux, ss should be used instead. Learning the differences is a good exercise by itself

</comment><comment><USER7> htop may be better than top

<comment><USER8> I find when a server is close to using max CPU or mem, htop requires a surprising amount of resources that result in it lagging quite a bit.

<comment><USER9> I prefer htop.

<comment><USER10> I know install glances and use it in place of htop on all servers. Much more info and more customizable than htop.

</comment></comment></comment></comment><comment><USER11> It seems that a lot of distributions have moved to systemd - do runlevels and inittab even have any meaning for a systemd-based distribution?

<comment><USER12> They have a meaning, but the systemd people describe them as "obsolete".

* [http://jdebp.eu./FGA/inittab-is-history.html](http://jdebp.eu./FGA/inittab-is-history.html)

* [http://unix.stackexchange.com/a/204075/5132](http://unix.stackexchange.com/a/204075/5132)

* [http://unix.stackexchange.com/a/196014/5132](http://unix.stackexchange.com/a/196014/5132)</comment></comment>


Show HN: Steve Jobs Tribute Page - <AUTHOR> http://jorgesanz.xyz/2016/03/25/website-steve-jobs-tribute-page/ <comment><USER2> Steve would've nitpicked too, so:

[https://github.com/jorge-sanz/tribute-page/blob/gh- pages/css...](https://github.com/jorge-sanz/tribute-page/blob/gh- pages/css/main.css#L98)

<comment><AUTHOR> Thanks for reporting this bug

</comment></comment><comment><USER3> Thanks, Steve, for showing me how I too could cure pancreatic cancer by eating only peas.

<comment><USER4> lol

</comment></comment><comment><USER5> If I didn't know that lots of sites are "height = 100%" sectioned, I would have just pressed the play button.

Add a "scroll down" maybe?

</comment><comment><USER4> Please stop worshiping Steve Jobs -- he wasn't that great of a guy.

<comment><USER6> I don't think the OP is worshiping Steve Jobs, but perhaps they just needed a quick topic for this educational project the was doing.</comment></comment>


Indian moon mission eclipsed by Apollo 11 anniversary - <AUTHOR> http://www.telegraph.co.uk/expat/expatnews/5885930/Indian-moon-mission-eclipsed-by-Apollo-11-anniversary.html

<comment><USER2> The mission has not exactly covered itself in glory. To quote from an editorial in 'The Hindu' recently:

"But why did ISRO choose to draw a veil on the problems the Moon mission was facing? Information now available with this newspaper suggests that the first major subsystem failure occurred a few weeks after the spacecraft was launched. An official press release issued when the spacecraft's orbit was raised two months ago gave no hint of any malfunction. Had the problems not been reported in the journal Science and the Indian media, ISRO would probably have chosen not to disclose them. The people of India have unstintingly supported the space programme. ISRO needs to repay that trust with openness and transparency."

<http://www.hindu.com/2009/07/20/stories/2009072055480800.htm>

<comment><USER3> Ah! the advantages of being a democracy.

</comment></comment><comment><USER4> Awesome pun.</comment>


React-Move 2.0 – Resonance joins React-Move to make your animations even better - <AUTHOR> https://medium.com/react-tools/react-move-2-0-resonance-joins-react-move-to-make-your-animations-even-better-2279d95cefaf <comment><AUTHOR> TL;DR - React-Move 2.0 is a merge of Steve Hall's Resonance library into React-Move.

\- Mind boggling performance \- Amazing stability \- A simple and even more powerful API \- Delays, staggers, and complex transition groups \- Multi-step Transitions \- Animation lifecycle hooks

Example Here: [https://codesandbox.io/s/j4mv3lvj6v?from- embed](https://codesandbox.io/s/j4mv3lvj6v?from-embed)</comment>


Ghostbot pretends to be you, talking to people you want to avoid - <AUTHOR> http://www.theverge.com/2016/6/21/11975700/ghostbot-texting-dating-bot-app-mean-texts <comment><USER2> I'd be much more interested in a "secretary" product that openly acts as a gatekeeper and escalates important conversations to me as necessary. But Ghost is named very aptly - that seems to be a footing description for their service.

</comment><comment><USER3> Assuming that the type of people who they want to block are psychos or people with bad social skills, they will find themselves in 100 times more serious situation when the other party finds out. Even as a normal guy I would feel extremely pissed if I find out that a girl has been playing me with a bot.

</comment><comment><USER4> Is it not easier to just ignore or block people you'd rather not chat with? Why deceive them? Isn't it kind of immoral?</comment>


Tiny Robots Climb Walls While Carrying 100 Times Their Weight - <AUTHOR> http://www.newscientist.com/article/dn27413-tiny-robots-climb-walls-carrying-more-than-100-times-their-weight.html#.VTzw4GSeDRY

<comment><USER2> That's a pretty impressive accomplishment. Interesting how the Gecko was the source for this idea.</comment>


The "Human Uber" Service in Japan - <AUTHOR> https://www.bustle.com/p/the-human-uber-service-in-japan-is-sending-surrogates-with-tablets-on-their-faces-to-events-for-people-who-cant-attend-8075538 <comment><USER2> It still needs realtime remote directions.

I wish they did provide this without the hassle, then I could send somebody to deal with all the social crap so that I don't have to.</comment>


Text Rendering Hates You - <AUTHOR> https://gankra.github.io/blah/text-hates-you/ <comment><USER2> A few minor things missing in OP (mostly CJK related)

\- Code point is sometimes not enough to determine the glyph. For example, U+5199 must look different in Simplified Chinese and Japanese. Typically this is handled by using different fonts, but more formally it should be marked with different lang attributes (in case of HTML).

\- Top-to-bottom writing mode is still pretty much in use in Japanese. HTML support is poor, but it's common in PDF. Caveat: Latin alphabets are rotated by 90 degree (as explained in OP), but for punctuations, simply rotating the glyph isn't enough because the center line is going to be slightly off. You need special glyphs for rotated punctuation.

\- Unlike Latin scripts, most Chinese and Japanese characters are free to break line at any point, but there are exceptions: contracted letters (e.g. ちょっ) cannot be split. So you'll end up with treating each letter as a separate word. (Contracted letters are treated as one word.)

<comment><USER3> Elaboration for "ちょっ"

Japanese hiragana chi, small yo, and small tsu.

Hiragana is a syllabary (not alphabet!) comprised of 46 sounds. Small hiragana can be used to modify the sound of the leading character to expand the set of available phonemes. Here, "Chi (small)yo" becomes "cho".

Small tsu is special. It represents a doubled or germinated consonant.

For example ちょっと (chotto) sounds like chot-to. Example:

[https://m.youtube.com/watch?v=kh9Kk_RHn8Q](https://m.youtube.com/watch?v=kh9Kk_RHn8Q)

Japanese is a really fun language. If you've ever had an interest in learning it, I recommend it. Reading kanji is a joy in and of itself, because it has a pleasant inner logic that gets deeper the more you learn.

<comment><USER4> Japanese is one of the few languages with a worse writing system than English. Hats off to them for it. I do miss the pre-war spellings though, where they wrote things based on 10c pronunciation, eg AU is pronounced OH (like in French).

Tibetan is also in pretty desperate need of spelling reform. I'd love to hear replies about other terrible writing systems.

<comment><USER5> In the scheme of writing systems it's hard for me to see why English is so bad. In general writing (like spoken grammar) is so heavily used that all the "rough corners" get sanded smooth pretty rapidly and continuously. For example, though the histogram of Kanji/Hanzi has a very steep drop-off, it's not that hard for people to recognize and keep track of, because characters that were hard to read at first tend to get restructured or dropped.

As far as Indo-European languages go, languages like English and French are quite conservative in spelling and underlying meaning, which means they do diverge from pronunciation but retain semantic clues which help the reader unlock the meaning of unknown words. While languages that continuously reform to try to match pronunciation shifts (e.g. German) discard this info. In addition they have to pick one canonical pronunciation, and themselves typically retain various homophonic issues (e.g. how many ways can you write the sound of ä (I don't mean "ae")).

Even as a kid (should be "easy to learn", right?) I struggled far more with the variants of the devanagari alphabet even though it was so phonetic. But hundreds of millions of people use it every day without thinking about it.

<comment><USER4> English is pretty bad unless you are a total orthography history nerd.

For example, people routinely mispronounce the name of the President of China. (It's closer to Shi than Zi.) Why? Because English has a strong preference for retaining native spellings even when the other language has a completely incompatible set of pronunciation rules. With Chinese this is extra silly because pinyin is only one of a million ways of romanizing Chinese and basically the least English compatible method.

English spelling is like a Hofstader puzzle: to be able to master it, you must master the spellings of all languages plus English itself recursively going back to the Great Vowel Shift. It's not a good system.

<comment><USER5> Pinyin is requested by the Chinese government. They used to use Wade-Giles but changed iirc in the 70s and requested that others do so too.

It can't really be called part of English in any meaningful way anyway.

<comment><USER4> We don't call the country "Zhongguo" in English, we call it "China". So why do we let them tell us to call it "Beijing" instead of "Peking"? It's craziness. We gave up a perfectly good name for "Canton" and replaced it with an unreadable mess that isn't even in Cantonese ("Guangzhou").

If people who speak Chinese want to use pinyin, more power to them. But English speakers need to stop just copying other people's romanizations even when the romanizations do not connect to our spelling system at all.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> Another pain point on text AA: Many renderers mix up colorspaces on antialiasing. For example freetype assumes a linear colorspace when calculating the antialiased bitmap but AFAIK both GTK and QT apply it directly on sRGB without any adjusting. The result is apparently thickened fonts when displayed black on white and thinned fonts when displayed white on black.

Edit: Some background can be read on [0].

[0] [https://www.freetype.org/freetype2/docs/text-rendering- gener...](https://www.freetype.org/freetype2/docs/text-rendering- general.html#background)

<comment><USER7> With high density monitors on the rise we should get rid of LCD (RGB rainbows) anti alias as its really just a hack.

<comment><USER6> I strongly disagree, also the way the article describes subpixel antialiasing is not entirely accurate. The thing is the boundaries between pixels don't actually exist, it's just a convention so we can address individual pixels and subpixels within them. But these subpixels are not at the same position within the pixels and this needs to be taken into account for antialiasing.

Also regarding hiDPI: I know that you just want to get rid of subpixel antialiasing but you really don't want to get rid of antialiasing in general. It's not really an issue with typefaces, but non-antialiased high-frequency patterns can easily generate unwanted Moiré patterns on you display regardless how high is your display resolution.

<comment><USER8> It's pretty much arbitrary what we as an industry have decided "text" means (and this has changed over the years), and what features it ought to support. It's largely "what our technology easily supports today".

For example, most people expect antialiasing (i.e., subsampling across space) but we seem to have written off the idea of motion blur (i.e., subsampling across time), except in some games.

It's be technically more accurate to draw a quickly-dragged mouse cursor with a (correctly computed) blur, but that's not generally easy to render today. And motion blur of moving subpixel antialiased text sounds like a nightmare right now, but with the right abstractions it might not be.

<comment><USER6> Motion blur is only "accurate" if you assume that the viewer's eyeballs remain still and don't follow the moving object. Having said that not blurring isn't accurate either on current LCDs when the viewer follows the object. This is what black frame insertion is meant to correct.

</comment></comment></comment></comment></comment><comment><USER9> > Mercifully, subpixel has become less relevant over the years: retina > displays really don't need it, and the subpixel layout on phones, prevents > the trick from working (without major work). On newer versions of macos, > subpixel-aa of text is disabled at the OS level by default.

Speaking of mercy, I wish Apple had disabled it only on hidpi displays and chosen a longer deprecation window for normal displays.

I prefer keeping displays at a distance slightly longer than my arm. This completely hides the slight blur of subpixel antialiasing.

Now a 1440p has significantly degraded text rendering (even though other graphics look great) and if you want to use an external display, it must be 4K or 5K to not get a blurry, thin mess.

<comment><USER10> Have you tried `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO`? (also needs a reboot)

<comment><USER9> Yep, but some say it's gone from Catalina. I don't try betas. Can someone on 10.15 verify that this still works?

<comment><USER11> It does work on 10.15 latest beta (10 as of writing).

<comment><USER9> Good to know, thanks. Hope it makes it to GM.

</comment></comment></comment></comment></comment><comment><USER12> The other comments about the details rendering are great and an example of how much depth of knowledge you can find on HN (and all this is now well beyond my experience).

What I'd be curious about here, though, is what this says about large scale software engineering. Text rendering has to be one of the most common activities within a large number of computer program sorts and I know pieces of the text rendering process are common examples in texts on object oriented programming, indeed the different of rendering processes seem to suggest objects and interface readily. Yet the standard pipleline the author describes seems leakier than anything I saw twenty years when I dealt with such issues - nothing is solved on the software engineering side, the mess just grows.

Obviously, this is a product of adding new languages and new display models to the text rendering process, as well as standardizing the process so it accommodated different font approaches and etc.

But object orientation as well as related models promised, some time in the past, something akin to "encapsulate the process and adding complexity will be easier". Object oriented programming has lost almost all luster but what alternatives? Could the pipeline be less leaky in functional programming or something similar or something different.

It just makes me curious.

<comment><USER13> Across all coding paradigms, it is always good to abstract at the correct level and to modularize as much as possible (really these are two sides of the same coin). The leaky nature of text rendering means that the only level you can really abstract at is the topmost level, and you're left simply covering every imaginable case individually. Not sure if that can be solved by a programming paradigm.

<comment><USER12> But is text rendering "inherently leaky"? Or more leaky than large scale accounting data or etc?

At that rate, it seems like just about any messy, multilevel problem can be taken as inherently leaky and not something design paradigms can make easier. Maybe the solution is, "there is no solution" but as an optimist, it's hard for me to accept that.

(And yeah, I should have said "design paradigm", not programming paradigm).

</comment></comment></comment><comment><USER14> High-DPI (namely 200+ DPI, aka Retina) text rendering on desktop computers is one of the more impactful hardware developments for programmers in a while.

When you're looking at text all day every day, having every single glyph take a massive step up in fidelity (4x the pixel budget!) is not to be sneezed at.

<comment><USER15> I miss my amber Hercules screen

<comment><USER16> Ashton-Tate's Framework on a green Hercules was my daily driver for a very long time. Multi-tasking (sort of), windows, and the ability to cut-and-paste between applications in a text-only environment years before Microsoft Windows was usable.

[https://en.wikipedia.org/wiki/Framework_(office_suite)](https://en.wikipedia.org/wiki/Framework_\(office_suite\))

Picture: [https://winworldpc.com/res/img/spotlight/Famework%201.0%20-%...](https://winworldpc.com/res/img/spotlight/Famework%201.0%20-%20Edit.png)

<comment><USER17> Framework was the tits back in the day. It was basically Emacs for the office. It built on the core concept of a frame the way Emacs built on the buffer -- except frames could contain other frames, which is how Framework composed spreadsheets and documents with multiple subsections.

Like Emacs, Framework was programmable in a Lisp-like scripting language called FRED. In fact you could attach FRED macros to any frame, and they would be saved along with your work.

All this on an 8088-based PC (or 80186-based Tandy 2000).

</comment></comment></comment></comment><comment><USER18> If it weren't for Windows, we could move on from TrueType outlines (.ttf) to CFF outlines (.otf). .otf works nicely on non-Microsoft rasterizers. It was terrible on XP. Now on Windows 10 it's less terrible, but .otf fonts on Windows 10 using DirectWrite look bolder and blurrier than using FreeType, Apple, or Adobe rasterizers.

If Microsoft adopted the Mac font rendering aesthetic and fixed their CFF rasterizer, we wouldn't need to worry about TrueType hinting anymore. But now, since your PDFs and Web fonts get viewed on Windows, you need to use TrueType outlines with Windows-friendly hinting even if you aren't using Windows yourself.

<comment><USER19> That's the difference between ttf and otf? And that's why certain fonts look slightly different between platforms!

This is a serious revelation to me. Thank you. I've been having to switch between my Mac laptop, Linux workstation, Windows 10 workstation, and Windows 10 Amazon Workspace a lot. It's been frustrating seeing the small differences but being unable to really figure out what was going on.

<comment><USER18> The format of outlines is only difference between .ttf and .otf, yes. .ttf has quardratic Bézier curves and hinting is done by interpreted programs (on Windows; TrueType has generate hints at run-time). .otf has cubic Bézier curves and declarative hints.

The outline format of .otf comes from Adobe Type 1 fonts (.otf really is just .ttf with outline format taken from Type 1), so the .otf outline format is the older one. Apple created TrueType after licensing talks with Adobe failed long ago.

.otf is generally more compact in terms of font file size than .ttf. Really the only reason to stick with .ttf is the rasterizer situation on Windows and outlines traveling from Linux and Mac to Windows in PDFs.

<comment><USER20> OpenType also supports the TrueType glyph format [0], and it's the dominant glyph format in most OTF files I could find. Really, OpenType is just CFF / Type 2 Fonts and TrueType smushed together in a single file.

[0] [https://docs.microsoft.com/en- us/typography/opentype/spec/gl...](https://docs.microsoft.com/en- us/typography/opentype/spec/glyf)

</comment></comment></comment></comment><comment><USER21> Once upon a time I wrote an automated newspaper layout/preview system in Cocoa, the rendering engine in MacOS.

It was the only thing I could find that could do high quality text (ligatures, OpenType fonts, etc.), had native CMYK support, and could produce a print ready PDF or JPEG preview in milliseconds.

I can't open source the code, but if anyone ever needs to embark on something similar I'd be happy to share what I learnt.

</comment><comment><USER22> That article links to this page about what a massive hack ClearType (Microsoft's subpixel anti-aliasing in Windows) is and I love it: [http://rastertragedy.com/RTRCh4.htm#Sec1](http://rastertragedy.com/RTRCh4.htm#Sec1)

<comment><USER23> Wow, that's an amazing (and beautifully designed) website, thank you!

</comment></comment><comment><USER24> It seems that the term "subpixel" is overloaded. In one meaning the term refers to the RGB parts. In another meaning the result looks different when the text is shifted by less than a pixel, even on a monochrome screen.

<comment><USER25> In the first case, I believe that it's normally referred to as "subpixel antialiasing". And in the second case, "subpixel positioning".

<comment><USER24> Yes, good point, but what would you call it if you'd apply both concepts at the same time?

<comment><USER26> Subpixel antialiasing plus subpixel positioning :)

They are orthogonal concepts.

</comment></comment></comment></comment><comment><USER27> > If you're in Safari or Edge, this might still look ok! If you're in Firefox > or Chrome, it looks awful, like this: [https://gankra.github.io/blah/text- > hates-you/transparent-cur...](https://gankra.github.io/blah/text-hates- > you/transparent-cursive.png)

It doesn't look awful in Firefox, it looks perfect (it's version 26 of Firefox though.) This is what I see [https://i.imgur.com/sjvqycv.png](https://i.imgur.com/sjvqycv.png)

<comment><USER28> Mobile Safari is giving me the color stacking in your second link.

</comment></comment><comment><USER29> > Synthetic bold: paint every glyph multiple times with a slight offset in > your text-direction.

Designers forgetting to include a bold version of their web fonts is one of my biggest bug bears. It always stands out, especially on Safari on iOS as you zoom in and out.

<comment><USER30> I think Chrome (PC/Android) implements synthetic bold by expanding the glyph outline, then drawing it with subpixel off. It's prettier than Firefox's "horizontal-only extrusion", but sometimes leads to funny artifacts at sharp corners.

<comment><USER31> How Firefox implements synthetic-bold varies across different platforms, actually, depending on the features of the (platform-specific) font rendering backend it's using. It uses the paint-multiple-times-with-a-small-offset approach when the font backend doesn't seem to offer a "better" synthetic-bold option.

<comment><USER32> Yeah the smearing approach is the only one that merits a callout from my position in the pipeline, because the other approaches are handled by your shaper or rasterizer, which are usually 3rd party libs that can be mostly regarded as black boxes.

</comment></comment></comment></comment><comment><USER33> Fun fact about subpixel antialiasing: at some point, Firefox was printing the subpixels when printing PDFs displayed with PDF.js. That looked awful. I'm actually not sure whether that was fixed, as I haven't printed in years (also, I have disabled subpixel AA for a while because of my dual monitor not in the same direction setup)

<comment><USER34> I got some printed marketing material at a trade show last week. Screenshot of grey sub-pixel text, enlarged and printed in CMYK onto flyers.

Obviously blurry and color-fringed; hard to believe anyone approved that artwork or finished product.

<comment><USER35> Perhaps it was an artistic choice? Doubtful depending on what the marketing material was for but I've seen interesting stuff along those lines. A good analogy would be how some people like the sound of "cheap" synthesizers.

</comment></comment></comment><comment><USER36> >Rendering text, how hard could it be? As it turns out, incredibly hard!

Related undesired complexities/heterogeneities I encountered while implementing a simple text drawing API on top of various libraries (cf. "Pain points", near the bottom):

[https://github.com/jeffhain/jolikit/blob/master/README- BWD.m...](https://github.com/jeffhain/jolikit/blob/master/README-BWD.md)

<comment><USER37> > Libraries don't always provide font metrics, and when they do, these metrics > are not reliable, as some glyphs can leak outside of their theoretical box, > possibly depending on the used font size, or usage of diacritical marks

God yes. I'm building a UI design tool, and running head-first into this reality. I had no idea it was this hard.

<comment><USER26> It can go the other way, too. It is mathematically impossible to make a font that has the exact same vertical metrics/line-spacing everywhere, so everyone sets the three value sets provided by the OpenType spec to the same values for web fonts. And then you try to render a font with tall glyphs (i.e. Arabic) on Android and find that it actually looks at the font-wide bounding box in the head table to determine metrics. You can't change them because then Android clips everything legitimately outside that box.

</comment></comment></comment><comment><USER38> "If you're in Firefox or Chrome, it looks awful"

Looks correct in Firefox 69.0.1 on Windows here. In Chrome it looks awful as described. In both the "bow" at the top overlaps the text on the previous line.

<comment><USER39> Chrome/Blink is in the middle of rolling out a large layout engine change. Chrome 76 behaves more like Safari, Chrome 77 behaves as the article describes.

People also might be (1% prob.) placed into a "holdback" experiment group which has the old behaviour in M77.

</comment></comment><comment><USER40> This is a nice intuitive introduction for the naive. Of course - there is more. @euske explains some extra trouble for CJK. There is also the hell of _direction_ - RTL vs LTR text on the same line. There is a complex bidirectional algorithm that's part of the Unicode standard [1], and it involves breaks up text into runs of RTL and LTR text - but it's not at all trivial, since many characters are actually neutral, like punctuation marks.

What's more, Unicode has a lot of control characters, that don't get rendered into glyphs but affect text rendering. These can be pretty tame, like space and non-breaking space - but some are rather nastly, like pushing and popping a stack of RTL-vs-LTR state (yes, it nests).

[1] : [http://www.unicode.org/reports/tr9/](http://www.unicode.org/reports/tr9/)

</comment><comment><USER41> It seems like you'd need to read at least a few dozen languages fluently to be able to meaningfully reason about some of these issues. I can't imagine what sort of educational background experts on rendering would have.

<comment><USER42> I'm not fluent in any language (except maybe English), but this was my job on Android for about five years, and I still have my hand in. I got very good at being able to spot various forms of incorrect rendering, and of course called in the experts when needed.

One of my favorite examples was Devanagari shaping. In the word ट्विटर (tvitar = Twitter), does the "i" matra shape before the "tv" it in the middle of it? In my sample, people accepted it either way (and you'll see both depending on font), but there are lots of examples where one is just wrong.

<comment><USER43> As "Twitter" is a foreign word.there is no set standard to it.

If I were to write it, I would write "tv" first. And draw an extended variant of "I" to cover "tv"

In text rendering, this translates to a custom ligature for an unexpected combo. I am not sure how feasible it is to add ligatures for every such combos

In real life, as long as the reader "gets" it, they would assume that it is the right way to write it :)

</comment></comment></comment><comment><USER44> I realize it's probably too late, but as a graphics person, every time I read about text antialiasing, I wish we could rewind and fix the terminology of "Subpixel antialiasing" and "Greyscale antialiasing". It seems problematic that greyscale antialiasing involves subpixel sampling and color channels.

I'd suggest "LCD antialiasing" to replace "subpixel antialiasing". And regular antialiasing doesn't really need a term, it was already established long before LCDs existed. AFAICT "Greyscale antialiasing" was made up only to differentiate regular antialiasing from LCD antialiasing.

<comment><USER45> "Subpixel" makes more sense than "LCD": the technique applies to any screen with illumination units smaller than a pixel (eg. LED screens) so "subpixel" makes perfect sense.

<comment><USER44> Yes, it makes sense. My beef is not that subpixel doesn't make sense, it's that the term is overloaded. Standard antialiasing also involves subpixels and the term makes perfect sense there too. From my perspective, "subpixel" fails to differentiate.

Now, using "Greyscale" to mean color, just not LCD color, that one doesn't make as much sense to me. Some articles call it "whole pixel anatialiasing" or "traditional antialiasing", those seem better, but maybe we can assume antialiasing is the regular kind, and only need a term to talk about LCD style antialiasing.

<comment><USER46> How does standard antialiasing involve subpixels - are you talking about retina or something?

It applies alpha to pixels of whatever size right? What's the sub- part?

<comment><USER44> It's common in both software and especially hardware to render at a higher resolution and then filter & downsample. The 2x2 or 3x3 or 4x4 etc pixels in the higher resolution that correspond to the 1 pixel at final resolution, those are called subpixels. For example, you can read about subpixels in descriptions of traditional aliasing as well as GPU antialiasing.

[https://en.m.wikipedia.org/wiki/Spatial_anti- aliasing](https://en.m.wikipedia.org/wiki/Spatial_anti-aliasing)

[https://en.m.wikipedia.org/wiki/Multisample_anti- aliasing](https://en.m.wikipedia.org/wiki/Multisample_anti-aliasing)

The term subpixel is often referring to virtual pixels used to compute some final pixel value, as opposed to the LCD specific idea of a physical subpixel that's red, green, or blue. Look around, for example, for discussions on subpixel resolution, subpixel positioning, subpixel animation, etc. Those are usually talking about the virtual kind used in traditional antialiasing, not the physical LCD subpixels.

<comment><USER47> To add to the confusion, OpenGL uses the term 'fragment' for what you're calling subpixels.

<comment><USER44> Yes that's an interesting point, the "fragment" terminology can be confusing at first. But I think of fragments as something slightly different. "Fragment" means basically pixel or subpixel geometry, it's output from the rasterizer. The fragment shader is what takes a fragment as input and then outputs the pixel or subpixel color. Fragments aren't necessarily involved in GPU antialiasing, you can have subpixels in OpenGL without fragments, if you're doing image processing without rasterizing. In any case, it's a good thing that they picked a different word to define, and didn't just call it "subpixel", right?

</comment></comment></comment></comment></comment></comment></comment><comment><USER26> > So subpixel-AA is a really neat hack that can significantly improve text > legibility, great! But, sadly, it's also a huge pain in the neck!

When playing around with FreeType's ftview demo program, text rendered with an OTF/CFF font using the Adobe CFF renderer with stem darkening enabled actually looks pretty good with grayscale rendering. Subpixel rendering is not strictly necessary.

> [https://gankra.github.io/blah/text-hates-you/#aa-breaks- > glyp...](https://gankra.github.io/blah/text-hates-you/#aa-breaks-glyph- > caches)

I think the author mixes up two concepts here, hinting and subpixel positioning.

A TrueType font can change stuff around on the x and y-axis. Applying hinting on the x-axis messes with your layouting and prevents subpixel positioning on the x-axis. What you do is apply hinting on the y-axis only (FreeType calls this slight hinting, DirectWrite more or less does this -- not quite, but close enough) so you are free to shift glyphs around on the x-axis. This helps with displaying text with a more even texture on LoDPI screens. On *nixes, Chrome does this, Firefox doesn't.

<comment><USER48> +1. Subpixel AA seemed quite necessary back in the day with Windows XP and tiny, precisely hinted Tahoma/Verdana/etc.

These days, with bigger better bolder fonts, better renderers, and the departure from pixel-perfect stuff in favor of higher resolutions, subpixel is absolutely unnecessary.

Even on LoDPI screens I turn it off (assign none to lcdfilter in fontconfig) because the color fringes are so ugly. I always notice them.

<comment><USER49> Subpixel AA is absolutely not unnecessary these days. I've seen a few programs switch off from it recently (in favor of grayscale AA) and every time it's been noticably more blurry. For example, Discord had a bug that disabled it just a few weeks ago (which has been fixed since), and Twitch's redesign also disabled it in their desktop app (which is why I now use Twitch almost exclusively on Firefox). Both of these apps are based on electron/chromium though, so text rendering, even with grayscale AA, could be better in some other programs.

Unless we completely abandon small font sizes or switch exclusively to high- dpi screens (will likely happen eventually, but we're not there yet), subpixel AA can look much sharper than grayscale AA if properly configured and you're not sensitive to the color fringes (personally, sitting at about an arm's length from my monitor, I don't notice them at all). And I'd rather not have text rendering quality suddenly downgraded on my existing peripherals before that happens.

</comment></comment></comment><comment><USER50> For the color example they say "here's what they look like in Chrome and safari"... and show some horrible mess, yet I'm on Chrome and that isn't what I see at all?

The text I see looks fine, although the font is different.

[https://imgur.com/a/5JZVZCB](https://imgur.com/a/5JZVZCB)

<comment><USER51> I wonder if it is partially OS-dependent? I'm also on Chrome, but see something closest to the Safari version.

</comment></comment><comment><USER52> Some things are indeed way harder than they seem. Some others I came across:

\- time

\- indoor positioning

</comment><comment><USER53> >3.2 Style Can Change Mid-Ligature

>Here's what they look like in Chrome and Safari:

Running 76.0.3809.132 here on Mac OS and it looks very different from the picture. Bug partially fixed?

[https://i.imgur.com/CcjATLO.png](https://i.imgur.com/CcjATLO.png)

<comment><USER54> It probably depends on the OS. I assume screenshots in the article are on Linux. On Windows it looks different still: [https://i.imgur.com/ri2yUrR.png](https://i.imgur.com/ri2yUrR.png)

<comment><USER53> The article has Safari and Edge screenshots through, so I would assume Windows was used

</comment></comment></comment><comment><USER55> I find it... odd that an article on font rendering is using a 14px forced font size (default: 16px) making the article really hard to read on my 14" laptop screen from a foot away. Subpixel antialiasing on my LCD screen is just not my problem here, author. :)

<comment> ainar-g I am a partially vision-impaired man, and I _really_ can't stand the dark-grey on light-grey texts that a lot of modern web pages have. They are essentially unreadable to me. In order to comfortably read this article, I had to go to Firefox's Style Editor and make the text actually black.

And it _is_ ironic that an article about text rendering uses such low-contrast and small-sized text.

<comment><USER31> > In order to comfortably read this article, I had to go to Firefox's Style > Editor and make the text actually black

Does the Reader View in Firefox help here?

<comment> ainar-g Completely forgot about it. Yes, it does improve readability for me.

</comment></comment></comment></comment><comment><USER56> One man's antialiasing is another mans blur. I, for one, prefer crisp bitmap fonts.

<comment><USER57> Where do you find bitmap fonts that are high resolution enough for modern displays?

<comment><USER56> No idea, sorry, I have never used a "modern" display. Yet terminus and the standard bitmap X fonts go to quite large sizes. They are certainly readable even when using ridiculously tiny pixels.

</comment></comment></comment><comment><USER58> Really fascinating read. It reminded me of Tom Scott's video on Numberphile, about time zones: [https://www.youtube.com/watch?v=-5wpm- gesOY](https://www.youtube.com/watch?v=-5wpm-gesOY)

Maybe it's the way Tom presents it, but I do get the distinct impression that (fully) dealing with time zones is an even more maddening incomprehensible quagmire of a task than rendering text as laid out in this article.

</comment><comment><USER59> There are few things that scare me as a software engineer. Regex usually comes to mind first, but then I remember ... text rendering.

Just reading Microsoft's Michael J Kaplan's blog (RIP) about Unicode, and how that plays into rendering, was daunting enough.

But this article really points out how ridiculous it can get. No thanks, I'll stick to the easy stuff like my current project, Angular 8 / .Net Core, and let Firefox handle the tricky bits.

</comment><comment><USER30> Why do both Windows and FreeType "faux italic" tilt the font too much for my liking? And why is the "point of zero tilt" at the baseline rather than 25-50% of the way up? This makes faux-italic text appear to be too far to the right. I feel like changing these 2 would make faux italic much less obtrusive.

</comment><comment><USER60> > That said, if you take a screenshot of subpixel text you will absolutely be > able to see the colors if you resize the image

I once tried to see the subpixel rendering using the Microsoft's magnifying glass tool. Got disappointed - the tool just disabled subpixel rendering. Globally, not just the area being magnified.

</comment><comment><USER61> Subpixel AA is basically just trading color resolution for spatial. It's true that it's not composable, but you can actually "fix" that by keeping it in 3x horizontal format as long as possible, then actually rendering to 1x with subpixel detail later.

P.S.: because subpixel effectively gives you 3x horizontal resolution, it looks terrible to still fit to a pixel grid horizontally. Check the Anti-grain geometry article on font rendering for more cool font rendering bits, I recall it being very interesting.

</comment><comment><USER62> I miss non-AA'd text. Like PalmOS or Windows 95.

Gotta love the sharpness of it somehow.

<comment><USER63> I agree; I disable antialiasing to the best degree that I can when I code. This is not possible on Retina displays on MacOS though because they render at a higher resolution then down-sample.

I was pretty disappointed the original article didn't talk much about hinting.

Even old operating systems did a great job at type hinting to align glyphs to pixels (even when antialiasing is on). "Modern" operating systems (especially MacOS after Mavericks) assume retina and throw hinting to the wind; the consequence is pervasive blurry text even on retina displays.

<comment><USER64> I like sharp, pixely text too but I don't like the color fringing you get on LCDs when you disable subpixel antialiasing. I wish I could get a display without this consistent chromatic abberation. One way to accomplish this would be to alternate subpixel layout from one pixel to the next. For example:

RGBBGR

BGRRGB

Then the errors in color would cancel out, much like in serpentine dithering. You could do the same with a Pentile pixel layout like this:

RGGR

BWWB

BWWB

RGGR

Either way, instead of seeing color fringing, I imagine it would give a grainy appearance similar to what dithering looks like.</comment></comment></comment>


YC Demo Day Session 4: Shoptiques, Pair, Daily Muse, Per Vices, iCracked - <AUTHOR> http://techcrunch.com/2012/03/27/y-combinator-demo-day-session-4/

<comment><USER2> Wow. With Pair ze frank's vision from years ago (2007) of a social network for two has become reality.

<http://www.zefrank.com/social_network/>

<http://www.trypair.com/>

</comment><comment><USER3> I am curious about Pair's user acquisition strategy, as the concept is (by definition) almost as anti-viral as possible. It seems like it would be much easier to create something similar for cliques, make it support up to 8 people, and market it to middle- and high school kids. And then enable anonymous inter-group (as opposed to intra-group) messaging, so that way there is a vector of virality. Obviously a smaller market though.

<comment><USER4> It's not anti-viral; I tried it out with my significant other to see how it worked, and I'll recommend it to people who travel frequently or are in long- distance relationships. Obviously, I won't be using it with them, but that's different.

</comment></comment><comment><USER5> Per Vices is every geeks dream but how on are they going to get past FCC regulations?

<comment><USER6> Software Defined Radios have been sold for a while -- just not so cheaply, and as easy to use. (I think the Ettus USRPs have been around for a while; first as kits and now as assembled devices; SDR itself has been built into a lot of shipping products).

The FCC actually came out with revised regulations in 2005 and 2007 to make SDR easier to approve, and to allow open source software for them. I think there are different regimes for test equipment vs. type-approved consumer devices.

<comment><USER5> I see, I was under the impression they could only be used for non-commercial purposes, i.e. not sold. My impression was that this was partly why people weren't selling GNURadio's but rather the kits.

</comment></comment></comment><comment><USER7> Re: pair, what if you have more than one chick?

</comment><comment><USER8> I am so impressed with icracked and their 2 awesome business models. Onsite Technicians and repair yourself tool kits. This is a real business. Hope they succeed big time.

</comment><comment><USER9> In case the Per Vices people are reading - I tried to go to the "Buy It" link but I'm getting a PHP error.

<comment><USER10> Thanks - The Per Vices people are reading, and the link is fixed.

<comment><USER11> You're also using file URIs in some of your web pages. Check out the community_form.html where it handles shortcut icons.

</comment></comment></comment><comment><USER12> And what's so cool about AnyVivo?

<comment><USER6> People buy a lot of pets, Amazon won't touch them (one of the few legal areas of commerce which Amazon can't dominate; guns are another...).

They've been making a lot of money (and 50-60% margin) in the past few weeks selling jellyfish, which I didn't realize was even possible to keep as a pet. Presumably as they move into other more interesting pets, they will make more money.

<comment><USER12> I guess, it's good business but I never noticed YC backing such "trivial" kind of business.

<comment><USER13> What makes selling live animals trivial?

<comment><USER14> I think he means the "change the world" vibe we get from a lot of startups. I think its great YC is broadening its scope into more traditional businesses.

<comment><USER12> Well, you got it right - YC is broadening its scope - that means that this investment is really kind of new type for Graham and co. I guess, I should not ask what was so cool in AnyVivo but try to say in another words that it looks like a turn to traditional spheres to me.

<comment><USER6> It's probably true that YC companies are more willing to have a physical component (producing hardware hasn't worked out very well, but service, inventory, etc. might) now than in the past, but that is probably true of startups in general (Square is a great example; a tiny loss-leader physical product which is the wedge into a trillion dollar business).</comment></comment></comment></comment></comment></comment></comment>


AlphaZero taught itself to play three different games - <AUTHOR> https://arstechnica.com/science/2018/12/move-over-alphago-alphazero-taught-itself-to-play-three-different-games/?href= <comment><USER2> Wonder why they still look at trivial problems, like playing limited games or doing analytical static research problems, but not solving current dynamic realworld problems, like e.g. driving cars, directing traffic control, ...

</comment><comment><USER3> I'm curious... AlphaZero seems quite good at understanding closed systems, with deterministic rules.

People seem to think this will generalize to open systems, with no rules, like war and politics... why?

<comment><USER4> Probably becoz of too much science fiction.</comment></comment>


Play Pokémon Go from your mac - <AUTHOR> https://github.com/iam4x/pokemongo-webspoof <comment><USER2> Title should be changed to "Cheat at Pokemon Go from your mac"

<comment><AUTHOR> I've made it for my brother who is in wheelchair :(</comment></comment>


Ask HN: Where Can I find a Monocle Display? - <AUTHOR>

I am a Computer Science Undergrad Student wanting to make a foray into wearable computing, I have been using this kind gentleman http://blog.2yb.org/ as my inspiration, I think the beagle-board is a great approach to the problems, but Myvu has gone under so the the display he used was one of the last of a dwindling kind. Vuzix makes similar displays but from his descriptions of taking them apart they are a lot larger and more complex to work with. I do not have much electronics experience and I am not ready to learn (and potentially destroy) 300$ worth of it. All other "pre-made" Monocle Displays on the market right now appear to have been made in the 1990s and still cost 1000s of dollars. Does anybody have any advice or has anybody noticed something I have not?<p>-Thank You Hacker News<p>Rhapso <comment><USER2> This may be too techie for what you're looking for, but if you fry it, there's only $30 at stake, not 300: <http://timeline-inc.com/hacker.html#mini>

It's a 1.4cm full color LCD display. It needs an NTSC composite signal.</comment>


1500 people fall for police fake ticket trick - <AUTHOR> http://www.completemusicupdate.com/article/1500-people-fall-for-police-fake-ticket-trick/ <comment><AUTHOR> > _Upon clicking the link, those who fell for the scam instead were shown a > page advising them on how to avoid being tricked in future. Most likely to > click the link were apparently women aged over 65 in London. Although, > actually, crime stats show that it's men in their 20s who are most likely to > hand money over to fraudsters in exchange for non-existent tickets._

Interesting dynamics. Could be quite a report!</comment>


A year ago i wrote a chapter of a book about money laundering in the appstore - <AUTHOR> It's about 2 wantrapeneurs who begin selling cocaine because they can't raise money for their redundant start up.
The first draft of the first chapter is here: https://medium.com/rough-writers/guys-can-t-get-funding-so-they-sell-coke-d8144b5b3a0a#.skybvlt6k
I've walked away from the book more than a dozen times but keep coming back to it.  I'm posting this up now to let folks know that I'll be wrapping it up by new years.  An accountability thing for me. <comment><USER2> I pray you have an editor with the patience of a saint and a high tolerance for the words "and shit".</comment>


A better approach to preventing Meltdown/Spectre attacks - T-A https://www.csail.mit.edu/news/better-approach-preventing-meltdownspectre-attacks <comment><AUTHOR> The paper: [http://people.csail.mit.edu/vlk/dawg- micro18.pdf](http://people.csail.mit.edu/vlk/dawg-micro18.pdf)</comment>


Statement by the ASF Board on our participation in the Java Community Process - <AUTHOR> https://blogs.apache.org/foundation/entry/statement_by_the_asf_board1 <comment><USER2> I think this is a huge statement from the ASF, specifically:

      The ASF will terminate its relationship with the
      JCP if our rights as implementers of Java
      specifications are not upheld by the JCP Executive
      Committee to the limits of the EC's ability. The
      lack of active, strong and clear enforcement of
      those rights implies that the JSPA agreements are
      worthless, confirming that JCP specifications are
      nothing more than proprietary documentation.

Calling out Oracle on their previous statements that Java 7 will go forward on their timeline no matter what -- it appears that the JCP really could end if everyone's threats are called.

(disclaimer, asf member, not involved in this though)

<comment><USER3> I really have to wonder if Oracle even gives a damn anymore. They seem hell- bent on making Java as proprietary as possible and alienating as many people as possible.

<comment><USER4> Larry won't take ASF seriously, given how he has toyed with HP. Larry might find it even comical or entertaining that some boys from ASF are threatening to leave JCP.

</comment></comment></comment><comment><AUTHOR> This puts a period to the age of Java as a vital language and puts it firmly in the category of a legacy tool.

<comment><USER5> I haven't been active with Java for more than 5 years, and I haven't been active in the ASF for longer than that so I may be missing some of the nuance here, but isn't it possible maybe even probable that this is simply the point where Java and/or the Java VM "forks" into Oracle's proprietary version (likely to die on the vine) and one of more versions from some combination of IBM, Apache, RedHat, Eclipse, etc.

It seems like there are a large number of Java developers, a large number of organizations heavily invested in the Java stack, and a number of vendors with both the capacity and potentially the motivation to serve those organizations.

I find it hard to imagine that if developers and organizations abandon Oracle's Java in droves that no one will make an effort to fill that void. (And fill it with something more "Java-like" than not, at least at the start.)

<comment><USER6> What good is Java if there's no longer a spec to help ensure cross-platform compatibility?

Also, there are major trademark, patent, and copyright issues that need to be settled before anybody can safely fork Java and stop adhering to the spec.

<comment><USER7> "Mostly compatible" (at the source code level) would be good enough for quite a few applications. For example, take a look at a lot of the C and C++ applications out there, which use OS APIs that often vary widely. Despite that, C and C++ applications are still written, and very popular.

<comment> space-monkey The problem (as I understand it) is that without passing the TCK (which Apache can't get without field-of-use restrictions), you don't get the patent license required to safely run Java in a business environment. I don't think the line- of-business app developers that have driven the bulk of Java usage over the years can afford to risk getting sued by Oracle, so they can't really depend on a non-licensed runtime.

<comment><USER5> I thought that went the other way: you need a patent license to author and/or run the TCK. You can create a Java compatible VM (many have) but you can't run the "official" compatibility test without Sun's, now Oracle's permission, and there is some concern (at least at Apache) that you cannot easily create a "cleanroom" implementation of that TCK. (Although I think that latter concern is more social than legal--if I remember correctly conventional wisdom said that there were too may Sun folks already involved with Java projects at Apache to have any reasonable expectation that a cleanroom would remain clean.)

</comment></comment></comment></comment></comment></comment><comment><USER8> Can anyone explain which rights under the JSPA the ASF are claiming Oracle has not held up? The article doesn't appear to explain the specifics of their complaint (or my reading comprehension is pants).

<comment><USER9> Perhaps they are refering to 5.B of the JSPA, "License to Create Independent Implementations". Under 5.F there is also a description of the licensing of the RI and the TCK, but IANAL so I'm just guessing.</comment></comment>


PSA: Android Q blocks executing binaries in your apps private data directory - <AUTHOR> https://www.reddit.com/r/androiddev/comments/b2inbu/psa_android_q_blocks_executing_binaries_in_your/ <comment><USER2> This seems as though it could be irritating. Does any one know if it would affect something like termux? Could it affect things like terminal emulators? Normally I would just root, but some manufacturers don't allow bootloader unlocking (and this seems designed to make root-by-exploit harder).

Edit: just scrolled down further in the thread, and yes, it does break termux. I guess I'll be one of those people stuck on an old version for ever now. What a pain. Also, even if it gets fixed, things like cpan/pip/gem etc. will have issues. Apparently, you can't even compile something, and applications will now have to be distributed in huge collections (apks). Yay.

Edit 2: Some think that python/perl/ruby stuff will still work, but I know for a fact that some python modules are interfaces to c programs (numpy, scipy) and that many ruby modules are similar (remember nokogiri "building native extensions"?).

<comment><USER3> Using C modules from python doesn't involve running any executable other than python. The C modules are dynamic link libraries, not programs themselves. I imagine the case is the same for ruby.

</comment></comment><comment><AUTHOR> This might break apps like termux, that rely on exec(). [https://github.com/termux/termux- app/issues/1072#issuecommen...](https://github.com/termux/termux- app/issues/1072#issuecomment-475869766)</comment>


Development without Internet Access « The Technician - <AUTHOR> http://chr.ishenry.com/2011/06/13/development-without-internet-access/ <comment><USER2> The site seems to be down. Here's a copy of the text.

<http://pastebin.com/raw.php?i=VXVx02Fy>

</comment><comment><USER3> I've been programming since '81 and commercially since '88.

Books, magazines (remember _typing_ in example programs!) , undoubtedly re- invented many more wheels than I do now, colleagues, CIX (remember that BBS in the UK?), looking at open source code, I wrote a warren abstract machine (Prolog interpreter) back in the day and a regular expression engine and for both of those spent a lot of time in the university library (had long since left but still lived near it). Just because it wasn't a click away didn't mean that the information was not there.

But most of my code now still comes out of my head. The times I search for code are when I know that _someone_ must have solved this problem already.

</comment><comment><USER4> I think we all do it. And it's for good and bad. We constantly learn new things and gain a deeper understanding because of it. Our code becomes better. We can more easily try new technologies. But atthesame time, we commit fewer things to memory and rely on our search skills to find the code we used last time. On the whole, I am sure bot coders and companies benefit from this practice.

</comment><comment><USER5> I often wonder these same questions myself?

How many of us feel like we're 'faking it' even though people are using the results of our work happily?

I often wonder if it is good programmers who think their code is crap, because they know it can be better but maybe don't know how to make it better.

<comment><USER6> This is a problem for not only people in the field, but people wanting to enter...

I have always felt that I have been "faking it" when it comes to my skills as a programmer. Though, through the help of Google I have developed a few substainal programs. Even so, I have never had the confidence that I would be able to program as my job and have kept it as a hobby.

Reading this article has made me realize though that maybe I do have the required skillset to make it, but there will always be this doubt due to the fact that Google has made it so easy to look up questions I have. Who knows...

</comment></comment><comment><USER7> 1) download stackoverflow dump. (creative commons ftw)

2) import into local database

3) setup full text search

4) you dont need internet anymore

</comment><comment><USER8> > _how the F did anyone get any answers to tough questions before the > Internet?_

My first serious programming attempts were on my MSX computer. And not only there wasn't any internet access, but I knew no one owning a computer even with the same CPU (a Z80A). There wasn't any dedicated publication in my country, either.

I basically was on my own, with two books : Rodney Zack's "Z80" and an MSX programming technical book, and could discuss programming problems only with a couple of friends owning entirely different machines (C64, Apple II).

I went as far as writing my own assembler in MSX-BASIC because I couldn't afford to buy one; then used that to write my own games. I had my share of tough questions; I remember my frustration with the existing MSX graphic modes, and I tried to elicit the machine to create new ones, for which I partially succeeded. That is, I tried to reverse-engineer the hardware by making it crash repeatedly.

So the answer to the question is : by trying again and again, and thinking really hard about it.

</comment><comment><USER9> "You can't get answers to complicated questions"? Seriously? I'll assume the writer is using hyperbole. Back then, in the days of blinkenlights and switches, we did just fine answering complicated questions. It just took longer.

Don't get me wrong, I'm not pining for those days - I'm googling as much as the next SWE these days. It's simply another tool you use in your work. We'd be less productive if we would have to transcribe assembly to octal and key it in via switches, too - that doesn't mean somebody who never did that isn't fit to be a software engineer.

(Although, as my dad used to say about unnecessary & laborious tasks that a monkey could do, "It builds character" ;)

</comment><comment><USER10> I develop frequently without internet access because it removes a huge distraction. But my first step was to download to my local drive all the the documentation for the language and tools I'm using.

But tough questions? Yea, use the internet. It's like that old tech support cheat sheet comic by xkcd. "Have you been at it more than half an hour? Ask someone for help. "

</comment><comment><USER11> Though my connection is hardly ever down, I like to keep offline versions of my most used docs on my own drive.

</comment><comment><USER12> I can do simple boilerplate stuff I've done many times over without an internet connection... but anything more and I can flip flop around with it for days

</comment><comment><USER13> Development without the ability to keep a website up « The Technical Failure</comment>


Under military rule, Venezuela oil workers quit in a stampede - <AUTHOR> https://www.reuters.com/article/us-venezuela-oil-workers-insight/under-military-rule-venezuela-oil-workers-quit-in-a-stampede-idUSKBN1HO0H9 <comment><USER2> This must have been what it was like in the late Roman Empire, when successive emperors tried to stave off decline by decreeing how the economy would work.

<comment><USER3> Many countries have "tried to stave off decline by decreeing how the economy would work." Including the US.

Eg, [https://en.wikipedia.org/wiki/Incomes_policy](https://en.wikipedia.org/wiki/Incomes_policy) .

In the US, Truman placed the railroad under US military control in 1950, and I recall at least threats of having military take over coal mines both in the US and UK, because of worker strikes.

<comment><USER2> What Venezuela has in common with the late Empire is that economic controls are pervasive, without the sort of punitive completeness you'd find in the USSR, or China under Mao. While few controls works, and being a police state sort of works (if there are free-market economies whose products you can copy), this middle strategy doesn't work well at all.

<comment><USER4> > this middle strategy doesn't work well at all

I will translate your suggestion like this:

-Either be a full-on dictatorship OR

-Be a modern democratic state

<comment><USER5> And thats basically what we have in the world in terms of relatively stable regimes. Nothing in between.

<comment><USER6> If "stable" merely means "persisting over time", then all kinds of between regimes have been very stable...

<comment><USER5> Such as what kind of regimes?

<comment><USER7> China is in the middle.

<comment><USER5> China has only been in the middle for very, very short time. Let's see where they are 50 years from now.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> When this eventually falls apart which superpower is going to own the country? USA, China or Russia?

Who has the most influence here?

<comment><USER9> Whoever owns the most Venezuelan debt:

 _Q. Who are the major holders of Venezuela and PDVSA bonds?

A. These securities are popular among funds that invest in emerging market bonds. Their high yields - which are close to 10 times higher than those of neighboring Colombia - help increase the overall profitability of the portfolios.

Institutional investors with big holdings include T Rowe Price Associates Inc (TROW.O), Ashmore Investment Management Ltd (AGOL.L), and BlackRock Investment Management Ltd (BLK.N).

Q. What would be the consequences for Venezuela of default?

A. Creditors could seek to seize assets Venezuela owns in other countries, including refineries such as those operated by PDVSA's U.S. refining and marketing subsidiary Citgo._

Article also discusses role of chinese and russian financing

[https://uk.reuters.com/article/us-venezuela-bonds- q-a/implic...](https://uk.reuters.com/article/us-venezuela-bonds- q-a/implications-of-venezuelas-proposed-foreign-debt-restructuring- idUKKBN1D3250)

</comment></comment><comment><USER10> The silence from Jeremy Corbyn is deafening

<comment><USER8> Because its not real socialism.

<comment><USER11> Which is why socialists around the world mourned Chavez' election at the time, right? /s

Venezuela, like Cuba, North Korea, China and the USSR were feted by socialists the world over, right up until their failings (often in the form of millions of people starving to death) became visible to the world.

Then of course they ceased being _real_ socialists.

<comment><USER12> It's the other way around: the vast majority of socialists never "feted" Chavez, but your strawman argument depends on the premise that those people are not real socialists.

<comment><USER11> Come off it. Socialist groups were still fawning over him and his "success" as late as 2013.

[http://www.socialistinternational.org/viewArticle.cfm?Articl...](http://www.socialistinternational.org/viewArticle.cfm?ArticleID=2202)

Not all, of course. Socialism is a broad camp. But _many_.

 _Edit_ : and in fact they're still at it in Australia, where I live:

[https://www.greenleft.org.au/content/venezuela-solidarity- gr...](https://www.greenleft.org.au/content/venezuela-solidarity-grows- australia)

 _Edit_ :... and how about Castro? Is he your idea of a real socialist? [https://www.ndtv.com/world-news/hugo-chavez-and-fidel- castro...](https://www.ndtv.com/world-news/hugo-chavez-and-fidel-castro-a- father-son-bond-until-death-515293)

</comment></comment></comment></comment></comment><comment><USER13> Meanwhile we're complaining about open floor offices.

"You're posting too fast, please slow down"... for an hour. OK, let's make it a year.

<comment><USER14> Fair comment but if enough people complain about open floor offices it might actually make a difference (eventually).

With Venezuela, what can we actually do that's going to change anything?

<comment><USER15> Abolish socialism?

<comment><USER16> Because outlawing a political movement supported by millions of citizens has always worked so well?

My country, the UK, has been ruled by socialists for two fifths of my lifetime and we're doing fine. OK, so the 70s were pretty bad, but it's not like Chavez is the ideal socialist leader, any more than Batista and Pinochet are the ideal republicans.

<comment><USER15> Ah, the good old "it's not real socialism" argument.

<comment><USER5> Yeah its like there is never any real socialism, even though something like 20 different countries with different cultural backgrounds have been at it. And following pretty much to the letter what Marx intended. Yet some folks refuse to see facts for what they are.

<comment><USER17> Its about time for people to realize that it's a broken complex system which relies on unhealthy controls over economy and actually empowers corruption and opression it claims to oppose. And I suspect that is the case since most discussions nowadays are based at the moral level rather than economics.

<comment><USER5> >And I suspect that is the case since most discussions nowadays are based at the moral level rather than economics.

It's pretty obvious why. Communism/Socialism has failed big time in economics, in an unmistakable way, so the only ground left to fight is on philosophy/morals. But even then there's ample evidence this leads to bad outcomes, no matter how good intentions one starts with.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER18> Venezuela will surely fall apart any day now. American economists have said every day since 1999.

<comment><USER16> Venezuela has fallen apart, both economically and socially. This is what a country that has fallen apart looks like.

<comment><USER18> Much like the child that cried wolf, calls that Venezuela is doomed any day now, have lost all potency. If the media hadn't discredited themselves in the 00's with the coverage of how terrible the place was we could actually believe them today. Unfortunately going from "it's hell on Earth" in 2004 to "it's hell on earth for reals this time" doesn't inspire confidence in the message.

<comment><USER19> Eight years ago I was on a commuter train from DC to Baltimore and a strange woman sat next to me and started asking all sorts of questions about the train and Baltimore. By strange, I meant that she was talking: no one talks on a commuter train, we're all zombies. Turns out she was from Venezuela and was visiting her young niece being treated at Johns Hopkins after being severely injured by a family pet down there.

Let that sink in for a moment. Child was injured in Venezuela, and Kaiser flew her all the way up to JH in Baltimore for treatment back in 2010. The Venezuelan family, obviously on the affluent side back in those days, had purchased a health insurance policy made available from Panama because they felt the socialized health care system run by Venezuela was grossly inadequate, and as they discovered, it was.

Fast forward to today and you have two major government-run systems collapsing beyond recovery. First one is oil- state income is beyond a systemic collapse: oil workers simply don't have enough calories to work the actual jobs. There had been a longstanding incentive to work in the oil field because there were oil cafeterias feeding the workers and they've now run out of supplies to sustain that. Now, oil workers are fleeing in unrecoverable numbers. Latest news here is that the military has taken over policing this function out of desperation. The second system is healthcare.

These are old articles (hospital one is two years old) but very germane to the discussion. Beyond a soft paywall, so open in incognito windows. Also steel yourself before looking at the photo gallery, as outdated as it is.

1: [https://www.bloomberg.com/news/features/2018-02-22/hungry- ve...](https://www.bloomberg.com/news/features/2018-02-22/hungry-venezuelan- workers-are-collapsing-so-is-the-oil-industry)

2: [https://www.nytimes.com/2016/05/16/world/americas/dying- infa...](https://www.nytimes.com/2016/05/16/world/americas/dying-infants-and- no-medicine-inside-venezuelas-failing-hospitals.html)

So what's happening now? Venezuela stopped paying its debts and is in default. Foreign embassies are closing and leaving the country due to instability. Official currency has cratered to a point of you needing a dump truck of cash to pay for a loaf of bread, if you can find it, so black market currencies are being used for transactions instead. Elites running the country are messaging that everything is fine and pitching some make-believe cryptocurrency tied to a physical oil barrel (which they won't be able to produce with the oil industry labor drain) as a way to save the country. Venezuelan citizens have fled in vast numbers (Colombia by way of Miami Herald alone estimates 600-800k, wiki entry has it at 4 million), and though that effect slowed the food crisis from worsening in mere places, overall effect is unstoppable because neighboring countries are tightening the borders. I didn't even get to mention rising violence and neighbors fighting over contents of garbage cans.

I just don't see how you can call this an exaggeration. Venezuelan government cronies couldn't squander the money fast enough fifteen years ago, and here's the end-result of their mismanagement.</comment></comment></comment></comment>