Update index.rst

First pass for additions to index/landing page.
Associated Issue: https://github.com/ianhi/mpl-interactions/issues/35
Topics to consider for future revisions:

preferably open links to new tab (goal is to maintain viewership on your page, and not direct away), like HTML target="_blank" but I can't find the appropriate code for RST?
top left corner still reads "ipympl-interactions"
word choice on section, "... using three submodules"
any other additional introductory or transition points to add to landing page?

Note: I hope this is what you meant by,

the source files

Cheers, Sam.

Note: I hope this is what you meant by,

the source files

@samanthahamilton  exactly what I meant. Good stuff

preferably open links to new tab (goal is to maintain viewership on your page, and not direct away),

Do you mean links to other libraries? I see the appeal but I'm not sure I'm onboard. My primary goal with documentation is to be as useful to a reader as possible. Towards that end I think it is better to allow readers to be in control of what opens in a new tab and what does not. So I'd prefer if the links did not open in new tabs (they can ctrl-click if they want that)
(plus reading this SO on how to accomplish it seems like it would be awful)

top left corner still reads "ipympl-interactions"

good catch. I missed that in my last renaming pass becuase it was hidden in the conf.py file:
https://github.com/ianhi/mpl-interactions/blob/6da7e3405fa8587d5dbba3ff4796f3d01289ca19/docs/conf.py#L25

any other additional introductory or transition points to add to landing page?

I think ultimately what needs to happen is to adapt/copy the readme content to landing page of the documentation. As a first pass a copy of the readme content from md -> rst would go a long way.
Something I've never stepped back to think about is what are core objectives of pages of documentation. I.e. what are the learning objectives I would have for someone reading any given page. For most pages such as examples or lists of functions this is obvious, but it's trickier for the main page. Nothing below is revolutionary but I'm finding it helpful to write this down, my initial thoughts are:
Main Goal

Help the reader decide if they are interested

Concisely as possible tells you what the library is/does
not necessarily super technical, but gets the feeling across

ancillary goals

Makes it obvious where further resources are in the docs (e..g Table of contents)

the sidebar gives us this for free

maybe include brief install instructions with a link to a more detailed page
if this is not the correct tool for the reader redirect them to something that might be the right tool

Curious what you think about the goals.

word choice on section, "... using three submodules"

Yeah, "using" is not quite the right phrase, it's more like it's providing three different types of utility. I think this could easily end up being

oh also, one thing on github is that I can push directly to your branch once you've opened a pull request. I was going to do that to fix things like the conf.py thing but I should warn you about the possibility before doing it. Because then if you make a similar change and try to push it will fail due to merge conflicts (see https://xkcd.com/1597/)

Oh and finally (then I really will make good on my promise to myself to go to bed) you should feel free to generate new text, make substantive changes, or adapt or readme/examples text however you see fit. If it ends up saying something incorrect then either I'll catch it, or if I don't then it probably isn't that egregious and maybe someone will notice it someday.
Obviously if you're not interested in generating new copy then you're under no obligation to so. You've already added value to this project's documentation which is really more than I could ever have asked for

Hi Ian!
I think the changes are going really well. Here are some thoughts:

I will leave you to the file changes (renaming the Functions file, and changing the conf.py file). Though to your point about merging to my branch--I think I'm getting okay with staying in sync on GitHub... I think it's called rebase? I have a "GitHub Workflow" doc I've been adding to (and it includes that comic, which makes me laugh every time I see it).

I also read that SO thread on coding to open in a new tab. I've learned, and it could be a UI-UX practice, to open links in new tabs so you (the owner) doesn't interrupt the reader. But, I've added your note to my project Style Sheet. I think it's important for me to appreciate that your audience is already familiar with simple actions like ctrl-click!

I've made some changes to the index file, including wording and order. My focus is on a tone of friendly simplicity. Less robotic than a traditional user guide, but summarizes the information. Like an adaptation of the README file. If I have gotten any of the technical wording (function versus program versus library) incorrect, please let me know and I can change it ASAP.

I think I coded the ..code-block:: properly? I just don't know how to do in-line code in RST. Let me know and I can make the appropriate changes.

Also, I like the goals. It's good to know what the purpose, tone, and audience are!
Cheers,
Sam.

Though to your point about merging to my branch--I think I'm getting okay with staying in sync on GitHub... I think it's called rebase?

Done, I've pushed directly you your branch. This isn't actually a rebase situation, that's something you would do if the master branch had changes in the meantime while you were working on this. It's sort of like starting your branch again but based on the newest verison of master. What is relevant to you now: *make sure you git pull before making any more changes. Not doing that is a great way to end up with merge conflicts - if you one of the changes you made conflicts with something that I just pushed.

I think I coded the ..code-block:: properly? I just don't know how to do in-line code in RST. Let me know and I can make the appropriate changes.

It looks good to me. The best check is always to build the docs and see if it looks reasonable

I searched around for equivalent libraries that I like the documentation for and I like this one: https://mplcursors.readthedocs.io/en/stable/ it lives in similar niche (makes a type of interaction much easier). It gets right to the point of what a user might want, keeping both the install information and an example visible without having to scroll. Currently I the first portion of the readme is really devoted to explaining why this library exists when there is a very similar function available in ipywidgets. Maybe the index page could have a structure like this:
Title
Top line description ~ 1 sentence
Link to a separate page comparing it to ipywidgets (that page could just be a copy of the jupyter section of the readme)
Install
install instructions
basic example (or another name - idk)
%matplotlib ipympl
from mpl_interactions import interactive_plot
x = np.linspace(0,np.pi,100)
τ = np.linspace(.5, 10, 100)
β = np.linspace(1, 10, 100)
def f1(x, τ, β):
    return np.sin(x*τ)*x*β
def f2(x, τ, β):
    return np.sin(x*β)*x*τ
fig, ax, sliders = interactive_plot([f1, f2], x=x, τ = τ, β = β)
_ = plt.legend()

followed by this gif (or a cropped in version)
https://github.com/ianhi/mpl-interactions/blob/master/docs/images/short-interactive.gif
Then: more examples like this in link to example directory/interactive_plot-examples
Discussion of matplotlib back ends
emphasizing ipympl as the best choice, but also noting that there are generically useful functions with a link to them.

So the three most important piece which are all easily accesible are:

Short paragraph describing the overall point

Link to help people choose this over the related library

Install instructions
example so they can see what it is
followed by some general discussion but relegating the details to other pages.

I'm going to close and then re-open this to see if I got the readthedocs autobuild to build PRs

oh wow. very exciting that that just works. Once it finishes if you click on the details

then you should be able to see if it had any errors and view the version of the documentation

you would have been able to do that if I hadn't made it so the build failed on read the docs. That's fixed now. To see the the fully rendered build click show all checks

then click details

Hey Ian,
Lots of great comments and feedback. To be honest, I've taken a side step from the webpage design with this revision. It feels to me like we're very close to making some solid documentation. I really want to focus on the message you're trying to convey---and then I can paste it all into the appropriate files. So! I have gone through each of your notes and created a word doc, as though we were making a User Guide for your product.
The parts in purple {nts} are notes to myself, and I've included my editing references on the first two pages. Pages 3 to 5 are the mockup. Anything in blue are areas where I could use your help deciding what you feel is the most appropriate language to use.
mockup.docx
Talk soon,
Sam 😊

