Configuration Management Software Sucks - <AUTHOR> http://kev.im/configuration-management-software-sucks/ <comment><USER2> The main point of the article is true. All configuration management software is lacking in some regard. However, the article ignores the fact that configuration management systems are focused on a much wider swath of OS support than RHEL and Debian based distributions. Most enterprises (and especially large enterprises) have Linux, Solaris, AIX, HP-UX and Windows that they need to manage. Managing more than one solution for configuration management solution is antithetical to a well run infrastructure. The real problem with configuration management solutions is managing the solutions themselves. Most of the widely deployed solutions are based on DSLs making the learning curve steep and the chance for error high. The commercial options (CFengine NOVA, chef and puppet) all offer GUI based management consoles but the solutions are expensive for all and often prohibitively so for smaller shops. It's a crowded space but there is still room for a well designed, easy to deploy, easy to manage commercial solution that solves these problems.

<comment><AUTHOR> Another commenter here also pointed out Windows and niche Unices. That's probably more the domain of IBM and CA. Cfengine can do it if you want to put in the time. But how often does Cfengine come up on this site? It's too barren by default. A promise lib that targets the EL/Debian majority shop and makes opinions and assumptions based on the smaller problem set would be welcome by many. Even if Windows is in play, it's probably self-contained in most shops. Let the big timers support themselves if you want to unify niche commercial OS.

<comment><USER3> Thanks for bringing up this important area, Kevin. This is a relatively new and growing field and there is definitely lots of room for improvement.

I was surprised you found "severe incompatibilities" between point releases of CFEngine 3 -- I've been using 3 since 3.0.2 and have not seen severe incompatibilities. What did you run into?

Regarding CFEngine being barren by default -- I know what you mean. CFEngine is a configuration management FRAMEWORK. The CFEngine standard library is an example of using that framework. It does take a bit of work to use all this, but once you do, the benefits are enormous (labor and sanity saving, increased efficiency as a sysadmin, more power over the systems, infrastructure as code, etc. -- all the usual benefits of configuration management, plus the added benefits peculiar to CFEngine - support for over thirty operating systems, small memory and power footprint, very few dependencies and the resulting ability to run on a very wide range of hardware, from embedded to supercomputer).

Is there something you want to do with CFEngine that is not in the standard library? (Please give some concrete examples.) Maybe I could help with that.

