Brooklyn's Internet Bonsai Kingpin - <AUTHOR> http://www.atlasobscura.com/articles/meet-brooklyns-internet-bonsai-kingpin <comment><USER2> The bonsai is beautiful, I like this guy and the stuff he makes is cool.

It's quintessentially Brooklyn. It's a _thing_ you can buy in a store that can join a pantheon of conspicuously bourgeoise stuff you own and do, like read about places to visit, drinking and music events to attend and things you can purchase at Atlas Obscura.

Think about what your grandmother decorates her house with. It's pictures of her late husband, her parents, her children and grand children. These aren't things that she bought for more than the frames. It's a house full of heirlooms, each with a special story. Why do I have so many Olly Moss art prints and maybe one dim photograph of my parents? What stories do my things have, besides the ones native-advertised on blogs and Facebook videos about their manufacture?

I think the thing that makes the craft art taste such utter bullshit is that it's really about buying expensive shit. Yada yada, the economy and buying stuff and all is good because it's local and whatever. I'm speaking from a critical point of view. The average yuppie shopper/blog reader/amateur interior decorator/amateur art enthusiast isn't looking for something that looks good, let alone something emotionally moving or timeless or whatever. He just wants something expensive and decorative, because I guess it is recognizable in a shallow pop culture way. You know, like Ralph Lauren (fashion, another utterly bullshit thing).

The Brooklyn aesthetic is rich in money but bankrupt in every other sense. The blog-native advertisement-craftmaker complex has convinced a whole lot of people that they're engaging with something that isn't really just a bunch of overpriced meaningless junk. People with lots of money who work in fashion startups and have young kids and think they're enriching the world by buying shit, when they're really robbing the world of meaning. And I'm not saying you should be ascetic—your grandmother isn't. Just take a step back when you're reading something on the Internet that's about a guy making stuff that he sells, and think about whether you're really reading something meaningful to you.

<comment><USER3> I enjoyed reading and entertaining your point of view. But sometimes a plant is just a nice looking plant.

<comment><USER4> Personally I never really liked bonsai as it reminds me of a sort of disability. Tbh, I would be much more impressed with a bonsai at least the size of a man. Not that I'd ever own one. I prefer plants au natural, especially flowering or the edible type.