Not logged into github on my windows laptop. So this is an exciting
experiment to see if I can attach files to issues via email.
On Fri, Aug 14, 2020 at 11:42 AM Sam<EMAIL_ADDRESS>wrote:

Hey Ian,
Lots of great comments and feedback. To be honest, I've taken a side step
from the webpage design with this revision. It feels to me like we're very
close to making some solid documentation. I really want to focus on the
message you're trying to convey---and then I can paste it all into the
appropriate files. So! I have gone through each of your notes and created a
word doc, as though we were making a User Guide for your product.
The parts in purple {nts} are notes to myself, and I've included my
editing references on the first two pages. Pages 3 to 5 are the mockup.
Anything in blue are areas where I could use your help deciding what you
feel is the most appropriate language to use.
mockup.docx
https://github.com/ianhi/mpl-interactions/files/5075479/mockup.docx
Talk soon,
Sam 😊
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/ianhi/mpl-interactions/pull/46#issuecomment-674136143,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACNEQ5HI57CK6VEBYS7BVELSAVLPZANCNFSM4P3E4VFA
.

Turns out that you cannot in fact attach files via email.
I left some comments and suggested revisions on the word doc. I think the first two pages are great btw. If you'd like we can that as a Documentation subitem on a Contributing page.
mockup.docx

I went ahead and created a contributing page as well as a new gif to use for the front page. I also updated the out of date installation instructions. However, I did not add first two pages of the word doc out of the contributing page so that if you'd like to add them you can get unadulterated credit for the addition.

before I forget:
There are commits in here that will close: https://github.com/ianhi/mpl-interactions/issues/56

@samanthahamilton sorry if you got spammed with emails by all the activity. I kept thinking I was going to stop and then would come back to it and now here we are.
I generated a bunch of the examples and think I figured out a way to showcase the interaction using GIFs (unfortunately the plots won't render in the browser, at least in a way that's useful for showing how the library works.). I mostly adapted from existing examples but I can't garuntee it's all coherent. So I'll read over it again tomorrow when I'm less tired and hopefully fix it up
Also a note to future @ianhi the sliders for other parameters don't seem to render https://mpl-interactions--46.org.readthedocs.build/en/46/examples/jupyter-notebooks.html#other-ways-to-set-parameter-values
although they do locally :/??? Gotta figure out if that is just due to the transient build or if thats an issue with rtd

@samanthahamilton this PR has is becoming bit overwhelmingly big. Of course, that  is 100% my fault as I've allowed myself to slip in fixes to non-documentation things as I discovered them when working on the docs. Unfortunately though it's now to the point that I am finding it difficult to make other changes (i.e. new functions) outside the context of this PR. So in order prevent continued scope creep I'm going to go ahead and merge this now, though fear not I am definitely not done work on the docs.
If me merging this causes any Git difficulties for you then I will surely feel very remorseful and would happy to try to help you sort them out.
And of course: Thanks as ever for your help with this and spurring the documentation to really happen :rocket: :rocket: :rocket:

oh also to make it clear to the world. Thanks as well to @jbgreisman for helping me battle through creating sphinx docs for the first time ever.


The built in function math/seed was missing the sequenceport (VisualScript).

Master version of
Fixed missing sequence port in VisualScript seed() https://github.com/godotengine/godot/pull/48565

@fire Tested this PR on latest master, works fine and fixes the problem stated.

Thanks!

My First PR Merged 🥇

Congrats!

Cherry-picked for 3.4.

Cherry-picked for 3.3.3.


OZ - Native Staking - M-01 All Addresses Are Registered Validators by Default

Contract Changes

Adding NON_REGISTERED as the default value in the VALIDATOR_STATE enum.

Issue
In Solidity, an enum variable is automatically set to its first enumerated value if it is initialized without specifying a particular value. In ValidatorRegistrator.sol , REGISTERED is the default value of the VALIDATOR_STATE enum, meaning that it is possible to stake with any address even if registerSsvValidator were not called. Since the address would not be
registered as a validator in the SSV Network, it would not perform validations correctly which could result in funds being lost due to slashing.

LGTM
There are some unit tests that were confirming that stake threshold amounts work correctly. I think those are missing the assertions confirming VALIDATOR_STATE for the pubkey has the correct value. We could also add those in

I've added assertions confirming validatorsStates for the pubkey has the correct value in the unit and fork tests


Use Event Handlers to detect Submission Completion for IOM Local and IOM Remote connection providers

Describe the bug
We're currently hardcoding the sas result htm file names with guids to get around issues that were seen with parsing the output file name from the output log to detect submission completion. In that scenario, certain environments would not output the specific text string to denote completion. With these connection providers, there is a SubmissionComplete event that can be wired up in script.ts instead, so that we can stop hardcoding result names.
Steps to reproduce
Steps to reproduce the behavior:
1.) local or remote IOM connections, enter a simple test program: %put 1;
2.) navigate to the work directory, observe that the result htm file names have guids. Observe that result files are generated for submissions that do not have actual ods output.
Expected behavior
We need to be using Event Handlers to detect submission completion. Also remove the uuid naming strategy that currently exists for generating result files for submissions.
Screenshots
See me for internal screenshots

I believe this is the bigger issue we were running into with this:
If we use one file name, we can't reliably detect if we're reading the correct file or not after a SAS program runs. For example, suppose we run a sas program that generates sashtml.htm. On a second run, we don't know if that file is associated with the 2nd run or the first. Viya solves this problem for us because the output contains a line like NOTE: Writing HTML5 Body file .... However, sas 9 doesn't do this for us.
To solve that, we need to know:

When a sas 9 program finishes running
if that run of the program output an html
where that html lives

So, if we use the SubmitComplete event, I still think that only partially solves the problem.

It seems like IOM should have an api or programmatic way to inspect result files without the need to parse the log. @clangsmith do you know if we're able to do this? This seems like a common problem that sas 9 apps built on top of IOM would have run into. I was hoping that the combination of using the SubmitComplete event handler on LanguageService coupled with having a programmatic way to fetch the results file would mean that we didnt need to rely on log parsing to determine completion status.
I worry that if users redirect log output, and we rely on log parsing to determine completion status, that the absence of log output will break our implementation. There are many use cases where a user might want to redirect log output to a file, for example.
For Viya, we don't need to parse the log in order to know if execution is done. We currently poll the compute job state for one of the "done" statuses to know when we should expect a result and log to fetch. The result files and log are attached to the HATEOAS links on the job that we inspect once we have a done status.
In the short term could we possibly localize the guid file naming behavior to the sas 9 connections while we figure this out? There's no real reason that we need to have this behavior for the non SAS 9 connections.

Yes, we are absolutely able to do this (use the IOM events in this way). Other clients that use IOM, such as EG and AMO, have done this for many years. I'll look through the EG code, but I'm fairly certain EG accomplishes via a combination of SubmitComplete and ODS events on the IOM interfaces. I agree, we shouldn't be parsing the log, since that is not robust. Iterative steps though.

Run code below with local94 or IOM connection, 'SAS code running' keeps showing on the page unless cancel the running.
proc sort data=&indsn(keep=&x &y &datalabel) %if %length(&datalabel) %then
  out=sorted(rename=(&x=X &y=VALUE &datalabel=DATALABEL));
  %else out=sorted(rename=(&x=X &y=VALUE));
  ;
  by &x;
run;

also note #608

I tried 2 forms of the event listening in PowserShell
Register-ObjectEvent -InputObject $this.objSAS.LanguageService -EventName "SubmitComplete" -Action {
      Write-Host "hello"
}

