Ask HN: Is there anything you would like to learn about design? - <AUTHOR> Hey everyone,
I'm a designer who runs a small studio.
I'm thinking about starting a blog series about "design for non-designers". Would love to hear your thoughts on anything you would like to learn regarding design. This doesn't have to be technical, it can be things like "When to hire a designer", "How to brief designers". I'll do a follow-up if this picks up and I write about it. <comment><USER2> As a Software Developer with no experience in UX and UI I would love to know more about that particular topic. At my current workplace we don't have any designers, so it's my job to make good looking interfaces and I have sometimes trouble to make the right decision about arrangement of input fields etc. Something like the following blog post, is what helps me a lot: [https://goo.gl/aWQSkv](https://goo.gl/aWQSkv)

</comment><comment><USER3> Design is a very broad topic. When I read the title, I thought it meant software system design, whether for backend or front-end or scientific computing or any other domain.

As a person who cares a lot about taking a craftsmanship-first approach to business software, and in fact I believe this for cost-effectiveness and speed-of-delivery reasons such as discussed in _Peopleware_ , my biggest question about design is:

How do you get product managers, business managers and executives to understand that by caring sincerely about first-principles craftsmanship and design and by creating policies in which managers and executives give up their ability to supersede craftsmanship with short-term or reactionary thinking, the business outcomes and customer satisfaction, even in the short term, are likely to be better, and especially compounded over time?

I'm not saying to take an ivory tower approach and try to build a "perfect" system before you ever start testing it in the market or analyzing how customers react to it.

But I am talking about the way that important work for the sake of extensibility and maintainability, or important aesthetic judgments from engineers who have experience with what features succeed in businesses, often get superseded for poorly thought out and reactionary short-term business goals, leading to wasted effort when sprint work gets deprioritized midweek and everyone has to pivot onto poorly articulated new goals all of a sudden (and then it happens again two weeks later, and again, and again).

If management took a constrained design approach, and bought into the idea that engineering aesthetics are a legitimate reason for teams to turn around and say 'no' when they are asked to engage in an obviously dumb pivot that wastes resources on unfinished work and context switches, I believe the evidence (written about widely, e.g. even just start by reading _Peopleware_ ) shows it would lead to better results _even in terms of the outcomes that the managers and executives want._

Overall it makes me feel like other questions about design are just not important unless you work for bosses who happen to "just get it" and think in this quality-oriented way. Otherwise, you can learn all kinds of cool things about design ideas, you can hire great people to advise on prototypes and design approaches, and it all just goes in the trash can because of short term, reactionary management practices.

<comment><AUTHOR> Yup, purposely kept it broad but maybe TOO broad. You bring up a good question and frankly, I don't think theres a single answer to that. Let me think more about it...perhaps it can be broken down into steps.</comment></comment>


Ask HN: Do you still subscribe to any (printed) computing magazines? - vanilla-almond What are the computing magazines you subscribe to?
Or if you used to subscribe to a computer magazine but no longer  do, what was the reason for unsubscribing?
I haven't subscribed to a computing magazine for many, many years. The last magazine I subscribed to was called PC Pro, a UK magazine that's completely fallen off my radar - but is surprisingly still in print (it launched in 1994). It used to be interesting and then at some point the Web made the magazine feel a bit irrelevant (as it did for many magazines).
Despite that, there are still lots of computer magazines in print in the UK, but they tend to focus on a particular niche or app e.g. digital drawing/illustration magazines, Photoshop magazines, Linux, Windows, Mac magazines, beginners magazines etc.
I'd buy individual copies of a magazine but I don't think I would ever subscribe to these.
What is the computing magazine scene like in your country? <comment><AUTHOR> 2600: The Hacker Quarterly[0]. I probably end up reading only about half the article and the quality varies widely. But the magazine covers a wide range of topics and I always learn something or hear about something I wasn't previously familiar with.