I do have over 150 practical examples of using CFEngine 3 at [http://www.verticalsysadmin.com/cfengine/cfengine_examples.t...](http://www.verticalsysadmin.com/cfengine/cfengine_examples.tar) and they are all RHEL/CentOS based.

FYI, CFEngine, Inc. grew this year from 4 to 30 staff and are still hiring. I think you're going to be seeing a lot from CFEngine the company in the near future.

Incidentally, I'm looking for CFEngine professional service engineers to help with CFEngine 3 deployments. Details at <http://www.verticalsysadmin.com/pse.htm>

I'll be training on CFEngine 3 in Palo Alto on January 25-27 (<http://cfengine3.eventbrite.com>), and in Los Angeles on Feb 20-22 (<http://cfengine.eventbrite.com>). Email me for a 10% off coupon.

I also run a free 2 hour webinar "Getting Started with CFEngine 3" - email me and I'll let notify you of the next one. aleksey at verticalsysadmin dot com

Configuration Management is an actively growing field right now, all the major players are doing a lot to improve their products. It's going to get better, stick with it.

<comment><AUTHOR> I believe I started using a 3.x.1 distro package and on the other end a 3.x.5 package if memory serves (this was in April). The minor versions contained tons additional new features. If there's something 3.x.y can't do that 3.x.y+1 can't do, the middle number NEEDS to be incremented to signify this change. The promises from the later tail number would not work on the older one.

Some things I think would be useful to ease Cfenfgine adoption:

* _.conf.example files that can be jockeyed around quickly to produce useful working samples within 15 minutes.

_ Specific areas for the above include: installing a file from cfmaster to a host, installing packages using the native package manager, starting services using the native service manager

* Reading about promise theory and Cfengine lingo is neat and all but if I'm not convinced of the benefits and have it running in 15 minutes, the install process/doc is flawed. Fixing this will get you much more market share.

* All of the above doesn't mean Cfengine can't handle n-th order complexity and diversity. Instead what I am suggesting is to make it very easy to try on in the simplest cases, and wear well with experience and age in tougher environments.

* Some simple config enumerator scripts. Run yum, dpkg, etc and get a list of all packages. Output this into a config file that the user can edit and put into use right away.

I'll dig through your Cfengine examples some time and see how it's going.

<comment><USER3> Thanks for your thoughtful reply, Kevin. I agree with you on the version numbering, on incrementing the middle number for bigger changes.

I'll talk to the CFEngine, Inc. guys about bundling my example config files into the package, having simple practical workable examples (that one can adopt to ones own use) would go a long way in helping people get started.

Agreed we need to improve the whole "up and off the runway" process.

Thanks again for your constructive feedback.

If you have any suggestions on my Cfengine example collection, drop me a line - aleksey at verticalsysadmin dot com

Best, Aleksey

</comment></comment></comment></comment></comment><comment><USER4> "All things considered, Puppet is probably the best choice at the moment."

then:

"It sucks, but it's got a lot of momentum behind it."

And that's his article, basically. Great.

<comment><USER5> Right, that and it ignores chef entirely. Although, even with Chef included, his conclusion isn't _wrong_.

</comment></comment><comment><USER6> I agree with the article, and would back up the commenter suggesting OP look at cdist (<http://www.nico.schottelius.org/software/cdist/>). The simplicity looks promising.

There is one thing that will completely fix configuration management in Linux, and that is: all software projects should bundle pre-cooked CM recipes. The problem of course is which CM tool should they support?

Until one tool ends up winning over all (and it does look like Puppet is in the lead) we should probably just start a wiki with "community approved" examples for all popular server software in each CM tool's config language. With some prodding the 3rd party vendors might just pick them up and package them, making it a de-facto standard that ships with the distro. Well, one can dream anyway.

<comment><AUTHOR> I've been playing with Blueprint (which someone suggested on my comments) + Puppet and am liking this combo quite a bit more than anything else so far.

</comment></comment><comment><USER7> Wow. So many things incorrect..let's just look at one. "The set operating systems used in the enterprise is fairly small: RHEL5, RHEL6, Debian 6, Ubuntu LTS."

In germany and portions of europe, add SUSE.

In korea, add HPUX.

If you're in pharma or health insurance, add AIX.

Dealing with enterprises in the US? You also need to deal with Windows environments.

While the problem seems simple, it's extraordinarily complex due to everyone's environment / way of doing things / "special snowflake syndrome".

Sorry if this seems kurt, but i've had to write commercial software in this space. You don't want to know how many times I've gotten in arguments with various enterprises about how stupid is it to do X, Y, or Z. Doesn't matter...your software needs to support it.

<comment><USER8> It is easy to fall into the trap of imagining all enterprise environments are like your own, and even when "special snowflake syndrome" is based on a false assumption, there are huge differences globally in terms of dominant OSes, even if you only think about Linux.

The original author is largely correct when it comes to the US in my opinion though. That subset of OSes does cover the vast majority of US enterprises on Linux.

</comment></comment><comment><USER9> "As a Ruby project, it unsurprisingly has vocal hipster fanboys."

This isn't my experience. Puppet Labs certainly doesn't promote their products as hip Ruby projects. That would be counterproductive, since their marketing is aimed at the enterprise sysadmin and his managers.

"in no time flat you'll start seeing full blown Ruby programs intermingled"

On the puppet-users lists, questions that require writing Ruby are infrequent. For my repository, the filetype breakdown is

      $ find puppet/ -name '*.pp' | wc -l
      214
      $ find puppet/ -name '*.erb' | wc -l
      34
      $ find puppet/ -name '*.rb' | wc -l
      7

</comment><comment><USER9> The comments about the difficulty of sharing modules rings true. I think the puppet developers made a mistake by not having a way to separate data from the "code" as a core, recommended feature early on. Full-heartedly embracing extlookup a couple years ago might have helped, but that didn't happen either (see [http://groups.google.com/group/puppet- users/browse_thread/th...](http://groups.google.com/group/puppet- users/browse_thread/thread/34e4dfb4828a2835/) for their reasoning).

<comment><USER8> I absolutely agree.

Not being able to externalize data has had a huge effect upon sharing modules.

Our plan for the next major release of Puppet this year is to integrate Hiera deeply into Puppet in a more native manner.

<http://projects.puppetlabs.com/projects/hiera>

We're still building out the plan, and will be sending it out to the community soon for comment, but the basic idea is that parameterized class parameter lookup will automatically consult a hierarchical store like Hiera if values are not supplied directly.

Much like Hiera has now, there will also be an easy function to grab arbitrary data values outside of class parameters.

<comment><USER9> That sounds great Nigel; I'm looking forward to hearing more.

<comment><USER8> I can't always map Hacker News personas to people on the list :) so anyone, please feel free to ping me directly about this sort of thing:

firstname.lastname@example.com

</comment></comment></comment></comment><comment><USER10> I found all existing configuration management systems to be overly complicated and not modular enough.

So, I've decided to try and reinvent the wheel with Bootstrap: <https://github.com/olegp/bootstrap>

Any feedback or comments would be really appreciated.

</comment><comment><USER11> Kevin, thanks for pointing out many truths about the current state of configuration management. It is indeed a very important topic.

(disclaimer: I work at CFEngine AS)

I agree that there is definitely room for improvement in all the configuration management solutions, although all three major players (CFEngine, Chef and Puppet) have made great progress. For a good overview, I recommend reading the excellent series of articles posted recently by Sean OMeara from Opscode: [http://blog.afistfulofservers.net/post/2011/12/30/cfengine-p...](http://blog.afistfulofservers.net/post/2011/12/30/cfengine- puppet-and-chef-part-1)

CFEngine 3 has been built with the intention of lasting for decades - as a framework more than a pre-built solution. You mention that "A configuration system should be opinionated", and I fully agree with you. This is one of the reasons reason why I like CFEngine: it is _strongly_ opinionated, and those opinions are based on years of experience and careful thought about the problems of configuration management. You can twist CFEngine's metaphorical arm and have it do anything you want, but life is much easier if you learn to "think in CFEngine" and appreciate all the work that it does for you behind the scenes. Things like normal ordering ([https://cfengine.com/manuals/cf3-reference.html#Normal- order...](https://cfengine.com/manuals/cf3-reference.html#Normal-ordering)) and the lack of explicit flow control constructs ([https://cfengine.com/manuals/cf3-reference.html#Loops-and- li...](https://cfengine.com/manuals/cf3-reference.html#Loops-and-lists-in- CFEngine-3)) are the result of distilling configuration management to its basic concepts, and building a tool based on them.

I should mention, because it seems to be a common misconception, that CFEngine 3 is a completely new and different beast than CFEngine 2. The policy language was completely redesigned, and is now much more extensible, generic and flexible. With CFEngine 3, you can have a top-level policy that says "build me a datacenter", building upon lower-level policies that take care of different components, down to the lowest level where the actual implementation takes place (package installation, editing files, setting permissions, creating users, etc.)

As a framework, CFEngine requires a larger initial investment in time, but once you put in that time, you have a system that allows extreme flexibility and scalability.

Having said this, it is indeed true that there needs to be a good collection of higher-level components that makes it easier for users to get started, and to get a good feeling for the power of the tool. We are working on some ideas and infrastructure that will allow us to address this problem, and on improving the standard libraries (which, by the way, are included by default with CFEngine). The guys at Chef have also done an excellent work in this respect, and you can see a lot of pre-built cookbooks at <http://community.opscode.com/cookbooks>.

However, the devil in the details! It may be true that "the set operating systems used in the enterprise is fairly small: RHEL5, RHEL6, Debian 6, Ubuntu LTS", but how about the parts that aren't? And even then, those operating systems are used in an infinity of configurations, architectures and layouts. You want a configuration management system that is able to manage 100% of your infrastructure, and this is where the low-level control that you get with a tool like CFEngine gives you a lot of power: you can use the higher-level components for those systems that match, but you can also drill down to specify the details that are necessary for those systems that don't. Plus CFEngine runs literally everywhere - we showed at LISA'11 a proof of concept of CFEngine running in an embedded device, it runs on anything that has a Unix-like operating system, including cygwin under Windows (the commercial version has native Windows support).

Also, CFEngine has a fantastic user and developer community. I invite you to drop by the forums (<https://cfengine.com/forum/>) if you have specific questions or comments about the tool.

And finally, a shameless plug: my book "Learning CFEngine 3" from O'Reilly is now in Early Release (final version will be out around March). All the examples from the book are available at <http://cf-learn.info/code.html>.

<comment><AUTHOR> Yes, I bought your ebook last night pre-rant and gave it a quick once over. It's was pretty low level. I hope you might consider adding some labs at the end to tie it together at some point.

Cfengine looks like it's in for the long haul. I think with a proper framework it would even be useful in the single rack applications I desire. Think Ruby on Rails vs. roll your own everything. That's what I'd like to see on top of something like Cfengine.

<comment><USER11> Thanks for the feedback on the book. If you have any detailed comments, please let me know, preferably over at <http://cf-learn.info/discussion.html>.

CFEngine is definitely in for the long haul. There are many users of CFEngine that have built and manage complex infrastructures using it, and have built their own high-level components. We are now starting a more organized effort to bring more of these components to the community.</comment></comment></comment>


My analyst warned me, but metaprogramming was so beautiful I got another analyst - <AUTHOR> http://weblog.raganwald.com/2008/07/my-analyst-warned-me-but.html <comment><USER2> Whenever I read the argument that metaprogramming is terrible because it leads to hard-to-troubleshoot code; it leads me to believe that the person making the claim:

a) works with terrible programmers and

b) _has no idea how to discern who the terrible programmers are._

<comment><USER3> You hit the nail on the head. B is the real problem. There's nothing intrinsically bad about having billions of authors/programmers. But if you can't separate noise from signal, you start to think maybe a whitelist isn't such a bad idea.

</comment></comment><comment><USER4> Atwood seems to equivocate between "monkey patching," "monkey patching built in classes like String," and "metaprogramming."

There are good reasons to be careful of monkey-patching, especially monkey- patching of built in classes, but they are essentially identical to the reasons that you want to be careful of all global state. There are other forms of metaprogramming, such as macros or templates, which are more local and safe.

I guess the real issue is between "make potentially bad choices annoying and difficult to use, so that programmers feel bad about using them," versus "support all programming as well as possible, trusting the programmer to avoid bad patterns." I think that the latter attitude is more realistic: a determined bad programmer can write bad code even in Haskell or Ada or Java, and sometimes those "bad" patterns are useful (e.g., gotos are a great way to write a DFA).

</comment><comment><USER5> Metaprogramming is a sharp, sharp tool that many people are liable to cut themselves with - it does lead to hard-to-understand and hard-to-debug code, so you have to make sure the tradeoff is worth it. As with any such tool, you just need to use it with restraint.

I've personally come to the conclusion that without metaprogramming you really can't write decent frameworks; even Java frameworks tend to use reflection and even run-time code generation, and I think the lack of more capable metaprogramming abilities in Java is one reason frameworks in Ruby, Python, etc. are more user-friendly. Frameworks are crucial these days, so I think metaprogramming is also essential to a language. It's just something that ideally would be used only in cases, like frameworks, where only a few people have to actually understand and debug it and a large number of people can leverage that work.

</comment><comment><USER6> The thing that the original article(by atwood) seems to be complaining about is not actually metaprogramming. It seems more like the standard gripe that functional programmers have about state, even though it is not phrased that way.

He is objecting to dynamically changing some of the methods in the string class leading to subtle bugs as some code is written assuming the old string class and some using the new string class. Pheraps just explicitly define a separate custom-string class, or as he points out use mixins.

</comment><comment><USER7> Isn't Atwood one of the types who get all indignant about the "Blub" argument? Maybe he should think twice before utterly confirming it.

<comment><USER8> The good news is that Atwood's blog is targeted at Joe Average Code Monkey. He's probably right to tell his audience to ignore metaprogramming; if they are willing to do what he says, it's probably a good thing they're not trying to write good code. All they would do is break things horribly, and then complain about how badly powerful tools suck. His writing mostly exists to make the people writing PHP pages with SQL queries mixed in with <table> tags feel like they are good programmers. Whatever.

For those of us that actually know how to use powerful tools without cutting off our fingers... we have other blogs to read, and can safely ignore pretty much anything Atwood says. I even like XML a little more than I used to, just because he wrote a blog post against it ;)

<comment><USER9> What you just said is exactly what Atwood is saying, and what Raganwald is arguing against.

If you freeze any moment in time then elitism always seems like the most rational choice. But if you take into account the passage of time then elitism is a losing proposition.

<comment><AUTHOR> Strangely, I find myself nodding in agreement with both of you. I simply _must_ get back on my meds.

Thinking...

I don't know what Atwood really meant, it's just a blog post, but I do think there is a real distinction between "Hey you! Don't do that, it's dangerous!" and "You shouldn't be allowed to do that, you're not qualified."

After all, I wrote this:

[http://weblog.raganwald.com/2008/04/is-strictly- equivalent-t...](http://weblog.raganwald.com/2008/04/is-strictly-equivalent- to.html)

Which is definitely a kind of "Don't do such and such" article. But while I actually write code to make things I like easier, I have no interest in sitting down and writing code to make the things I don't like harder or impossible.

</comment></comment></comment></comment><comment><USER10> What will happen if you include meta-programming in a language isn't as simple as "this will happen" versus "that will happen".

A deciding factor is the structure and process in which your organization works. Structures which work well for creating Java code probably won't work well for creating JavaScript or Ruby code. A couple of things come to mind:

1) Code reviews are a lot more important for languages which allow 'meta- programming'

2) Thorough, but concise documentation, also.

Extending Class.inherited() (as quoted in the linked article) without telling anyone or documenting it is a social problem of process and organization, not one with the programming language.

<comment><USER11> I'm not sure you can excuse the language totally.

To stop code standing on other peopoles toes, namespaces and encapsulation were invented. In this case, there is no way to encapsulate the change to Class.inherited, it must be Global, because the language does not support anything else. If the language did support other possiblities, then the social problems would have been less acute.

</comment></comment><comment><USER12> Summary of argument: _Your_ opposition to ( _whatever_ ) is just like the old priestly order's opposition to the _printing press_.

<comment><AUTHOR> Yes, exactly, for the specific reason that Jeff didn't just say extending languages was terrible, he took several paragraphs to talk about how we the people are unqualified to do so compared to his personal list of exalted greats who have invented the languages he admired.

So I felt the repsonse mirrored the original post.</comment></comment>


Ask HN: Is it feasible to create a Twitter Client in 2020? - <AUTHOR> I have been toying with a plan for a custom Twitter client, but have heard that Twitter has made it more difficult to build custom clients. If anyone has information on this I'd be glad. <comment><USER2> no.</comment>


Heavy Metal for Software Development? - <AUTHOR> https://hackernoon.com/heavy-metal-for-software-development-70732ab3cae6 <comment><USER2> I wish I could listen to heavy metal while working too, but the words are usually simply too distracting to me. Also, sometimes I'll get a little too excited for nostalgic reasons, if I'm listening to Dio or something old like that.

Jazz and classical music have another problem, especially if the music is of high calibre - that sometimes if I hear a nice lick/riff/progression then I'll be distracted and will want to look it up. Generic jazz(think elevator music) is fine though. Walking basslines that go on forever and ever are great.

What works for me right now is to listen to fairly repetitive ambient music, stuff like Carbon Based Lifeforms or Boards of Canada.</comment>