$this.objSAS.LanguageService.Add_SubmitComplete({
      Write-Host "hello"
})

Neither work, which matches this thread
It appears that PowerShell can't handle events from COM object.

I've noticed that sometimes the function names can be slightly off depending on the implementation. @clangsmith would this be a case for inspecting the .interop dlls to grab those specific event names?

Yes, I agree, we should be using the event handlers. Yes, the interop dlls would show you the signatures. I'm happy to show.


updating starter kit

Cleanup of the actionloop starter kit

@csantanapr @sciabarracom  Please do not approve PRs with Travis breaks.  I have had to fix Travis 3x in the last 2 weeks because we have been approving PRs where scancode breaks.  It should be a simple matter to read the logs and fix a few files that are causing the break.

I am sorry I did not notice the breakage of the build. Will fix asap

If Travis build is broken it should block PRs from being merge. If it’s not working like this let’s fix it.

Now the build is clean, and the changes are minimal mostly to keep in sync with the tutorial.

@sciabarra Thanks Michele!


Undeclared variable QUOTE

Hi, there's an error in the line 21524 of the file xlsx.js. The variable QUOTE is not declared, and this generates an error when you build a project using this library.
 var APOS = "'"; QUOTE = '"'
It looks like a typo, I just changed the ; for a , and it works perfectly.
Thanks.

welcome to pr!

Did I miss something or is the typo still there?

@ShanaMaid I've created a PR for it: #10 🙏

@ShanaMaid Plesae merge this, I am not able to use this library due to this type
***Please take a look at images below

Use another library

Use XLSX lib.
`import * as XLSX from 'xlsx';
...
exportToExcel() {
const fileName = 'test.xlsx';
	const ws: XLSX.WorkSheet = XLSX.utils.json_to_sheet(this.arr);
	const wb: XLSX.WorkBook = XLSX.utils.book_new();
	XLSX.utils.book_append_sheet(wb, ws, 'test');

	XLSX.writeFile(wb, fileName);

}
`

has vulnerabilities

I have a work around.
Just declare "QUOTE" as global variable.
In my case, I am writing a react application, so I just added it to the index.html file.
In index.html file, before including any other source code script.
<script type="text/javascript">      var QUOTE;  </script>


Adds basic CZML extractor

This is a draft CZML extractor. It currently can:

Generate the orbital CZML data for Cesium's Sandcastle
Edit the label, path and id details (text, fonts, colours)
Allows for an arbitary number of orbits to be defined

