off-topic

https://github.com/clojurians/community-development/blob/master/Code-of-Conduct.md Clojurians Slack Community Code of Conduct. Searchable message archives are at https://clojurians-log.clojureverse.org/
Ben Sless 2020-12-19T13:04:07.215200Z

qq regarding copyright and IP: If as part of my project I'm providing a ns which should provide a sort of drop-in replacement to clojure.core and the code in it is very similar, do I need to include the copyright heading from the original clojure.core file?

2020-12-19T13:25:37.215300Z

I am not a lawyer, but that sounds like a pretty clear case of derived code, and sounds safest to me if you would keep the copyright notice of the original file.

borkdude 2020-12-19T13:33:57.215500Z

@ben.sless A colleague of mine made an "alternative" clojure core: https://github.com/dunaj-project/dunaj Maybe worth checking.

👀 1
Ben Sless 2020-12-19T13:37:36.216100Z

It is fair to say the code is pretty derivative. The main question is do I need to just include a EPL1.0 header and/or keep

;;; Copyright (c) Rich Hickey. All rights reserved.

borkdude 2020-12-19T13:39:30.216500Z

If have copied a couple of core namespaces and made modifications for graalvm. e.g. clojure.test. I left the original copyright statement on top

borkdude 2020-12-19T13:40:11.216700Z

Maybe best to ask @alexmiller about this

👍 1
Ben Sless 2020-12-19T13:42:10.217Z

Thanks for the answers in the meanwhile 🙂 We'll see what Alex says when he has time

alexmiller 2020-12-19T14:36:24.219700Z

It’s not up to me, just follow what the license says. If you copy or modify the code... “When the Program is made available in source code form: a) it must be made available under this Agreement; and b) a copy of this Agreement must be included with each copy of the Program. Contributors may not remove or alter any copyright notices contained within the Program. Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.”

alexmiller 2020-12-19T14:39:21.220700Z

It’s your legal responsibility to read, understand. and follow the license

Ben Sless 2020-12-19T14:42:59.220900Z

Which is exactly why I'm here, double checking myself. I think > a copy of this Agreement must be included with each copy of the Program Answers my question

Ben Sless 2020-12-19T15:39:33.221300Z

And I apologize if it appears like I'm being lazy, I'm neither a lawyer or a native English speaker, so I'd rather ask now than hire an international IP lawyer down the line

alexmiller 2020-12-19T16:20:24.222700Z

I’m not trying to say you’re lazy or anything, just that I can’t advise as requested other than to say, follow the license, that’s why it exists

👍 1
Ben Sless 2020-12-19T16:29:50.223Z

No worries, just trying to make sure I'm actually following it and didn't miss anything, which, for example, I think I missed the requirement to include a copy of the original licence in code form distribution, so it's good that I'm going over it again and asking questions

p-himik 2020-12-19T16:37:59.224100Z

Just noticed that my app restarts more often than it should on Heroku. Apparently, it's supposed to: "Dynos are also restarted (cycled) at least once per day to help maintain the health of applications running on Heroku". Not sure how I feel about this approach...

javahippie 2020-12-20T17:26:07.232500Z

As I understood it, Heroku restarts your application once a day to apply patches to the underlying engine and pods, if they are always on, there was no way to do this. If you need 24/7, you have to throw some bucks in and scale up to two nodes. If you have two, Heroku will perform the restart at different times, so your app will always be available

orestis 2020-12-20T17:37:37.234200Z

That’s actually a good strategy. AWS applies managed patches to Elastic Beanstalk and relies on your rolling policy for HA

p-himik 2020-12-20T17:48:11.234400Z

@javahippie This is separate. At least, according to my understanding of this sentence: "In addition, dynos are restarted as needed for the overall health of the system and your app". I can understand a restart every other week or so because of some updates (and even then, AFAIK in principle containers can be suspended and resumed on a new host). But "every 24h" goes beyond that.

javahippie 2020-12-20T17:54:14.234600Z

This is the sentence I’d interpret as “applying patches”, but you are right, it’s very ambiguous.

2020-12-21T18:31:20.243Z

yeah, heroku started out as a ruby oriented service, and the only way to run ruby apps is to constantly restart to constrain memory leaks

2020-12-21T18:32:08.243200Z

I've run clojure apps for a year + at a time with no memory issues...

Timur Latypoff 2020-12-19T16:43:38.224200Z

I think this approach is pretty rude, but also it is very practical. At least it forces developers to ditch the assumption of "always on", to think about proper persistence of state and fast startup (which are all important for proper on-demand scaling as well).

p-himik 2020-12-19T16:48:11.224400Z

True. But this practicality is a one-off. When I adopt that approach, I no longer need that kick up the butt every 24 hours.

2020-12-19T16:52:36.224600Z

I do not know the reasons they do it, but I have heard that AWS charges people less for CPU rental if they are willing to have their application shut down on short notice. I suspect this is cheaper for AWS to provide, since it allows them to re-balance load on a time basis of their choosing, in case things became unbalanced, and/or some new higher-priced offers to rent bare metal machines or clusters come along later.

p-himik 2020-12-19T16:58:04.224800Z

The AWS approach makes sense. But it's unlikely that it's related to Heroku - after all, they promise you a particular uptime and this cycling is unconditional (assuming you don't restart dynos yourself - then the timer resets).

orestis 2020-12-19T17:57:33.226100Z

I think this is more related to common practice of Python/Ruby apps that would restart after serving eg 100 requests to avoid memory leaks.

💯 1
😆 1
😱 3