Show HN: Grid.js – Advanced table library that works everywhere - <AUTHOR> https://gridjs.io/?hn <comment><AUTHOR> Hello folks :wave:

I'm Afshin, the creator of Grid.js.

Grid.js is an open-source table library written in TypeScript and published under MIT license.

My goal is to develop a framework agnostic table library that:

\- Works everywhere. You don't need a specific framework to use Grid.js

\- Lightweight and easy to use

\- Fully documented and tested

\- Developer friendly. Grid.js is written in TypeScript! Supports all modern web browsers

Please take a look at the examples ([https://gridjs.io/docs/examples/hello- world](https://gridjs.io/docs/examples/hello-world)) section and let us know if you have any suggestions.

Although Grid.js is currently designed to work with web-browsers, I'm actively thinking and working on adding other integrations like React Native (see [https://gridjs.io/docs/philosophy](https://gridjs.io/docs/philosophy))

Please let me know if you have any suggestions or comments. Happy hacking! :computer:

<comment><USER2> I'm playing around with it in an Observable notebook here: [https://observablehq.com/@simonw/grid-js-with- datasette](https://observablehq.com/@simonw/grid-js-with-datasette)

Any idea why the columns aren't displaying correctly for wider tables? Take a look at this example:

[https://observablehq.com/@simonw/grid-js-with- datasette?url=...](https://observablehq.com/@simonw/grid-js-with- datasette?url=https%3A%2F%2Ffivethirtyeight.datasettes.com%2Ffivethirtyeight%2Fbiopics%252Fbiopics.json)

<comment><AUTHOR> Oh great! I guess the columns are not properly rendered because there are a lot of columns. That looks like a bug to me. I just created two issues and will release a bug fix soon.

Thanks!

<comment><USER3> > Oh great!

The correct response :-)

</comment></comment></comment></comment><comment><USER4> Good effort! I'm not sure how 'advanced' it is though. I'd even go as far as call it 'simple'?

E.g. the following features would be required to make it advanced (list not complete):

\- Export data (csv)

\- Align columns based on their content

\- Tree data (parent/child rows)

\- Total rows

\- Formatting applied based on data type (currency, numerical etc.)

\- Reordering columns

\- Resizing columns

\- Hiding columns

\- Optional filter field for every column

\- Conditional formatting

\- Tripple Sorting & Multiple sorting (sort by more than 1 column at a time)

\- ... more

In the react world, I found this to be a good foundation for an 'advanced' table. Since it's rather inconsistently developed, I ended up forking it for myself and working on my own copy, removing unneeded elements and enhancing with everything else I do need.

[https://material-table.com/](https://material-table.com/)

<comment><AUTHOR> Thanks for your feedback.

I agree that Grid.js is not a full-featured plugin _yet_ and it's still missing essential features, like those that you mentioned but please bear in mind that:

\- I have only released the first version of the library.

\- I have been focusing on fundamental blocks of a lightweight _data processing_ library (see: [https://github.com/grid- js/gridjs/tree/master/src/pipeline](https://github.com/grid- js/gridjs/tree/master/src/pipeline)). That's what took most of my time.

\- Grid.js is framework agnostic which is a bit different compared to other libs

The pipeline is very easy to extend and I'm confident that most of those features will be added soon.

<comment><USER4> I don't doubt that you can and possibly will make this a great library. It seems like a nice and clean foundation for one. I just commented on the word 'advanced' in the title. You admitted yourself that it's missing essential features, so advanced might be an adjective you'd want to use for release 2.0 ;)

</comment></comment></comment><comment><USER5> How accessible is Grid.js? The main differentiator between table libraries for me these days is accessibility. Many libraries and frameworks out there do it poorly. The better ones are often tied to company-specific frameworks.

From playing around a bit, I've at least noticed that sortable headers have no focus indicator, the "sort column ascending" text gets included in the column's accessible name, and un-sortable column headers are read as clickable by screen readers.

I would LOVE a framework-agnostic table library that's both lightweight and fully accessible. If there's a chance for Grid.js to take this in its philosophy, I would be all in!

<comment><USER6> > The better ones are often tied to company-specific frameworks.

That is because to implement accessibility in a grid/tree widget to a meaningful level, you need _a lot_ of underlying code. Even in modern browsers. Source: implemented accessibility in Ext JS framework.

One of the most often asked questions from users of Ext JS was: hey, can we have the Grid widget without all the bloat? Sure, and ~95% of the framework exists so that the Grid can have its features and work reliably across all the browsers. You can probably do without the rest 5%, no biggie.

</comment></comment><comment><USER7> Has anyone tried Tabulator[1]?

[1] [http://www.tabulator.info/](http://www.tabulator.info/)

<comment><USER8> I have, it's amazing. The only thing it's missing is drag and drop to outside divs. Other than that, it's feature rich, very customizable and the best from all other js grids I tried.

<comment><USER9> That feature will be coming soon :)

</comment></comment></comment><comment><USER10> I'd say the claim "works everywhere" does not consider small screens. I had a look at the examples with Android Chrome in portrait viewport, and cell content gets either cut off with ellipses on overflow, or breaks long words such as email addresses unintelligibly over several lines.

In my opinion, scrollable-by-touch tables such as Bootstrap 's "responsive tables" fix these issues. Add "scroll for more" shadows for even better UX.

</comment><comment><USER11> Out of curiosity how is this better than current Grid/Table implementations?

<comment><AUTHOR> \- Grid.js is a data-processing pipeline (see [https://github.com/grid- js/gridjs/tree/master/src/pipeline](https://github.com/grid- js/gridjs/tree/master/src/pipeline)) which enables you to easily extend the library \- It's framework agnostic! \- It is written in TypeScript \- Fully tested and documented

Also please take a look at [https://gridjs.io/docs/philosophy](https://gridjs.io/docs/philosophy).

</comment></comment><comment><USER12> A similar product is [https://datatables.net/](https://datatables.net/)

<comment><USER13> datatables uses jquery, though.

<comment><USER14> From user point of view, datatables can do much more than Grid.js

<comment><USER15> I've found datatables to be my only real solution when dealing with lots of server side data. It has it's quirks for sure, but there really isn't anything I haven't been able to accomplish with it so far (although making it do what you want sometimes can involve some head scratching).

Edit: I see [http://www.tabulator.info/](http://www.tabulator.info/) mentioned in the comments. This looks pretty full featured... time to do some research.

</comment></comment></comment></comment><comment><USER16> Does anyone know why HTML tables can't natively support a lot of common table functionality? Lazy rendering, fixed column headers, sorting and so on? Are there any proposals to add all this natively?

<comment><USER17> I think a bit part of HTMLs success is not being too opinionated about more advanced/specific UI components. Think of it more of as a low level GUI toolkit constructor, one to builg actual GUI toolkit on top of, for example material-ui and bootstrap.

<comment><USER18> That doesn't really answer the question though.

It's up to the browser implementers how they do tables, and they certainly could go ahead and cater to common cases in this area. As user agents, it's the browsers' job to be helpful to the user regardless of what the HTML looks like.

For example, nothing in HTML talks about having a search prompt appear on Ctrl+F, yet everyone does it.

<comment><USER17> HTML does not have a table component because it is a markup language, and that kind of interactivity (sorting, filtering, pagination etc) is really beyond its scope. The exception to this are basic user input fields (buttons, check- boxes etc).

This is by design, browser vendors are focused on implementing low level APIs and functionality, leaving the higher level component development stuff up-to web developers and designers.

Use a combination of JS, CSS and HTML to create advanced components from scratch, or use one of the thousands of open-source libraries available. The library linked to in this post is a good example of that.

> It's up to the browser implementers how they do tables, and they certainly > could go ahead and cater to common cases in this area.

They already have, via the <table> tag ([https://developer.mozilla.org/en- US/docs/Learn/HTML/Tables/A...](https://developer.mozilla.org/en- US/docs/Learn/HTML/Tables/Advanced)).

</comment></comment></comment></comment><comment><USER19> This looks really cool although I find it disheartening that we need to resort to JavaScript simply to construct a decent table.

<comment><USER20> You are trolling, mate.

Obviously nobody NEEDS to resort to that. However there's a difference between

        ... simply to construct a decent table.

and

        ... to construct a decent table simply.

which is what this lib is for.

<comment><USER19> Nice distinction! Although I'm not sure "trolling" is a fair dig. My comment was genuine.

When I wrote my first HTML page you could make them out of basic <TABLE> tags and nobody would beat you over the head with a styleguide for doing it wrong. I found them approachable if you followed some basics like avoiding nesting, and with care, dynamic sizing went a long way. But I understand some people are zealously against them (for good reason). CSS addressed several of the shortcomings but introduced new complexity and gotchas. My frustration is that instead of evolving to simple, elegant and approachable syntax, we landed in a place that calls for a library to patch in those attributes on top. (And now I'm greeted with bank statements that dynamically add content as you scroll, making it impossible to cut and paste the data from a spreadsheet).

None of that takes away my admiration for the author's work, I'd just prefer a world where the hole filled by this library didn't exist in the first place :-).

</comment></comment></comment><comment><USER21> [https://codemadness.org/datatable- example.html](https://codemadness.org/datatable-example.html) is the lightest version of sortable table in JS i've seen.

[https://git.codemadness.org/jscancer/files.html](https://git.codemadness.org/jscancer/files.html) for more goodness

</comment><comment><USER22> This looks nice but much less configurable than ag-grid.

I've worked on projects that had very intense excel-level requirements for their data grids and ag-grid was a dream.

<comment><AUTHOR> Agreed. This is the first version of the library though. I will definitely add more core plugins and configurations soon. Stay tuned!

</comment></comment><comment><USER23> Good, I like framework agnostic components. I've been playing with two other libraries recently: Dropzone js and Sortable js. Grid js looks useful too.

</comment><comment><USER24> Looks great! Any plans to support SSR in say, the React use case? useEffect won't run on the server and obviously you don't have the DOM.

I'd love to use this for the table to come rendered from the server then hydrate on the frontend and enable AJAX pagination, etc.

Completely understand if you can't, after all, you'd likely need to more tightly integrate with ReactDOMServer.

<comment><AUTHOR> That makes sense. SSR should be possibly and relatively easy to achieve. I will create a ticket.

</comment></comment><comment><USER25> Looks awesome. We just tested vue-tables-2 yesterday but the lack of customization is making it hard to implement. This looks very promising, I'll be taking a look again tomorrow!

Do you plan on releasing special themes or options for css frameworks like bootstrap 4? I had a quick look on my phone so I apologize if this is already available.

</comment><comment><USER26> One of the issues we find is that as the number of rows/columns in a table grows, the performance of native browser tables just craters and you have to fallback to your own rendering engine using <canvas> elements.

Have you pushed the rendering performance at all to see how far you can get without scrolling getting painful or seeing tearing artifacts?

<comment><USER27> How many columns/rows can you realistically fit in screen? Isn't this practically solved for most use cases by just having as many as needed for rendering and replacing contents as necessary?

I've worked in financial institutions for going on a decade at this points and there are grids everywhere. I've learned a thing or two about them in these years and that's:

\- everyone wants to implement their own, for reasons

\- they'll mostly do a decent but not quite good job at it, because it's complicated and oh hey let's just all forget about accessibility (traders love keyboard navigation!)

\- performance is always a problem till someone reinvents virtualized row rendering

\- excel beats your thing anyway and everyone knows it so if you just have decent excel import or even just good paste handling you'll do fine

\- 99% of grids people actually use never show more than two dozen rows or so, and then implements pagination and just like with google no one ever goes to page 2 of the results

If you have a pressing need to handle thousands/millions of rows, it's likely not for display but for editing, in which case:

1\. Just use excel

2\. Virtualized rows still has your back, ain't no screen showing more than maybe a hundred rows or so anyway, and even if it did no one reads that far

Grids really feel to me like a rite of passage for front end developers, along with a basic charting library and mildly interesting application framework. Incidentally, this is also how I've landed most of my jobs, so maybe I'm biased.

EDIT: This is by no means a dig at the author and I'm sorry if it may come across as such! This library looks like a fine piece and I wish you every success!

<comment> at-fates-hands >> Grids really feel to me like a rite of passage for front end developers,

Agreed!

The last two jobs I interviewed for the code challenge was a) hit this API endpoint, b) pull the data and put into a table and c) make said table responsive and accessible.

The majority of front-end work these days is either forms or tables. Get good at both and you'll have steady work forever.

<comment><USER27> You're right, I forgot about forms – good shout!

</comment></comment></comment></comment><comment><USER28> Hey, nice grid. Please consider multiple column sort / grouping. It will suddenly make it like analytics tool... And if add some statistical functions... Maybe too much for client side, but who knows

</comment><comment><USER29> I like [https://www.npmjs.com/package/react-data-table- component](https://www.npmjs.com/package/react-data-table-component) but this one looks cool too. Maybe a dense mode?

</comment><comment><USER30> FYI on my small mobile screen (iPhone SE) the demo:

\- ellipsis (good there is one) breaks between second and third dot. I think the easiest fix for that is to use an actual ellipsis character.

\- break between page '3' and 'next'

</comment><comment><USER31> I am so glad I put off making the frontend for my project. It's literally all tables, and I didn't like how DataTables functioned. So glad you made this and looking forward to trying it out!!

</comment><comment><USER32> Congrats! Curious why you haven't considered [https://react- table.js.org/](https://react-table.js.org/)

</comment><comment><USER33> I am trying to use linking in one of the columns. Looks like using links breaks the table. Any idea if linking column data is supported out of box?

</comment><comment><USER34> Do the cell values have to be primitives? Embedding pure JS inside a React app is easy but using React inside pure JS is usually where the trouble is.

<comment><AUTHOR> They don't have to be. I will definitely test this particular case.

</comment></comment><comment><USER35> What's the "Advanced" part in this ? Vue/quasar tables already provide extensive functionality and I am sure there are react and angular alternatives.

I don't think there is a need for a library to work across vue/react/angular at the same time because no single person is going to use those in a single project.

I appreciate the project since I am frequently looking for js grid implementations but what the differentiator here ? Is it performance or styling or flexibility or just variety of frameworks ?

<comment><USER36> There absolutely are advantages to libraries that work independent from, or across multiple frameworks. Most webdevs have experience with multiple frameworks. It's nice knowing you can use a library in whatever project you're working on.

<comment><AUTHOR> ^^

</comment></comment></comment><comment><USER37> I'd suggest doing the up/down arrows in css instead of images, the images look a bit blurry on retina screens

<comment><AUTHOR> Good point. I will definitely change that part.

</comment></comment><comment><USER38> On a related note, I glad to see unpkg.com offically supported. Being able to avoid npm install is just nice sometimes.

<comment><AUTHOR> Awesome!

</comment></comment><comment><USER39> How does this compare to competitors like Ag-Grid?

One simple feature I see lacking in the ability is the ability to resize columns

</comment><comment><USER40> Good job! Looks great.

What about performance? Have you tested how many rows can Gird.js handle without a noticable lag?

<comment><AUTHOR> Thank you!

With Grid.js you will be able to sort, search or process data in a separate thread (Web Worker) and then pass the results to the main thread to render.

I'm also thinking about lazy-loading the table rows. Both the Web Worker bit and lazy-loading will be added in a week or two.

</comment></comment><comment><USER41> Anyone have thoughts on how to support the following in ReactJS

-Sortable columns

-Multi-select filters in columns

-expandable rows

<comment><USER13> Tabulator should support pretty much all those things, it really is a fantastic library.

</comment></comment><comment><USER20> This doesn't render well (it's a malformed input, but still) -

        const grid = new Grid({
          columns: ['A', 'B', 'C'],
          data: [ ['1', '2', null, '(353) 01 222 3333'] ]
        });

</comment><comment><USER42> Does anyone know of something like this but with editable cells?

<comment><USER43> jqGrid, DataTables, ag-Grid, jQuerygrid, ... a lot. How many grid libraries do we need?

<comment><USER9> Tabulator, has most of the features of AG grid and is totally free [http://tabulator.info/](http://tabulator.info/)

</comment></comment></comment><comment><USER44> Tried to run in my atari 800XL - didn't work :P

</comment><comment><USER45> What benefits does it have over mat-table?

</comment><comment><USER46> I disabled JavaScript and it doesn't load the table.

<comment><USER12> I unplugged my toaster, but it doesn't work?

<comment><USER46> Sure, except the major point is this, Progressive Enhancement [0].

This table is useless if it doesn't load without JS, especially if it is a table that claims to work _everywhere_.

[0] [https://www.gov.uk/service-manual/technology/using- progressi...](https://www.gov.uk/service-manual/technology/using-progressive- enhancement#do-not-assume-users-turn-off-css-or-javascript)

<comment><USER47> it looks like it can:

[https://gridjs.io/docs/examples/from](https://gridjs.io/docs/examples/from)

specifically, data rendered as an html table that is then "transformed" in javascript.

if I'm reading the example correctly, then this is how to have progressive enhancement with this module.

</comment></comment></comment></comment><comment><USER48> Are we just buy a domain for a library now?

</comment><comment><USER49> I like to turn JavaScript off for these sites

</comment><comment><USER50> I thought this was about CSS Grid, but nope, nothing at all to do with that.

<comment><USER51> Maybe read the welcome message again: [https://news.ycombinator.com/newswelcome.html](https://news.ycombinator.com/newswelcome.html)

It could help you construct a more thoughtful comment next time. It's the most important principle and really simple to pursue.</comment></comment>


Splitting a sandwich and feeling not deceived - <AUTHOR> https://math.stackexchange.com/questions/637728/splitting-a-sandwich-and-feeling-not-deceived

<comment><USER2> TL;DR: The answer is Brams-Taylor's "Envy-free Cake Division Protocol" [1].

[1] [http://www.cs.cmu.edu/~arielpro/mfai_papers/BT95.pdf](http://www.cs.cmu.edu/~arielpro/mfai_papers/BT95.pdf)</comment>


How I Learned to Work a Room - <AUTHOR> http://onethingnew.com/index.php/work/433-how-i-learned-to-work-a-room-and-you-can-too <comment><USER2> How to get out of a one-on-one conversation:

OPTION 1

You: "So who are you hoping to meet tonight?"

Them: "I'm hoping to meet with someone that does $x."

You: "Oh I just met Bob, who's into $x. He's over there, do you want to meet him?"

Them: "Sure!"

You go and introduce them, then after a minute excuse yourself. They'll hardly notice.

OPTION 2

You: "So who are you hoping to meet tonight?"

Them: "I'm hoping to meet with someone that does $x."

You: "Great! I'm looking to meet someone that does $y. Have you met anyone here that's into that?"

Them: "Oh yeah, Steve over there works in $y!"

You: "Oh interesting. Would you introduce us?"

They go introduce you to Steve and will likely (hopefully) excuse themselves shortly thereafter.

OPTION 3

And finally, if neither of you can make an introduction (eg, if you both just arrived):

You: "So who are you hoping to meet tonight?"

Them: "I'm hoping to meet with someone that does $x."

You: "Great! I'm looking to meet someone that does $y. Have you met anyone here that's into that?"

Them: "Not yet, I just got here."

You: "Me too. Let's go meet some people together. That looks like a good group over there." (Point to group of 3+ people)

Them: "Sure!"

You walk up to the group together and make introductions. The group will naturally split up within a few minutes and you'll be left speaking with new people.

<comment><USER3> These options are better than my usual, "Well, it was very nice talking to you," said firmly and with a smile.

<comment><USER2> Even that is better than keeping a dead-end conversation going.

<comment><USER4> Oh definitely yes. Being in a conversation where one of the parties doesn't know how to keep the topic aloft is excruciating.

If you want to see masters of keeping up a conversation, watch some comedy improv. Their entire task is to take a topic which they don't know about (usually specified by an audience member) and convert it into a conversation that must be kept up by each person. Once you see enough of these improvs you will notice that each comedian is able to inject something interesting into each sentence that keeps the conversation going, but not too much (or too little) that it causes the topic to die on the vine.

</comment></comment></comment></comment><comment><USER5> There was a time when talking to others in a crowded room filled me with fear to the extend that words flowed out of my mouth in ways that does not make any sense even to myself. I spoke gibberish and if you had the misfortune of talking to me, you would probably find an excuse to get away. I hated the idea of going to social events. At every event, I felt that I was the stupidest person in the room and that nobody would want to talk to me. Meeting people seemed like a waste of time.

One day, something snapped. I figured that instead of wasting time at social events, I might as well learn something. I reflected on my social experiences and realized that because of my inherent fear of being looked down upon, I had the habit of pretending to understand things that in reality I had no clue. So I made it a point to speak a little as possible and instead focus on listening and always ask questions if I did not understand something.

I always made it a point to be asking questions and most importantly, never pretending to understand something I don't. Conversations usually flows like this: What do you do? What exactly does that mean? Big data? How big? How is big data different from normal data? ...

Gradually, I started to understand what people are actually saying. I started to feel the wide spectrum of work that people do. I started to internalize differing opinions within similar industries and then voicing these opinions to others in similar fields. I started to take sides and participate in debates. Conversations became more intelligent and social events transformed into a heaven for intellectual stimulation.

Like reading Hacker News in the middle of the night, socializing can become addicting. There is so much knowledge out there and every time I go out I learn something new. If there was one lesson I learned throughout my transformation, it would be to focus on listening and understanding others.

<comment><USER6> It seems you discovered for yourself what _every_ book on communication emphasizes -- ask questions! People would rather talk about themselves than listen to you talking about yourself, so if you just get them talking and then listen to what they have to say (you barely have to even speak most of the time!) not only will you learn quite a bit, the other person will usually come away feeling like it was a very good conversation, that you were a very good conversationalist, and will appreciate the connection with you.

<comment><USER7> >ask questions!

it would be nice. Unfortunately asking questions i feel like i'm interrogating or intruding onto somebody's else private property.

<comment><USER8> It is actually not only asking questions. It is about asking open questions, i.e. questions that cannot be answered by yes, no, but require the person to tell a story. At the beginning it it is even more frightening, but once you force yourself to do this as an exercise it might change your life.

</comment></comment></comment></comment><comment><USER3> Mild introvert here. I've had better luck focusing on 'singletons,' and catalyzing the formation of new conversation groups, instead of trying to work into an existing duo's conversation.

A few years ago I stood alone at a big "networking breakfast." I barely knew anyone.

It popped into my head: _Pretend you 're the host -- make 'your' guests feel welcome._

Looking around, I spotted another singleton. Smiling, I stuck out my hand, introduced myself, and started doing the ask-questions routine (being careful to make it a conversation and not an interrogation).

A few minutes later, I saw another singleton coming near. I invited him into the conversation and introduced him to the first guy. Both of them seemed glad to have other people to talk to (and when I ran into them at later meetings, they each remembered me). Eventually I disengaged and moved on.

I was amazed at how comfortable that felt, seeking to serve others' needs instead of my own insecurities. I've been using that basic approach ever since. It works every time. My young-adult kids report success with the approach as well.

<comment><USER9> Nice, I like that one. I've been in that situation before, standing on my own and seeing others standing on their own too. But I never thought of just going up and being the person to introduce them to others.

I'll have to try that out.

<comment><USER10> Be the change you wish to see in the world... Or something.

</comment></comment></comment><comment><USER11> I'd also add that body language of a pair talking will tell you if you are welcome to stick around and converse. If they separate slightly to accommodate your presence and address you by looking at you when they are talking, you are good to go. If they stay facing each other and do quick glances at you, they are probably having a more intimate discussion which may be hard if you are standing there listening. Body language is the key - pay attention to it.

<comment><USER12> I always wonder just how well body language really correlates with intention, in general. For example, whenever I'm standing in a pair or group, and somebody walks over, I always consciously reorient myself to help include the new person. But I never seem to notice other people doing the same. I think I use my body language quite consciously, but I usually get the impression that it is mostly unconscious for others. Yet, I can't really know this for sure.

</comment></comment><comment><USER13> I tend to introversion, and networking in a room filled with people wears me out faster than just about anything else.

So, given that my social energy is limited, here's what I do:

* Have a concrete goal for each event, things like: small talk with 5 random people, elevator pitch to Jane, get contact details to follow up with Jim and Mo, etc.

* Step out of unproductive/negative chats asap - "excuse me, I need to make a call/ check email / catch Bob before he leaves"

* For longer events, take regular smoke breaks (even though I don't smoke)

* Leave (politely) as soon as goals are achieved or as soon as I'm worn out

<comment><USER11> Working the smoking area is much easier than working the room. Best conversations of my life have been standing on a curb with another smoker. I quit about a year ago, but still use the ecig.

<comment><USER13> Not sure this would be as effective if I stood around puffing on a pencil. I don't know, I've never smoked except once when I was 11.

<comment><USER14> There are nicotine free e-cigs that basically emit flavored water vapor. Never tried one, but they do exist.

</comment></comment></comment></comment><comment><USER15> This is a good technique. I also find entering the situation with a set of personal challenges/goals helps diffuse the situation. By reframing the situation from "holy crap I can't do this" to "ok, I've found out what two people do for a living, one to go" lets you de-emphasize the aspects that make you nervous and end up having more natural conversations.

Blatant plug: we are building a site that helps people get better at situations like this and other challenging social situations. [http://metamorf.us](http://metamorf.us)

</comment><comment><USER16> The language here of "working on a room" is a little bit unnerving, but he's right. If you want to meet new people and have interesting conversations, I've had similar experiences like this which I've enjoyed.

Furthermore, interrupting a conversation at an event like the one he describes with the question, "so what are we talking about?" after you've gotten their attention is a good way to find something to talk about, too, which isn't just the standard, "so what do you do?"

<comment><USER17> Should be "she's right" (Kimberly)

<comment><USER18> Thank you ;-)

<comment><USER16> My bad! I guess I missed the sign-off bit at the very end.

</comment></comment></comment></comment><comment><USER19> Everyone sucks at networking the first few times, and public speaking the first few times, and presentations the first few times. The exact technique you use to get over that initial bump is probably not as important as just _trying it_ a few times..

<comment><USER20> As an introvert, this is wrong. Example: everyone sucks at rocket science the first few times. But maybe if I try one more time...

It actually _really_ helps to get pointers like these. Something like "focus your efforts on groups of two" can give you a) a lifeline and b) something to look forward to rather than dreading the occasion...and having that "this may be fun" mindset can take you that much further.

I know a few introverts who just "got over it" but there are many more who can barely keep their heads above water in social situations. I've gotten a lot better over the years thanks to practice, but tips like these are gold to me.

<comment><USER21> Oh please nobody said hit your head against a wall repeatedly. Deliberative practice.

<comment><USER20> Fuh fuh fuh

</comment></comment></comment></comment><comment><USER22> The advice about singling out pairs of people is really interesting. How does one go about approaching them if they are in mid conversation?

Do you just lurk, wait for a brief pause, then swoop in? This seems creepy.

Do you just barge in mid-sentence? This seems rude.

Do you chime in if they something that catches your interest? This seems nosy.

<comment><USER18> When I got close to a pair of people, about 70% of the time one of them would make eye contact with me, so I'd introduce myself. The other 30% of the time they stayed intensely focused on their conversation, so I'd move on.

Just remember that everyone else at these events is there to meet other people too. They WANT to mingle, and by introducing yourself, you're helping them do so.

Good luck!

</comment></comment><comment><USER23> When I encounter myself in these sort of situations I feel uncomfortable so I kind of empathize with the author. And it's funny because I'm working on an iPhone app which is aimed at solving these kind of situations where you want to start new conversations with strangers. It's called Joiner ( [http://www.joinerapp.com](http://www.joinerapp.com) ) if you want to check it out (shameless plug).

However, I think I'm not only worried by how to approach people more easily, but also to find good conversations. If it's already very hard to start a conversation with a stranger, imagine finding a good topic of conversation. In my case, on most occasions I always talk about the same thing, like what I do, where I am from and what I have studied. Because I don't know what I have in common with the other person I don't risk pushing other topics into the conversation, which would be great if, for instance, I entered a room and could instantly detect people with similar interests in technology, music or whatever.

That's why we have created Joiner, to help removing the pain of meeting new people and by making it more engaging.

<comment><USER24> Why does someone have to have the same interests in you? Ask them questions and find out why their interests are different. You can often learn more from a person with a different perspective. Escaping the echo chamber is hard but very rewarding.

<comment><USER23> 90% of the time I get out of this _echo chamber_ I find myself trapped in discussing the last episode of X TV series or Y sports match. I'm fine with that, but sometimes I'd prefer to talk about other stuff and finding the right people blindly can be hard.

</comment></comment></comment><comment><USER25> The site is having some troubles. Here is a cached version: [http://webcache.googleusercontent.com/search?q=cache:hlQH57j...](http://webcache.googleusercontent.com/search?q=cache:hlQH57jK_uwJ:www.onethingnew.com/index.php/work/433-how- i-learned-to-work-a-room-and-you-can-too+&cd=1&hl=en&ct=clnk&gl=au)

</comment><comment><USER26> Thanks, I'll try that top next time. I too am not one that is good at conversing with strangers. I'm the guy that just stands there and tries to look busy. On the other hand my CEO will have talked to everyone in the room by the time the event is over, and he remembers their names and what they do. I'm always amazed.

</comment><comment><USER27> Quoth the server: Infinite loop detected in JError

</comment><comment><USER28> Open a website, a giant banner is shoved in my face that forces me to click a teensy, tiny close button to be able to view the website.

Sorry, not gonna read it.

</comment><comment><USER29> My favorite technique for working the room: "So, what do you do ... for fun."

I find that talking about what people do for fun is much more interesting than what they do for work. And if the person is interesting, it might come back around to work anyway.

My favorite technique for exiting a conversation is the old chestnut of "I need to refill my drink." Easy peasy.

</comment><comment><USER30> I find it useful to approach a group of people talking and just start actively listening to whoever is speaking.

People often look for support from the group they are talking to. Nod in agreement when they do. Ask an insightful question. Make it easier for them to be the center of attention.

Soon you'll be in a conversation without having to introduce yourself first. As soon as you are in a 1 on 1 conversation, be sure that you do introduce yourself. It should be a lot easier by then.

</comment><comment><USER8> Funny. It is actually the comments that made me finally read the article. Nice technique. But immediately I felt sorry for all the people that come in the room alone and do not have the courage to mingle. This technique will make them feel even more bad.

<comment><USER31> Why would it make them feel worse? Wouldn't this give individuals a new technique for entering conversations?

<comment><USER8> I understand the article, that the technique consists in starting conversation with a two people that speak already - so the ones that do not have a conversation partner yet will stay alone. Or did I miss something?

<comment><USER21> I think both of you slightly misunderstood each other. You meant the people already in the room, he thought you said new people who entered.

</comment></comment></comment></comment><comment><USER32> I avoided clicking this link at first as I was expecting to groan at the shmoozy BS inside. I was pleasantly surprised to find a concrete technique that I can easily remember and apply. Thanks.

<comment><USER18> So glad I escaped writing clickbait! And I hope it helps you.

</comment></comment><comment><USER33> Life isn't a computer program, lighten up jesus this thread makes me cringe...

</comment><comment><USER34> I cannot believe this article managed to get to the front page on HN.

People here must be desperate to make connections ;-)

The author/reporter tried this approach once and its a really small set of experiments for such a bold claim.

Flagging this...

<comment><USER13> There is a point in the life of many introverts where they look at all the fun the extroverts seem to be having and wonder if they might have some of that kind of fun too.</comment></comment>


YouTube (Un)Blocks Blender Videos - <AUTHOR> https://www.blender.org/media-exposure/youtube-blocks-blender-videos-worldwide/?updated <comment><USER2> This would be completely avoided if the service they used had good support. This is most important considering when choosing a service: Can non-standard issues be fixed quickly? Can I build a professional relationship with the company so I can ask them things that don't fit a typical "customer support" pipeline? Vimeo has great support and appear to be run by humans with emotions. Youtube basically doesn't have support. It is entirely machine-run like Apple, some national banks, your cable service, etc.

A litmus test for determining whether a company has sufficient "support" is to check whether the following conversation is possible:

"I really appreciate your service X!"

"Thanks, means a lot. We're glad you like it!"

If the response is "We'll pass that onto the team!" it's okay, but not great. If the response has the jist "This message is miscategorized", you're in trouble. If there's simply no channel to send that message, you're screwed.

<comment><USER3> There's nothing about Apple, banks or cable companies that are entirely "machine run". In fact they're the exact opposite of Google in that they invest significantly in customer support.

<comment><USER4> That Google doesn't provide support is a myth.

They provide one of the best support I've seen for G Suite. You can get somebody on the phone no matter the timezone and the issues I've had with G Suite thus far have all been fixed.

And Blender did mention that they had access to higher level support actually, due to their channel being popular. Support people however are often powerless and what happened to Blender seems to be human error.

People speak of Microsoft's support being good for example. Remember the Skype transition to Microsoft accounts? I lost half my address book in that transition, contacted their support and they kept insisting that it isn't true and that I might be having a second Skype account. After several attempts with different people, I couldn't get them to transfer me to somebody technical that can recognize this is a bug. I gave up eventually and lost Skype IDs of people I've know for a long time.

Microsoft's support is shit, it's as if it doesn't exist in some situations actually and yet people don't mention Microsoft as having poor support. Is that because you can get a dummy to read textbook replies back at you? I'll never know.

<comment><USER5> _Support people however are often powerless_

I don't think it's possible to label someone as support if they're powerless.

<comment><USER4> If the service / product has limitations that need to be fixed (aka bugs), then support is powerless because it depends on the policies, the timeline, the priorities of the development team.

To give an example, also with G Suite, once upon a time when it was called Google Apps, I asked them to switch my primary domain to another domain — they couldn't because the feature wasn't implemented and they refused to manually change it, but they subscribed me to an early adopters program and several months later I got the feature available.

<comment><USER6> I am not sure I care about the hierarchy of the company I am working with. If I do have an issue that can not be resolved with a standard "look up in the issue database" method - I need to be switched to someone with the necessary skills to fix that for me.

That is mostly not the case with Google as it usually ends up in a situation where I am meeting a group of their lawyers instead.

</comment></comment></comment></comment></comment></comment><comment><USER7> Welcome to round N of "Google company only fixes farcical behaviour after it garners huge publicity and/or someone knows a well positioned staff member."

<comment><USER8> That's true of all companies and has been for years.

<comment><USER9> Seems to me that Google started this trend.

<comment><USER8> No. I remember uk TV shows in the 1980s which featured people going through the official channels to get a problem resolved and it magically only happened when the guy from the company concerned was invited onto the show to explain what was going on.

</comment></comment></comment></comment><comment><USER10> I don't know why Microsoft or Amazon don't try to launch a YouTube competitor. Vimeo probably has the most reach for an acquisition, but those are more artsy/professional focused. I suppose Facebook is YouTube's largest competitor, but it's such a closed system that it's impossible to use in any manner that isn't strictly personal.

<comment><USER11> Because even today youtube barely breaks even and its backed by the biggest ad network in the world.

<comment><USER12> could've said [first part] for every social networking, video/image sharing startup, yet... they still exist.

<comment><USER13> Yes, because most of them still get regular cash injections from investors, or they charge for it.

</comment></comment></comment></comment><comment><USER14> I think the whole youtube drama can be summarized into one sentence:

Someone at Google are trying hard to turn youtube into Google Video.

<comment><USER15> No, I think it has to do more with money. I wonder if YouTube is still losing money, and might not even be profitable. It's hard to believe with all the revenue they post and the ads, but they do serve a lot of videos.

Alphabet can't drastically change YouTube, as its brand is so closely tied to Google in the minds of a lot of people. (I'm still surprised how many people don't realize YouTube is owned by Google/Alphabet).

<comment><USER16> Wait you say its brand is so closely tied to Google but yet don't realize YouTube is owned by Google?

</comment></comment></comment><comment><USER17> I still stand by my earlier suggestion - break away from Alphabet; release videos directly through archive.org & Wikimedia.

<comment><USER18> There's PeerTube software, which is self hosting, and people's browsers use in-browser bittorrent to share video amoung people who are watching the video.

Blender have set one up: [https://video.blender.org/](https://video.blender.org/)

<comment><USER19> How well does that work when a video isn't very popular though? The value of a thing like youtube is that anybody can put a video on there and it will be available for anybody else to play, instantly, for the foreseeable future.

<comment><USER20> I imagine the non-popular videos are sent directly from central servers. By offloading the most popular spikes to P2P maybe they're able to reduce costs enough to make it worth it.

</comment></comment></comment></comment><comment><USER21> As a YT creator with 200k+ subscribers, shit like this scares me. Fortunately, I do not put all my eggs in one basket, and YouTube is just one of 4 ways I monetize my business.

</comment><comment><USER22> Too late?

</comment><comment><USER23> Earlier: [https://news.ycombinator.com/item?id=17347560](https://news.ycombinator.com/item?id=17347560).

</comment><comment><USER24> btw MIT-OCW is also unblocked

</comment><comment><USER25> It does not seem like Google is in the wrong here. Unless Blender is willing to pay hosting charges, Google has no obligation to host these videos for free

<comment><USER15> We hear "it's their platform, they can do what they want," a whole lot. The trouble is the platform is almost a monopoly on user created video. You can't launch on other platforms and hope to be as successful as being on YouTube. Their discovery mechanism and massive user base gives them an incredibly unique positions.

YouTube is from an earlier era, yet still after the dotcom bust. It was still on the rebound of the era of everything is free, we'll just make money on ads (like NetZero and Juno).

That model was and still isn't sustainable, and their dominance gives them pretty unique control over media. Same with Facebook.

<comment><USER26> > The trouble is the platform is almost a monopoly on user created video.

I agree entirely. So the solution is to break up the monopoly. We can start by breaking up google:

[https://apps.bostonglobe.com/opinion/graphics/2018/06/break-...](https://apps.bostonglobe.com/opinion/graphics/2018/06/break- google/)

We also need to promote interchangeability and open standards. Not sure how to do this - wonder if legislation is required.</comment></comment></comment>


Canada to ban keeping whales, dolphins in captivity - <AUTHOR> https://www.cbc.ca/news/canada/hamilton/whales-1.5169138 <comment><USER3> Zoos can serve as an opportunity for people from different demographics to be able to see a small sample of what the world has to offer. It can also help facilitate conservation efforts by allowing people to have direct & indirect interactions with the animals and professionals in the area, which they would not have otherwise.

Some people have advised to "Close Zoos and encourage people to see the animal in nature" without thinking of the unintended consequence of having millions of people swarming into these animals' natural habitat. If more people were to see animals in their habitats, it would likely lead to an increase in pollution, an increase in motor injury to the animals, more dangerous animal- to-human interaction in nature among many other issues.

If society believes that some animals should not be in captivity at all due to moral/practical reasons, it is worth asking: What other technologically driven solutions can be made/used to help people of all demographics experience what it is like to be in front of X animal? The solution may be to have a moving replica, a 3D simulator or something entirely different.

<comment><USER4> > If society believes that some animals should not be in captivity at all due > to moral/practical reasons, it is worth asking: What other technologically > driven solutions can be made/used to help people of all demographics > experience what it is like to be in front of X animal

Seems like the perfect use case for VR?

<comment><USER5> Let's solve everything with VR. Throw in some cryptochain as well for good measure.

<comment><USER6> Weird reply. This is precisely a use case where VR in particular is useful.

</comment></comment></comment></comment><comment><USER7> I get all the problems for the animals and not suggesting that they should continue to endure those problems, but I hate to see the general public's access to nature further curtailed. The mainstream seems to love wild places and wild life as long as it's on Youtube yet they spend the entirety of their own lives in suburbs and retail landscapes with virtually no direct experience with nature. I wonder how many children's imaginations were broadened over the years by seeing these beautiful animals up close and because of that how many ended up in zoology or forestry or whatever.

<comment><USER8> I grew up with zoos and aquariums, and I have fond memories of them. But of course, I wasn't kept in one. And furthermore... Zoos and aquariums are not nature. They are exhibits in a kind of museum.

If we want people to see nature, we have to preserve actual nature and encourage people to visit it. Visiting a zoo is not visiting nature, and I personally worry that equivocating the two is dangerous.

I would not want people to get the impression that as long as we keep a few breeding pairs of every animal in our museums, there is no need to preserve places for them to live in actual nature.

<comment><USER9> What do you think about national parks? I've been to a few and .. I dunno. I find it weird we pay to get into a federal park. I feel like the money exchange encourages them to advertise passes, and draws in more people. These parks are often overcrowded with so many people filling up parking lots to see nature.

When you start building paths and roads and hiring rangers, you do make it safer for people to see these great areas, but you also put a system in place that's makes it not quite what it was.

<comment><USER10> Can't speak for National Parks in the US, but in Canada they're quite well protected. Sure, Banff, Jasper and attractions along the highway are built up (it's kind of the point; have easily accessible attractions which bring in revenue to pay for real conservation).

But once you get into the backcountry, its pristine wilderness, with a good number of wild animals. We've certainly been more successful at protecting bears, wolves, mountain lions and numerous prey animals, than any other country on earth.

<comment><USER8> My favourite National Park is Five Fathoms Marine Park. Where else do you get to dive pristine shipwrecks in clear freshwater?

(Bring a dry suit, or prepare to put on every scrap of neoprene you can beg, borrow, or steal. Georgian Bay is damn cold.)

[https://www.pc.gc.ca/en/amnc- nmca/on/fathomfive](https://www.pc.gc.ca/en/amnc-nmca/on/fathomfive)

<comment><USER10> Had never heard of it. TIL. My favourites are in Alberta: Banff, Jasper, Elk Island (which has a large bison herd!). Also dreaming of visiting Nahanni National Park.

</comment></comment></comment></comment></comment></comment><comment><USER11> Let's hope this will soon be extended to other animals like bears, mountain lions and other who have huge ranges they usually live in. They develop a lot of psychotic behavior in captivity like constant pacing and others. Not sure if it's much better but at a minimum they should be kept in large areas like parks where you then drive through so they have some area to roam.

<comment><USER12> What's the good reason for not extending it to cow, dog, cat etc...? Where do you draw the line?

<comment><USER13> That's a fair question. Just think about how many cats and dogs are stuck inside small apartments most of their lives.

<comment><USER14> Or on a roof/balcony. Living in Guadalajara, I've wanted to put many dogs out of their misery. Left on the roof as thief-deterrent to go completely crazy.

Our treatment of animals (pets, meat) is one of the indicators of how primitive we still are as a civilization... or, god forbid, species.

<comment><USER15> The fact that we keep animals as pets and use them as meat indicates that we are the superior species and by extension we are the most glorious civilization.

</comment></comment></comment></comment></comment><comment><USER16> "Monday's vote notably impacts Marineland, the Niagara Falls amusement park and zoo that is considered the last Canadian park committed to keeping cetaceans in captivity."

Wow, so they passed a national law that essentially targets just a single park? How often does that happen anywhere? (I know the back story but I never knew Marineland was the only place... not saying this is wrong or right, just surprised)

<comment><USER17> I went to Marineland ~10 years ago and it was one of the saddest things I've ever seen. Very poor wildlife management and obviously exploited orcas. I've heard it has gotten worse since then.

<comment><USER18> Can confirm. I was there around the same time (2007), and it was sad. My wife (who grew up seeing commercials to Marineland) had always wanted to go, because it looked so fun. Was literally the worst part of the trip. She was so disappointed.

</comment></comment></comment><comment><USER19> Seems like a move in the right direction but are there any exceptions to this rule? Surely there are some dolphins being kept in captivity for good reasons (health, conservation programmes), if such is not the case I don't see much of a downside to this apart from the obvious impacts on employment in that industry...

<comment> m-app From TFA: "The bill has exceptions: cetaceans can be kept in captivity if they're receiving care or rehabilitation after an injury, or for scientific research."

<comment><USER20> The scientific research loophole seems like a pretty big one.

<comment><USER21> So if you get a couple of marine biologist on your books and pump out a few papers per year the party can continue?

<comment><USER22> You can't make them perform for entertainment regardless of the loophole used to keep them.

<comment><USER23> It's not hard to think of a couple of research questions that involve them performing tricks. You might as well invite people to watch the research as it happens.

(I'm not suggesting that they should do this, just that they will. "Research" can be an easily abused loophole. Just look at Japan and their whale "research".)

<comment><USER24> "Performances" by dolphins at the Vancouver Aquarium for several years have been feedings, and demonstrating research techniques (e.g. attaching and removing suction based sensors and tools, demonstrating how the animals have been trained to allow blood and other samples to be taken safely, etc). I still maintain my membership at the Vancouver Aquarium because I approve of pretty much all of their rescue programs, even though the breeding and in particular the Beluga program has been problematic in the past.

I am not a fan of keeping wild animals in captivity, but I am very much in favor of the types of rescue programs like those run by Vancouver Aquarium (and of captive breeding programs for at-risk, endangered, and extinct in the wild species).

</comment></comment></comment></comment></comment></comment></comment><comment><USER25> I am happy to see this.

Some wild animals, especially high-functioning ones -- are meant to be seen in the wild.

If they are in imminent danger, of course -- building city-like habitats to protect them (whatever a 'city' would mean in their context) -- is more than appropriate.

We could also invest into building teams of people whose show-business is around building relationships with animals in the wild, in such a way that they can periodically visit the team and not be spooked by onlookers.

It takes years, dangerous, and would not always work -- but much more humane than keeping these creatures in forced captivity.

</comment><comment><AUTHOR> Somewhat on a tangent but the podcast "Undiscovered" featured an episode that discussed American's evolving relationship with whales and dolphins and how, in a very short period, they went from being perceived as food and fertilizer to centerpieces of the environmental movement. It's a great listen [0].

[0] [https://www.wnycstudios.org/story/long- loneliness](https://www.wnycstudios.org/story/long-loneliness)

</comment><comment><USER26> Phil Demers, who worked at Marineland (referenced in article), was just on the Joe Rogan Experience (episode #1297). They discuss this legislation pretty heavily.

</comment><comment><USER27> Yes, it painful for me to look at animals in narrow cages where they slowly go mad whith monotony. (next - by the Thanos voice) But in general I can't understand the logic. In the wild, the animal has hard life. It will sooner or later be injured, sick, starving, and even eaten alive. But these sufferings are considered as normal because they are "natural". In the well-maintained zoo, the animals eat, sleep, and a bit bored, but this sufferings are considered as unacceptable. For billions of years, animals suffered for a reason: it was evolution. Now biological evolution is complete because it is displaced by the evolution of civilization. Why do animals have to suffer in wild nature now? It may happen that our descendants will look at humanism towards animals completely different: allowing animals to live in the wild will be considered a crime (like living children unattended).

<comment><USER28> Animals have spent billions of years evolving to live in and handle the world they naturally inhabit. Taking them out of that, putting them in a small cages where they don't feel safe, they don't understand whats happening. They are surrounded by things that are threats in the wild, noises they aren't familiar with, etc..

Putting a wild animal in a cage isn't "boredom", its torture.

> Now biological evolution is complete because it is displaced by the > evolution of civilization

That's not a true statement.

>Why do animals have to suffer in wild nature now?

Because animals ARE wild/ARE Nature. You can't remove nature from nature.

>allowing animals to live in the wild will be considered a crime (like living children unattended).

This is... absurd... Animals are not pets, animals ARE wild, they are dangerous. They are also required for life on this planet to continue. The ecosystem depends on animals at all levels of the energy/food web for it to exist and continue and screwing with this on that level would largely ensure the collapse of the worlds ecosystems.

<comment><USER27> > Animals have spent billions of years evolving to live in and handle the > world they naturally inhabit.

Then what about meerkats as pets, for example?

> Because animals ARE wild/ARE Nature. You can't remove nature from nature.

Who say this to you? It was God, animals themselves or some voice of Universe? There is no one here, only us. We can do what we think is right. If we see suffering that has no any purpose, we can stop it. What is "purpose" is just our choice too.

> They are also required for life on this planet to continue.

For what? Now we are life on the planet. Nature has evolved and we are the result and next step.

>The ecosystem depends on animals at all levels ..

Now we have a new ecology: mankind and Earth.

<comment><USER28> >Then what about meerkats as pets, for example?

What about it?

>Who say this to you? It was God, animals themselves or some voice of Universe?

This is what I learned by studying biology and ecology

>There is no one here, only us. We can do what we think is right.

You're suggesting interrupting a natural ecosystem that is beyond complex, likely leading to its complete collapse, due to lack of understanding.

You may "think" you're right, but anthropogenic projection and a complete lack of understanding of how the world works doesn't make your view right, if anything your an example of someone with good intentions that would utterly fuck up the world if you were given control

>If we see suffering that has no any purpose, we can stop it. What is "purpose" is just our choice too.

Suffering is a natural state of existence, we all experience it, it's part of life, many philosophers would argue a necessary part of life.

>For what? Now we are life on the planet. Nature has evolved and we are the result and next step.

We rely on a massively complex ecosystem made up of millions of other living organisms. We are not "the life", we are an example of it on this plane.

Nature is continuing to evolve, we're just one point on a long line of changes.

>Now we have a new ecology: mankind and Earth.

That is absurd and unjustifiable. Earth's ecosystem is made up of billions and billions of living things, humans are just one part of it, and one of the most damaging, destructive, short-sighted living things and we cause significantly more suffering than anything else.

I would suggest starting with biology and ecology courses, and some history both geological and human.

<comment><USER27> > You're suggesting interrupting a natural ecosystem that is beyond complex..

No.We did not understand each other. I'm talking about what we will do when we completely destroy this ecosystem. May be it will take about hundred years.

> Suffering is a natural state of existence..

Then why do we worry about animals in zoos? We are part of nature too. Then why do we separate natural and non-natural suffering?

> Nature is continuing to evolve, we're just one point on a long line of > changes.

Wild nature has no time for this. Evolution requires millions of years. We will destroy it before anyway. And even if we disappear and let it to evolve farther, then for what? It has produced conscious cpecies already.

> Earth's ecosystem is made up of billions and billions of living things, > humans are just one part of it.

Ok. Another point of view: what do you think about the anthropic principle?

I think you equate humans with animals. But that is absurd, because it is the judgment of man. Animal cannot judge at all. You separate nature and mankind and then say that it just part of nature. I do'n understand a point.

> I would suggest starting with biology and ecology courses, and some history > both geological and human.

I think I studied it at school 30 years ago :). Last years I finished with quantum mechanics and switched to English language (sorry, the hardest subject for me).

</comment></comment></comment></comment></comment><comment><USER29> Canada should take the opportunity here and offer some funding to develop VR and AR that can help facilitate the transition away from having animals be captive...a sort of virtual Zoo. If they aim to build something like that and offer appropriate funding, I bet it can be a really interesting and competitive attraction that can be completed in 20 years.

Especially with the death of retail, can you imagine large retail spaces getting converted into awesome VR parks?

</comment><comment><USER30> Do they not still allow quite a lot of whale hunting?

<comment><USER31> I think they allow First Nations to hunt a certain amount —don't know how that affects sustainability though; it's for sustenance.

<comment><USER32> First Nations hunting rights typically do not extend to commercial rights (i.e., first nations can hunt but not sell the meat) so I would be surprised to learn there's much in the way of whaling still happening nowadays. First I heard of it still being legal, though I'm not surprised to learn it - <USER2> rights are _very_ slow to be renegotiated.

</comment></comment></comment><comment><USER33> So how do people now see whales or dolphins?

<comment><USER24> If you want to see Orcas in their natural habitat, take the ferry between Vancouver and Victoria. I do it frequently and we see Orcas somewhat regularly. It's not as convenient or predictable, but that much more amazing when you see them in the wild.

Also, if your very lucky you can walk around the sea wall in Vancouver and occasionally see Orcas and other aquatic wildlife.

</comment></comment><comment><USER34> Man, I went to a wedding a few years ago, at a big indoor shopping mall with a connected hotel, in Alberta. This mall had a pool that apparently usually had dolphins, except they didn't at that time, apparently because "(shrug), they kept dying" according to someone who lived there.

</comment><comment><USER35> animals like Whales and Dolphins should not be kept in captivity. Not only are they emotionally and intellectually intelligent - they also tend to roam 100s (in Whales, 1000s) of miles which makes captivity unfeasible and brutal for these animals.

</comment><comment><USER36> Is there evidence all these creatures dislike captivity and would prefer fending for themselves in the wild? Genuinely curious. Not that it means anything, but dolphins have always seemed happy in captivity so long as they are being cared for appropriately.

<comment><USER37> > It is not a matter of opinion that orca whales, bottlenose dolphins and > beluga whales die prematurely when kept in captive settings, but rather a > potent and recurring reality. Marino & Frohoff (2011) show that this is > especially and most dramatically seen in the orca whale, with males living > on average 29.2 years in the wild with an observed maximum of 60 years, and > females living 50.2 years on average with an observed maximum of 90 years. > Their naturally extensive lifespan is shortened severely when they are > placed in captive environments, with few orcas living past the age of 20 in > captivity (p. 3)

> Many cetaceans in captivity develop stereotypies, or unnatural, often > purposeless behaviors that can be a manifestation of poor mental health. > Such behaviors include repetitive pacing, swaying, head-bobbing or circling, > and bar-biting (Cetacean Inspiration, 2011). One of the most prominent > stereotypies noticed in these whales is an activity known as slide outs. The > whale will slide out of the water and sit motionless, sometimes for 10 > minutes at a time (Cetacean Inspiration, 2011). This creates safety issues > for the guests of marine mammal parks like SeaWorld. If a whale did this in > the wild for too long of a time the weight of the whale could crush its own > internal organs (Cetacean Inspiration, 2011).

[https://blogs.umass.edu/natsci397a-eross/the-detriments- of-c...](https://blogs.umass.edu/natsci397a-eross/the-detriments-of-captive- cetacean-research-2/)

<comment><USER23> Would it be anthropomorphism to consider such a slide out a suicide attempt?

<comment><USER38> Ric O'Barry, former trainer of the dolphins used for the 'Flipper' TV show (now animal rights activist) tells a story in the documentary 'The Cove' how one of the dolphins swam up to him one day, looked him in the eye, took a last breath and then sank to the bottom of the tank and died [1]. Given that dolphins have to make a conscious choice for every breath they take gives some indication for a conscious decision for suicide.

[1] [https://web.archive.org/web/20110926051048/https://blog.sfga...](https://web.archive.org/web/20110926051048/https://blog.sfgate.com/dailydish/2010/04/23/ric- obarry-flipper-committed-suicide/)

<comment><USER39> Reportedly also Peter, the dolphin in the Margaret Lovatt research in the 60's [https://www.theguardian.com/environment/2014/jun/08/the- dolp...](https://www.theguardian.com/environment/2014/jun/08/the-dolphin-who- loved-me)

</comment></comment></comment></comment></comment><comment><USER40> Now claim universal jurisdiction to reach anyone who illegally keeps whales, including US parks. Issue a few Interpol Red notices, make a few extradition requests.

</comment><comment><USER41> Election campaign begins any day now. This is part of a desperate plan to hold on to power by the Trudeau Liberals. The Conservatives are poised to win easily so he's trying to grab votes from the left wing NDP and Green parties.

</comment><comment><USER42> Why not make water-zoos voluntarily, aka, the animals can return to the ocean, but can get a free meal & protection at the zoo at certain times? Oh, right, plastic in the ocean + fishing and dangers.

<comment><USER43> I'm no expert, but can you imagine pitching investors on an idea that involves selling tickets to see a creature that may or may not ever show up?

</comment></comment><comment><USER44> I believe it will one day be possible to use AI techniques to communicate directly with these animals.

I have often thought about running whale song through a RNN and broadcasting underwater to listen for responses.

We don't need to go to other planets to find intelligent nonhuman life, it is already here and we are wiping them out and enslaving them.

Our grandchildren will learn about this genocide in the same way we learn about the holocaust and conquering of the Americas.

<comment><USER45> I'm not so sure. Big brain not the same as 'intelligent'.

A story: every year a Japanese dog food company goes to a certain island lagoon where dolphins migrate to reproduce. They net and kill thousands and take them away.

Each year some dolphins escape, inevitably. They swim around for a year, and then the next year come back (with many other dolphins) to the lagoon, and likely get netted and killed.

Didn't they remember what happened? Didn't they communicate it to other dolphins? Don't they care?

I have to conclude either

       Dolphins are not smart enough to remember from year to year,

      or Dolphins can't communicate with other dolphins in a sophisticated enough way to say "danger! evil here!" which is pretty basic,

     or Dolphins are dicks and don't care if other dolphins are killed,

     or heck, maybe Dolphins, like Klingons, enjoy the challenge? "Today is a good day to die!"

I conclude that, in none of these scenarios, is there much wrong with killing dolphins for dog food. Not in a 'killing our sentient brothers!' way.

<comment><USER46> If you spend some time, I bet you can think of lots of reasons a creature might return to the same place. Many humans engage in self defeating behavior, should they be made into dog food, or should we empathise with them?

<comment><USER45> Without communicating with others to warn them of any danger. So, no dolphin cares about that? If they don't care, should we?

I think its pretty cut-and-dried, dolphins are nowhere near as bright as humans.

<comment><USER46> My point is brightness or intelligence shouldn't be the measuring stick for compassion for living things.

<comment><USER45> Right. But that goes for everything? When are we required to get concerned? Just mammals? All the way to bugs?

<comment><USER46> There's lots of grey area, and it all ends up being personal preference, but I think if one makes it a goal to always empathize it's a great starting point.

<comment><USER45> Oh yes, the slaughter of dolphins is tragic and wrong. Not because they are our 'brothers', but because they have value as part of the whole ecosystem.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER47> The kid in me says oh no. But this is an applaudable move by the Canadians. It's terrible to keep these animals that are used to moving large distances in glass boxes.</comment>


Opera accused of offering predatory loans through Android apps - <AUTHOR> https://www.engadget.com/2020/01/19/opera-accused-of-predatory-loan-apps/ <comment><AUTHOR> "Opera has now also made a similar and dramatic pivot into predatory short- term loans in Africa and India, deploying deceptive 'bait and switch' tactics to lure in borrowers and charging egregious interest rates ranging from ~365-876%."

[https://hindenburgresearch.com/opera-phantom-of-the- turnarou...](https://hindenburgresearch.com/opera-phantom-of-the-turnaround/)</comment>