@Juanlu001 Thanks for the review! If I understand correctly, Code climate fails due to "high cyclomatic complexity", which I take refers to the many unnested if statements (if I'm not mistaken, it can have 2^6 different outcomes). Now the solution would be to either "break" the function into two smaller ones or omit a variable altogether.
I'm a bit lost as to why circleci fails. Is it related to the project's dependencies?

Don't worry about codeclimate for the moment, we can think of ways of simplifying that method in the future (or just ignore it, which is what we do 80 % of the times).
Regarding circleci: we use isort to sort the import statements in a consistent way throughout the project, and it's telling you that the order is wrong:
isort --check-only --diff --recursive --project poliastro --section-default THIRDPARTY src setup.py
ERROR: /root/repo/src/poliastro/contrib/extract_czml.py Imports are incorrectly sorted.
--- /root/repo/src/poliastro/contrib/extract_czml.py:before	2019-03-15 16:16:25.732628
+++ /root/repo/src/poliastro/contrib/extract_czml.py:after	2019-03-15 16:16:37.236302
@@ -1,9 +1,9 @@
+import json
+
 import numpy as np
-import json
-
+from astropy import units as u
+from astropy.coordinates import CartesianRepresentation
 from astropy.time import Time
-from astropy.coordinates import CartesianRepresentation
-from astropy import units as u

 from poliastro.contrib.czml_extract_default_params import DEFAULTS

Instead of trying to follow that manually, you can apply isort yourself using isort --recursive --project poliastro --section-default THIRDPARTY src setup.py (or, if you have poliastro installed in your development environment, which is the usual thing to do, just isort --recursive src).

@Juanlu001 Thanks I reformatted and now everything passes except for codeclimate and codecov. Regarding the code coverage, I'm planning on writing tests relatively soon. I'm still undecided about using nested dictionaries for JSON as it seems a bit inelegant, but it's the only efficient and comprehensible way I could come up with.

Thanks I reformatted and now everything passes except for codeclimate and codecov.

Excellent!

I'm still undecided about using nested dictionaries for JSON as it seems a bit inelegant, but it's the only efficient and comprehensible way I could come up with.

I don't have a strong opinion against it, but I would still need to review the code in depth. Give me one day to do it and I will write more meaningful comments and confirm the approach.

I am in process of reviewing this code, and I find it a bit difficult to use. I tried to create a class and then paste its .czml attribute in the Cesium Sandcastle, but it was somehow malformed and I had to slightly change its structure to make it work (namely, convert the result from a dictionary with keys 0 and 1 to a list of dictionaries). Then I found the extract method, which does the right thing. But in general, the class has too many public methods which I suppose are not normally used?
I propose making everything that won't be used by end users private, so perhaps leave only extract, add_orbit and del_orbit (rename to remove_orbit?)
Now I'm making some comments in the code.

@Juanlu001 I fixed most of the things you mentioned (most notably, orbits is now a list, I removed the ability to delete orbits and made DEFAULTS into a dictionary which is simply copied when initializing a new orbit.
What I didn't implement (yet):

Changing the way path/text parameters are changed:

I feel like loading up the initializer with so many parameters would be a bit overwhelming. Maybe we could add the "basic" parameters (name, path colour) and keep the other methods as a way to add even more customization options.

Using Orbit.sample():

Admittedly, I didn't look too much into the source, but I didn't find the way to set the time values

Extract the data to a file

Would a simple f.write(path) suffice?

I feel like loading up the initializer with so many parameters would be a bit overwhelming. Maybe we could add the "basic" parameters (name, path colour) and keep the other methods as a way to add even more customization options.

Perhaps, but take into account that there's lots of parameters in stuff like pandas plotting, or even matplotlib. The tradeoff is: more methods with fewer parameters, or fewer methods with more parameters. I lean towards the latter, to imitate what others do.

Admittedly, I didn't look too much into the source, but I didn't find the way to set the time values

Oops, you're right! Orbit.sample takes a fixed number of points now. The way of doing it now would be:
from poliastro.twobody.propagation import propagate

positions = propagate(
    iss,
    time.TimeDelta(...),
)

(see for example these notebooks [1], [2])

Would a simple f.write(path) suffice?

Use this instead:
with open("results.json", "w") as fp:
    extractor.write_czml(fp)

(and, internally, json.dump on the input fp)

@Juanlu001 I've been thinking about a way to correctly implement the parameter customization. I tried to put everything in one method but it became way too big and hard to follow. Here's the way I'd approach this: Make the parameters_change methods private and call them from the orbit initializer. That way, the user won't get overwhelmed by an abundance of oftentimes redundant methods and the code will still be relatively concise.

Sounds like a good approach to me!
On Sat, 23 Mar 2019, 23:44 Chatziargyriou Eleftheria, <
<EMAIL_ADDRESS>wrote:

@Juanlu001 https://github.com/Juanlu001 I've been thinking about a way
to correctly implement the parameter customization. I tried to put
everything in one method but it became way too big and hard to follow.
Here's the way I'd approach this: Make the parameters_change methods
private and call them from the orbit initializer. That way, the user won't
get overwhelmed by an abundance of oftentimes redundant methods and the
code will still be relatively concise.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/poliastro/poliastro/pull/601#issuecomment-475911136,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AATUZTA7lGTlhS00LBBD60UGawyDxEPxks5vZq5ngaJpZM4b2AEp
.

@Juanlu001 So I moved all the additional parameters to add_orbit (now codeclimate has another thing to complain about, yay!) and I think you were right. It is now easier for someone to easily define the parameters they want instead of potentially calling three different methods.
I wanted to ask you: What would the best way of specifying reference frames be? Aren't poliastro's Orbits implicitly inertial unless specified otherwise? If so, is there a way to change said reference system?

Codeclimate is too picky :) I agree it looks easier now!

Aren't poliastro's Orbits implicitly inertial unless specified otherwise?

The fact is that the orbits are internally converted to an inertial reference frame, even when created with the new Orbit.from_coords classmethod. This simplifies propagation and many other things. Therefore, I'd say we always assume it's an inertial system, at least for now.

@Juanlu001 Oh, I see! I changed the rf to inertial and it now works as expected with your Sandcastle template

Merged! Congratulations @Sedictious for this contribution :clap: and hope it's only the beginning! :wink:


Support on/off for each sockets

My Meross have 4 sockets, the meross can support turn each one on or off, can homebridge can do it? This is very useful to control every device in homekit.

Please use issue template.

@TimLi20 what model?

The model is mss426f

Did you check out the power strips wiki?


Compare tab

The compare tab is broken. It won't allow me to select two at once, and when I hold the image and it says add, I click it and it still says "Please add two images to start".

Duplicate of (#163) i think


Method and kwarg names are not descriptive

Hello, I was exploring this tool and running examples and found that the code could be better written. For example, a lot of the methods and keyword arguments are single letters and as a result, not descriptive. There is this cheat sheet because of it: https://coldtype.goodhertz.com/cheatsheets/oneletters.html
I know it seems convenient to opt-in for making single character methods and variables at write time, but code is read far more times than it is written. Are you guys open to accepting pull requests that change this?

Hi @cisko3000, thanks for filing the issue — what you're saying definitely makes sense, and I think, generally speaking, is good advice to follow. But in the case of the kind of creative coding that coldtype makes possible, I've found the reverse to be true: the code is written much more often than it is read. Or at least that's very true of how I use coldtype. Most software engineering focuses on "long-term" code that is maintained and tweaked over long periods of time. Creative code is usually single files that are written over the course of a few days, in order to make some creative artifact, like a single image or a video, and then revisited only for the purposes of learning from past work.
So while I definitely agree that Coldtype is difficult to learn and the single-letter abbreviations are not descriptive/intuitive, the upside outweighs those downsides. Being able to write code quickly as part of a creative process has been life-changing for me, and makes me want to write more code / code more animations. I tend to think of it a little like learning a new musical instrument — very difficult at first and requiring some rote memorization, but after a while it becomes second nature and leads to more creativity.
That said, better documentation is definitely something I need to work on!

Yeah that's a no, I don't want to change the abbreviation style of code in coldtype, which is pretty fundamental to how everything is written. (Though almost all of the abbreviated things are already aliased to longer non-abbreviated versions.) Just out of curiosity, can I ask why you're interested in coldtype then and not something like drawBot? DrawBot has great straightforward method names and documentation.

Because it can be animated by midi files.


imagereplace attack doesn't replace some images

The imagereplace attack doesn't always replace images. I wonder if it's because it can't handle some image types (e.g., webp).

It should support anything with a content type that starts with image, see https://github.com/google/nogotofail/blob/dev/nogotofail/mitm/connection/handlers/data/http.py#L416
It could be more issues with the http detection?


formData.forEach in node.js v18 incompatibility problem

What version of Hono are you using?
3.11.7
What runtime/platform is your app running on?
node
What steps can reproduce the bug?
hono uses formdata. forEach in four places, but formData does not have the forEach function on node 18
https://developer.mozilla.org/en-US/docs/Web/API/FormData#browser_compatibility
What is the expected behavior?
No response
What do you see instead?
No response
Additional information
No response

Hi @2234839
Please give us the detailed version of Node.js you are using.

Node.js v18.3.0.

@2234839
It's not a bug or unexpected behavior.
Hono Node.js adapter requires 18.14.1 or greater. See:
https://github.com/honojs/node-server?tab=readme-ov-file#requirements


[Bug] Incopatibility with storybook-addon-next

What version of vite are you using?
vite v3.1.3
System info and storybook versions
System:
OS: MacOS BigSur 11.7
CPU: 2.3 GHz Quad-Core Intel Core i7
Binaries:
Node: 16.16.0
yarn: 1.22.15
Browsers:
Chrome: 105.0.5195.125
npmPackages:
"@storybook/addon-actions": "6.5.12",
"@storybook/addon-essentials": "6.5.12",
"@storybook/addon-links": "6.5.12",
"@storybook/builder-vite": "0.2.2",
"@storybook/react": "6.5.12",
"storybook-addon-next": "1.6.9",
Describe the Bug
Using storybook-addon-next in combination with builder-vite produces an error once storybook server started.
Reproduce repo link.
I've added instruction to start.
A warning message:
Warning: ReactDOM.render is no longer supported in React 18. Use createRoot instead. Until you switch to the new API, your app will behave as if it's running React 17. Learn more:

Error message is somehow related with next-image-stub.js:
Uncaught TypeError: Invalid Version: undefined
    at new SemVer (semver.js:19:13)
    at compare (compare.js:3:3)
    at Object.gt (gt.js:2:29)
    at node_modules/storybook-addon-next/dist/images/next-image-stub.js (next-image-stub.js:7:22)
    at __require2 (chunk-S5KM4IGW.js?v=7ad206d8:18:50)
    at node_modules/storybook-addon-next/dist/preview.js (preview.js:7:1)
    at __require2 (chunk-S5KM4IGW.js?v=7ad206d8:18:50)
    at dep:storybook-addon-next_dist_preview__js:1:16

Steps to reproduce

Clone repository
yarn
yarn storybook:start
Once Vite bundled, go to http://localhost:6006/
Inspect an error in console

Video
https://user-images.githubusercontent.com/15727958/192000642-f0bffba6-b551-4f5f-aaac-5830ac4ff5ad.mp4
Link to Minimal Reproducible Example
Branch bug:
https://github.com/dvakatsiienko/next-vite-storybook/tree/bug
Participation

[ ] I am willing to submit a pull request for this issue.

@dvakatsiienko Hi, your reproduction repo is private. Do you mind giving us access?

Saying that I do think I know what the issue is. storybook-addon-next was only create to support webpack. The issue here is because __NEXT_VERSION isn't set. Normally this is done using the define plugin https://github.com/RyanClementsHax/storybook-addon-next/blob/fb4ade3be790f68cf3eb47cff53eb45bd5d945d4/src/utils.ts#L8 so maybe if you re-create that using vite's define option it might work but hard to say.

I've though it's dead so deleted repository with repro example.
Got it back, check here.

@joshwooding I'll take a look

Saying that I do think I know what the issue is. storybook-addon-next was only created to support webpack. The issue here is because __NEXT_VERSION isn't set. Normally this is done using the define plugin<EMAIL_ADDRESS>so maybe if you re-create that using vite's define option it might work but hard to say.

I've created an issue for storybook-addon-next as well, RyanClementsHax/storybook-addon-next#120.
@RyanClementsHax gave his comment from his side why it won't work for now, so let's wait I guess.

@dvakatsiienko did you find a workaround? I had so many issues using webpack+storybook+sass... that I'm sceptical to go back to it :/

@sneko No, I've left the adaptation entirely due to no need. Take a look, maybe they did the solutions during last month or two.

At the end I made a storybook project from scratch and patched mine... it seems due to specific dependencies versions addind Sass was messing up (really messing up), but now it's good. So bye bye Vite, going to Webpack even if it feels a bit slower ^^
Thanks for answering ;)

Next.js isn't officially supported by the storybook vite builder, for the reasons mentioned above.  I think you're best off sticking with the webpack builder when using next.js, to avoid different behaviors between your storybook and app.
If you'd like to speed things up a bit, you can try out storybook 7.0, which should be a good deal faster, even when using Webpack.

Hi! Just found this issue, as I'm also trying to kick up the Storybbok 7 with Vite and Next plugin together (I have issues with running Webpack version, but that's another story...).
So, indeed using "define" option in Vite config, as described by @joshwooding above works :) It's similar to one below - for now I've just hard-coded the Next version, but I'll just copy-and-adjust code fragment from storybook-addon-next used to fetch the NextJs version from it's package.json file.
  async viteFinal(config) {
    return mergeConfig(config, {
      define: {
        "process.env": {
          __NEXT_VERSION: "13.1.1",
        },
      },
    });
  },