This is just another perfect example of making oneself happy using ones hands, similar to many things the japanese are known for. My favorite example personally is Scott A. Roush, a true artist: [http://www.bigrockforge.com/](http://www.bigrockforge.com/)

<comment><USER3> Id say the knives are more pretentious than bonsai. I see no reason to buy a forged blade for a grand when a milled knife for 50 bucks will work just as good if not better.

<comment><USER4> The difference, which seems to have went over your head, is that it was done using the personal attention of someones handywork. Anybody can make a knife, just as anybody can create bonsai trees. The point is it was done by hand and was not manufactured. Just as the first poster talked about aesthetics. Similar to an original painting, or is it just a print?

<comment><USER3> Bonsai are similar though. We are talking about years of careful pruning and restriction. Most bonsais aren't sold before at least 3-5 years. That's a lot of work for $50-100.</comment></comment></comment></comment></comment></comment>


Erlang's Joe Armstrong on RPC: "The road we didn't go down" - a-priori http://armstrongonsoftware.blogspot.com/2008/05/road-we-didnt-go-down.html

<comment><AUTHOR> Although it's funny and refreshing seeing a comment from like that from Mr. "Advanced CORBA Programming with C++" Vinoski after all these years, there are plenty of good systems built around RPC primitives. It just took them a long time to work out their failure modes because they couldn't reason about them the way they could in an Erlang system.

</comment><comment><USER2> "OTP should re-branded as "OTP on rails" it's really just a framework for building fault tolerant systems." nice !

edit: using that as the title, would have gotten this much more upvotes.

<comment> a-priori Haha, you're probably right. I wasn't thinking of how to best be a karma whore, but that would have gotten more interest. It was just an interesting article.

</comment></comment><comment><USER3> Here is a reply from Steve Vinoski:

[http://steve.vinoski.net/blog/2008/05/27/joe-armstrong- erlan...](http://steve.vinoski.net/blog/2008/05/27/joe-armstrong-erlang-and- rpc/)

<comment><USER4> Not only that, there is a long and interesting comment from Joe Armstrong as well.

</comment></comment><comment><USER5> Great post. Cliff Click, Jr. should read this right away and think some more about this "new paradigm".</comment>


Integrating Evernote into VS Code - <AUTHOR> http://monkey.yoryor.me/#/ <comment><AUTHOR> With markdown support and code highlight.

<comment><USER2> An interesting project. If it meets the guidelines, this might make a good 'Show HN'. Show HN guidelines: [https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html)

Curious if there is a story behind its development.</comment></comment>


Making our own executable packer, part 13, Thread-local storage - <AUTHOR> https://fasterthanli.me/blog/2020/thread-local-storage/ <comment><USER2> Great article. I particularly enjoyed the "beyond the basics" use of gdb.

I know the basics just like anyone else whose done some light debugging with gdb but it is hard to find information that goes beyond that. There's a gazillion of half-baked gdb introductions but IMO not enough advanced tutorials.

</comment><comment><USER3> Would someone explain what the primary intent and current best-case usages of thread-local storage are?

Is this more suited for certain languages than others?

<comment><USER4> It's super useful for many reasons:

      - to help make thread-unsafe APIs thread-safe

        E.g., errno, strtok(), and so on.

      - to store thread-private mutable globals

        (Thread-locals are more like thread-globals.)

      - to keep a reference/copy of global immutable
        data that might get replaced in the middle of
        a thread's handling of a request

      - to keep contextual data that you can't retrofit
        an API to pass explicitly (see also first item)

<comment><USER5> Pure Data made heavy use of thread local storage to turn the original application singleton (with lots of globals) into a threadsafe and reentrant library (libpd).

</comment></comment></comment><comment><USER6> Why is he making a packer?

<comment><USER7> I don't understand what a 'packer' is - is it a linker?

<comment><USER8> > I don't understand what a 'packer' is

You've found the right series of articles then!

<comment><USER7> I read it - I did't find an explanation of what it was that he was building, just how he was building it.

<comment><USER9> Think of it of decompression software bundled along with a compressed version of the program you actually want to run. So execution starts in the uncompression part, it unzips all the code into memory, and then starts running the program you actually cared about.</comment></comment></comment></comment></comment>


How does a video codec work? - <AUTHOR> https://github.com/leandromoreira/digital_video_introduction#how-does-a-video-codec-work <comment><USER2> If you're interested in more "hands on" or practical video codec learning, I recommend writing a H.261 decoder. Only two supported frame sizes, no B-frames, and no intra prediction (effectively a subset of JPEG) make for a simple yet possibly quite rewarding weekend project that can be completed in around 700 lines of C (my attempt). Unfortunately not much existing media is available in 261, but I think watching a video being decoded entirely by code you wrote is a pretty fun experience, including all the weird and amusing distortions you can see when debugging; and from there you can move on to MPEG-1 with variable frame sizes and B frames (another weekend, assuming you reuse much of the 261 exercise --- I ended up with 1k lines total to decode MPEG-1), and that has somewhat more existing media you'll be able to watch.

Then you can try H.262/MPEG-2 and enjoy the intricacies of handling interlacing as well as being able to decode DVDs and a lot of existing content; and then there's H.263 which has intra prediction... I haven't gotten past the first two largely for reasons of time and other things to play with, but IMHO getting a basic implementation of a video decoder is not that hard especially when you're working from a standard.

<comment><USER3> Very cool idea! Is your code for this online anywhere?

<comment><USER2> Sorry, no. But a search of GitHub reveals some others have.

</comment></comment></comment><comment><USER4> One thing that I wish more folks did with DSP/media tech was to start with concepts instead of diving into details first.

Like, "how does a video codec work?" should start with: what is the problem? (reducing the bits per second required for a video stream, since it's big) and how? (don't send superfluous detail, since it's either redundant or imperceptible).

Than dive into the details of how color is represented, how images are structured, how 2d signal transforms work, the principle behind the DCT as a method of representing the same data with better energy compaction by decorrelating different components, and how that can be used advantageously to reduce the number of bits for a still image, then talk about shared data between images, etc etc.

I've noticed as a DSP guy that when I talk about things without concepts first that everyone's eyes glaze over. Although it is nice that everyone thinks it's black magic, good job security.

<comment><USER5> To be fair the article does that. The above URL just links to an anchor in the middle where it talks about codec implementation. For instance this quote from the article

"We learned that it's not feasible to use video without any compression; a single one hour video at 720p resolution with 30fps would require 278GB*. Since using solely lossless data compression algorithms like DEFLATE (used in PKZIP, Gzip, and PNG), won't decrease the required bandwidth sufficiently we need to find other ways to compress the video.

...

In order to do this, we can exploit how our vision works. We're better at distinguishing brightness than colors, the repetitions in time, a video contains a lot of images with few changes, and the repetitions within the image, each frame also contains many areas using the same or similar color."

[https://github.com/leandromoreira/digital_video_introduction...](https://github.com/leandromoreira/digital_video_introduction#redundancy- removal)

<comment><USER6> 278GB is a bit off. The real number is higher than that, but not by too much more, but they definitely messed up on their math somewhere. 1280 horizontal pixels times 720 vertical pixels times 8 bits per pixel color channel times 3 color channels (RGB) times 30 FPS times 60 SPM (sec per min) times 60 MPH (min per hour) divided by 8 bits to convert bits to bytes and finally divided by 1,024 bytes per kilobyte gives 291,600,000KB, exactly 291.6GB.

And now days, that kind of uncompressed video is more than feasible, at least in countries with developed gigabit internet capability, as you'd need just 634mbit of bandwidth to handle an uncompressed 720p stream at 30 FPS. Local storage on even first-gen SATA drives can hit double+ that.

Storage itself? Well, we've got the cloud, right? /s

<comment><USER7> You're mixing Si units and IEC units[1]. The article's measurement of 278 GB (sic) is really 278 GiB.

1280 horizontal resolution x 720 vertical resolution x 3 8-bit bytes per pixel x 30 frames per second x 3600 seconds per hour is 298,598,400,000 bytes per hour. 1GiB (1,024 bytes x 1,024 KiB x 1,024 MiB) is 1,073,741,824 bytes. Dividing that out gives ~278.09 GiB.

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

<comment><USER6> I'm responding directly to the GB claim. I'm very well-aware of binary prefix (in fact several of my other online names are those very words) and the general industry-wide mix-up that is used on the common consumer is to start with KiB and then just run that in plain units of 1,000 for MB and GB, which is what I went with.

</comment></comment></comment></comment></comment><comment><USER8> As much as I like Apple it seems like they are in the back pocket of big media when it comes to this topic. AFAICT Apple only supports h.264 and h.265 meaning 1.3 billion iOS devices have browsers that can't access open standards for video.

Yet one more reason why Apple should be required to allow alternate browser engines IMO. Some will claim it's a battery issue but Apple has the resources to add hardware support for other codecs and I'm only guessing could already handle it just fine with their current "Bionic" chips. I'm not sure what other executes can be dreamt up. I'm sure they'll follow in the comments below.

<comment><USER9> Not sure what you mean, a stock iPhone plays a VP8 webrtc stream with no issues?

<comment><USER8> [https://www.webmfiles.org/demo-files/](https://www.webmfiles.org/demo-files/)

Play in Chrome (Mac/Win/Linux/Android) and Firefox (Mac/Win/Linux/Android) but not Safari (Mac/iOS).

Here's a few more

[https://commons.wikimedia.org/w/index.php?search=webm](https://commons.wikimedia.org/w/index.php?search=webm)

I would be nice if Apple would support open standards. It's unclear what their motive is for not supporting them.

<comment> Const-me > It's unclear what their motive is for not supporting them.

Programmers don't work for free, Apple has to pay them. Motivation works the other way, they need a motive to support some tech.

</comment></comment></comment></comment><comment><USER10> I wish there was an article on how hardware decoding works. Detailed but approachable.

I guess reading source code of drivers and popular open-source video players will give me an idea, but it is too much work. Does anyone have a technical article highlighting differences between hardware decoders and important details.

<comment><USER11> Afaik nowadays hardware decoding is a magic black box you shove bytestream into affair. Its all hidden away in binary driver/firmware blobs.

</comment></comment><comment><USER12> Good. Want more people to understand how compression works.

Things like motion estimation, encoding the differences in frames, all that stuff is magic to the uninitiated. :) But this stuff is absolutely worth learning and every engineer should show interest :)

<comment><USER13> Why is it worth learning? I have a long list of stuff that I want to learn but codecs don't seem useful enough to be included there.

<comment><USER12> Codecs teach you if the high fidelity of the data you store may not be as important as you'd think it is, and sometimes you'd be able to process all of that with a fraction of the compute power and cost involved.

</comment></comment></comment><comment><USER14> I can also recommend this article on just how impressive H.264 at compressing a file while retaining good quality.

[https://sidbala.com/h-264-is-magic/](https://sidbala.com/h-264-is-magic/)

</comment><comment><USER15> This is all very cool, but what annoys me the most is that, let's say you create video authoring software, it creates a piece of unique content and you decide to use a codec that's licensed; you've got to pay royalties. If you use another it's not supported by default. .FLAC for example or .oggv

To not be liable to lawsuits and to support your own you need to come up with your own codec, resulting in your own platform and the circle starts once again.

Why in this age can we just not all work together and make something that's usable by everything for everyone without any restrictions.

</comment><comment><USER16> A similar tutorial like this but for audio?

<comment><USER17> [https://xiph.org/video/](https://xiph.org/video/)

</comment></comment><comment><USER18> Great article + amazingly extensive collection of links!

</comment><comment><USER19> this is good, then cringed when I saw the diagram about DRM that had M$, for msft. i guess the other companies aren't about making money at all costs?

</comment><comment><USER20> Playing videos is so complicated.</comment>


Almost 17,000 Protesters Had No Idea a Tech Company Was Tracing Their Location - <AUTHOR> https://www.buzzfeednews.com/article/carolinehaskins1/protests-tech-company-spying <comment><USER2> Dupe: [https://news.ycombinator.com/item?id=23652390](https://news.ycombinator.com/item?id=23652390)

<comment><USER3> Comments moved thither. Thanks!</comment></comment>


Evidence Points To Conscious 'Metacognition' In Some Nonhuman Animals - <AUTHOR> http://www.sciencedaily.com/releases/2009/09/090914172644.htm

<comment><USER2> It really astounds me, the arrogance with which people talk about animals not being conscious. How can they pretend to know what is in the mind of those animals? We _can_ communicate with them. Maybe not as completely as we'd like, but they do get sad and happy.

Anytime someone says something about how stupid animals are, I just think _they_ are stupid because they aren't even able to differentiate between what we _know_ and what we _don't_ know.

If you can't admit _I don't know_ , then you really need to check yourself.

<comment> a-priori I agree. There is a grey area between what is known, scientifically, to be true, and what is known to be false. Much of animal cognition falls into this grey area, and it will likely remain there for the foreseeable future. Hell, it's an assumption I make that _other humans_ experience the world the same way I do.

My theory, which is based on what I know about neuroscience but is unscientific, is that all animals with a neocortex (that is, all mammals) experience the world much as we do. Bear in mind that our awareness of the world is constructed within the brain, and is therefore only as detailed as our current mental faculties allow (even though you may not realize this).

The flip side of my theory is that those lacking a neocortex (non-mammals vertebrates such as reptiles, fish, insects, etc., as well as invertebrates) do not have a similar experience, which I think is also true.

<comment><USER2> You said, "Bear in mind"... I chuckled.

But seriously, I think there is a range of cognitive ability. Some animals and perhaps fish or reptiles, living or dead, or birds even, are smarter than others, this is probably true, or at least appears to be true from observation.

However, the big problem to me is that people think somehow humans are distinct and unique and _above_ aaall other life forms. That consciousness begins and ends in homo sapiens.

But, like you alluded to, even within humans, there is a vast range of conscious capabilities.

<comment><USER3> fnid says: "the big problem to me is that people think somehow humans are distinct and unique {and _above_ all other life forms). That consciousness begins and ends in homo sapiens."

But except for the part I bracketed, the above is pretty much true. There is little evidence of self-awareness in other animals and certainly nothing like what humans display. Along with that, our language ability is unique (Sure I know about signing apes, dolphins, African parrots, et al, wherein minimal language abilities are present).

No doubt that animals have emotions. But consciousness? No. Animals other than man live in the "here and now". Other than following genetically-programmed patterns, they neither plan for the future nor reminisce about the past as we do. And that is just fine: that's all they apparently need.

Some unique situation (I have no idea what ) must have occurred in man's history for the ability to think outside of the "here and now" to develop.

About the bracketed part: I would omit it because I don't think that there is any design where man has any inherently "higher" role/purpose/goal than other animals.

<comment><USER4> The language examples you gave deal with communicating with _us_. Animals have been shown to communicate with each other as well, and we don't yet know how complex those communications may be.

Also, apes do exhibit evidence of a concept of 'self'.

<comment><USER3> Animal communications is limited to survival calls(warning cries), mating and social signals(which include status signals).

Ape communication is very much "here and now", especially the signing apes: "Mary want banana, Mary want banana, banana, banana, give Mary banana..." etc.

Apes do have some sense of self, but it is far from human consciousness.

<comment><USER4> I would disagree regarding the great apes. You are correct, it may be far from Human. We are in agreement there, however great apes have shown evidence of planning, remorse and anger that goes beyond the here and now.

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> If animals were discovered to be nearly as intelligent as humans, would it still be ethical to eat them?

Farmers often talk about how stupid chickens are and they, therefore, have no problems eating them. But yet pigs are smarter than most dogs and we eat lots of pigs (but almost no dogs). Where does the line get drawn?

<comment><USER6> This seems to be common knowledge about pigs. What makes them smart? I've spent a lot of time with pet dogs and maybe an hour with pigs (livestock, not pets) on my Aunt's farm. I saw no evidence that pigs have intelligence or personalities like dogs. What should I have been looking for?

<comment><USER7> In my experience pigs are easier to train than dogs (they learn more quickly) and are less easily distracted. I trained pigs for 4-H and showed them at the county fair. I could walk a pig around with just a cane to tap it and keep it going the way I wanted. Bringing my dog to the fair would likely take all of my strength trying to hold the leash. Dogs require acclimation to novel stimulating situations or they forget their training. Pigs don't seem to care.

The interesting thing to me was that if we forgot to feed them they would always seem to be able to take apart the fence and get out to eat. The patriarch got out and visited the other pens before he passed away which reinforced my feeling that they treated each other like family.

Read the first google hit for pig intelligence if I haven't already gone on too long on the subject.

</comment></comment></comment><comment><AUTHOR> The fact that there remains a controversy over even the _possibility_ of at least some animals having some form of consciousness, indicates how the evolutionary world-view still has ground to gain over the Judeo-Christian religious world-view.

Put another way, I'd wager that most users of this site are familiar with Darwin's theory of evolution via natural selection. And if one accepted the basics of that theory, one would have to accept the possibility of animal consciousness, or take on the nearly untenable position that human consciousness sprang into existence from seemingly nowhere...</comment>


It's Not You, It's Me - <AUTHOR> https://thepointmag.com/2019/examined-life/its-not-you-its-me <comment><USER2> Wow! I'm a twin and this is the first article I've read that really puts into words how I feel about it at times. Especially:

" Not coincidentally, twins are at strong risk of being objectified. First, we get reduced to our appearances: what matters most about us is how our bodies hit the senses. Second, we get treated as fungible: interchangeable with our fellow objects. Third, in many cases, our subjectivity is ignored. People don't deny, exactly, that twins have rich and distinctive inner lives, just as sexists don't deny, exactly, that hot young women do. But those lives often aren't what's interesting about us, and they're easily glossed over. "

<comment><USER3> My 4 year old daughters have a completely different life experience. They automatically have critical mass at school, and can use this to manipulate the singletons around them. They make people happy, but yeah, they are pointed at a lot too.

A lifetime of that means the twins are on a different plane of existence. We singletons can only imagine.

</comment></comment><comment><USER4> What an insightful perspective.

I have a pair of twins as sisters in law (who have a very different relationship than this pair) and even after more than 25 years of knowing them this article gave me insights about them.

</comment><comment><USER5> I'd extrapolate the line: twins -> singletons -> immigrants.

Not only they don't have their emotional pair support, they also lost all their friends.

But, of course, there's a huge filter. People who wouldn't be able to stand that don't become immigrants in the first place.

</comment><comment><USER6> Great text. I identified with the theme. I have twins in the family. congratulations!</comment>


Jobs disappoints on US box office debut - <AUTHOR> http://www.ft.com/intl/cms/s/0/cca40018-0839-11e3-badc-00144feabdc0.html#axzz2cPPVnSVy <comment><USER2> The link goes to a site that requires a signup in order to read the article. It's essentially a paywall.</comment>


GPP – Generic Preprocessor - <AUTHOR> http://files.nothingisreal.com/software/gpp/gpp.html <comment><USER2> Would love to see more examples. Are there more references available? Any similar projects?</comment>


Gresham's Law: Bad Drives Out Good as Time Passes (2009) - <AUTHOR> https://fs.blog/2009/12/mental-model-greshams-law/ <comment><USER2> In organizations I've known this as the "Dead Sea Effect", where good/talented employees leave the company because they don't want to work with bad/mediocre employees, and all you have left is the bad/mediocre.

I've also seen this effect take a form where good employees will recognize what is happening and rock the boat, trying to make it clear that there's something wrong and that something should be done about it. Mediocre managers and employees don't like this and eventually the good employee gets fired. The lazy and mediocre then run the show; as long as that paycheck keeps coming in, who cares if we are doing a good job or not?

<comment><USER3> No employee is simply talented or mediocre or bad. Everyone you meet has strengths and weaknesses. Some people's strengths aren't in demand every day, but crucial when called upon. Others have weaknesses which rarely appear, but are terribly damaging when they do.

And everyone is drawn to the company of others in the workplace based primarily on interpersonal factors, not others' ability or performance or lack thereof.

Certainly, there are toxic personalities which can poison an environment, but they generally have some valuable assets as well.

Deciding to leave an organization because of its people is never a simple calculation.

<comment><AUTHOR> How the team is assembled matters. Of heaven and hell:

In heaven, the cooks are French, the lovers are Italian, the mechanics are German, the police are British, and everything is organised by the Swiss.

In hell, the cooks are British, the lovers are Swiss, the mechanics are French, the police are German, and everything is organised by the Italians.

<comment><USER4> From the number of cooking programs on my TV with british cooks at the moment I would assume the british have upped the game a bit on cooking :-)

<comment><AUTHOR> How many are curries or other imports? ;-)

(Says the cat who's been home-baking crumpets.)

</comment></comment></comment></comment></comment><comment><USER5> We can adapt the Gresham's Law for Software Development:

Project [A] is built within "x" months with lot of tech debt, crunch time and stressed out employees

Project [B] is built within "x+y" months with sane architecture and healthy working hours

If management doesn't understand the benefits of good architecture and employee well being, [A] will become the baseline against which all future projects get measured.

The software system gets messier and messier => resulting in more bugs => resulting in working weekends and late nights => employees make poor decisions because of mental fatigue => resulting in more bugs => ...

<comment><USER6> I think you're dead right but it goes even deeper. With more bugs the company starts evaluating devs on their ability to fix bugs and put out fires. Eventually the devs who can build a sane product are squeezed out and all the devs are good at is fixing bugs rather than introducing fewer bugs in the first place.

I noticed this when working as a dev in the finance industry. The devs who put out the most fires got the biggest bonuses and float to the top so they have a say in hiring and hire more people like themselves. A textbook case of Gresham's Law.

<comment><USER7> but why does the effect only happen in software engineering, but not physical engineering?

You don't see buildings that are near collapse and require constant repair and redesign. You don't see construction contracts awarded to companies that build poor buildings. In fact, most buildings work fine, and even tho most also have some defects, those defects tend to be minor and can often be overlooked.

So what makes software engineering different?

<comment><USER8> You don't see buildings that are near collapse and require constant repair and redesign.

When the covid thing is over, have a trip to Sydney Australia. There;s lots of cheaply done buildings here in all states of disrepair. People cheap out on the invisible stuff like correct wiring, correct plumbing and correct foundations.

And in software people cheap out on those same things because they can take the money and run.

You could fix this by making payment for software as 25% upfront with 20% on deliver and then 50% on 18 months of as advertised use.

But no one would ever do that. When Azzure or GC or AWS goes down every 5 years or so for a few hours, everyone gets server credits back for teh interruption and revenue loss. No liability as assumed.

<comment><USER9> You can add Canberra to that list. I know several apartment blocks that are close to collapse, one Owners' Corporation is currently suing the builder (and the local government authority) in a case before the Supreme Court.

</comment></comment></comment></comment></comment><comment><USER10> related: [https://en.wikipedia.org/wiki/The_Market_for_Lemons](https://en.wikipedia.org/wiki/The_Market_for_Lemons)

> Suppose buyers cannot distinguish between a high-quality car (a "peach") and > a "lemon". Then they are only willing to pay a fixed price for a car that > averages the value of a "peach" and "lemon" together (p_avg). But sellers > know whether they hold a peach or a lemon. Given the fixed price at which > buyers will buy, sellers will sell only when they hold "lemons" (since > p_lemon < p_avg) and they will leave the market when they hold "peaches" > (since p_peach > p_avg). Eventually, as enough sellers of "peaches" leave > the market, the average willingness-to-pay of buyers will decrease (since > the average quality of cars on the market decreased), leading to even more > sellers of high-quality cars to leave the market through a positive feedback > loop.

> Thus the uninformed buyer's price creates an adverse selection problem that > drives the high-quality cars from the market. Adverse selection is a market > mechanism that can lead to a market collapse.

<comment><USER7> > Adverse selection is a market mechanism that can lead to a market collapse.

if an uninformed buyer buys a lemon, and they don't suffer the consequences (e.g., a lemon works just as well as a peach, 'cept in aesthetics or some other unimportant metric), then it's not collapsing the market at all. It just means that peaches, as judged by sellers, aren't as valuable as they think.

It's like the stock market in this sense - buyers of a stock doesn't "really" know if the stock is a lemon or a peach. Neither does the original owner of the stock of course.

<comment><USER11> It could be that the buyer doesn't suffer the consequences until much later, or that they are suffered only in aggregate by buyers.

For example: cheap smoke detector that doesn't detect smoke, cheap food full of lead contamination, cheap software full of buffer overflow vulnerabilities.

</comment></comment></comment><comment><USER12> Gresham's Law is frequently misunderstood. It's not accurate to say that "bad" drives out "good" in a literal sense. It's more like "less desirable" driving "more desirable" out of circulation. The "more desirable" is highly valued, not competed out of existence. It's just not in circulation.

In the case of coinage, gold coins are not in circulation. But they are still more valuable than other types of coins. A monetary system usually consists of both "less desirable" money (e.g. paper money) and "more desirable" money (e.g. gold, Bitcoin). I explain the law in the context of Bitcoin and fiat in this article:

[https://bitflate.org/post/2019/11/24/bitcoin-will-not-be- a-m...](https://bitflate.org/post/2019/11/24/bitcoin-will-not-be-a-medium-of- exchange.html)

If we have a system where "bad" drives "good" out of existence (not circulation), then the system will surely have problems.

<comment> phoe-krk In other words: Gresham's law doesn't make the "good" disappear altogether. It makes the "good" hoarded and kept instead of passed around, which prevents the "good" from being exchanged between people - or, in other words, removes it from circulation.

<comment><USER13> This situation is just a special case, in which it's possible for the "good" thing to survive without being actively circulated. It may work for "gold as a store of value", because gold's value is based on scarcity and tradition. It doesn't work for other things. Gresham's law does boil to natural selection: if you iterate a system that selectively prefers one thing over the other, the preferred thing will survive. The preferred thing is usually one that's cheaper in some sense - monetary, energetically, or ethically.

(WRT. bitcoin, I don't think it's a case of "bad" fiat "driving out good" bitcoin, but more of bad bitcoin failing to compete with better fiat.)

</comment></comment></comment><comment><USER14> I believe there is a reference to this law in the movie "No Country for Old Men".

The movie was set in 1980. In the famous coin toss scene Anton Chigurh explicitly states that the date on the quarter is 1958 and that it had been traveling for 22 years. That means it was a silver coin. The US Coin Act of 1965 changed the make up of coins from 90% silver to cladded nickel and zinc. The old silver coins very quickly disappeared from circulation. Any remaining ones were snatched up especially when the price of silver skyrocketed when the Hunt Brothers in Texas tried to corner the silver market in 1980, right in the time period when the movie was set.

So basically Chigurh had no business having a 1958 silver quarter in his pocket.

I think Cormac McCarthy was implicitly showing Chigurh was a dispassionate force of evil driving out the good.

<comment><USER15> Ive interpreted Chigurh as an agent of chaos much like the Joker. We've given our lives all this order and civilization but underneath is ultimately chaos.

</comment></comment><comment><USER16> Same principle drives the amplification of inequality in society. People and companies try to protect their incomes so they lobby or game the system, competing against each other to gain the upper hand. As a consequence they directly harm the common good, which would be a thriving economy. It's a gradual process of accumulation of inflexibility which can become its own downfall.

<comment><USER17> Let's not forget the opposite extreme though (USSR). If you try to regulate inequality away by redesigning your entire government, what ends up happening is that everyone is equally poor except the elite corrupt government officials

<comment><USER18> You're also creating a shadow market. A good friend of my grandmother lived in East Germany during the cold war and explained the German term "Bückware" (literally _bend-down wares_ ) to me: the sought-after goods in stores that you'd only get by trading favors, stored out of sight under the counter so they'd have to bend down to get it.

<comment><USER19> It was also called _blat_ in Eastern Europe [1].

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

</comment></comment></comment></comment><comment><USER20> Is this the whole story, though?

The truly wretched coins, and the governments that issue them, tend to exit circulation, too.

Perhaps Gresham's Law has some relationship to regression toward the mean =>[https://en.m.wikipedia.org/wiki/Regression_toward_the_mean](https://en.m.wikipedia.org/wiki/Regression_toward_the_mean)

<comment><USER2> In line with this, I sometimes feel that the best way to fix a problem is to make it worse, to the point where it's intolerable.

Kind of like a pot-hole in the street out in front of your house. If it's a small pot-hole it might go unnoticed and unfixed, but if you go take a pick- axe to it to the point where cars start bottoming out, it's more likely to get fixed.

Almost like the squeaky wheel gets the grease.

I recently witnessed someone take this strategy to task on Reddit where the Ubiquiti subreddit had become inundated with low-quality picture posts.

[https://reddit.com/r/Ubiquiti/comments/fa1wdw/please_post_mo...](https://reddit.com/r/Ubiquiti/comments/fa1wdw/please_post_more_pictures_of_boxes_the_only_way/)

<comment><USER21> Ever seen /r/ProgrammerHumor? It used to be great, until it started being featured on /r/all, and the low quality "bad UI" and "I can't find my semicolon" posts started flowing in and being upvoted. Now it's awful. There was one great post yesterday and it was glorious ([https://old.reddit.com/r/ProgrammerHumor/comments/g4cr9m/my_...](https://old.reddit.com/r/ProgrammerHumor/comments/g4cr9m/my_i3_is_working_hard)) but it's back to usual now :(

<comment><USER22> I dunno, I got a kick out of [https://www.reddit.com/r/ProgrammerHumor/comments/g50h6m/a_s...](https://www.reddit.com/r/ProgrammerHumor/comments/g50h6m/a_small_but_sweet_victory/)

</comment></comment></comment></comment><comment><USER23> Another popular essay on this subject is "Well-Kept Gardens Die By Pacifism", [https://www.lesswrong.com/posts/tscc3e5eujrsEeFN4/well- kept-...](https://www.lesswrong.com/posts/tscc3e5eujrsEeFN4/well-kept-gardens- die-by-pacifism)

<comment><AUTHOR> Very nice, thanks.

Shades of Bumblebee Labs' "The Evaporative Cooling Effect": [https://web.archive.org/web/20101012105003/blog.bumblebeelab...](https://web.archive.org/web/20101012105003/blog.bumblebeelabs.com/social- software-sundays-2-the-evaporative-cooling-effect/)

</comment></comment><comment><USER24> Thank you, that was a great read. Did not know about Gresham's Law.

I wish the author would have included some examples in which Gresham's Law is violated. It seems related to "Thiers' Law" (which is described on the Gresham's Law Wikipedia page [0]).

It also seems as if Gresham's Law contains a statement of the dynamics that drive good coins out of circulation that make it a very special kind of race to the bottom. For example, in the excerpt from the Mackenzie King letter, the application to industrial standards seems to reflect a somewhat different dynamic.

0 [https://en.wikipedia.org/wiki/Gresham%27s_law#Reverse_of_Gre...](https://en.wikipedia.org/wiki/Gresham%27s_law#Reverse_of_Gresham's_law_\(Thiers'_law\))

<comment><USER25> Gresham's Law tends to no longer hold when the difference between good and bad is _qualitative_ rather than quantitative, and when there are more than one degree of separation between the two.

Joe's Websearch can be cheaper than Google but is _much_ crappier, parasitic mobile games are profitable but doomed to mayfly longevity, etc.

<comment><USER26> I'm not sure that's true. The more Florence debases the silver florin while Venice stays honest, the more I'm tempted to melt my old florins into Venetian silver ducats. I only get a better and better deal that way.

<comment><USER25> Sure, but when you take a _real_ qualitative jump---melting down silver coins for use in photography or photovoltaics---quality matters again.

</comment></comment></comment></comment><comment><USER27> It's interesting, I've noted that bad products tend to drive out good products. This happens with all sorts of products: food, software, etc. A lot of the time, the products are even from the same company: they come out with a good product, the market laps it up; and then begins a process of degradation as they make the product worse for no discernible reason.

Case in point, I can't count how many times I've been to a grocery shop looking for a packaged food product I've come to really like, only to find that it is no longer stocked, or that it has been replaced by an objectively inferior product. This seems to rarely happen with mediocre items

<comment><USER28> >>"[..] as they make the product worse for no discernible reason."

Well, they don't make the product worst on purpose, they make it cheaper to produce, in the hope that people keep buying it at the same price.

The metric to optimize is not "quality of product" but "profit".

Basic capitalism.

</comment></comment><comment><USER29> Cool i didn't know this had a name. In a way, its obvious once you are sufficiently cynical - in any system or long-term game, the most common strategy will be the one that wins often. From an evolutionary standpoint an advantage is an advantage, morality has nothing to do with it. The reason morality does matter is that over a long enough time frame, bad behavior becomes clear, good behavior breeds trust but that requires you play a long enough game with a stable set of people.

<comment><USER13> It has many names. "Natural selection" and "free market competition" are others. It's the same mechanism.

> _The reason morality does matter is that over a long enough time frame, bad > behavior becomes clear, good behavior breeds trust but that requires you > play a long enough game with a stable set of people._

This is an exception rather than a rule, which is why you see little morality in nature, why it's a struggle to keep people behaving, and why it gets harder as societies become larger and more subdivided into specializations and abstraction layers.

</comment></comment><comment><USER30> While it is a competitive advantage inside the system (team, company, country, political system), it decreases the competitiveness of the system as a whole in relation to other systems. For instance the more a company is like this the less actually valuable results it can show (since there is less and less to steal from actual value producers), the more it needs to spend its resources on also fighting off external competitors like other companies who still create results, managing bad press, and stopping customers from leaving to better providers.

It's very much like a parasite-host relationship. Sure in the 1:1 relationship the parasite might keep the upper hand and live longer, but in the end both are dying to make place for another organism.

For the world as a whole it's also not a bad thing. The world changes and new problems need new systems to deal with. But the new systems cannot prosper if old systems are efficient enough to defend their place.

</comment><comment> seph-reed This is one of those problems that seems to require a centralized and somehow morally superior source of decision making. Which is to say: it's the anti- thesis of decentralization or equality; the benevolent dictator so to speak.

<comment><USER31> You're right, and it's too bad you were downvoted.

</comment></comment><comment><USER32> > _Forms of human behavior survive because they have a competitive edge > against other behaviors. Self-interested groups naturally tend towards what > works, so bad drives out good (in a moral sense) if it causes superior > practical effects. This is one large reason why forms of regulation and > policing are needed in human systems, to prevent the Law from working its > magic._

I don't think that a requirement for regulation and policing follows from that. Regulation and policing can also be caught by these bad practices. Regulatory capture is an example of that.

In my opinion, this suggests instead that we need irregular resets to the system. Wipe the slate clean and start building it up again. That does come with enormous cost, but it seems to me like it's the only way to truly stand against constant degradation without finding a way to counter the degradation.

<comment><USER33> I think mandatory attendance in grade school is a regulation that is interesting to consider in the context of Gresham's law.

Is attendance mandatory so that the disruptive (bad) students don't drive out the good ones from attending, or does mandatory attendance create a situation that favors the bad student (by forcing them to attend) at an expense to the good student, who would have attended otherwise?

<comment><USER13> Attendence is mandatory so that "bad" parents - bad usually because of circumstances, not ill will - do not pull their kids from schools and have them work or help around the house, reaping short-term benefits at the expense of their children's futures.

</comment></comment></comment><comment><USER34> Nice read, very revealing and eye-opening to me personally. I think this law applies to jobs too. If your superior never calls-out lying narcissistic behavior, and you do not posses such "skills" you will be driven out.

And avoid industries where customer do not care if final product is made from crap or gold.

</comment><comment><USER35> "In fact, one might call Gresham's Law something of a special case of natural selection itself.

Forms of human behavior survive because they have a competitive edge against other behaviors. Self-interested groups naturally tend towards what works, so bad drives out good (in a moral sense) if it causes superior practical effects."

Except we have morals. So no this is a really poor example.

If anything our morals are what's holding up back. a 100,000 year old concept that works well in a village where you live day by day but has little use in the modern world where we can use numbers to tell us the best course of action.

<comment><AUTHOR> My view is that Gresham's Law often serves as a complexity constraint within a selection. process.

Given two (or more) means to some end, the mean with the fewest constraints, lowest cost, or least complexity, all else equal, tends to succeed.

Interesting case is where least constraints, costs, and complexity are distributed among several alternatives.

</comment></comment><comment><USER36> I've felt for a long time that the political system works this way as well. Speaking strictly from a non-partisan standpoint, there's a strong case to be made that this perception exists widely in American society.

It's why Trump's "drain the swamp" messaging worked so well in 2016, it's why things like gerrymandering exist, and it's why we continue to see record amounts of money, much of it of unknown origin, proliferate and direct political discourse and messaging.

<comment><AUTHOR> You and Aristophanes, in _The Frogs_ , 405 BCE, as noted and cited in the article.

There's also H.L. Mencken's "Brayard vs. Lionheart", 1920 CE:

 _[W]hen a candidate for public office faces the voters he does not face men of sense; he faces a mob of men whose chief distinguishing mark is the fact that they are quite incapable of weighing ideas, or even of comprehending any save the most elemental—men whose whole thinking is done in terms of emotion, and whose dominant emotion is dread of what they cannot understand. So confronted, the candidate must either bark with the pack, or count himself lost. His one aim is to disarm suspicion, to arouse confidence in his orthodoxy, to avoid challenge. If he is a man of convictions, of enthusiasm, of self-respect, it is cruelly hard._

[http://amomai.blogspot.com/2008/10/hl-mencken-bayard-vs- lion...](http://amomai.blogspot.com/2008/10/hl-mencken-bayard-vs- lionheart.html)

Other writers have drawn from Jean Piaget's models of intellectual development, and the distribution of such capabilities in the general population.

I strongly recommend reading the full piece. Several times.

</comment></comment><comment><USER37> This seems like an attempt to justify iron-fist regulation. "For our own good", of course.

It seems like a fallacy, this law. The bad is only able to survive at the expense of the system. Meanwhile, the good that was driven out is busy making its own new system.

<comment><AUTHOR> There's a pretty fascinating list of results in Google Books for "a Gresham's Law of" or "a sort of Gresham's Law", dating to the 19th century, suggesting at the very least an ideologically broad, if not agnostic, application of the concept:

[https://www.google.com/search?tbm=bks&ei=RGSeXuWpJozdtAa876-...](https://www.google.com/search?tbm=bks&ei=RGSeXuWpJozdtAa876-ICA&q=%28"a+Gresham%27s+Law+of"%7C"a+sort+of+Gresham%27s+Law"%29&oq=%28"a+Gresham%27s+Law+of"%7C"a+sort+of+Gresham%27s+Law"%29)

</comment></comment><comment><USER38> One of my favorite essays on this topic is "Meditations on Moloch"[0]. Does a great job of introducing the topic and pricing a lot of compelling examples, all while tying it in to Alan Ginsberg's famous poem.

[0]: [https://slatestarcodex.com/2014/07/30/meditations-on- moloch/](https://slatestarcodex.com/2014/07/30/meditations-on-moloch/)

</comment><comment><USER39> Meh. If you have two coins that are nominally worth the same but one is actually worth more - because it can, in a pinch, be melted down for a valuable resource - I wouldn't call this the bad driving out the good.

Of course the point that bad behavior may give a higher fitness score is still true.

I also like the idea of lemon market's in this context: [https://en.wikipedia.org/wiki/The_Market_for_Lemons](https://en.wikipedia.org/wiki/The_Market_for_Lemons) In short and very simplified: if the customer cannot tell the good products from the bad products he will not pay the price of the good products and so the good products disappear.

</comment><comment><USER40> Great read..

I had always attributed the observation to Mel Books :P

"So, Lone Starr, now you see that evil will always triumph, because good is dumb." — Dark Helmet, Spaceballs.

</comment><comment><USER41> Maybe I'm a bit too pessimistic, but are there any examples where "good money drives out the bad"? I can't think of a single industry... maybe cars?

<comment><USER33> Cars seems like a good example because the quality manifests itself physically and is independent of how well an individual buyer perceives quality. Also, the buyer is directly responsible for long-term costs associated with their decision which isn't the case in currency exchange.

<comment><USER42> you mustn't be talking about used cars which are perfect example of [https://en.wikipedia.org/wiki/The_Market_for_Lemons](https://en.wikipedia.org/wiki/The_Market_for_Lemons) where if it is impossible to tell what quality a particular good has the price goes down to the lowest common denominator so to say.

</comment></comment></comment><comment><USER43> Of course, in Gresham's day this was called "depravity," a consequence of Original Sin.

</comment><comment><USER44> Can someone explain how they got a two-letter blog TLD? I thought they were reserved.

</comment><comment><USER45> That explains Discord.

</comment><comment><USER46> Board-level executive compensation committees? Discuss.

<comment><AUTHOR> In what way?

If you're referring to executive compensation, game theory seems to offer clearer understanding.

<comment><USER46> Good point. Game theory requires some understood rules and a set of participants, as do any market. Game theory provides a good explanation of the current state given the rules of the game and its participants. The rules could easily be different if participants behaved differently.

Executive comp levels go against the needs of shareholders, who would otherwise benefit from the money being invested in the company or distributed back to themselves.

Game theory can provide insights as to how Gresham's Law's effects might play out, and how sticky the stasis will be in any market that has only bad currency.

</comment></comment></comment><comment><USER47> fs is great. I just finished listening to

Episode 72: Happy Habits with Neil Pasricha

Much recommended

</comment><comment><USER48> Selection bias.

<comment><AUTHOR> Care to expand?

</comment></comment><comment><USER49> Trump administration in a nutshell</comment>


Why We Shut Down a Business That Was Making Money - <AUTHOR> http://grasshoppergroup.com/the-spreadable-story-why-we-shut-down-a-business-that-was-making-money-getting-new-customers-every-day-part-i/

<comment><USER3> Answer: because they had another product that was making more money.

They never actually came out and said it in the article, but it sounds like the thing that shut down was just squeaking by and distracting their core, profitable, business.

So while plenty of us would be happy to be running this abandoned product on our own as a sole developer/marketer, it wasn't a big enough thing to make a dent in their already thriving company. So they dropped it.

<comment><USER4> >They never actually came out and said it in the article, but it sounds like the thing that shut down was just squeaking by and distracting their core, profitable, business.

I sure hope that is the case. The only other take-away I saw in that article was that they're so incompetent at management that they couldn't even clean up the organization of a profitable entity. That the management was just so bad its a better decision to kill the product than let it bumble around until it was no longer profitable.

<comment><USER5> Knowing when to pull the plug on a product is a key part of growing a company aimed at developing multiple products. We'll go through all the lessons learned over the next few weeks and reasons why we shut it down - <USER2> checking back, lots of valuable info.

</comment></comment></comment><comment><USER6> The article doesn't mention why they shut it down.

<comment><USER7> Judging by the excuses given in the post, I'm going to guess that 'stress' is the answer. It sounds like a crazy place to work, even if it's making money. It could very well be that everyone decided to quit, and so it just dissolved.

<comment><USER5> Nope, no one quit - the core team is now on other products in the company. Check back for parts 2 and beyond for updates, great lessons learned.</comment></comment></comment>


On a Remote Island, a Lost Part of the World Is Found - <AUTHOR> https://blogs.ei.columbia.edu/2019/02/12/lost-continent/ <comment><USER2> Google cache: [https://webcache.googleusercontent.com/search?q=cache:1_tRlv...](https://webcache.googleusercontent.com/search?q=cache:1_tRlvXrk6oJ:https://blogs.ei.columbia.edu/2019/02/12/lost- continent/+&cd=1&hl=en&ct=clnk&gl=us)

</comment><comment><USER3> " _In 1991, Class, Goldstein and Hemond noted the formation, but were too busy studying the volcanic rocks to pay much attention._ "

Wait. What the hell?

"This here is revolutionary! Completely against all reason! ... Oooh, look, more basalt!"

</comment><comment><USER4> I'm seeing a lot of:

"Error establishing database connection" on that site.

<comment><USER5> On a remote host, a lost connection to the database is found

</comment></comment><comment> dan-robertson Does the article describe any theories as to how the quartzite ended up on the island? I skimmed it twice and searched for "why" and "theor" but failed to spot anything.

<comment><USER6> "A supercontinent that geologists call Gondwanaland...began breaking apart about 180 million years ago ... Given the Comoros' location between Africa and Madagascar, the quartzites arguably came from one or the other.

...

Saindou Boura took us to meet his younger brother Mourchidi, his brother-in- law and a young nephew, who were digging in a manioc plot. In French, Hemond and Class went through a layman's explanation of the rocks' origins, venturing that the quartzite must have formed in Africa or Madagascar, then somehow ended up here when ancient landmasses rearranged themselves. Oh, you mean when Africa and Madagascar were part of Gondwanaland? queried Mourchidi Boura. At this, the scientists were dumbfounded: No non-geologist anywhere could be expected to know what Gondwanaland was, much less a farmer working the soil by hand on a tiny, remote island. Clearly, the scientists had underestimated these folks."

</comment></comment><comment><USER7> Are the images about 5000% times the size of the text for anyone else? I'm at 4k resolution and I have to zoom out to like 25% to fit them on my screen.

<comment><USER4> Yeah uh someone ... linked to or included the full sized images.

Very responsive web development here ;)

</comment></comment><comment><USER8> I can't be the only one that had the Jurassic Park soundtrack start playing in my head when I read that line.</comment>


Coursera Operations Project - An Introduction to Operations Management returns - <AUTHOR> https://www.coursera.org/course/operations

<comment><AUTHOR> I took the course last year and liked it.</comment>


Disable Text Highlighting With CSS - <AUTHOR> http://www.paulund.co.uk/disable-text-highlighting-with-css

<comment><USER2> Unless you want to seriously screw up the user experience: don't.</comment>


MIPS Goes Open Source - <AUTHOR> https://www.eetimes.com/document.asp?doc_id=1334087 <comment><USER2> > "Had this happened two or three years ago, RISC-V would have never been > born."

Had RISC-V not been born, MIPS wouldn't have made this announcement.

<comment><USER3> MIPS was on its way to irrelevance, first as ARM slowly ate its remaining marketshare, then quickly when Imagination Technology went under and sold it off for a pittance to a relatively obscure "AI" company.

RISC-V may have hastened its demise, but the writing was on the wall for a long time.

<comment><USER4> I don't program in assembler professionally, but I understand that MIPS has some ugly, ugly aspects:

[https://www.jwhitham.org/2016/02/risc-instruction-sets-i- hav...](https://www.jwhitham.org/2016/02/risc-instruction-sets-i-have-known- and.html)

Sun opened the SPARC T2 a decade ago, and it certainly has not become popular:

[https://www.oracle.com/technetwork/systems/opensparc/openspa...](https://www.oracle.com/technetwork/systems/opensparc/opensparc-t2-page-1446157.html)

It does seem that RISC-V corrects a number of these design eccentricities. SPARC did not move the market an inch with an open release - perhaps MIPS will fail just as spectacularly.

<comment><USER5> The blog post you link to criticizes MIPS because it has pipeline hazards and branch delay slots. MIPS had hazards in 1985. MIPS II eliminated hazards. No MIPS processor released after 1989 has hazards. Branch delay slots are no big deal once you know they're there. There are a number of equally questionable design decisions in RISC-V, such as variable length instruction encoding and dest, src order of instruction operands. But RISC-V does have momentum.

<comment><USER6> > Branch delay slots are no big deal once you know they're there.

I disagree. I'm not really a MIPS user, but I've managed to encounter some branch delay slot issues, and, as an x86 system programmer, I can only imagine how unpleasant they must be. Here are some reasons:

\- The program counter does not adequately describe the execution state of the CPU. In other words, starting or resuming execution with a given set of register values and a given address will do the wrong thing if you're resuming in a branch delay slot.

\- Handling a fault due to an instruction in a branch delay slot seems highly problematic. Suppose you have a load in a delay slot and the load touches swapped-out memory. How is the operating system supposed to page in that memory and resume?

\- Linux, and probably other operating systems, will emulate FPU instructions if the CPU doesn't support them. Emulating FPU _branch_ instructions is deeply problematic because of delay slots.

<comment><USER7> The first two just mean that there's an extra trap state bit in a flags register for "I'm in a bench delay slot currently" and isn't really a big deal.

The third one I imagine is a pain in the ass, but I've been lucky enough to always compile MIPS for the exact CPU I was running it on.

<comment><USER6> It's more than just a bit. You need a bit saying "in a delay slot" and a whole word that stores the target of the branch.

<comment><USER7> Nah, a delay slot bit is fine. Branches haven't really retired yet (that's the point of a delay slot), so when you reenter the instruction with that bit set the CPU just backs PC up and executes both of them again.

You have to make sure you can map two pages at once in case the branch/delay pair straddles a TLB boundary, but you have to screw up pretty bad to not allow that.

<comment><USER6> _shudder_

If you try this on hardware that also supports software single stepping (which x86 does, but MIPS seems not to by default), then you have to be extra creative to guarantee forward progress. The same issue arises if you have data breakpoints. And if the branch loads from MMIO space, you have a problem.

<comment><USER7> I mean, it's MIPS so it's a load/store architecture anyway. Between the pair you're only going to have one memory reference at most, and it's going to be the delay slot.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> That is pretty awesome. So three 'open' RISC architectures (RISC-V, MIPS, SPARC) with varying amounts of ecosystem support.

That the patent stuff seems to be dealt with is key here, one of the challenges with working with MIPS and SPARC was always that their 'parent' organizations (SGI and Sun respectively) were essentially patent trolls when it came to third parties being successful with the architecture. Now that SGI and Sun are just footnotes in the computer industry, perhaps these architectures can flourish.

<comment><USER9> POWER8 is also open now: [https://openpowerfoundation.org/](https://openpowerfoundation.org/) By far the best of those. But IBM, and it's not POWER9.

<comment><USER10> >and it's not POWER9

Surely POWER9 is open as well? Otherwise how did Raptor ship their POWER9 CPU?

<comment><USER9> Power9 only has open firmware and ISA, but not the verilog. They just resell it, to Raptor and Google-Rackspace mostly.

</comment></comment></comment></comment><comment><USER7> What licence?

Their FAQ certainly reads more like "source available" than "open source". You have to be a registered MIPS Open Member to even see anything.

[https://wavecomp.ai/mipsopen](https://wavecomp.ai/mipsopen)

<comment><USER11> > Swift is very familiar with most of the MIPS players in China, "because I > worked with them," he told us.

Well, things change, and if he still thinks about a couple of big vendors, that would fit. But most of the Chinese SoC vendors using RISC-V aren't big nowadays, and most of them probably wouldn't bother with all that corporate memberships and stuff.

<comment><USER12> I think this might change. They are participating at least a bit for now.

</comment></comment></comment><comment><USER13> In comparing RISC-V vs MIPS, I think people are forgetting that one is a Foundation of member companies driving development, and the other is one company releasing their IP.

There's obvious pluses and minuses to both approaches, but if I were a company trying to choose an ISA for my own IP development, I'd probably want the ISA that has a Foundation I can join and help drive its direction going forward [Ed: it will be interesting to see how MIPS proceeds from here].

<comment><AUTHOR> MIPS is involved in this foundation: [https://prplfoundation.org/current- members/](https://prplfoundation.org/current-members/)

</comment></comment><comment><USER14> I wonder if this will include the MIPS 16e extension (the thumb-like instruction set for MIPS). It would be interesting to me if MIPS can compete with ARM in microcontrollers. As far as I know, only the PIC32 is MIPS.

I used IDT's MIPS IDTR3041 in an embedded system in the mid 90s... I remember compiling gcc for "decstation" to support it.

[https://stuff.mit.edu/afs/sipb/contrib/doc/specs/ic/cpu/mips...](https://stuff.mit.edu/afs/sipb/contrib/doc/specs/ic/cpu/mips/r3051.pdf)

Will Sparc follow? I used the LEON4 SPARC processor in Intel / Movidius Myriad recently, was surprised to see Sparc...

<comment><USER15> > Will Sparc follow?

SPARC is already open, as in it can be used royalty free and there are open source implementations.

<comment><USER16> My understanding is that only 32-bit SPARC is open. The 64-bit extensions are still proprietary, aren't they?

<comment><USER17> The verilog for the UltraSPARC T1 core is GPL. I have my own fork on a dev board they used to make for the purposes of researchers modifying it and giving a modified processor a spin. So... I don't think so?

<comment><USER16> I'm talking about the patent licences for the _ISA_ , not a specific core. Does the GPLv2 licence for the T1 confer a patent licence? If not, you'd probably need patent licences for the 64-bit ISA from Oracle to market something, AIUI. Whereas I believe 32-bit SPARC is an IEEE standard and royalty-free.

<comment><USER18> SPARC V9 (which is the 64 bit version) lies with SPARC International. That doesn't necessarily extend to OSA2011/OSA2017, whose specifications are available from Oracle, but I wouldn't bet on their royalty-freeness.

</comment></comment></comment></comment></comment></comment><comment><USER19> The article notes the "maturity" of the support software. Indeed when I was writing manuals for SGI in the 90s, I was trying to document what seemed like extremely sophisticated compiler optimization techniques, including link-time optimization. (Due to customer demand there was also a screaming Fortran IV compiler, but it was bought in from a vendor.)

I also remember how one range of the MIPS line (4000?) had the "4K page bug" where a page fault induced by the last instruction on a page caused some nasty problem. IRIX had special code to handle it.

</comment><comment><AUTHOR> Will this make MIPS hardware virtualization available to the Western market? So far it's only been available in a Russian CPU (Balkal), [https://news.ycombinator.com/item?id=18142295](https://news.ycombinator.com/item?id=18142295)

Article says that PRPL foundation may be governing Open MIPS. There was an L4-based hypervisor offered by PRPL, but the website seems to have been reorganized.

Virt whitepaper: [https://prplfoundation.org/wp- content/uploads/2018/07/prpl-s...](https://prplfoundation.org/wp- content/uploads/2018/07/prpl-security-guidance-for-critical-areas-of-embedded- computing-2-5-2.pdf)

<comment><USER20> Lol, the story with them choosing MIPS over ARM is that ARM was too afraid to get slapped with sanction, and they went to MIPS instead.

After ARM saw that the sky is not falling on MIPS, they decided to license them their cores as well.

</comment></comment><comment><USER21> Interesting that MIPS includes DSP functionality in the ISA. Does anyone have experience using DSP functionality with a MIPS chip? This seems like something that could be big, since so many of the DSP chips that are out there are totally proprietary, require proprietary compilers, etc. The idea of widely available DSP support that can be built with standard off the shelf OSS compilers / tools seems like something that could be a big win.

<comment><USER22> These include instructions for saturating arithmetic (arithmetic that give the greatest or lowest possible values, rather than wrapping around), 16 and 32 bit fixed point, fused multiply add instructions, and some SIMD instructions [https://en.wikipedia.org/wiki/MIPS_architecture#MIPS_DSP](https://en.wikipedia.org/wiki/MIPS_architecture#MIPS_DSP)

Basically your usual DSP fare.

ARM has a similar extension; see [https://en.wikipedia.org/wiki/ARM_architecture#DSP_enhanceme...](https://en.wikipedia.org/wiki/ARM_architecture#DSP_enhancement_instructions) for a reference to it, or [http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc....](http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.100166_0001_00_en/ric1417449098079.html) for details.

I don't think that RISC-V has a DSP extension yet; they are still working on nailing down their SIMD/vector extension story.

<comment><USER23> They are trying to support vector machines as well as SIMD instructions.

<comment><USER22> You mean RISC-V or MIPS?

There's a reason why I said SIMD/vector extension, since RISC-V first started down the SIMD route, but then they took a step back and decided that a vector extension might work better, so from what I can tell more work has been going into the vector extension than SIMD. But neither SIMD nor the vector extension are finalized yet.

I'm unaware of a MIPS vector extension, it seems to just have standard packed SIMD instructions, though I'm not that familiar with MIPS.

</comment></comment></comment></comment><comment><USER24> This is awesome! It might mean we get a CHERI board without a RISC-V port. The port is still a good idea but a port to highest-end MIPS will probably be cheaper since it reuses toolchain and some hardware stuff.

Then we can make the desktop cases look like SGI's as a tribute to the best MIPS of the past. Plus, they look cool.

[https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/](https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/)

<comment><AUTHOR> That would be industry-changing for desktop security - capabilities in open hardware.

Does the MIPS ecosystem have an equivalent to coreboot?

<comment><USER25> For what? There is [https://en.wikipedia.org/wiki/Das_U- Boot](https://en.wikipedia.org/wiki/Das_U-Boot) and [https://www.linux- mips.org/wiki/PMON_2000](https://www.linux-mips.org/wiki/PMON_2000) I bet "Das U-Boot" is more of an "ecosystem" than coreboot when you zoom far out and see the installed base of embedded devices. Coreboot unfortunately not so much in comparison.

</comment></comment></comment><comment><USER26> Despite this announcement, RISC-V momentum is not going to stop. Anyone trying to understand why, should watch this presentation by Krste Asanovic, as it sets RISC-V in historical and market context.

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

edit: added link to presentation.

</comment><comment><USER27> It's cool to see such an old and well-used arch still be used in new applications, not just old legacy stuff.

And, gotta love: "Wave, which styles itself as a tech startup poised to bring "AI and deep learning from the datacenter to the edge," sees MIPS as a key to advancing Wave's AI into a host of uses and applications.". Hello, fellow kids!

<comment><USER28> As opposed to the 8080 variant most people have in their PCs?

<comment><USER29> 68000 was the better CISC architecture.

</comment></comment></comment><comment><USER30> The devil lies in the details: it all depends on the actual license that Wave Computing will use for MIPS.

</comment><comment><USER31> Funny, I would have gone bananas over this a couple years ago. Now, its mix between disappointment and but still support. MIPS exists and will continue to exist, its far to large to ever go away so it is good that it will open up and eventually we can remove property architectures from the market.

I just hope they really commit to that strategy. Remember Docker was once a failing PaaS company who released their tech as open source.

</comment><comment><USER32> The article states:

>"Included in MIPS instruction sets are extensions such as SIMD (single instruction, multiple data) and DSP."

I always thought of DSPs as being a specific type of chip i.e a DSP chip. Are Are many DSPs MIPs based then? Is a DSP really just any general purpose CPU whose ISA has optimized DSP instructions then?

<comment><USER33> MIPS has what's called an Application Specific Extension (ASE) basis for extending a given MIPS core for particular areas.

The MIPS DSP ASE extends the base instruction set with certain instructions applicable to various codecs of the day that the ASE was defined for. It's essentially extending a general purpose cpu to efficiently perform DSP like tasks.

</comment></comment><comment><USER34> BTW, some official information on MIPS' site[0] which doesn't show a fullscreen modal or split the information across three ad-laden pages ;) Looks like there is a forthcoming site[1] for the initiative as well, which has not launched yet.

[0] [https://www.mips.com/mipsopen/](https://www.mips.com/mipsopen/) [1] [https://mipsopen.com/](https://mipsopen.com/)

</comment><comment><USER10> If Imagination didn't win, CEVA would have been a much better fit for MIPS. IMG might have been better off focusing on something else ( But judging from their management direction and execution I doubt they would have survived long anyway )

I think only Cavium and Broadcom are the biggest supporter of MIPS, not sure if there are any other heavyweight, but both have in recent years diverged to ARMv8.

I think the most interesting part is open sources includes DSP and SIMD.

</comment><comment><USER35> what does open source mean in this context?

<comment><USER36> The article just says the most recent 32 and 64 bit instruction sets will be open. No mention of open core designs (there are many old versions of MIPS, it has been very fragmented, so excluding these makes sense to get some commonality).

<comment><USER37> And again, what does it mean for the instruction set to be open? Does that mean that they are releasing circuit schematics and hardware documentation? Surely it means more than releasing documentation for the instruction set like we have for Intel chips.

<comment><USER38> It means that you are allowed to design/produce a chip using this instruction set without getting sued.

<comment><USER37> Just that? With no extra help from them? No schematics or diagrams or documentation? Do you still have to reverse-engineer their work?

Did AMD have to get permission from Intel to implement the i386 instruction set?

<comment><USER39> _Did AMD have to get permission from Intel to implement the i386 instruction set?_

Yup, and Intel needed permission from AMD to implement the x86_64 instruction set.

[https://www.cnet.com/news/intel-and-amd-a-long-history-in- co...](https://www.cnet.com/news/intel-and-amd-a-long-history-in-court/)

<comment><USER40> What about emulators? Did bochs and qemu need to get permission?

I'm not really understanding the legal basis here. Did these companies get patents for the instruction sets? Since instruction sets are really like APIs, can people get patents for APIs?

</comment></comment></comment></comment></comment></comment></comment><comment><USER41> What applications is the hierarchical clustering approach MIPS's owner Wave is taking to designing ASICs for machine learning going to work best for? Deep learning?

Anybody with ASIC design experience have a view on whether what they've got will be competitive (along energy or speed dimension) with TPUs or whatever RISC-V solution NVIDIA is working on?

<comment><USER42> Till the silicon comes nobody can really say much. Also NVIDIA is only using RISC V for the system controller for their future GPUs.

<comment><USER31> NVIDIA is also working with SiFive to deliver some of their stuff on RISC-V.

<comment><USER42> Well it is different, what they are delivering is not based on RISC V but rather a silicon implementation of their NVDLA which will act as a peripheral to a SiFive core.

</comment></comment></comment></comment><comment><USER43> [https://www.amazon.com/Digital-Design-Computer- Architecture-...](https://www.amazon.com/Digital-Design-Computer-Architecture- Harris/dp/0123944244/ref=sr_1_4?ie=UTF8&qid=1545079537&sr=8-4&keywords=computer+architecture)

</comment><comment><USER44> From what I gather they are also holding Lexra core IP.[1]

Hopefully they will be releasing the Lexra IP too. I have stumbled upon many routers that utilize Lexra cores.

[https://www.linux-mips.org/wiki/Lexra](https://www.linux-mips.org/wiki/Lexra)

</comment><comment><USER45> Hearing news like this I wonder, what happened to Transmeta's processor architectures?

<comment><AUTHOR> Similar capabilities are shipping in some Nvidia CPUs, [https://hothardware.com/news/nvidias-64bit-tegra-k1-the- ghos...](https://hothardware.com/news/nvidias-64bit-tegra-k1-the-ghost-of- transmeta-rides-again)

Transmeta's founder is working on RISC-V AI/ML chips at Esperanto.

</comment></comment><comment><USER46> "Open Source"? As if it really matters for the dozens of computer science courses out there which used MIPS as a base (and some are now switching to RISC-V)... and a lot of unlicensed MIPS-ish/clone cores are also present in various cheap Chinese gadgets. I mean, if the average second-year CS student can make a working MIPS core, what does that say about how much it's worth? It's such a mundane ISA that you can't really squeeze much out of it (and I'm not talking about adding SIMD and such, which you could do for x86 and ARM too) unlike x86 and to a lesser extent ARM.

x86 or ARM going open-source, now _that_ would be interesting...

</comment><comment><USER47> Is this only for their newest core or will they be releasing old stuff too? Would be really interesting to see the HDL for early MIPS processors like the 3051, 4300, 5900, etc.

<comment><USER48> Of those cores, MIPS own the direct rights to none of them.

The R3051 (used in the PlayStation 1) was a derivative of the R3000A (which MIPS should have the rights to) made by IDT. I don't think MIPS have the right to the modifications.

The R4300 (A derivative, the NEC VR4300 was used in the Nintendo 64) was designed by Quantum Effect; I think whoever owns what's left of them would own the HDL, if it's still around.

The R5900 (used as the core of the PlayStation 2's Emotion Engine) was designed by Sony and Toshiba; I'm pretty sure Toshiba have the rights to it.

<comment><USER47> Yeah I know there's licensing issues for those exact processors, it would still be cool to see the stuff they were derived from.

</comment></comment></comment><comment><USER49> Only ISA? I must have missed something, but I cannot see if they are going to open-source its implementation though.

</comment><comment><USER50> I wish they could opensource mipspro

</comment><comment><USER51> I can't wait for a company to raise $100 million Series A to sell 'Enterprise, Open Source MIPS', then come back in 4 years with a blog post about changing the license due to concerns that large companies are taking advantage of it.

</comment><comment><USER52> Will it slow down RISC-V?

<comment><USER22> Probably not at this point. If they had done this right when RISC-V was first announced, then maybe, as at that point they had the advantage of much more ecosystem and tooling integration.

However, it's now at the point where there are shipping RISC-V Linux distros, it's supported in GCC and LLVM out of the box, there are more than a dozen open-source RISC-V cores ([https://riscv.org/risc-v- cores/](https://riscv.org/risc-v-cores/), several of which are actually parameterized families of cores), and there are companies like SiFive offering commercially supported proprietary cores. There is hardware that has shipped from multiple different vendors, and that likely means that there are a number of others where it's fairly far in the pipeline.

With MIPS being behind Intel on the desktop and server market, behind ARM on the proprietary embedded core front, and behind RISC-V on the open source ISA and cores front, it's a bit hard to see why someone would buy MIPS who hasn't already invested in it.

If you want something more well established with a wider variety of cores available to purchase, you'd go with ARM. If you want something with no ISA licensing fees and even potentially no charge at all for an open source core, you can go with RISC-V.

I suppose there is some chance that MIPS could win some folks over from RISC-V for already having stable SIMD and DSP extensions, and more overall architectural maturity than RISC-V. But given that this seems to just be opening up the ISA without opening up any cores, and right now is a press release without having decided on the governance structure for the project or released any assets, while RISC-V has a number of fairly mature open cores including Rocket, BOOM, RI5CY, and more, and has a governance structure with a number of different companies involved, it seems like it will be a while if ever for MIPS to catch up on the open ISA front.

<comment><USER11> > from multiple different vendors

Hundreds.

> China is rallying around the architecture with perhaps hundreds of RISC-V > SoCs and dozens of cores in the works.

> "We are talking hundreds, if not thousands, of [RISC-V–based SoC] projects > under way; it's crazy … probably at least 40 to 50 companies or academic > groups are dabbing in core development — some for internal use, some for > open-source, and some commercial"

[https://www.eetimes.com/document.asp?doc_id=1334032](https://www.eetimes.com/document.asp?doc_id=1334032)

<comment><USER22> When I mentioned "multiple vendors," I was talking about hardware implementations that have actually shipped.

I've been looking for RISC-V chips that I can buy right now, and from what I can tell, there are only a handful. Two from SiFive (the E310 embedded processor, and U540 supervisor mode/Linux capable processor), one from GreenWaves (the GAP8). Turns out since I last looked (around the beginning of October) it looks like the Kendryte K210 has been released, also available in the Sipeed M1 module ([https://www.cnx-software.com/2018/10/22/sipeed-m1-risc- v-com...](https://www.cnx-software.com/2018/10/22/sipeed-m1-risc-v-computer- vision-module/)). Anyhow, that makes 3 vendors shipping hardware implementations.

It's possible there are other special purpose chips not widely available for sale, or not advertised to English speaking customers, but I haven't found much evidence of them.

There certainly are a lot of RISC-V projects under way, which was what I was referring to by "that likely means that there are a number of others where it's fairly far in the pipeline." I think the "hundreds" from the article you quote is about total number of projects, not total number of vendors.

Some of these are just academic projects, some are multiple projects at the same vendor, and so on. I wouldn't be surprised if it was dozens of vendors that have projects at various stages of completion, however. I can imagine we'll be seeing a lot of releases over the next couple of years.

And there are a number of cores you can run on FPGAs, from high-end cores like BOOM that can be run on big expensive Xilinx FPGAs (or on Amazon's cloud FPGAs), to low-end like PicoRV32 that you can run on a $5 Lattice ICE FPGA.

<comment><USER11> > It's possible there are other special purpose chips not widely available for > sale, or not advertised to English speaking customers, but I haven't found > much evidence of them.

Take any established Chinese IT company, there are chances they are working on RISC-V based SoC or two. Alibaba - CK902, Huami - Huangshan No. 1, not talking about less known at the West vendors.

But it seems there are some considerations among established IT companies about not announcing RISC-V products very loud, especially in English.

> The Western executive, speaking on condition of anonymity, told us, "A lot > of the biggest companies doing this are being very discrete indeed: perhaps > they cannot afford to upset Arm." He said they fear being told by Arm, "'Oh, > the core for your new smartphone is two weeks late.'"

[https://www.eetimes.com/author.asp?section_id=36&doc_id=1334...](https://www.eetimes.com/author.asp?section_id=36&doc_id=1334001)</comment></comment></comment></comment></comment>


HTML5 Snake Game with source code walkthrough - <AUTHOR> http://jdstraughan.com/2013/03/05/html5-snake-with-source-code-walkthrough/

<comment><USER2> This is nice; I like how the background updates to show the level-state.

I recently started porting my native iOS game to HTML5. After Xcode/Objective-C, HTML5 development is just so refreshing for the 1) instant reload, 2) succinctness of Javascript. I'm kicking myself for not starting sooner.

Here's a link to my HTML5 game: <http://noisytyping.com/NCT6745/index.html> (work in progress!)

edit: I just realized I haven't put in a tutorial yet. It's an Arukone implementation: connect all number-pairs, and fill the grid.

<comment><AUTHOR> Nice!

It took me a tries to figure out how to play, but once I got it I liked it. Very nice gameplay, very clean, addictive.

I'd add a few basic instructions on page to get folks started, even something simple like "Use your mouse to draw a line between 2 numbers".

Ah, just saw your edit - perfect!

<comment><USER2> Thanks very much :) It's cool that you figured out the rules!

I'm definitely sold on HTML5. For the kind of games I want to make, there's no reason not to bypass native and put them on as many platforms as possible. A month ago I wouldn't have considered anything but native.

<comment><USER3> Same here. I've been poking around with using the Leap Motion for browser games. I wrote up some notes about this, too: [http://www.leaphacking.com/posts/notes-from-a-leap-motion- pr...](http://www.leaphacking.com/posts/notes-from-a-leap-motion-presentation- part-2.html) and [http://www.leaphacking.com/posts/notes-from-a-leap-motion- pr...](http://www.leaphacking.com/posts/notes-from-a-leap-motion-presentation- part-3.html)

</comment></comment></comment></comment><comment><USER4> I like it! I really relate to the childhood dream of making games. I've been dipping my toes HTML5 gamedev myself, but thus far have done everything with DOM nodes. Have you thought of putting it up on some app stores? Or at least the chrome store? That one is pretty easy and free. No clue how much traffic to expect from it, though.

</comment><comment><USER5> Maybe it's just me, but the requestAnimationFrame code fails in Firefox unless they're all prefixed with 'window.'

It probably works straight away in Chrome because requestAnimationFrame is defined.

<comment><AUTHOR> Just pushed updates and tested in FF 18.0.2 and 19.0

Please let me know if this is still not working in your browser.

<comment><USER5> Works right away now thanks!

</comment></comment></comment><comment><USER6> So Cool. Thanks for the detailed, specific & well-designed contextual explanations!

I am honing my HTML5 skills, and this was very useful. I started playing with your code...

<comment><AUTHOR> Awesome - and thanks for checking it out!

This is only my 2nd HTML5 game - and it was a blast to create. Best of luck to you, and don't hesitate to contact me when you get some code together. I'd like to help any way I can.

</comment></comment><comment><USER7> Screen moves with the snake. Chrome 25.0.1364.152.

<comment><AUTHOR> Yeah, I just embedded the jsfiddle iframe. It is a much better experience to open jsfiddle in its own tab:

Small: <http://jsfiddle.net/zT7V4/7/embedded/result/>

Large: <http://jsfiddle.net/zT7V4/5/embedded/result/>

<comment><USER8> You can use e.preventDefault() at the top of your event listener to prevent the keys from affecting the page.

The page would move even from these links if your page was long enough to have a scroll.

(You can see it by shrinking the window all the way down until it gets a scroll)

</comment></comment></comment><comment><USER9> You have used path to draw the boxes instead of drawRect() function. Is there any particular reason/advantage behind that?

</comment><comment><USER10> Funny how even after years of Vim-ing, using "hjkl" in a video game still trips me up.

<comment><AUTHOR> I added it to see what it would be like. I found it to be too weird.</comment></comment>


Depression, Self-Identity and Reality: Living in a Story Created by Facebook - <AUTHOR> https://medium.com/privateid-blog/depression-self-identity-and-reality-living-in-a-fictional-story-created-by-social-media-38f230ab9bf7 <comment><USER2> Interesting article about something we should definitely be having a conversation about.

But i want to point out an anecdote: we have a newborn and we share pics of her privately with fam. All the pics are of her good moments: her first smiles, her just being cute, etc... We don't share pics or videos of her screaming her lungs out, or of her diaper explosions, which intuitively woul be weird.

Reading this article it sounds like we are doing ourselves a disservice by not sharing the bad. Like we're not being honest with ourselves or our family. But are we? isn't the point of memories to preserve the good ones? The printed photo albums my parents have of my childhood don't have any pictures of me having a meltdown. There is a saying among mothers that you forget the pain of childbirth otherwise you'd never have a second child.

I'm sure social media makes things worse by being too present in people's self esteem but I am not sure memories have to preserve the downsides of reality.

<comment><USER3> Interesting point. But I believe the problem relies not in the sharing but in our perception of reality based on what others have shared. I understand that it's an inevitable consequence of the first but that has been the case for centuries. The new problem is that this misperceptions are now on a massive and unprecedented scale and our brain is constantly attacked by this misperceptions.

<comment><AUTHOR> This is exactly right. The scope of social media is greater. It's a status show where your stuff isn't just in your living room but out there for you to "show off" to the world and compare it with others. This ultimately builds our story, our culture, that's when everybody believes a particular story and leads to the madness of crowds.

</comment></comment></comment><comment><USER4> Facebook is playing a very dangerous game by not allowing people full control of their feeds and even algorithmically sorting things. That's different from just "social media", it's a specifically Facebook way of doing things

<comment><AUTHOR> I totally agree. And we're the ones paying the price of their actions.

<comment><USER5> Who is we? I am not paying anything AFAIK. When my girlfriend had problems, she simply stopped using it that much. I myself simply don't subscribe to pseudomotivational bullshit or internet "personalities".

<comment><USER6> When people get stuck in a bubble of fake news and manufactured outrage they tend to vote accordingly, and that does impact you.

<comment><USER7> fake news and manufactured outrage is how our political system has always operated, it's just easier to see the process applying to people you disagree with now

</comment></comment></comment></comment></comment><comment><USER8> I think this type of depression that is supposedly a response to social media is simply a symptom of something that would have manifested itself with or without being plugged in.

One might write a novel on the subject, but humans are easily dissatisfied. We chase after things we think we want, but are really unfulfilling. Many of us lack a true calling. We travel to exotic places and buy expensive things only to realize that the hedonistic treadmill is real.

<comment><AUTHOR> You're right. This isn't new. It started way back with advertising. The problem is the scope it's getting right now--we no longer have an active role on this process.

</comment></comment><comment><USER9> Facebook is the "cigarettes" of our era. It's addictive, and evidence that regular use is detrimental to our well-being is mounting.

Strangely, it's also what we do at parties when we're bored.

</comment><comment><USER10> I'm all for burning Facebook to the ground but the rise in the use of antidepressants started well before modern social media.

It does look associated with alienation, so does travelling alone, but social media use is probably a result of loneliness, an attempt to connect however feeble, not its cause.

<comment><USER11> Interesting thing is that antidepressant use rised despite antidepressant being mostly ineffective and their underlying principle of action being flawed.

This raises the question of why antidepressant use rised this way. Could it be that heavily medicated people are easier to manage and keep under control to prevent them from rebelling against the lives they're forced into by the societal system ? Could it be related to huge profits from pharmaceutical corporations ?

Then again Facebook and the computer as a machine middleman in human interaction is destroying social interaction and society fabric by replacing actual meaningful interaction that builds human ability to be human. Not the single cause but a recent and efficient accelerator of a trend that push us further apart from each other.

I recommend watching the following BBC documentaries by Adam Curtis:

      The Century of the Self[1]
      The Trap: What Happened to Our Dream of Freedom[2]
      All Watched Over by Machines of Loving Grace[3]

      [1]: https://en.wikipedia.org/wiki/The_Century_of_the_Self
      [2]: https://en.wikipedia.org/wiki/The_Trap_(TV_series)
      [3]: https://en.wikipedia.org/wiki/All_Watched_Over_by_Machines_of_Loving_Grace_(TV_series)

<comment><USER12> > antidepressant being mostly ineffective

That needs a great big giant source. Because there are so many peer reviewed studies and meta-studies that show that they are effective.

<comment><USER13> Antidepressants and the Placebo Effect

[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4172306/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4172306/)

</comment></comment></comment></comment><comment><USER14> The ending was perfect. "Be very careful with stories and social media ALSO NOW IM ON YOUTUBE, LIKE AND SUBSCRIBE!"

<comment><AUTHOR> What's wrong with that? I'm creating youtube videos because I know people are there, and the change I'm trying to create is to change people's minds. I can't change the way people consume media, so the only chance we've got is to adapt it and make change happen.

</comment></comment><comment><USER15> I'd like to see studies of how social media affects different personalities types. My intuition is that the negative effect can manifest in different ways. For example a person that has social anxiety in real life, let's say because is unconsciously worried about how to behave socially, maybe because the fear of rejection or being bullied by the group. This person would post probably close to zero, and avoid public comments, while being very anxious while waiting for a private response. I think the effect in this case, is that the person becomes even more isolated and even less social. Because these people can manage still in small groups of 4 to 5 people but I think on average we have 300 facebook "friends", that might not be manageable. And the extroverts would engage reactively only to other extroverts, causing other type of harms. That's my intuition from my direct observations.

<comment><USER16> I would say that most of the Extremely Online people I know who post a lot talk of introversion and social anxiety. These things manifest differently in online spaces.

</comment></comment><comment><USER17> I'm happier and healthier that these conversations are happening; I'm not alone.

Facebook is clearly problematic, and I've been suspicious of the negative effects of Instagram and Hinge (dating app). The former would make me jealous/depressed/frustrated as I compare myself to glimpses of my peers supposedly winning at life. The latter would make me less outgoing in real life, b/c somehow flipping through dating profiles satisfied an underlying desire to meet new people.

I highly recommend Johann Hari's work: "Lost Connections" book [1], Sam Harris and Ezra Klein podcast episodes [2, 3], TED talk [4].

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

[2] [https://samharris.org/podcasts/142-addiction-depression- mean...](https://samharris.org/podcasts/142-addiction-depression-meaningful- life/)

[3] [https://www.stitcher.com/podcast/vox/the-ezra-klein- show/e/5...](https://www.stitcher.com/podcast/vox/the-ezra-klein- show/e/54111398)

[4] [https://www.ted.com/talks/johann_hari_everything_you_think_y...](https://www.ted.com/talks/johann_hari_everything_you_think_you_know_about_addiction_is_wrong?language=en)

<comment><AUTHOR> Thanks for the links!

</comment></comment><comment><USER18> Malaclypse: Everyone is hurting eachother, the planet is rampant with injustices, whole societies plunder groups of their own people, mothers imprison sons, children perish while brothers war.

The Goddess: What is the matter with that, if it's what you want to do?

Malaclypse: But nobody wants it! Everybody hates it!

The Goddess: Oh. Well, then stop.

</comment><comment> Yan-solucracy [https://youtu.be/iGCGhD8i-o4](https://youtu.be/iGCGhD8i-o4)</comment>