[0] [https://www.2600.com/](https://www.2600.com/)

<comment><USER2> So happy to see other 2600 subscribers in here. This is the only print magazine I subscribe to. I also don't read the entire thing but it's always a combination of interesting perspectives, articles by true enthusiasts hacking around for fun/exploration, and nostalgia.

Fun fact: they published an article I wrote on hacking AIM profiles + away messages back when I was in high school.</comment></comment>


Is It Time to Move on from WordPress? - <AUTHOR> https://forestry.io/blog/is-it-time-to-move-on-from-wordpress/ <comment><USER2> No,

I'll give you an simple advice: When 5.0 comes out, wait with updating till at least the first bugfix is released, then install Classic Editor plugin and move on. In three years time check the status of Gutenberg (I'm sure it'll be much better) and then decide whether you get on board or whether you look for another CMS. It's that simple.

And now go read a book or play with children and stop reading about Gutenberg. You'll be better off. Trust me.

</comment><comment><USER3> It's been time to move on from WordPress for several years. The only thing WP had going for it was 1) massive plugin ecosystem, and 2) ease of development.

Gutenberg undermines both those, so now is an even better time to try out a Bolt/Grav/Statamic/etc.

</comment><comment><USER4> What is your view on Typo3? I've been using it for a few months now and although it has some issues (no "themes" or "plugins", only extensions), some confusing ways around setting global constants and templates, and some major inconsistencies surrounding the "proper" "current" way to do things I generally find it a very extensive, powerful and expansive CMS

</comment><comment><USER5> So, you're saying you love WordPress? :)

I hear your complaints, but WordPress is still the best tool for marketers and companies. What we need is something that combines the benefits of WordPress with the benefits of static sites.

Maybe something like Strattic: [https://www.strattic.com](https://www.strattic.com) :)

</comment><comment><USER6> You can always use headless WP and it's REST API endpoints to get static files fast. ;)</comment>


Hong Kong demands Taiwan officials sign 'one China' document for visa renewal - <AUTHOR> https://www.reuters.com/article/us-hongkong-security-taiwan/hong-kong-demands-taiwan-officials-sign-one-china-document-for-visa-renewal-source-says-idUSKCN24I0UM <comment><USER2> The one-China policy is explicitly designed to be ambiguous about who controls this China, which lets the PRC pretend they control Taiwan and Taiwan pretend they control the mainland: [https://en.wikipedia.org/wiki/One- China_policy](https://en.wikipedia.org/wiki/One-China_policy)

So on the face of it, being asked to agree to this should not be objectionable to a Taiwanese official. Is the content of the doc they're being asked to sign available anywhere? Because it sounds like the devil is in the details here.

<comment><USER3> Foreign policy is weird, countries don't give up on even trivial disputes without some concessions. Even seemingly trivial matters can be used for later negotiations. See the current list of US/Canada territorial disputes for an example notably Machias island.

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

</comment></comment><comment><USER4> > The source declined to say exactly how many Taiwan officials were asked to > sign the paper but said its acting chief, Kao Ming-tsun, had returned to the > island late on Thursday after he refused to sign the document upon his visa > renewal.

Good on Kao.

</comment><comment><USER5> There is a reason why these types of governments overtime descend into chaos. It's not the exception it is the rules. The western world is just getting a refresher course on what that looks like.

<comment><USER6> In general, yes. But we haven't before seen what happens when that government has total data and communication control on every individual citizen.

<comment><USER5> Yeh and what the soviets did was different than the Venezuelans. But I typically think life in canonical. We live the same lives with a small tweak to a variable. I dont think this will last in that government is people and people are flawed.

</comment></comment></comment><comment><USER7> Maybe Taiwan should make chinese sign a seperate country document for visa renewals.

</comment><comment><USER8> Seriously china's obsession with Taiwan is absurd, they're a separate country, get the fuck over it.

<comment><USER9> It's a pity somebody like you didn't get to say that to the Union about the Confederacy before the Civil War kicked off.

<comment><USER10> That analogy doesn't work. Is Taiwan separate because it wants to keep abusing human rights and China wants to end those abuses?

No, the answer is no. If anything, your comment would only make sense if the confederates had won and instituted slavery everywhere in America, and taiwan was a small union hold out.

As it stands your comment sounds revisionist and dismissive of what the civil war was about.

</comment></comment></comment><comment><USER11> I would have thought the visa itself is de facto recognition that they are separate countries.</comment>


Show HN: Mariocraft.com - A Community Based SMB - <AUTHOR>

After three years of joyful experiments I'm glad to present you the result of them.
Mariocraft is a SMB web project based solely on HTML5/CSS/JS, without canvas. The whole idea behind it was to create a community in order to build and share new kind of SMB experience. To achieve this goal, I focused most of my efforts on the editor, making it as easy to use for beginners without forgetting about advanced users (shortcuts, etc.)
I tried to create overall design which matches subject of my nostalgia – the 80's. Hence, you'll have the pleasure to encounter less fancy effects and more 8 bits images.
Once you have created a world, it is serialized in a database. At this point you can share your world with anybody just by sending a link.
I must precise that anybody can play without a need to register. Registration is only required to perform editing or creation of a new world.
Here is an example of a world I made for the HN community: http://mariocraft.com/show_hn/s/xumi
and if you want a little challenge, here it is: http://mariocraft.com/nfXdir/s/xumi (beat my time if you dare: 346)
Oh, and please note that for this demo sounds and musics are available only to registered users to spare some bandwidth.
If you are interested in the project you can visit a little blog about it which I started: http://blog.mariocraft.com.
Naturally, all the client side code will soon be available on Github.
Thanks for your time, I hope to see you soon jumping on Goombas with me! <comment><USER2> Looks pretty neat. I'm at work so I only had a few minutes to play around with it. It seems really smooth and fun. I'll bookmark it to play around later. The concept is really cool. I want to see what some people have been able to come up with. Do you have limits on the size of the world people can create?

I wonder why you "brag" that you don't use canvas though. I would think that's the correct way of making a game now-a-days, in lieu of web-gl not being widely supported.

<comment><AUTHOR> Thanks! Not bragging, totally sorry if it looks like I'm! At the very beginning I tried to do something very stupid: create the game using only the DOM. All data in it, no variable, just div, data attributes, classes. It was just to have fun with jQuery limitation (and gosh, I saw them, my Firefox died a lot at this time!). When I started to do more, with a bigger goal, I just kept all I did previously.

I started to do a canvas version for a weekend, but at the end it wasn't worth it, the editor and the game were too far to step back!

Again, thanks for your feedback!

</comment></comment><comment><AUTHOR> And the links: [http://mariocraft.com](http://mariocraft.com) [http://mariocraft.com/show_hn/s/xumi](http://mariocraft.com/show_hn/s/xumi) [http://mariocraft.com/nfXdir/s/xumi](http://mariocraft.com/nfXdir/s/xumi) [http://blog.mariocraft.com](http://blog.mariocraft.com)

Cheers!

</comment><comment><USER3> Cool, glad to see it released!

<comment><AUTHOR> Thanks for the support!

</comment></comment><comment><USER4> Great job there!

<comment><AUTHOR> Thank you!</comment></comment>


Oversight panel is loaded with insiders, critics charge - <AUTHOR> http://www.mcclatchydc.com/2013/10/01/203818/obama-spy-panel-is-loaded-with.html

<comment><USER2> _' At the end of the day, a task force led by Gen. Clapper full of insiders – and not directed to look at the extensive abuse – will never get at the bottom of the unconstitutional spying,'_ said Mark Jaycox, a policy analyst for the Electronic Frontier Foundation, a privacy advocacy group.</comment>


C# 6 exception filters and how they are more than syntactic sugar - <AUTHOR> http://volatileread.com/Wiki/Index?id=1087

<comment><USER2> Short story about exception filters: they're mostly there for crash dumps.

The background is that there is a piece of functionality in Windows previously called Watson, now called Windows Error Reporting. It's that dialog that pops up when an application crashes that asks if you'd like to report the crash to Microsoft. If you do, it sends a crash dump to Microsoft, where it can then be routed to the owner of the application, even if the application isn't actually developed by Microsoft.

So a lot of developers in the know have designed their applications so that unrecoverable errors actually purposely cause the application to crash so that they can get a dump from WER. One of the standard ways of doing this is simply wrapping your code in a catch at the top level and then calling Environment.FailFast to crash the process.

The problem is that sometimes the stack is destroyed in this process. Note that I didn't say the stack trace -- the _stack_ is destroyed. You can see this if you catch and rethrow an exception. The locals from the original exception are gone, so now the dump is far more difficult to debug.

Exception filters let you get around this because they don't actually pop anything, including the exception, from the stack, so if you FailFast, you crash with the full stack of the process.

A number of .NET developers had previously figured this out and were doing a bunch of nasty stuff to get this behavior, like including a VB net module with an exception filter fail-fast, or ildasm/ilasming their assembly. We tried a bunch of these methods on the compiler and they were all a source of many really obnoxious bugs, so eventually another compiler developer and I just said "screw it" and implemented exception filters in C#. All the bugs went away and we lived happily ever after.

Oh, and now exception filters are in the language.

<comment><USER3> Honest question, I'm not familiar with C#: would putting the Log in the finally clause not have the same behaviour? That is,

      bool _operation_X_success = false;
      try {
          ...
          _operation_X_success = true;
      } finally [
          if (!_operation_X_success) {
              Log("blah blah");
          }
      }

<comment><USER4> The finally clause does not have access to the exception details, as it executes regardless of whether there is an exception or not. You can't do "Log(ex);" in the finally block. And you would want to put the exception into the log.

You also need a boolean and a few extra lines of control code as your example shows.

</comment></comment></comment><comment><USER5> So basically, the CLR has ugly behavior on rethrows that can only be sanely described as a bug but it's a common-law feature at this point so we're using an ugly linguistic construct to work around it.

<comment> Lx1oG-AWb6h_ZG0 I'm confused, what is the alternative here? I expect the IDE to stop when an exception is not handled. Should it stop even if it is?

<comment><USER6> Separate exception catching from stack unwinding as in the Lisp condition system, where low-level code decides when to call high-level code and what options to present it, and the high-level code does whatever it wants to do and then picks an option.

That more or less gives you what Microsoft calls 'edit and continue' in every program, where your high-level code decides what code does the edit and decides on how to continue.

Some discussion with real-world usage scenarios at [http://lambda-the- ultimate.org/node/1544](http://lambda-the-ultimate.org/node/1544). Example at [http://c2.com/cgi/wiki?LispRestartExample](http://c2.com/cgi/wiki?LispRestartExample)

</comment></comment></comment><comment><USER7> Horrible looking magic strings there. Isn't it better to just throw typed exceptions? Then you can catch(MyCustomException).

<comment><USER8> Often the only difference between encoding the type in a string, and encoding the type in a full-blown typed Exception is perhaps 'Find All References'. Typing the Exception can be a waste of typing and unnecessary cruft. More "structure" is not always better.

If there's some unique data which must be carried back up the stack with the Exception it's a different story.

</comment></comment><comment><USER9> Exception filters seem to be imitated from Win32 structured exception handling (SEH).

See "Example 3" here:

[https://msdn.microsoft.com/en- us/library/windows/desktop/ms6...](https://msdn.microsoft.com/en- us/library/windows/desktop/ms681409%28v=vs.85%29.aspx)

in particular, how FilterFunction is used.

</comment><comment><USER10> In Python, you can simply type `raise` to re-raise the exception you caught, preserving the stack trace.

<comment><USER11> In C#, throw also re-throws and preserves the stack trace in the exception object. What the article points out that it doesn't do is preserve the full call stack and method state in the Visual Studio debugger, and that only if you explicitly turn off break on throw, leaving it in break on throwing uncaught exceptions instead.

In fact, changing state in an exception filter method that always returns false sounds terrible to me. What if you actually need to do something with that exception, or to clean up state? What if the Log method does something wrong that you need to debug? Exception filters are handy, but I hope to never see them used like that.

Now the new null propagation operator, on the other hand, get me some of that, and I hope to see it used everywhere.

</comment></comment><comment><USER12> catch if(Log())

Doesn't look great. It's not easy to understand what this code does. I'd better rewrite it this way:

catch if(IsExceptionLogged())

So we can see here "Is" keyword, it gives us a hint that this function returns boolean. We can see the main operation, and it's more human-readable. And we can easily understand what do we mean here. Because in case of Log() we have to think - should we catch if it was logged or if it was not logged.

Maybe it is useful in some cases. But unfortunately the code quality doesn't depend on the tools one uses, and it's nothing about language features. 99% of developers don't know how to use C# 1.0. There are so still a lot for them to learn.

Maybe even

catch if(IsExceptionHandled())

is better. Because I don't see any reasons why should we catch exceptions if it was logged. Yep, it was logged - is it a good decision factor to catch? Logging often can be disabled in configuration.

<comment><USER13> Calling the Log function there is a hack to work around the stack being unwound inside catch blocks, it isn't being used to control whether the catch block is run based on whether logging is turned on or not, so those suggested alternative names seem confusing.

"IsExceptionLogged" implies that the function is being called for its return value, to work out whether the exception is being looked or not, but in this usecase the Log function is being called for its side affects, and the return value is a boolean simply to appease the type checker.</comment></comment>


Scala _ [underscore] magic - <AUTHOR> http://ananthakumaran.in/2010/03/29/scala-underscore-magic.html <comment><USER2> I didn't know the last one. Nevertheless I find the mix of functions with no arguments, function values and optionnal parenthesis quite confusing syntax wise.

</comment><comment><USER3> "_" getting lots of airtime

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

<comment><USER4> So _ in Scala is like $_ in Perl?

<comment><USER3> Hmm, can't remember "$_", but for scala I have a lot of bookmarks

<http://lambda-the-ultimate.org/node/2808#comment-41717>

 _main complaint about syntax: underscore as a wildcard at both the term and type level plus as a way to coerce a method into a first class function._

<http://okmij.org/ftp/gengo/index.html#Scala-trace>

 _Montagovian semantics_

<http://www.slideshare.net/normation/scala-dreaded>

[http://blog.yuvimasory.com/2010/06/uses-of-underscore-in- sca...](http://blog.yuvimasory.com/2010/06/uses-of-underscore-in-scala.html)

<http://permalink.gmane.org/gmane.comp.lang.scala.user/28031>

[http://agileskills2.org/blog/2011/05/01/revealing-the- scala-...](http://agileskills2.org/blog/2011/05/01/revealing-the-scala- magicians-code-expression/)</comment></comment></comment>


Cuban Cartoonist Fled from Castro and Created 'Spy vs. Spy' - <AUTHOR> http://www.atlasobscura.com/articles/meet-the-cuban-expatriate-who-created-spy-vs-spy <comment><USER2> > Unable to continue finding work, and fearing for the safety of his fellow El > Mundo workers, Prohías, unable to speak a word of English, headed for New > York.

It's important to note, for those whose only knowledge of the Cuban Revolution is the iconic Che Guevara portrait, that 'fearing for their safety' didn't mean Prohias thought his co-workers might be beaten up: it meant that he was worried that they (and possibly their families) might be shot.

<comment><USER3> Yeah I've read Che wasn't a fan of musicians and artists.

So many college students don't believe it.

And I guess the suits the two spies wears are suits popular in Cuba or the time, it explains a lot.

</comment></comment><comment><USER4> Mad is wonderful.. Tom Richmond is one I learn to draw [0] Jack Hamm has the best series, I think, to learn. [0] [http://www.tomrichmond.com/](http://www.tomrichmond.com/)

<comment><USER5> I was most impressed by Mort Drucker's ability to make an instantly- recognisable caricature with only a couple of lines in a small space. There are actors in the background of movies whose names I've never known, but I recognise in the background of his drawings.

<comment><USER6> Yeah I agree that Mort Drucker was fantastic, I also had a fondness for the more wacky style of Jack Davies and extremely wacky style of Don Martin, oh and Sergio Aragones, damn they had so many great artists on that magazine.

</comment></comment></comment><comment><USER7> Growing up during the 80s in Sweden, I, as many orthers, played the game on the Commodore 64 a lot.

Until now I had no idea it was a comic strip originally :-)

<comment><USER8> Until now I had no idea there was a game. :)

This comic strip is the second thing I visualize when I think of MAD magazine.

The first is the drawing of Alfred Newman's face.

It is interesting how different generations are seemingly cut off from different sets of information about the same subject.

<comment><USER9> When I'm on HN, I think of Donald Knuth: [http://www.webofstories.com/people/donald.knuth/8?o=SH](http://www.webofstories.com/people/donald.knuth/8?o=SH)

</comment></comment></comment><comment><USER10> Man I loved Spy vs. Spy. Anyone remember the official board game? [https://boardgamegeek.com/boardgame/1686/spy-vs- spy](https://boardgamegeek.com/boardgame/1686/spy-vs-spy)

</comment><comment><USER11> My feeling is that Spy vs Spy got their popularity rather through the games than through the comic strips in Mad. I loved the games on the 8- and 16-bit home computer generation and with another human player they were a blast. But I wasn't really that excited about the comic strips. They had their distinct style which was definitely nice but I preferred stories from other cartoonists in Mad.

<comment><USER12> I'm confused. You think that a comic strip that's been popular since the '60s owes it to a handful of video games made in the mid-'80s?

<comment><USER11> Because of the huge reach of Mad they were popular before but they felt more like mediocre filler content within Mad. Yes the style was distinct but the plot was always the same and predictable. With the games they found their real determination: the visual style, the always recurring topic of the spies tricking each one into a trap--the games were the perfect media for Spy vs Spy, way better than the strips.

And it was more than a handful of games. Spy vs Spy was a strong merchandise running over many years with an unique and innovative gameplay then for many platforms.

<comment><USER13> > they felt more like mediocre filler content ... the style was distinct but > the plot was always the same and predictable.

That describes almost any comic that has been going for over 20 years. That doesn't make it bad, just played out. That it lasted decades at all indicates something good about it.</comment></comment></comment></comment>


My chat bot found my wallet - <AUTHOR> https://uxdesign.cc/my-chat-bot-found-my-wallet-f43c402acce3#.y1cs0mu7n <comment><USER2> How did the bot know there was a wallet that needed finding?</comment>


Abusing the C Compiler - <AUTHOR> http://wingolog.org/archives/2010/09/07/abusing-the-c-compiler

<comment><USER2> Hardly abusing or original, generating small chunks of code and invoking C compiler on each of these is how GNU autoconf works (and the reason it works slow, too!)

<comment><AUTHOR> An interesting parallel. I guess the novelty is that there is no intermediate expanded file -- no config.h, etc.

<comment><USER3> I don't see a single sentence in the article that implies this.

<comment><AUTHOR> Not sure what you mean here; the autoconf analogy came from the grandparent.

If you are under the impression that an intermediate expanded file is produced, then you misunderstand how Lisp macros work.

<comment><USER3> I'd like to point you to the 2008 paper by Felix Klock [1], or perhaps the more easily digestible presentation [2], where you will find (slide 39-47) the description of the inner workings of procedural macros like define-c-info, where it's explicitly stated that an intermediate C program is generated, compiled & executed to get the desired result(s).

This is not groundbreaking per se, but it is certainly a smart compile-time tactic of interfacing with a C ABI.

[1] [http://www.ccs.neu.edu/home/pnkfelix/Published/klock-ffi- sch...](http://www.ccs.neu.edu/home/pnkfelix/Published/klock-ffi- schemeworkshop-2008.pdf) [2] [http://www.ccs.neu.edu/home/pnkfelix/Published/klock-ffi- sch...](http://www.ccs.neu.edu/home/pnkfelix/Published/klock-ffi- schemeworkshop-2008-slides.pdf)

<comment><AUTHOR> I agree, that is a great paper. It's the one I linked to in my article :)

<comment><USER3> I was specifically referring to the usage of intermediate files...I think I assumed too much, since obviously you must have a very different view of what consists an intermediate file than I do. Would you care to elaborate?

<comment><AUTHOR> I don't want to get too bogged down here, but sure:

When you use autoconf, you typically run configure, then you're left with a config.h, which then parameterizes later builds.

On the other hand, when you evaluate the the definition of dirent->name, no intermediate file is left behind.

Of course in both cases you make temporary C files, but they are ephemeral. The difference is that in the first case you are generating files for inclusion in a later phase, and in the second you are effectively extending your scheme compiler with a c compiler.

The surprising about this code from a Scheme programmer's POV is that usually macros are about rewriting Scheme source using Scheme. In this case the macro generates C source, forks to compile and run it, and munges the result into the resulting text.

But sure, I can see that from a certain point of view, autoconf and scheme macros can do similar things :)

<comment><USER3> I see your point, but the fact remains that the underlying technique is just the same. The difference on whether intermediate files are used further down the build process seems somewhat irrelevant.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER4> <http://perldoc.perl.org/pstruct.html> takes this a bit further (but less portably), and compiles the code to assembly and parses out the debug records to find the information about the structures.

</comment><comment><USER5> Very cute; very problematical. C struct offsets depend entirely on the model, packing, target etc. How can this be controlled?

<comment><USER6> You include stddef.h and use offsetof().

<comment><USER5> Unless you're compiling for another platform, or a different code model than the default etc.

<comment><USER7> In the first case, you are likely going to have a libc and headers from the target platform sitting around so that you can link.

<comment><USER5> May take switches on the compiler command line.

Further, packing can depend upon the pragma in force when the header file is included. How to set up that environment?

<comment><AUTHOR> You know, the whole dynamic FFI world is very much seatbelts-off, which is initially quite disconcerting. Usually I rely on my distro to ensure compatibility, but once you start saying "this syscall gives me a pointer to memory which should be interpreted as two ints, one char, and a float, packed conventionally" you begin to realize what exactly are the interfaces between various bits on your system. For better and for worse of course.

What Guile has now is the "list-all-members-in-the-struct" approach that Klock discourages. It's the difference between API and ABI compatibility. I'd like to figure out how to do the former.

A</comment></comment></comment></comment></comment></comment>


Ask HN: Most unobtrusive time tracker? - <AUTHOR>

I want to start seriously measuring my productivity, or time on task. I'm running OSX. I have an iPod Touch and an Android on my desk as well. Between those platforms, what is the most unobtrusive time tracking application? (e.g. hit button start work, take a break hit button to pause time etc) In addition to unobtrusiveness, it would also be useful if it kept a tagged/labeled history of the time for me (otherwise, I suppose a simple stop watch would suffice).<p>Any suggestions? <comment><USER2> rescuetime, <http://www.rescuetime.com/>

</comment><comment><USER3> Mom.</comment>


Rails integration tests: handle flakiness caused by production bugs - <AUTHOR> https://medium.com/doctolib/flaky-tests-caused-by-a-production-bug-fix-the-flakiness-not-the-bug-99cc319681c1 <comment><USER2> Note to HN: s/falkiness/flakyness/ in the title

</comment><comment><AUTHOR> indeed, thanks for the report.</comment>


Ask HN: What is your .emacs file like? - <AUTHOR>

What are some good ways to get work done using Emacs? Ideally I would like to minimize the code I actually write as much as possible. How do you make emacs automate your work? <comment><USER2> Don't know where I found this, but I like this little gem:

      (add-hook 'after-save-hook
        'executable-make-buffer-file-executable-if-script-p)

It automatically makes files executable that look like they are scripts. (Start with #!/some/interpreter)

<comment><USER3> That's a really good idea.

Now that you said that, I think I'll build some templates for commonly added files (like importing Django or GAE modules when the file is called "models.py").

</comment></comment><comment><USER4>
      ;; Shows last used files in menu on emacs startup
      (require 'recentf)
      (recentf-mode 1)
      (setq recentf-max-menu-items 25)
      (global-set-key "\C-x\ \C-r" 'recentf-open-files)

      ;; Improves buffer names (gets rid of <2> <3> etc names when filenames
      ;; are identical).
      (require 'uniquify)

      ;; Copies from line above with meta-n, useful for some programming
      ;; languages that force such structures.
      (fset 'prevlinecolcopy
         [up ?\C-  right ?\M-w left down ?\C-y])
      (global-set-key (kbd "M-n") 'prevlinecolcopy)

</comment><comment><USER2> What I really love about emacs is that it is so easy to move keys around and to assign function to keys. For example, I find this really useful on my MacBook Air keyboard:

      ;; Map option-up/down do page-up/down
      (global-set-key (kbd "ESC <up>") 'scroll-down)
      (global-set-key (kbd "ESC <down>") 'scroll-up)

Now option up/down do paging. Win.

(Probably already default in Aquamacs, but I prefer to use the 'real' Emacs.app)

</comment><comment><USER5> [https://github.com/duncan-bayne/ubuntu- setup/blob/master/con...](https://github.com/duncan-bayne/ubuntu- setup/blob/master/conf/emacs/emacs)

Nothing really special: adds a bunch of modes that I use, tweaks clipboard behaviour & appearance, displays column data & full pathname, plus opens & renames a bunch of terminals.

Oh yeah, there's a VB.NET mode in there too. That was fun.

</comment><comment><USER6> Here is mine. Not too much in it. The main thing was get rid of all those annoying *~ files

(setq-default truncate-lines t) (setq truncate-partial-width-windows nil) ;; for vertically-split windows (setq inhibit-startup-message t) (setq make- backup-files nil) ; Don't want any backup files (setq auto-save-list-file-name nil) ; Don't want any .saves files (setq-default transient-mark-mode t)

</comment><comment><USER3> I used to have yasnippet with some custom snippets, but then I kept using the custom o ones less and less to the point my last install uses the stock yasnippet package from the distro. I intend to rethink my custom, snippets and redeploy the more interesting ones.

That and loading extras and binding keys in a comfortable way.

</comment><comment><USER7> Not really a tip for your dotfile, but learn about all of Emacs's autocompletion variations. There are something like five of them, ranging from basic M-/ to CEDET's context-and-semantics-sensitive code completion tool.</comment>


Build a supercomputer yourself - <AUTHOR> http://www.webstreet.com/super_computer.htm

<comment><USER2> >This article was not written by Web Street. One of our customers found it in a news room. We tested it and found it credible. We now wish to share it with you. We take no responsibility, credit, fee or referral from this article.

They have ads on it and don't provide any credit to whoever actually wrote or originally posted it.

<comment><AUTHOR> They sure have found a way to use this without credit to the originators. I thought it would be helpful thoough!</comment></comment>


Show HN: Deck of Cards – A playing card API - <AUTHOR> http://deckofcardsapi.com

<comment><USER2> FYI You probably don't want upload your secret keys in plaintext to GitHub: [https://github.com/crobertsbmw/deckofcards/blob/687881c8408a...](https://github.com/crobertsbmw/deckofcards/blob/687881c8408aedbe78979205ac9a4fd71b37ec9e/spades/settings.py#L13)

<comment><USER3> Note also: The github event feed appears to be public, so people have often had bots listen automatically for keys for exploitation. I recall reading (earlier this year?) about how someone had some $Ludicrous AWS bills because of this.

<comment><AUTHOR> Yeah, I noticed that as soon as I uploaded it. So I changed the keys that are in production from that which is on github.

</comment></comment></comment><comment><USER4> Cool idea. Some small notes:

> After two weeks, if actions have been made on the deck then we throw it > away.

I presume this should say if NO actions have been made. Sending the card image URL is wasteful considering the address is deterministic. Also, you will want to implement a true random shuffle if you want anybody to use this API seriously (see [https://www.random.org/](https://www.random.org/)).

This is a really interesting project. Good luck!

<comment><AUTHOR> True Random Shuffle is an interesting concept. Is shuffling a deck of cards truly random? What if I tried to simulate the event of shuffling. e.g. split the deck (list) into two, then choose 1-5 cards at a time from each half of the deck to rejoin the cards back into one. Then repeat.

<comment><USER4> There is a good discussion here ([https://news.ycombinator.com/item?id=7207851](https://news.ycombinator.com/item?id=7207851)) about random shuffling in the context of online poker. The specifics of your shuffle algorithm don't really matter if your numbers aren't truly random.

</comment></comment></comment><comment><USER5> Neat! The semi-persistant decks are a nice feature and will no doubt prove useful for any form of long-lasting multiplayer games. My query though, why send the image url by default? it seems like an overhead that can be done without. How random are the results likely to be?

<comment><USER6> I think this is a good idea. There can be a change in the structure of where things are hosted (think moving the images to a CDN as traffic increases) which won't require a new client to find the optimized images.</comment></comment>


The Internet of Beefs - <AUTHOR> https://www.ribbonfarm.com/2020/01/16/the-internet-of-beefs/ <comment><USER3> This is an excellent analysis of the state of the modern internet, though I don't entirely agree with his diagnosis of the cause; I think it's more down to two main things:

1\. We are all, at heart, covetous xenophobic apes, and we've been doing the same basic thing (arbitrarily define an in-group and an out-group and proceed to wage total war on the out-group) since before we were even human. This is just the latest iteration of the thing we've always done.

2\. For more than a decade now, people have been spending fortunes building platforms and algorithms that rely on ever-increasing user 'engagement', often without really knowing what that is. As it turns out, conflict is the most engaging kind of engagement. Twitter especially is a machine for conflict - <USER2> funnels anger-inducing information to the user and makes it trivial to strike back at the source of the anger. I really don't think anybody did this on purpose, but it's what we ended up with.

<comment><USER4> >conflict is the most engaging kind of engagement

This doesn't feel right. I ask myself, do I go places to look for people to fight with? Emphatically no. Do you? Probably not. I just read this great|hateful book|movie|thing. I want to talk about it with people who have experienced this book|movie|thing, would be great if they saw it the way I did, also great if they disagreed but we could discuss it with a shared language and experience. I feel we are too far apart and too lonesome to go around picking fight, do picking fights form groups? I don't usually engage because 1) strangers on the Internet mean little to me; 2) I think I hold an unpopular opinion; 3) I'm not driven to articulate every thought I have. Conflict drives a good story, I think that's true in a narrative sense, but I don't think it's true we humans go looking for it. I want to believe we are more cooperative creature than a belligerent one. The whole Twitter/Facebook "like" culture is a testament, we want to belong.

<comment><USER5> >> _conflict is the most engaging kind of engagement_

> _do I go places to look for people to fight with? Emphatically no. Do you? > Probably not._

People seem to love information that ridicules and hates on "the other side" (e.g. in politics). They like seeing the other side being put down, and the feeling of superiority they can get from that.

<comment><USER6> I've noticed this pattern emerge more than ever on the front page of reddit. The vast majority of generally public posts tend to be deeply negative, for example, from right now:

1\. Joe Biden calls game developers "little creeps" who make titles that "teach you how to kill" 3\. Father tackles son's opponent after illegal move at high school wrestling match 4\. Jaylen Brown murders LeBron 5\. Puerto Rico fires two more officials after Hurricane Maria aid found unused ... 6\. This is how a grown woman decided to act toward someone peacefully protesting a fur store 8\. Joe Biden calls game developers "little creeps" who make titles that "teach you how to kill" 9\. Breaktester gets what he deserves (/r/instantkarma) 11\. Just another day in Texas (/r/idiotsincars)

More than half of the front page is about the "other side" losing, and this is on one of the most browsed websites on the Internet.

</comment></comment></comment></comment><comment><USER7> This article resonates with me and my experiences online to a startling degree. Specifically:

"We are not beefing endlessly because we do not desire peace or because we do not know how to engineer peace. We are beefing because we no longer know who we are, each of us individually, and collectively as a species."

I think we are seeing a genuine lack of strong family, social, and organizational ties among most people, myself (sadly) included. I don't think I or any of my peers fully grasp what we're missing and how isolated we truly are. I think we as a cohort had very good reasons for participating in that change, such as me (an LGBT person) leaving the Catholic church I was raised in rather than bury that other part of myself to fit in. The problem is that I replaced it with nothing, and I think the same pattern has repeated across many other people and many other traditions. The temptation is to suggest MeetUps and other things built to connect people, but those suggested replacements don't come with the same assumption of trust built in like many traditional organizational and family ties do.

<comment><USER8> Trust is earned. It's not something you can assume.

That "assumption of trust" you speak of included an assumption that either you weren't LGBT or you would bury it your entire life for the comfort of the larger community.

Matthew 10:34-36

 _34 "Do not suppose that I have come to bring peace to the earth. I did not come to bring peace, but a sword. 35For I have come to turn "'a man against his father, a daughter against her mother, a daughter-in-law against her mother-in-law- 36a man's enemies will be the members of his own household.'_

I would say you did the actual Christian thing by leaving. But I'm not Christian, so I'm sure many will find that assertion offensive.

Community cannot be founded upon an assumption that some people will bury an important part of themselves like that. That's a foundation of sand and will not last.

We are seeing such things dissolve because we have other options these days. In the past, people often grudgingly tolerated it because they had no place to go, not because being part of some larger community was some wonderfully fulfilling experience most of the time.

If the world is seeing a loss of identity, it is because we are being freed from the shackles of our old identity. It's normal for there to be a transition period where no one knows what's what.

That's not a problem. It's just a stage in a process.

It's only a problem if we get stuck here and fail to establish a new identity. Then the great experiment fails, the opportunity to become something better is lost and we likely see things crash and burn so the world can sort of return to it's old ways that kind of worked.

<comment><USER9> > That "assumption of trust" you speak of included an assumption that either > you weren't LGBT or you would bury it your entire life for the comfort of > the larger community.

The LGBT community comes with it's own shackles. They assume the only natural thing is for someone to structure their whole identity and lives around what might just be a developmental phase of their youth. I'm certainly glad that type of thinking wasn't promoted when I was growing up.

<comment><USER8> I'm not heterosexual. The LGBT community has made it crystal clear they want nothing whatsoever to do with me.

I don't speak for that community. My remark in no way suggests that their agenda is somehow superior to that of the Catholic Church.

<comment><USER9> > I'm not heterosexual. The LGBT community has made it crystal clear they want > nothing whatsoever to do with me.

Care to expand on your experience?

<comment><USER8> Nope.

</comment></comment></comment></comment></comment></comment><comment><USER10> This framework helps me understand why prominent thinkers on Twitter get so much content-free hate in their replies. Most replies aren't even disagreements with the thing they're replying to. They're missiles in a beef war, against some perceived elite group. So it's not necessary to understand the claim and make a detailed refutation. They can just reply with a generic personal attack, and that keeps the culture war going. And generic personal attacks get multiplied by the crowd more than specific nuanced ones, because they're easy to imitate.

Also:

> You can only predict it by trying to understand it as the deliberate > perpetuation of a culture of conflict by those with an interest in keeping > it alive.

ie, the warriors are playing an infinite game that they enjoy. You can't win by out-arguing them. The only way to win is not to play.

<comment><USER11> "missiles in a beef war" I love this phrase.

</comment></comment><comment><USER12> I've always thought anonymous imageboards were excellent training grounds for how to deal with all of this. When there's no upvoting or ability to filter people by name, you have to learn how to deal with people who often truly are only posting to make you mad. There are two good responses, both of which are extremely difficult if you have no practice: ignoring it; engaging sincerely and with the assumption that the other person is doing the same. If you persist with the first they'll eventually go and bother someone else, but this is doubly hard because it requires everyone to ignore them, and that only really happens when the bait has grown stale. The second often results in them switching from the troll persona to actual sincerity, but it requires several back and forths of responding with goodwill to bile, and I think it's even harder to accomplish in forums where people have tied their name to their opinions.

<comment><USER13> It's a good training ground to learn to control yourself for sure. But as soon as there's filtering and up- / down-voting, you'll quickly learn that none of that matters.

I tried to engage in some Reddit discussions regarding politics in my country, and as soon as you don't follow the general sentiment, you get downvoted and eventually banned. Even if you're absolutely sincere and have good arguments as to why you think like this, you'll just get labelled a troll for disagreeing with something. While it's very frustrating, it's also truly scary, they just end up creating their own echo chambers, only allowing people who agree with them to post or comment. Eventually this moves on to the real world where they'll assume everyone has the same opinion because they've been living in an echo chamber.

<comment><USER14> It's an odd world where 4chan back in its worst days had a better community than fb, Twitter or reddit do today. And that's with the gore and other unmentionables.

</comment></comment></comment><comment><USER15> HN is pretty good at moderating discussions. Which is the main reason I come here. Still, I've seen plenty of beef only thinking here and I too have been guilty at times.

It can be quite frustrating when you make an observation about someone's comment only to have them automatically assume you were in disagreement. It's good to assume a generous interpretation. Since tone is so hard to gauge on the Internet, discussions quickly devolve otherwise.

<comment><USER16> HN is now my last un-deleted social media account... and even here I end up removing 50% of my posts, and regretting another 30-odd% after realizing they were low-value emotional negative "beef" post.

Why is "if you can't say something nice, don't say anything at all" so hard in practice? Why do I just NEED to throw in my 2 cents?!

<comment><USER17> The vast majority of people do follow that rule, but there are _so_ many people reading these comments. If even 1% of them have a moment of weakness (or are kinda dickish personalities), they'll drown out the nice comments.

<comment><USER18> That is also true offline. Does Debbie downer ring a bell, for example?

</comment></comment></comment></comment><comment><USER19> At some point people will realize that Twitter doesn't matter. The sooner that happens the better.

For whatever reason, our elites and media are convinced Twitter is _very important_. Nothing is worse than getting criticized by the peanut gallery. Twitter can end careers, cancel television shows, bring down elected officials.

That power quickly turned from, "complain about lost baggage on Twitter and get an airline ticket voucher for $50" to "I demand anyone I disagree with be exiled to Elba."

The truth is Twitter already doesn't matter, like, _at all_ to almost everyone. Ask your aunt or brother-in-law about what's trending on Twitter and you'll get a blank stare. But journalists and elites continue to be terrified of, and enthralled by Twitter. They've collectively forgotten that "sticks and stones may break my bones..."

<comment><USER20> I think you're taking for granted how twitter is used as a global cafe by communities that would otherwise be disjointed and isolated. For every controversial tweet or tweet of drama, theres thousands of enriching conversations happening that could otherwise not occur.

I think it's ironic that negative takes on the twitter model tend to be as shallow and polarizing as they claim the platform to be. As for me, I think there's some worth to it that could be taken even further if decentralized analogues become widely popular.

<comment><USER21> >>For every controversial tweet or tweet of drama, theres thousands of enriching conversations happening that could otherwise not occur.

I don't believe that this actually happens. Definitely not on twitter anyway.

<comment><USER22> >>For every controversial tweet or tweet of drama, theres thousands of enriching conversations happening that could otherwise not occur.

> I don't believe that this actually happens. Definitely not on twitter > anyway.

I believe that the GP has it reversed. I'd rephrase it in the other sense (what I see as reality) as:

"For every enriching conversation happening on Twitter, there are millions of controversial tweets or tweets of drama that occur and would anyway occur."

</comment></comment></comment></comment><comment><USER23> Throw in Nadia Eghbal's Tyranny of Ideas ([https://nadiaeghbal.com/ideas](https://nadiaeghbal.com/ideas)) and you'll realize it's not humans beefing, but ideas. Posting is praxis, and the internet is a series of tube battlegrounds for the best ideas.

I'm a multitour veteran of the scarred hellscape where modern and historic ideas struggle - 4chan, TEDx conferences, irc, VC conference rooms, local candidate door-knocking campaigns, reddit, and of course twitter. The brawling is better there than in academic journals and library shelves. Today I proudly do my duty fighting off the bad ideas with the Good Ones.

Jokes aside, this is a horribly lame and out of touch take, saying that people's righteous anger is in fact not because of their legit complaints about society, but because _they just want to argue_. It's a both sides false equivalence, equal to PG implying he's better off being an "accidental centrist", whatever the hell that means.

<comment><USER24> Sometimes I love arguing just to argue. I wonder how many other people there are like me?

<comment><USER25> In my own experience:

1\. everyone starts out like that

2\. some realize that and (sometimes having thought of it for a while) make a decision to persist/stop that

3\. some years have passed by since, and now you can't get that reaction out of me, only understanding

</comment></comment></comment><comment><USER26> Is it though? or is it the disenfranchised finally are able to have their opinion heard? We also get to see the emperors now and we realise they have no clothes - they're just like us.

My hope is this is a brief period of education of everyone to see each others opinions and something better can come of it. As always there are those at work trying to maintain their positions.

For myself I have learnt a lot about the belief systems of other people from the internet. I can only hope others are doing the same, we all have to get along.

Edit: I think of it as the great flattening, to coin a term, previous societies were hierarchical with people in charge handing down dogma. There were some dissenters - they were called antisocial at one stage. Now everyone is at the same level, I've had conversations on forums with people who invented tech, wrote books I've read, I could if I was so inclined seek out other fields - everything is open now. This is bound to cause some 'beefing'. End of beef.

<comment><USER27> I don't think the posted conception of the culture war as a "holding pattern of conflict" is incompatible with the idea that it's also a legitimate outpouring of the voice of the disenfranchised.

Some might say that we've become stuck in that outpouring, and enamoured with conflict rather than any kind of coherent vision for how to be.

<comment><USER26> Could be, maybe these conflicts are fundamental to being human and no resolution is possible? This is the new normal?

</comment></comment></comment><comment><USER8> I'm not going to be able to wade through this entire article. If this is at all an accurate characterization of Twitter, that might explain why I have so few followers.

I don't engage in this stuff on Twitter. I've overall had fairly positive experiences on Twitter. I continue to try to figure out how to connect positively on Twitter and on the internet generally.

I don't agree that the only antidote is to go seek out walled gardens and the like. The real solution is to be the change you want to see.

Don't go looking for beefs.

Try to bring solutions, not complaints.

Try to have some empathy for people and assume "They must be having a bad day" or "Wow, they must have a lot of baggage on this topic" and politely decline to get into some shitshow with them.

Remember that having empathy for others (instead of just assuming everyone is simply intentionally being an asshole) doesn't mean being a doormat. Respect yourself. Don't kiss their ass to mollify them or something. Instead, just shut up and quit putting out the fire with gasoline.

<comment><USER28> > Don't go looking for beefs.

You can't even post a question on StackOverflow without creating a beef (e.g. "Why would you want to do that?")

</comment></comment><comment><USER29> Q: How would one distinguish between IoB culture and a culture in which there is a meaningful conflict between ideas and values?

<comment><USER30> The resolution of that conflict. The author posits that the IoB tends to maximize conflict and avoid resolution.

<comment><USER29> Observing what avenues for possible resolution exist seems like a good place to start and a productive line to pursue.

But it seems to me that there are some conflicts with deeper roots than IoB culture that have gone on much longer than the internet has existed: whether or not people should be able to be understood as property, whether sacred texts are meant to be understood in the same way as scientific descriptions when it comes to understanding cosmology, to what extent and where institutions like markets, or states, or churches should shape our lives.

Violence has been employed and even full-fledged war has emerged over questions like those, so apparently better avenues for resolution were unavailable.

Does that mean those things were also based in beef-first thinking? If so, was everyone on each side of those conflicts equally guilty of beef-first thinking, and that's how war happened?

<comment><USER30> If the architects of these conflicts behave in ways that maximize the duration of the conflicts and minimize the chance of resolution, then that sounds like beef-first thinking.

If it's just two (or n-many) sides caught in an asymmetric struggle where they both want some sort of resolution and neither one has the resources to get there, then I see that as a stalemate.

Most wars to me don't seem to be beef-first because they resolve eventually. Even when they go on for a while, it's usually because one or more faction/s isn't able to end it and the other/s aren't okay with the costs of ending it. If a war could be ended at a reasonable cost to someone, and they decide they would rather have it continue indefinitely, then that's closer to beef-first thinking.

<comment><USER29> OK, so between this exchange and a revisit of the article, maybe I think I see:

Conflict itself is not the signal of beef-first culture. Pitchforks aren't either, nor being able to pick out Mooks and Knights. All of those things can be done in the service of values.

Beef-first thinking involves personal/tribal status as first above all other values, perhaps even practically driving out all other values.

And personal/tribal status aren't really inherent values, they really only exist in contrast to some Other. Which means they're inherently tied to actively sustaining conflict.

</comment></comment></comment></comment></comment><comment><USER31> Venkat is enjoyable as always, but the central conceit of this essay is an insult to crash-only programming.

The crash-only approach to feuding online is to _stop responding when someone beefs with you_. Don't try to mollify, don't flame back, don't explain yourself, just: close the tab, do something else, and reboot Twitter later, in a known-good state.

</comment><comment><USER32> I think this article captures the Zeitgeist of this internet era perfectly.

I'm a bit surprised at the hasty conclusion though:

> The conclusion is inescapable: the IoB will shut down, and give way to > something better, only when we know who we want to be — individually and > collectively — when the beefing stops, and regenerate into that form. Only > that will allow history to be rebooted, and time to be restarted.

The IoB is driven by human nature. It's demise would only lead to beefing in some other arena that we cannot postulate yet...

</comment><comment><USER33> I'm not quite sure what to make of this, but I think I agree with this conclusion:

> We are not beefing endlessly because we do not desire peace or because we do > not know how to engineer peace. We are beefing because we no longer know who > we are, each of us individually, and collectively as a species. Knight and > mook alike are faced with the terrifying possibility that if there is no > history in the future, there is nobody in particular to be once the beefing > stops.

> And the only way to reboot history is to figure out new beings to be. > Because that's ultimately what beefing is about: a way to avoid being, > without allowing time itself to end.

What this era calls for is us to discover new ways of being human. It sounds grandiose, but I think that's where we are.

<comment><USER25> I have to say that in my own experience nothing foretells me of an end to IoB. Which is just a new conceptualization of "Eternal September", as far as I understand.

Let me contrast my own world-view perturbations with what we see attributed to "meeks and knights" in the article:

I remember my internal world-view and thinking and feeling from about the age of 4. I am 36 now.

So most people don't.

I was either raised to understand or had that built-in that I was bread and born into a world that is set up by multiple interested parties, and I had a place in the machine. Or had to build my own processes that mined the value- system and become a part of that machine.

Most people don't. Many think they're special. Many feel entitled.

I did not easily get on with people at first, but did make an effort to understand what Russian is meant to imply, Jew meant to imply, Boy meant to imply; in terms of where my place is and who my enemies are and what I am supposed to think and do about them.

Most people pick that up from their surroundings (not being ADD like me), take it in as a given, and embody it throughout and henceforth. Which is a point that I needed to research to understand.

"Most people" is ME, at one point in time or another. That is, people change, people react before assessing their position, people get represented by something or someone for the purpose of this fight or that fight. I learned that all the human "evil" and the moral good could be teased out of my own life experience, given enough time and argumentative power. Any action or inaction or inattention can reflect on me, put me in that "most people" category for a moment.

That makes me an individual, and a part of a larger humanity.

But no associations exist in-between. No shared interest that persists. No values that don't change, no long game that plays out this way or that.

I have no permanent in-group, no close associates with a shared vision, not even some permanent foe group that is always opposed to the way I think or am. And I am starting to think that this is exactly how most people are most of the time now. And that this is a marked change from how even my own parents used to be.

I think I am ill-equipped biologically to handle that kind of thing. The shifting of values, the arbitrariness of goals, the loneliness of most people most of the time.

Mayhap, in this constant endeavour to minister the masses and disperse their attention from focusing on the imperial divide of workers and benefactors that resulted in the world that I find myself in, that resulted in me being how I am; humans have finally hit the ball out of the park? Perhaps the game can not continue. Maybe, we are currently lost, all of us, individually.

The way we used to align and declare ourselves, the shared goals and values, the in-group and the out-group used to be larger categories of things. I think today it all has devolved into very petty squabbling.

I live in the land of Israel (or Palestine if you prefer), and it's pretty quiet, if you ignore the news media ruckus. It used to be much bloodier before my time, I understand.

I'm not sure that it was better the way all that has been resolving itself before. But it sure was less lonely.

</comment></comment><comment><USER34> I hesitate to criticize this person, because they're presumably writing for an audience that already knows them, and probably are following for this style of writing, but I have to ask: What is it with think-pieces that state obvious and widespread conclusions while using jargon and jokes to obscure how basic of conclusions they really are?

I can't fault people who do this because they're paid by the word and taking 5,000 of them to describe the color of the sky brings them a nice amount, but I don't see why it's done here, where that doesn't seem to be a consideration.

<comment><USER35> Agree. Out of context, this takes a ton of effort to understand.

Some examples

\- _Great Weirding morphs into the Permaweird_

\- _underground Internet that I've previously called the CozyWeb_

\- _unflattened Hobbesian honor-society conflict_

\- _Mookcoins are mined by knights through acts of senpai-notice-me_

\- _retreat into what I call waldenponding or to the CozyWeb_

Several of these link to other essays which, in turn, use ever more jargon whose definitions are found in yet other source material.

<comment><USER36> It reads LessWrong's cooler brother.

<comment><USER37> More heavily watered down than cooler, I suspect.

The only other Ribbonfarm article I've read was the "premium mediocre" one, in which they described _themselves_ as a premium mediocre blog, adding "the actual upper-class readers read SSC or Marginal Revolution". On the limited basis of these two articles, I am leaning towards the idea that it was an accurate assessment.

<comment><USER38> To learn about the link with SSC, it does not at all surprise me that Riboonfarm shows the same aspect of someone talking about various topics (in particular sensitive and sociological ones) without showing any evidence of reading any established research on them.

It's perplexing how similar essays on natural world, not taking into account any research on physics in the last 100 years or more, would not be nearly as appreciated. If it's not acceptable in physics, why do we accept it when it comes to sociology or media studies?

<comment><USER39> Why is it perplexing? People put more trust in fields where researchers follow (or are expected to follow, at least) the scientific method.

I work in what may be called a "soft" science field, I don't complain when people don't view our output as authoritative as that of hard science. I'm proud of my work, but I don't claim to have any monopoly on truth (or even a better grasp of truth, for that matter) just because I have a list of academic publications. It's the nature of the field.

<comment><USER38> You don't have to put trust in a field to do an overview of the existing literature and show how and where it is wrong. Neither philosophy or mathematics, for example, don't follow the "scientific method" (let's assume the Anglophone conception as opposed to Wissenschaft for the sake of arument), yet I would hope that people would rightly call out a post on utilitarianism that doesn't take into account arguments from the last twenty years, or an argument against metaphysics that stops at Hume, and they'd be skeptical of a proof of the Riemann hypothesis expressed in all but the terms of mathematicians.

If you're more convinced by my mathematics example than my philosophy one, it just shows that this isn't about the scientific method at all, but standards of rigor in argumentation, which soft sciences are perfectly capable of, at least internally within frameworks. In that case, all it would take is for the author to mention which framework they believe has the most explanatory power, and why.

Lastly, I fail to see why this would be such an issue in the first place; as an example, take a claim like "viewing pornography is associated with misogynistic attitudes", or even more strongly, that pornograhy causes such attitudes. The fact that it is a broad claim, that relies on population samples and indirect measurement, does not make the research into the topic (both in support and in denial of the claim) any less valid to be ignorant about, if you're writing an essay on whether porn should be censored or not.

Different epistemic standards are not an excuse for ignorance. "Not as authoritive" is not the same as "no authority at all", and it's especially not the same when the essay in question itself is engaging in that topic.

<comment><USER39> The public doesn't owe anything to academics; whether or not they decide to pay attention to literature of a certain field, it is their choice. I was merely stating my observation that while many seem to consider it worthwhile to pay some level of respect to physics or mathematics, fewer appear to do so with regards to sociology or media studies. Are such attitudes justified? Perhaps so, perhaps not - but either way I find nothing perplexing that the public does not respect all fields of inquiry equally.

<comment><USER38> We're not talking about "the public" generally, we're talking about someone who has thought about a topic and possesses enough interest to write about it. One would think that in the interest of intellecutal honesty they would investigate previous work. If they haven't, it's a valid point of criticism of the work, and I have criticized the work on that basis, just as I would criticize someone writing on space-time who hasn't bothered to look into Einstein, or someone writing on electronics as if they're discovering Kirchoff's law for the first time.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER40> [https://samzdat.com/2017/06/28/without-belief-in-a-god- but-n...](https://samzdat.com/2017/06/28/without-belief-in-a-god-but-never- without-belief-in-a-devil/)

samzdat makes similar points in this article -- esoteric but insightful

</comment><comment><USER41> I've already retreated to mostly cozyweb! It's great here.

<comment><USER18> I started building a new cozyweb community. To join, users need a valid phone number. I hope that this will dramatically decrease spam and beefy interaction. I don't expect the community to be huge, but I'd rather have it cozy and small than huge and chaotic.

<comment><USER42> Simply limiting size, throttling invites, and ejecting troublemakers, goes a long ways to civility.

I'd cultivated a surprisingly good, small (~40-50) member community on G+ at one point, largely on that basis.

Mutual anonymity (myself as founder and moderator) worked. It wasn't conflict- free, but conflict resolved, quickly. Most often problems removed themselves, rarely (2-3x?) they had to be removed. That was done as quietly and civily as possibly.

</comment></comment></comment><comment><USER43> > Importantly, unless you do something dumb that makes you vulnerable to being > drawn into the mook-manorial economy against your will, such as saying > something that can be used against you while in a position of authority in > an important institution, the IoB is an opt-in conflict arena. You only opt- > in to the Internet of Beefs driven by a sincere grievance if you are mook > enough to want to.

I find this vert true. The particularity of HN is that they did not gather by beef but by learning about the startup scene and skills.

</comment><comment><USER44> Undoubtedly, some of what this article describes, routinely takes place on twitter. However, I find that something else takes place on twitter much more, or at least as frequently. It goes something like this:

1) Something somewhere happens.

2) A person who may be famous or well know for some accomplishments, perhaps even super impressive accomplishments in a particular field of business or creative endevours, decides to comment on 1) on Twitter

3) Note that this person usually has no particular expertise or knowledge in the area of 1) despite having overall success and fame and lots of followers

4) It turns out that because of 3) their opinion expressed in 250 characters often ( not always ) is either somewhat silly, potentially offensive to some, outright dumb/misinformed or simply lacks sufficient nuance.

5) because of 4) lots of "mooks" and "knights" come out of the woodwork and attack this famous person, along with all kinds of legitimate critics

6) said person feels under attack and/or cancelled and bemoans the state of Twitter, the world and the internet

Now, it may be unfortunate that Twitter mobs attack these people simply for their opinions. But if you opine on something you have no expertise in to a very large audience in public, then I think you should grow thicker skin and prepare to also weather some criticism just on the off chance you actually say something dumb.

It's as if only these people, with their declarations of their opinions have the right to say something controversial, but nobody else has any right to respond to that controversial thought with any criticism or disagreement.

<comment><USER45> I don't particularly care about someone's feelings being hurt on the internet. The problem with Twitter and most social media is that they have lowered the effort to interact as low as possible in the pursuit of engagement. The result is a system in which any kind of intelligent discourse tends to be drowned out by a torrent of tribally approved virtue signals. These platforms are dominated by the need to respond quickly in order to generate another dopamine hit, and actively work against deep thinking.

<comment><USER44> Twitter is a firehose of information. In order to have a good experience on Twitter, you have to curate who you follow so that you don't see things you don't care about. Once I have done that, I see plenty of extremely intelligent discourse on Twitter, from humor to book recommendations to deep tech discussions to intelligent/sophisticated political takes, to analysis on startups, etc. So, no, I would have to disagree with you.

</comment></comment></comment><comment><USER46> Good article, resonated with me.

I think the problem is people care both too much about other people's opinions and also are too forceful pushing their opinions at other people.

I think it was the stoic philosopher Epictetus who said people love themselves more than other people but value other people's opinions about themselves more than they value their own opinions about themselves. Don't worry so much about what other people think and say.

</comment><comment><USER47> What's interesting about this as well is that participating in this economy of beefs makes people deeply unhappy right to the core, and yet they can't seem to step away.

Take any Twitter user with over 20k followers, and almost to a T they appear to be extremely unhappy, depressed, and anxious wrecks who use Twitter to put on a happy face and pretend they're not.

</comment><comment><USER48> Man was I really hoping this was an API for cows in a field and sensor data attached to each beef. BaaS, or Bovine as a Service.

<comment><USER49> Surely BaaS would be for sheep.

<comment><USER48> Legit

</comment></comment></comment><comment><USER50> Imagine two curves, ressources, and population growth, one bouncing against the other, deminishing it. Imagine a blind force, trying to adapt to this circumstances.

How would a neuro-typus look like, that adapts to strife? How would its build up look like?

What would be the treshold to bring it out of hibernation in hiding out in the open? What could return it to hibernation?

Would it try to create a everlasting thirty year war, if it could? What re- purpose could such a neuro-typus have in peace times? Is something that is adapted to its surrounding even sick- can you call someone who traumatizes and revels in it, in its environment even sick?

Is religion - the maximum production of genetic lotterys for the great lottery of war- at cost of liberty, just another peace time adaption to this adaption to the perfect cycle of strife? How many neuro-typuses are there? Can diffrent neuro-typus form a social machinery?

Has the peacefull humanity, this idealized version ever existed? Or is this just some luxery delusion, created by science? Give me energy in abundance, give me fertilizer, give me fresh-water, give me forrests, i shall devour them, and call myself peacefull.

Will virtual violence (games) allow to hack/circumvent the cycle of strife behaviour?

Will self-surveilance gadgetry allow us to behave, even when the state collapses?

We live in intersting times.

We could feed this regressive behaviour for another thousand years, if we had fusion and spaceflight- but then, we would be exponential up and out there, holding the rocks of gods. Maybe its better to resolve this down here.

To harden the roots of the scenario-tree, give it all the chances to self- control, learned in a thousand years of repetition.

Dang, I wish you could invest kharma in a point, with a dividend, depending on investment. And with insolvency goes away all your posts to the underworld.

</comment><comment><USER51> Some of the requirements for a durable beef:

1\. The two sides are evenly matched.

2\. There is no way to objectively decide the merits of the beef.

3\. Each side of the beef has at least one skilled Knight capable of "eviscerating" Knights of the other side.

4\. Knights who do not care one way or another about the ideas involved in the beef. Only the conflict matters to a good Knight.

5\. Mooks on each side are plentiful and eager to please the Knight they serve.

6\. Knights view their own Mooks as a necessary evil.

7\. Mutual dislike between Mook clans must be real.

8\. Knights seek balanced matches with no clear outcome. Only the conflict matters.

Remove any of these elements and the beef loses its appeal and participants.

</comment><comment><USER52> I often ask myself why Facebook, Twitter and Instagram say "follow" instead of link or associate.

People who seek followers give me cause for concern.

<comment><USER53> Should be "observe".

</comment></comment><comment><USER54> This is an interesting framework in which to analyse the Internet and the communication that occurs on the Internet, but I don't think all parts of the analysis are correct. Or at least, I think many assumptions about the reasons for people behaving as they do have been made, that are not necessarily correct. I think the observations of behaviour are fairly accurate for some significnat proportion of those involved though.

Could it be, that the Internet has simply magnifed what humans have already been doing for hundreds (thousands?) of years? The rise of the Internet has also coincided with a large portion of the English speaking world (where the Internet first originated) being at the highest point of literacy and education in history. This simply means that the ability of each human to express their own ideas to another human is at an all time high. Now, add to that the ability to: * Observe the large numbers of people that agree with you (social media) * Broadcast your opinions on other groups of people to everybody that agrees with, and to everybody that disagrees with you (social media) * Carry the ability to make these broadcasts with you at all times (smartphones, tablets) * Be able to get instant feedback on your broadcasts (real time messaging, notifications)

... and you have simply magnifed existing human conflicts, desires for attention and belonging, opinionatedness, and so on, by many orders of magnitude.

What we are seeing on the Internet is simply the human experience and human nature on steriods.

\---

The writer raises some doubt about how much of what they call the Internet of Beef is actually a culture war. But I have no doubt in my mind that it is a culture war. What is culture? The collective views, values, customs, art, morals, and beliefs of a large somewhat cohesive group of people. This is exactly what is being constantly debated, influenced, changed, synthesized, refined, and convoluted by the on-going Internet wars. It is shaping our culture.

Internet culture - due to the prevalence of smartphones and other devices - has begun (it begun a while ago) leaking into everyday culture. It makes sense then, that the politics of the day would be influenced by what happens online too. You can no longer separate the online world from the "real" world. The real world is made up in large part by the Internet world. Our culture has simply been given superpowers if you like, in order to rapdily evolve and shift and change at unprecedented speed.

</comment><comment><USER55> "the term freelancer comes from mercenary knights, with no fixed loyalties, in the medieval era" \- Great TIL

</comment><comment><USER56> Fascinating and thoughtful article.

I loved this short poignant sentence: "To participate is to lose."

It's so true and so sad.

</comment><comment><USER57> I think it's something like group solipsism. Nothing can be trusted except what "I" decide. Which is only helpful in so far as maybe we can address this internet backed societal problem with rhetoric similar to how we would address solipsism.

</comment><comment><USER58> The internet is a large amplification device, everyone single expressed feeling or thought is amplified to be the most important topic of our time. Including this post and my comment, people should stop being so serious and enjoy living.

</comment><comment><USER59> My only thought is that this article falls into the same trap it's describing by oversubscribing to conflict and outlying activity.

</comment><comment><USER60> This was one of the most entertaining and insightful pieces I've read in a long time. In general, I think it seems like a pretty accurate understanding of the state of the world/internet. But I think it stops short at the end where it talks about moving on from the beefs into new ways of being that will be significant to the future. I think plenty of people have rejected the beefing and moved on to new, positive ways of being. Many people are focusing their energy and lives on science, art and lifestyles that are completely removed from the constant conflict of the modern internet and instead focused on human progress. While plenty of beef can be thrown around about humanism, humanitarianism, the human progress movement and sustainable development goals, those focused on those things seem to have removed themselves entirely from the internet of beefs. I'd suggest Bill Gates as one prominent example.

</comment><comment><USER55> The best tangible community example of the IoB is Nutrition. Cesspool.

</comment><comment><USER61> This all sounds like a japanese role-playing game.

</comment><comment><USER62> 4 times is not enough. maybe post it again?

</comment><comment><USER63> In my experience, the vast majority of people have triggers that shut down reasonable communication. For instance, economics is a touchy subject on this forum. It takes a great deal of patience to put up with people who may end up wasting a large amount of your time.

In reality, I think the understanding that people should avoid conflict can only exist in periods of increasing consumption to distract from an understanding that societal engagement depends on more than voting. This is why voting does not require an explanation, especially in online forums: to silence minority opinions without actually confronting contradicting ideals.

</comment><comment><USER64> Jesus, people making a big deal out of twitter again. Newsflash: twitter is the comments section you took out of your website. It's a shitty version of Usenet; unlike Usenet or the comments section, it lacks any way of subdividing into interest groups and commonalities, so it's one giant global puke fest. Journalist types love it because ... they're narcissistic wingnats and are addicted to stroking their nerd dildoes. It has nothing to do with social atomization; I'm pretty sure North Korean twitter would be the same thing, because arguing on the internet appeals to people's lizard brains.

TLDR: twitter isn't real and you are mentally ill.

</comment><comment><USER65> TL;DR: Here's my beef with all the people on the internet with beefs.

</comment><comment><USER66> In the same way that Spark turns a program into a plan for cluster computation, there's some sort of process by which an idea and a bunch of talking points gets compiled into a big distributed staged media campaign through all channels and institutions that forces culture change that no one asked for. The canonical and somewhat "innocent" example of this is a major advertising campaign for a new pharmaceutical like Prozac for example, where the company pushing it has to explain it through ads, articles, movies (Prozac Diary) and so forth to the general public over a number of years so that people get it as a new element of the social landscape.

Related to this is a question that has bugging me is how is the social justice _" ideological pipeline"_ constructed and operated? How does an idea, become an obscure scientific journal article, become a slew of newspaper editorials and human interest stories, which forms a twitter mob, in which the ideological program has been installed on all the "beef only" thinker nodes, then it's own Netflix show, and super hero movie and then becomes a law where you get put in prison for using the wrong pronoun.

<comment><USER67> > then becomes a law where you get put in prison for using the wrong pronoun

You were going so well until this point, because I guarantee you won't be able to find the story to back this up; it will turn out that the "wrong pronoun" was part of a sustained campaign of harassment or part of a death threat or suchlike.

> how is the social justice "ideological pipeline" constructed and operated?

I could talk about how this works, but only if you're genuinely interested and willing to take it seriously. And not as part of a beef.</comment></comment>


GUI Architectures - <AUTHOR> http://martinfowler.com/eaaDev/uiArchs.html <comment><USER2> What is the real cost of getting this "wrong"? For example: Backbone.js is following the MVP pattern, more specifically the passive view variant. The catch is that Backbone.js calls Presenters Views and Views Templates.

Should we be encouraging "correctness" here or is it ok that every new MV* framework reinterprets these patterns?

<comment><USER3> I think there is a contention in what MV* preaches and the reality of UI development now that it is disconnected from the server. Traditional MVC has followed a struts like architecture where the C is a procedural workflow that starts at A and end at Z. This encouraged a dumb V where say the header of a site was an HTML template and that the C would then populate with the M. This benefited the service oriented nature of HTTP request, they are a procedural workflow pattern where the request is initiated and work is done and a response is returned. This worked great for the old way of doing thing, compromises had to be made given that the view was generated and then delivered.

Fast forward to today and the UI can now be decoupled from the back-end technology so it is natural to evaluate whether or not the old patterns apply to new practices. In the old model, event based development and widgets had little advantage, event's where overly complex for a service oriented architecture, where a unit of processing is done and then a response is returned. It made little sense to bring in the indirection of event based programming. Further black boxing UI elements into widgets had little advantage because they could not directly respond to events that happen on the client side, in the old way, if a button was clicked, the server had to be notified and it would require complex routing to get that request back to a discreet widget that would have to be recreated or cached and looked up with every request. MVC with procedural C's where the best pattern available to deal with this reality.

Now jumping back to the present, we are not under the same constraints, code can be delivered to the client, the client can respond to events and the client can request processing and data from the back end. Based on this reality, procedural C's don't make a lot of sense, rather events and widgets become a more discreet solution. Designed well, a UI can actually rid itself of almost all procedural glue code external to widgets, via event routing and syndication. In this new reality there is little need to have a controller that says you do this and then you do this. Rather you can build widgets that say when this happens I will do this and when that happens I will tell everyone about this.

Given the dogmatic view of MVC being a best practice people sometimes try to draw parallels and call what they are doing MVC. A better description of MVC or widgets is separations of concerns which is still valid. You should not have JavaScript in HTML and you should not generate HTML from strings in JavaScript. Rather just like in MVC a widget should have an HTML template that represents the view. Some people call widgets micro-MVC which I suppose is correct, but to my MVC implies a controller orchestration a workflow in which I think we are trying to force definitions to not look like the guy that does not know what he is doing. That being said, I think trying to square peg round hole Event/Widget UI development into a MVC definitions is causing a lot of confusion. I think MVC is a relic of web 1.0 page/post programming. What people are really trying to say when they say MVC on the client, is separation of concerns which is still a very relevant and good practice.

<comment><USER2> I'm confused. MVC wasn't created for web 1.0 page/post programming. It was created for Desktop applications which are very similar to todays front-end heavy applications.

I think the pattern you're referring to is more like a Model2 (JSP/Rails) style pattern.

<comment><USER3> Yes I understand that MVC predates the web, but it's surge in popularity was definitely from it's adoption as a best practice for web development and the web for the most part took the traditional view of MVC. That being said it did see some popularity in many imperative languages for desktop application but nowhere near it's popularity after the web. But I would say it and Event/Widget style UI's where neck and neck until the web's explosion.

The thing is now we try to explain evented systems in terms of MVC and I believe that we are trying to force the definition when what we are really trying to say is separation of concerns. Here is a good thread from that period that goes over how the two became jumbled together: <http://c2.com/cgi/wiki?WhatsaControllerAnyway> it's long the tldr; is smalltalk took the traditional view that controllers are independent of UI, they don't even know what the UI will look like. Where widget based systems such as swing where utilizing the same definition, but yet widgets where tightly coupled to the view they control by being the intelligent manipulators of a discreet view, but proper separation is observed in that all view elements exist in a HTML (or other UI) files, and the controller is a code- behind file, together they represent a discreet element.

Traditionally, this has not been considered MVC until the web UI started moving back to the client and now due to MVC achieving almost religious omnipotence people are wary of something not being MVC even if they have to make the definition match the practice.

on an interesting side note, I often wonder had MVC been as popular before the web, as it was after the web, would an event model have been chosen for the browser?

<comment><USER3> _but yet widgets where tightly coupled to the view they control by being the intelligent manipulators of a discreet view, but proper separation is observed in that all view elements exist in a HTML (or other UI) files_

Sorry to reply to my comment but it is too late to edit it, on the above quote, I realized that I jumped around and it reads like I am implying that swing uses HTML, that was not my intent, I jumped to HTML in my mind because I was thinking about a pure view technology which HTML is probably the best example, I mixed thoughts there but it was not my intent it would have been more proper to say like HTML not HTML as it reads like swing utilizes HTML as it's view technology which was not the concept I was trying to convey.

</comment></comment></comment></comment></comment><comment><USER4> 2006\. But a great article nevertheless.

<comment><USER5> This seems to be a recurring phenomenon on HN. Why is the timestamp given so much importance?

<comment><USER6> The N in HN is supposed to mean "News". Imagine a news paper that reprints issues from six years ago.

<comment><USER7> The problem in the software industry isn't a lack of best practices, it's a lack of practitioners fully aware of the best practices. News isn't so much a function of when something happened as when someone heard about it first.

<comment><USER8> There is unfortunately also the problem of too many "best practices", that gets popularized, dogmatized and horribly misused.</comment></comment></comment></comment></comment>


China's internet warriors going to battle over Hong Kong - <AUTHOR> https://www.scmp.com/news/china/society/article/3024223/emergence-and-evolution-chinas-internet-warriors <comment><USER2> Surely there's got to be _some_ cognitive dissonance in having to evade your own country's censorship to spread your defense of it?

</comment><comment><USER3> I'd feel differently if this were Chinese citizens of their own free will exercising their inalienable human rights and freedom of expression by making a case to the world, but no, it isn't.

<comment><USER4> >Chinese citizens of their own free will

I don't know if there are government sponsored campaigns, but the vast majority of these people are acting spontaneously, you can see people on Weibo sharing how to register western social media and what to do if suspended, there are Baidu Tiebas(similar to Google+) dedicated to these coordinated campaigns with millions of followers.

The reality is the vast majority of China support the CCP, and most of them do not hate the regime.

</comment></comment><comment><USER5> Just take a look at the articles comments...</comment>