Update to Electron 14

The official Caprine ships with Electron 10 and with some patches here and there I have managed to bump it up to Electron 13 which solves a serious bug some users (myself included) were having.
As Electron 13 has been deprecated, there is an urgent need to move away from it because it poses a significant security risk. Also, this would likely solve a few bugs, including #5.
What's keeping me from bumping the Electron version, is the enableRemoteModule option which has been separated from Electron.
@1nikolas if you have any spare time, please prioritize this over the other issues you have mentioned

Okay so after a lot of research I found where the problem is.
First of all, electron 14 requires us to use the @electron/remote module instead of the electron.remote (hence the enableRemoteModule error). Remote isn't used much on the app, only on the electron-util module which is made by the creator of Caprine. The problem with this module is that it doesn't support the @electron/remote module (so it doesn't support electron >=14) and there is no plan to support it (as seen here and here). So we need to find alternatives

Also we have to say goodbye to the do-not-disturb module which manages do not disturb on mac (uses electron-util)

@1nikolas Thank you so much for your interest in moving this project forward!
I think that creating (or adapting) an electron-util alternative is too much work. What about forking electron-util and then applying some patches to make it compatible?
Right now there is an open PR which removes the remote module and bumps electron to v19.
The do-not-disturb module doesn't really matter right now because I can't even build for macOS :(

The do-not-disturb module doesn't really matter right now because I can't even build for macOS :(

I can do mac builds with a (100% legitimate & legal) MacOS vm

I think that creating (or adapting) an electron-util alternative is too much work. What about forking electron-util and then applying some patches to make it compatible?

I did some tests yesterday and at this point I'm not 100% sure if electron-util is even the problem. Most of the utils caprine uses don't use remote and even after removing these I get to the same error: can't preload browser.js. Something in browser.js still uses remote and I can't find what it is.. Because if I enable remote on the current electron version it works just fine. If I use remote with the new way (with the remote module) it doesn't work because whatever uses remote it uses it the old way.. And the preload error doesn't help (doesn't tell where the error is)

I can do mac builds with a (100% legitimate & legal) MacOS vm. Jokes aside the legal way to go here is to use Darling on Linux but I have no idea if this can run node.
Oh, that's great!

I did some tests yesterday and at this point I'm not 100% sure if electron-util is even the problem. Most of the utils caprine uses don't use remote and even after removing these I get to the same error: can't preload browser.js. Something in browser.js still uses remote and I can't find what it is.. Because if I enable remote on the current electron version it works just fine. If I use remote with the new way (with the remote module) it doesn't work because whatever uses remote it uses it the old way.. And the preload error doesn't help (doesn't tell where the error is)
Are you testing on Electron 14? Because I have heard that remote was removed totally in Electron 15? I am not sure though. If only you were able to eventually work it out... that would be a blessing!

I managed to run it successfully (yay) but I had to remove a ton of stuff. I think I know where the problem is now. It's the electron-is-dev module which is being used constantly buy the modules sindresorhus has made (namely do-not-disturb, electron-context-menu, electron-debug and electron-util). And the problem is that this module is being used in a 2 depth dependency situation (aka dependency of a dependency) which means the only way is to re-inppument. I mean most modules are being used once so it should be easy to copy the non-problematic code

sindresorhus's module ecosystem makes sense since he's making lots of apps which use them but it's very frustrating to deal with when one of them breaks..

electron-is-dev is indeed the cause of the problem. I manually edited the module files from node_modules and it works perfectly fine. If only there was a hacky way we can replace module files after npm i..

Wow, I'm really amazed by your work! I'm going to test and merge everything and then do a reevaluation to see if everything functions correctly. I honestly don't know how to thank you!

Wow, I'm really amazed by your work! I'm going to test and merge everything and then do a reevaluation to see if everything functions correctly. I honestly don't know how to thank you!

You might wanna hold up releasing a new update, I'm going update some broken class names here and there and fix some stuff for the new messenger ui (which strangely appears only on my main fb account, tried a secondary account still has the "old" one; I guess it's good to have access to both for testing). Also wanted to implument an update notification (I think the updater from the original repo broke like some years ago) anyway it's really easy to do
I always wanted to fix this broken hell of an app which caprine has been lately and now that I got some free time i think it's the time to do it

Okay then, I'm going to create a separate branch for it in the meantime. I think it's great to see someone interested in fixing that project. It's a total mess as you have said because nobody has really maintained it for the past two years.
In order to make your life easier I have invited you to become a collaborator so you don't need to open pull requests in the future. We could also make a testing branch when we want to release a stable version. Also if you think that the versioning should not depend on the upstream project feel free to make any suggestions!

You are really lucky to have two accounts with both layouts! Of all my 5 accounts none has the new layout!


RFE: Make sure that crs are backwards compatible across a version

Currently crs are not backwards compatible at all, meaning that a cr that works with master branch today isn't guaranteed to work tomorrow ( if the master branch of ripsaw changes say with #218 getting merged uperf cr's need a new key in the cr ).
Given that master is fast moving, it probably is okay. However, this would also mean that the cr that worked with 0.0.1 branch of ripsaw isn't gonna work either with the master release of ripsaw. So we should look at establishing what backward compatibility are we willing to support with crs, and following are the choices:

CRs should always be backwards compatible meaning a cr working now should also work the same way in future with no changes required whatsoever.
CRs to be backwards compatible with minor releases so cr working with 0.0.1 version should definitely work with 0.0.2 or 0.0.9 version of ripsaw but it's okay if it doesn't work with 0.1.0 version of ripsaw.
CRs don't have to be backwards compatible at all meaning that a cr working with 0.0.1 version will not be expected to work against 0.0.2 version.

Open for discussion and votes to figure out the best way to move forward

@bengland2 @jtaleric @jeniferh @dry923 @dustinblack @chaitanyaenr thoughts on this?

I don't think this is a valid RFE.  It's impossible to guarantee in benchmark-independent parts of  ripsaw that CRs are backwards compatible - that depends on the benchmark implementation, where the CRs are interpreted.   It should be possible to implement backwards compatibility for CRs in a ripsaw benchmark, but I think it already is.

My suggestion is simple but might be complex.
The initial definition of a workload CR (once deemed Stable) should always be backwards compatible if new key:value's are introduced.
For example, UPerf has been pretty stable, however we introduced a new key, kind. For everyone who was using UPerf, that attempted to run their previous generation CR. The result was failure. Simple due to this new missing key kind. They were not making changes to their previous CR, they simply updated to the latest Ripsaw, and their old CR is now invalid. This isn't totally obvious to them.
My argument is we need to default values that are newly introduced vs have the user explicitly have to add new keys, which they have no intention on possibly using.
What if they maintain their own set of Ripsaw CRs, instead of using the maintained ones we have?

Yes, if you add new keys to your CR yaml, you can always define a default value for the new keys, and old CRs can take advantage of these default values to execute without change.   That's up to the benchmark implementer.  The example CR provided in github for the benchmark could include comments defining what the default values are.

Making sure that CRs are always backwards compatible would mean testing all the possible variations of a cr against each version of ripsaw ( because like Joe said what if the user maintains their own cr ? ) and ensuring the output is similar. This not only adds complexity while writing code especially adding new features but also has the additional testing overhead mentioned above during releases. However maintaining backwards compatibility across minor versions would provide us only a limited set of versions of ripsaw to test the cr against.
Another important thing to note here is this that when using operatorhub for installs, we can replace an older version with a newer version on the fly. This would mean that an user running lets say 0.0.1 version prior would expect all the same features with 1.0.0 version as well, despite there being a significant major release difference and functionality may have changed.
I'd prefer not having to contributors bind to making sure crs are always backwards compatible ( we don't know what new future we'd like to implement which would mean re establishing the stable definition of a workload cr ), but do agree that it makes sense to maintain a bit of backwards compatibility so users don't have to constantly update their CRs so i'm leaning towards maintaining backwards compatibility across minor versions so a cr working with ripsaw's version 0.0.1 should work with 0.0.9 but doesn't have to work with 0.1.0. This would also take additional overhead off me of having to do so much testing between releases.


Setting sql connection pool

How can i set the max,min db connection

Any scenario to set it?

I built monolithic model, but i can not set the max pool (the default is 64), and must edit file sqlx/sqlmanager.
How can i init the connection pool Max/Min in generate project.

Why to set these parameters? Got any connection problem?

yes, there are some issue with timeout & lock record in db and handle connection

I think you might use https://github.com/kevwan/tproxy to check if any connection problem.
Or please describe more on your specific scenarios.


Is the fingerprint supposed to change, when https://www.thumbmarkjs.com/ is shown on a Firefox private window?

I visited https://www.thumbmarkjs.com/ using Firefox 122 running on Fedora 39. When visit the site from a private window, I get a different fingerprint. The difference is caused by the different value for canvas.commonImageDataHash.
Is this expected?

It might be tough to 'fix'. Not intended, of course, but could be a 'by-design' kind of a thing.
I'll look into this at some point, but I suspect that Firefox does something funky with the canvas that is different between normal and private window. It could be potentially impossible to make these match (depends on what is going on), and the solution would be to disable canvas on Firefox. This can be done, but it then removes a quite powerful fingerprinting technique. Luckily, webgl seems to be intact, and audio.

Okay decided to make a quick fix by removing canvas from Firefox in 0.12.2.
I'll probably need to add an option that people can choose between better persistence and higher granularity. For now, this is fine.
Thanks for pointing this out!

I also tried adding an exception for the site on the Enhanced Tracking Protection settings, but the fingerprints are still different. I also cleared the cache before visiting the site (after closing all the Firefox windows).
Apparently, Firefox randomizes some data in the private window. In fact, I get a different fingerprint all the times.
Thank you for your reply and for taking a look!

Yeah, I've noticed this pattern as well. Throughout the same session, it stays the same, so you can't even calculate it multiple times and check for common bytes. It's probably impossible to fix in any other way, but for now, Firefox will not use canvas and rely on the other components only. Not great, but at least it's a fix.


How to change db setting inside middleware ?

i've defined db setting like this
//settings.php
        'db' => [
            'driver' => 'mysql',
            'host' => getenv('DB_HOST'),
            'port' => '3306',
            'database' => getenv('DB_DATABASE'),
            'username' => getenv('DB_USERNAME'),
            'password' => getenv('DB_PASSWORD'),
            'charset' => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix' => '',
        ],

//dependencies.php
$settings = $container->get('settings')['db'];
$capsule = new \Illuminate\Database\Capsule\Manager;
$capsule->addConnection($settings);
$capsule->setAsGlobal();
$capsule->bootEloquent();

$container['db'] = function ($c) use($capsule) {
	return $capsule;
};

//middleware.php
$change_database = function($request, $response, $next) use($container) {
	$input = $request->getParsedBody();
	$channel = $input['channel'];
	$response = $next($request, $response);
	return $response;
};

how can i change it inside middleware ?

ah never mind, i just need to copy what's exist in dependencies to the middleware. And the database changed.

Hi, Can you help me please, in connecting database.


Implement the pitched Character and Unicode.Scalar class APIs

This includes all the APIs covered in the first round of the character classes Evolution pitch, along with Boolean properties on Unicode.GeneralCategory that correspond with the Unicode general category groups (e.g. Letter and Mark).

What's the status of this PR? Should we go forwards or close it?

These will need to be the subject of a future evolution proposal.


GWM: Haval h6 2024

*****CarBrand Port *****
requires: https://github.com/commaai/opendbc/pull/1086
Development Checklist

[x] Use toyota corolla tss2 as a base
[ ] Try made openpilot react a safety signals:
[x] BrakePressed
[x] WheelSpeed
[ ] GasPressed
[ ] SeatBelt unlatched
[ ] DoorOpen
[ ] Gears
[ ] ParkBrake
[ ] SteerPressed
[x] start GWM interface from scratch
[ ] clean all toyota and other development state modifications, keep openpilot in a clean state
[ ] Test again all safety and start panda safety
[ ] figure out CRC
[ ] try control steer
[ ] try control longitudinal
[ ] keep all existing tests working
[ ] need new test?

working togheter https://github.com/celobusana
crc algorithm ? https://github.com/commaai/openpilot/pull/32877/files
Final Checklist

[ ] added entry to CAR in selfdrive/car/*/values.py and ran selfdrive/car/docs.py to generate new docs
[ ] test route added to routes.py
[ ] route with openpilot:
[ ] route with stock system:
[ ] car harness used (if comma doesn't sell it, put N/A): N/A (Haval h6 "GT" needs a different harness from h6)

We've moved the car interfacing code to our opendbc repository, which is now the new home for car ports and fingerprints. Please re-open your pull request against opendbc at your convenience by using this command below. This will transform all changes under selfdrive/car/ to opendbc_repo/opendbc/car/. Make sure you have initialized submodules beforehand and have checked out the latest opendbc commit.
PR_NUMBER=33045
curl -L https://github.com/commaai/openpilot/pull/$PR_NUMBER.patch | sed -e 's/selfdrive\/car/opendbc_repo\/opendbc\/car/g' | git apply -v --reject

Simply replace the PR number with your own. Once done, add the files, fix any conflicts, and open a new PR. Alternatively, you may start a new PR from scratch if that is easier for you.


Wrong file in npm registry

Forgive me if I am wrong but in the registry https://registry.npmjs.org/discord.js/-/discord.js-11.1.0.tgz,
the files are not the same as shown here on github.
In particular some things are missing as in the GuildAuditLogsEntry class, createdTimestamp() and createdAt(). Perhaps you linked something wrong cause am seeing things fine in github.
Thank you

the master branch on github is ahead of the 11.1.0 release because we keep making changes for the next release on github.
the stable branch and the latest release on npm should always be the same

What I was saying is the stable version I got from the npm registry and the one am seeing on discord seem to be different.

It is not.

Well I just checked my GuildAuditLogs.js and it does not contain the two getter functions, though after installing master it does. I have the exact same issue with 1481.

I just checked this and the getters are indeed missing. Cache was cleaned. Tried it with both node 6 and node 8. It seems like the npm package was uploaded at c3be798 but the github tag was created one commit later.

@hydrabolt 🙄
If you don't want breaking changes but still have the fixes and features just update to the 11.1-dev branch.
npm i -S hydrabolt/discord.js#11.1-dev
You will need git for this.


[FEATURE] Enhance user experience of Harvester/Rancher UI interaction

Currently, we just jump to the Rancher UI as a pop-out window, which left more to be desired in the UX integration.
The team is already working on a design of updated UI interaction between Harvester and the upcoming Rancher 2.6.
We're waiting for a design decision before implementing the enhancement.

UI integration PR has been merged. All future issues can be tracked by separate tickets.


On *nix the binary fails to update if the binary is saved in a directory that is owned by root

Pretty self explanatory issue.
The reason is that the cli updates relavtive to itself rather than in the user's home directory.

Also, the permissions on the binary itself are going to need to be "777" so that and update can actually override the binary.

cf #33


[Event Request] Codeunit 90 Purch.-Post - OnBeforeFillInvoicePostBufferFADiscount

Hi, would it be possible to get an event OnBeforeFillInvoicePostBufferFADiscount in Codeunit 90 Purch.-Post, procedure FillInvoicePostBufferFADiscount, like this :

OnBeforeFillInvoicePostBufferFADiscount(IsHandled);
?
Thanks

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


Tensorflow example hangs when using multiple workers

Filter all connections except that between ps and this worker to avoid hanging issues by following the PR:
https://github.com/linkedin/TonY/pull/120/commits/d7553ca3ec66575a21a995809e3209270874ab42

赞，亲测1.13 gpu版本下可以跑，没有问题，非常感谢


Suggestion: Treat async without await as an error

Search Terms: async, await, __awaiter
In one of my codebases, a bunch of functions that were originally using async/await were refactored to simply return a promise instead of awaiting it. During that refactor, I forgot to remove the async keyword from some of the refactored functions. This was no problem, except for one user who constantly got TypeError: Generator already running when starting the application via child_process.fork().
After removing the unnecessary async keywords from these functions, his problem was gone. IMO the compiler should report an error when an async function is missing the await - just like using await without async is an error.

typescript: 2.6 / 2.7
target: "es2015"

Code
declare function foo();
async function bar() {
    foo();
}

Expected behavior:
Error: Async functions should contain the "await" keyword at least once.
Actual behavior:
No error.
Playground Link: https://www.typescriptlang.org/play/#src=%2F%2F this is fine%3A
declare function foo()%3B
async function bar() {
    foo()%3B
}

%2F%2F this is not%3A
function baz() {
    await foo()%3B
}
Related Issues:
https://github.com/Microsoft/TypeScript/issues/13376

Having async functions without any await inside is totally valid and even useful in some cases. You can for example implicitly catch synchronously thrown exceptions and turn them into rejected promises.
Warning about this is not the business of the compiler. The is the domain of a linter. In fact there's already a request for such a rule in TSLint, but I still don't see the value of such a rule.
If there's a runtime error, this is either caused by a faulty runtime or there's a bug in the downlevel emit for the async function. But that would be a separate issue.

You can for example implicitly catch synchronously thrown exceptions and turn them into rejected promises.

Haven't considered this, but I usually dislike code that implicitly does stuff. Thus I can see the value of the rule you mentioned. It's along the lines of: "I know I'm only using async when I await stuff, now show me where I messed up".

or there's a bug in the downlevel emit for the async function. But that would be a separate issue.

If that's the case, here's the relevant commit which fixed the issue: https://github.com/AlCalzone/node-tradfri-client/commit/2dc3f72f9e7f96dbcaf40ff3277cd6983556a006

We have discussed similar issues in the past, including #13376 and https://github.com/Microsoft/TypeScript/issues/13847. The conclusion here was that these are not always an error, and the compiler should not force these checks on everyone. Such checks should however be considered as a lint rules that users can opt-in and out from and disable for specific use instances.
For that i think this is currently out of scope of the compiler.

Such checks should however be considered as a lint rules that users can opt-in and out from and disable for specific use instances.

I see, how would one go about getting a rule like this implemented? I don't have enough knowledge about the TS or TSLint internals to do so.


Running on local URL:  https://:443 ?

Hi. The local URL has changed to [https://:443] - it does not work on Chrome. I. deleted sd folder and rerun the newest notebook again to no avail. Is this a bug or am I doing something wrong?
Thanks.

Same as https://github.com/TheLastBen/fast-stable-diffusion/issues/465
Use Gradio server for now.

I'm getting the same https://:443 URL as well.

Localtunnel currently down, use gradio as of now


WIP: Created Listener Service

Server connects to mongo via connection string
Updates rabbitmq on changes
Added winston
Docker-compose creates a replicaSet

@nogahaskal please go over the last commit

Before closing, we need to go over the packages!
@nogahaskal


[JENKINS-31153] Rename Workflow to Pipeline

Signed-off-by: Gianpaolo Macario<EMAIL_ADDRESS>

Thank you for this pull request! Please check this document for how the Jenkins project handles pull requests.

:+1: spot on


Setting the env to sandbox in basic integration mode breaks popup

In your basic integration demo (demo/button.htm), if you switch the env to 'sandbox' and click the checkout button, the popup will keep spinning forever - checking the console shows a 400 bad request on the call to sandbox.paypal.com/v1/oauth2/token and a "Unexpected end of JSON input" syntax error. This was working just fine about a week ago?

This is probably due to one of two things:

PayPal sandbox apis can be a little unreliable. We're actively working on improving this
Sometimes the request can error out if the header size is too large. Usually this is caused by too many cookies being sent. Can you try clearing cookies for .paypal.com and trying once more?

Thanks

It's a christmas miracle! Wiping all cookies for paypal solved the issue - thanks!

It's a festivus miracle!
A few people have hit this problem, so I'll keep this open and try to track down which layer is rejecting these requests. Maybe we can bump the header size limit or at least add a meaningful error code.

Added https://github.com/paypal/paypal-checkout/issues/156 to track.


add client connect helper and a mock server

The client connect helper can be reused by both the shim and the runtime. The mock server can be used to test client side code without having to wait for the agent to be ready.
Please do not merge it yet. I want to rebase it after #9 is merged so that we get basic container and process tracking in the mock server.

@bergwolf I added the WIP tag to the PR subject to make it clear that this is not to be merged yet.

@sameo the PR is ready for reviewing. PTAL.

Except for the missing documentation on the exported API, this LGTM

@sameo docs added.

LGTM

@jodh-intel Any further comments on that one?

lgtm


Upgrade to Scala 2.11.12

I have already published Scala.js 0.6.19, 0.6.20, 0.6.21 and 1.0.0-M1 for Scala 2.11.12. We should now add it to our CI for future versions.

Fixed in e00ec5577b309c32bbce10cd0b9fe21c28a92789.


Issue importing shapely.geos

Hello,
I installed Shapely v1.7.0 from PyPI using PIP and am getting an error message related to geos. My operating system is Windows 10 Enterprise x64.
import shapely.geos
Traceback (most recent call last):
File "", line 1, in
import shapely.geos
File "C:\Users\hassincd\AppData\Local\Continuum\anaconda3\lib\site-packages\shapely\geos.py", line 145, in
_lgeos = CDLL(os.path.join(sys.prefix, 'Library', 'bin', 'geos_c.dll'))
File "C:\Users\hassincd\AppData\Local\Continuum\anaconda3\lib\ctypes_init_.py", line 356, in init
self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] The specified module could not be found
Is this a geos version issue? Any help is much appreciated!

@chhassin anaconda users must get shapely using conda, not pip. conda install shapely -c conda-forge.
https://anaconda.org/conda-forge/shapely/

@sgillies , thank you, this fixed it


Validate runtime image format with regex

Provides a part of the solution for #2208
What changes were proposed in this pull request?
Adds a regex match to _validate_container_image_name() to catch incorrectly formatted container images. The regex follows the basic rules that we define here in our docs (i.e. hostname is optional, tag name is required, etc.).
NOTE: I have 2 regex's currently in the validation.py file. The uncommented one is very basic and only checks for the lack of spaces and presence of forward slashes. The commented-out regex is much more complex and follows the rules that docker sets forth for their image names. I'm not sure we want to go the more complex route, though, because it's difficult to determine whether other platforms enforce the same rules that docker does. We may also want more of a middle ground where we allow only digits, word characters, underscores, dashes and periods. Let me know in the review, and I'll remove the unused one!
How was this pull request tested?
A case was added to an existing test to cover this situation. Also did some manual testing.
Developer's Certificate of Origin 1.1
   By making a contribution to this project, I certify that:

   (a) The contribution was created in whole or in part by me and I
       have the right to submit it under the Apache License 2.0; or

   (b) The contribution is based upon previous work that, to the best
       of my knowledge, is covered under an appropriate open source
       license and I have the right under that license to submit that
       work with modifications, whether created in whole or in part
       by me, under the same open source license (unless I am
       permitted to submit under a different license), as indicated
       in the file; or

   (c) The contribution was provided directly to me by some other
       person who certified (a), (b) or (c) and I have not modified
       it.

   (d) I understand and agree that this project and the contribution
       are public and that a record of the contribution (including all
       personal information I submit with it, including my sign-off) is
       maintained indefinitely and may be redistributed consistent with
       this project or the open source license(s) involved.

I'm not sure either one (haven't had a chance to test) would accept something like this
quay.io/elyra/kfp-tutorial-count-rows-component@sha256:8b9f58b52ee26ea8aa48eb7b8b04da95cc9bb5b57ad11b554afb250235fcefb8

as a valid value - which it should be (ignoring for now that above example URL is a container  image that does not have the prerequisites installed to run a notebook.
Could you please build a dummy runtime container image, obtain the URL and try this? The last command below obtains the URL in the format specified above:
$ docker build -t $(CONTAINER_IMAGE_NAME) .
$ docker tag $(CONTAINER_IMAGE_NAME) quay.io/$(QUAY_ORG)/$(CONTAINER_IMAGE_NAME)
$ docker push quay.io/$(QUAY_ORG)/$(CONTAINER_IMAGE_NAME)
$ docker inspect --format="{{index .RepoDigests 0}}" quay.io/$(QUAY_ORG)/$(CONTAINER_IMAGE_NAME)


RemoteTaskRunnerRunPendingTasksConcurrencyTest Transient testing issue

io.druid.indexing.overlord.RemoteTaskRunnerRunPendingTasksConcurrencyTest can fail in the following way:
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.193 sec <<< FAILURE! - in io.druid.indexing.overlord.RemoteTaskRunnerRunPendingTasksConcurrencyTest
testConcurrency(io.druid.indexing.overlord.RemoteTaskRunnerRunPendingTasksConcurrencyTest)  Time elapsed: 1.191 sec  <<< ERROR!
org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /test/druid/indexer/tasks/worker1/task2
	at org.apache.zookeeper.KeeperException.create(KeeperException.java:111)
	at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
	at org.apache.zookeeper.ZooKeeper.delete(ZooKeeper.java:873)
	at org.apache.curator.framework.imps.DeleteBuilderImpl$5.call(DeleteBuilderImpl.java:243)
	at org.apache.curator.framework.imps.DeleteBuilderImpl$5.call(DeleteBuilderImpl.java:237)
	at org.apache.curator.RetryLoop.callWithRetry(RetryLoop.java:108)
	at org.apache.curator.framework.imps.DeleteBuilderImpl.pathInForeground(DeleteBuilderImpl.java:234)
	at org.apache.curator.framework.imps.DeleteBuilderImpl.forPath(DeleteBuilderImpl.java:218)
	at org.apache.curator.framework.imps.DeleteBuilderImpl.forPath(DeleteBuilderImpl.java:42)
	at io.druid.indexing.overlord.RemoteTaskRunnerTestUtils.mockWorkerRunningTask(RemoteTaskRunnerTestUtils.java:161)
	at io.druid.indexing.overlord.RemoteTaskRunnerRunPendingTasksConcurrencyTest.testConcurrency(RemoteTaskRunnerRunPendingTasksConcurrencyTest.java:123)

https://travis-ci.org/druid-io/druid/jobs/127192620


error occurs when i try to start up the server

every time i try to start up the server, an error occurs. Here are the server logs:
Thanks for giving credit for CloudRequests!
Exception in thread Thread-3 (_updater):
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/websocket/_http.py", line 176, in _get_addrinfo_list
    addrinfo_list = socket.getaddrinfo(
                    ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/socket.py", line 976, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
socket.gaierror: [Errno -2] Name or service not known
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/threading.py", line 1075, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.12/threading.py", line 1012, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/lib/python3.12/site-packages/scratchattach/eventhandlers/cloud_events.py", line 31, in _updater
    self.source_cloud.connect()
  File "/usr/local/lib/python3.12/site-packages/scratchattach/cloud/cloud.py", line 27, in connect
    super().connect()
  File "/usr/local/lib/python3.12/site-packages/scratchattach/cloud/_base.py", line 137, in connect
    self.websocket.connect(
  File "/usr/local/lib/python3.12/site-packages/websocket/_core.py", line 256, in connect
    self.sock, addrs = connect(
                       ^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/websocket/_http.py", line 137, in connect
    addrinfo_list, need_tunnel, auth = _get_addrinfo_list(
                                       ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/websocket/_http.py", line 191, in _get_addrinfo_list
    raise WebSocketAddressException(e)
websocket._exceptions.WebSocketAddressException: [Errno -2] Name or service not known

Scratch's server is down. There's nothing anyone can do at the moment.

you can try to switch to turbowarp for now


Support Android proximity part

Are you favorable of accepting Android parts for this proximity functionality if I can develop it?

My team is working on this. Will make pull request soon.

I am closing it because 2.0.0 is released with Android support. 👍