Change Current Collections Search Flow

We currently have two search flows for users on CC Search:

Search term entered on homepage, entire Catalog can be searched, filters can be applied, including filters for the Source.

User goes to Collections page, clicks on a Collection, and is taken to a URL dedicated to that Collection, that looks and feels like our Results page, but isn't.
Example: https://search.creativecommons.org/collections/clevelandmuseum
After search: https://search.creativecommons.org/collections/clevelandmuseum?license=&license_type=&categories=&extension=&aspect_ratio=&size=&source=&q=stuff&searchBy=&mature=

We are about to make other changes to the Collections page - we plan to retire it and replace it with a page that contains a table of all Sources. We'd like to change the second flow described above at the same time to this:
User goes to new Sources page (or current Collections page, if this gets worked on before the Sources page is built), clicks on a Source, and is taken to the Search Results page with all results for that source loaded, and the source is applied as a filter (visible with a filter pill below the search box, and in the left hand side bar).
We need to make sure when doing this that the /collections/collection-name URLs all redirect to the new page we're taking users to.

FYI @zackkrida ticket is now created for what we discussed earlier. Tentatively figuring this can go in the next sprint (i.e. last week of July).

Definitely! I will look into how we currently handle redirects for CC Search (if we do at all), because there's some interesting behavior to figure out:

Currently the 'collection' results pages allow for viewing without a search query: https://search.creativecommons.org/collections/clevelandmuseum
That behavior is not allowed on the main results page (this link will redirect to the home page): https://search.creativecommons.org/search?source=clevelandmuseum, it requires a search term: https://search.creativecommons.org/search?source=clevelandmuseum&q=dogs

So we may ultimately have to redirect the /collections/clevelandmuseum just to the homepage like you thought originally

@annatuma given the above context, could you confirm, do you think redirecting these to the homepage will be okay, or should i try to make urls like https://search.creativecommons.org/search?source=animaldiversity work without a search query?

Perhaps we should redirect them to /collections for the time being, which will subsequently be redirected to the new /sources page when that is built (design not yet finalized). So, someone coming in to https://search.creativecommons.org/collections/met will just end up at https://search.creativecommons.org/collections, where they'll be able to see the Met listed as a collection (and in the future, a source).
I do expect the number of inbound links to specific collections is very, very low, but at least this points the user in the right direction if they're coming in through one.
What do you think?

@annatuma that sounds good to me, and i imagine we'd want to remove these links entirely:

Sorry - missed that crucial step in the logic here - if we don't load results in CC Search with no search term, then both the current Collections page and future Sources page are less useful. They just become information lists, with no actionable ability if a user views them.
Is this functionality we need at the API level, in terms of filtering the Catalog without a query?

that's a great question—i know the front-end has a lot of protections and redirects in place to prevent executing a search without a query but i don't know at the api level.

cool, quick test @annatuma, the api does allow you not to specify a url. So I can do everything we need, just need to wrestle the front-end into shape 👍
❯ curl http://api.creativecommons.engineering/v1/images\?source=clevelandmuseum | jq '.results[].url'

"https://openaccess-cdn.clevelandart.org/2008.293.b/2008.293.b_web.jpg"
"https://openaccess-cdn.clevelandart.org/1961.205/1961.205_web.jpg"
"https://openaccess-cdn.clevelandart.org/1963.673/1963.673_web.jpg"
"https://openaccess-cdn.clevelandart.org/1931.449/1931.449_web.jpg"
"https://openaccess-cdn.clevelandart.org/1967.29/1967.29_web.jpg"
"https://openaccess-cdn.clevelandart.org/1988.148/1988.148_web.jpg"
"https://openaccess-cdn.clevelandart.org/1923.120.7/1923.120.7_web.jpg"
"https://openaccess-cdn.clevelandart.org/1928.631/1928.631_web.jpg"
"https://openaccess-cdn.clevelandart.org/1940.37/1940.37_web.jpg"
"https://openaccess-cdn.clevelandart.org/1941.653/1941.653_web.jpg"
"https://openaccess-cdn.clevelandart.org/1947.455/1947.455_web.jpg"
"https://openaccess-cdn.clevelandart.org/1955.672/1955.672_web.jpg"
"https://openaccess-cdn.clevelandart.org/1964.457/1964.457_web.jpg"
"https://openaccess-cdn.clevelandart.org/1964.502/1964.502_web.jpg"
"https://openaccess-cdn.clevelandart.org/1968.222/1968.222_web.jpg"
"https://openaccess-cdn.clevelandart.org/1978.1054/1978.1054_web.jpg"
"https://openaccess-cdn.clevelandart.org/1915.1/1915.1_web.jpg"
"https://openaccess-cdn.clevelandart.org/1916.311/1916.311_web.jpg"
"https://openaccess-cdn.clevelandart.org/1916.648/1916.648_web.jpg"
"https://openaccess-cdn.clevelandart.org/1918.560.1.f/1918.560.1.f_web.jpg"

OK super, I'm glad this isn't contingent on changes in any other code bases.
Given this, can we go with the original redirect approach then?

Yes, with the caveat that we need to think about what to show on /search when there is no query or collection filter applied.
We could either show the default results from the api, or some onboardng messaging.
I think the original idea of forcing a query is that /search shouldn't be used as an 'entrypoint' to cc search, but I think it's kind of inevitable that it is if we do the original approach


proble go server in 1.5

web server in go 1.5 don't open the web page it download it

The issue tracker is only for issues with Go. Please consult golang-nuts for assistance.

@davecheney  it's an issue with go because in go 1.2 it work normally but in go 1.5 dosen't work

If it's a regression then you must show your code.

@adg  this page work fine with go1.2 but when i switch to go 1.5 it begin to do that

Thank you for raising the question on golang-nuts. I am locking this issue for further comment to avoid duplication.


docs(typo): how to pull request typo / delete extra line

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Closes #48085

Thanks for being eager to contribute.
The related issue is limited to first-time contributors. As such I'm going to close your PR.
Thank you and happy coding.

Note for future - it is recommended to make changes on a separate branch, than the main branch. See more about it in point 3 at https://contribute.freecodecamp.org/#/how-to-setup-freecodecamp-locally?id=making-changes-locally.


Customize HandMotion Animation

I was digging through the library to find a way to change (not disable) the default hand motion animation for plane detection. I came across the .setInstructionView(View) but calling this function did not seem to do anything in my case.
In my case, I have a simple project with an ArFragment in the layout. In the activity, I perform arFragment.getPlaneDiscoveryController().setInstructionView(myCustomImageView);. This results in the same default drawable and animation showing. This happens regardless of the ImageView being in the layout or generated in code.
Am I missing steps? Or can I only set the View through the constructor?

At what point in the activity's lifecycle are you calling setInstructionView? It must be done in onCreate.

All attempts done onCreate. I see this happen even in the hellosceneform sample project. I set it right after getting the arFragment reference and observe that the default animation persists.

Thanks, I will investigate this.

From testing this, I believe there is a bug here where calling setInstructionsView doesn't actually remove the default view from the view hierarchy, so you end up seeing both. We will look into addressing this. In the meantime, I think you can work around it by calling hide right before you set your own view:
arFragment.getPlaneDiscoveryController().hide();
arFragment.getPlaneDiscoveryController().setInstructionView(view);

Does that solve the problem for you?

Interestingly I have tried all the combinations of .show(), .hide(), and .setInstructionView(View) that made sense to me. One of which was your proposed workaround. In short, none of my attempts worked this far.
In the case above, it appears to me that .hide() will hide the default and .setInstructionView(View) will not change the default drawable. You just won't see that the drawable was unchanged since it is hidden. If the view used is already in the layout, youre left with the illusion that it worked. However, if you call .show() after that, what you'll end up with are both the default drawable and your view on screen even though you expected to only see your drawable.
Basically, I cannot find a way to make this work the right way since this alledged "bug" seems to interfere even with your proposed workaround. I appreciate your proposal nonetheless!

The code I posted worked in my test, so there must be something else different about our setups.
The PlaneDiscoveryController works just by setting the visibility flag of the view. Therefore, it is expected for the instructions view to already be in the layout. However, after you call setInstructionsView, show() should only effect the view that has just been set so it sounds like something is wrong there.
No problem! Can you post your code for this? Also, what version of Sceneform are you testing on? Hopefully that will help me figure out what is different about what we're doing. Thanks!

I got it working in the hellosceneform project. It may have been after updating to sceneform v1.3. I tried using an existing ImageView and also using a programmatically generated ImageView added to the layout. Both attempts worked. The custom image would show and the default image would stay hidden. I was also wondering: is there a way to only update the image but retain the default animation used?

I'm glad you got it working!
I believe you can retain the default animation by creating a HandMotionView, which inherits ImageView.
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/sceneform_hand_layout"
    android:clipChildren="false">

  <com.google.ar.sceneform.ux.HandMotionView
      android:id="@+id/sceneform_hand_image"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:foregroundGravity="center"
      android:src="@drawable/my_image"
      android:scaleType="center"/>

</FrameLayout>

Internally, we will look into updating this API to make it easier to use.

When using the layout above, I found that:

if no code is used, this HandMotionView display on top of the default (both display on center of screen).
if .hide() is called alone, the same as above happens.
if .setInstructionView(View) is called alone, the same as above happens.
if .hide() and .setInstructionView(View) are called, the default disappears but the custom HandMotionView gets center at the top left corner of the screen. I tried many things to get it centered on screen but nothing worked. It appears that this only happens when the default HandMotionView gets hidden from view.

Can you share  your code? I'd like to see at what point in the lifecycle of the activity / fragment the functions are being called.

I was able to reproduce the issue, there is definitely a problem here thanks for pointing it out! I was able to work around the issue by doing the following:
Put the custom hand animation in it's own layout file (it must be created dynamically):
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".HelloSceneformActivity">

  <com.google.ar.sceneform.ux.HandMotionView
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:foregroundGravity="center"
      android:scaleType="center"
      android:src="@drawable/handfoo" />

</FrameLayout>

Then in onCreate, do this:
    // Disable plane discovery hand motion animation
    arFragment.getPlaneDiscoveryController().hide();
    ViewGroup container = findViewById(R.id.sceneform_hand_layout);
    container.removeAllViews();

    // Create the new plane discovery animation and add it to the hand layout.
    phoneImage = getLayoutInflater().inflate(R.layout.hand_layout, container, true);

    // Set the instructions view in the plane discovery controller.
    arFragment.getPlaneDiscoveryController().setInstructionView(phoneImage);

Closing due to inactivity.

Just ran into this issue again, and struggled to understand what was going on until playing around with your final suggested workaround.
The PlaneDiscoveryController class isn't doing what people are assuming it does based on the API, as it doesn't actually place the view specified in .setInstructionView(view) in the layout.
Can we add a feature request to update this API so that .setInstructionView(view) replaces the default instruction view with the specified view? Would resolve a lot of unnecessary confusion.

@dsternfeld7

I was able to reproduce the issue, there is definitely a problem here thanks for pointing it out!

Its more than a year now that you wrote this. Any news regarding solving the problem with the instruction view? Or are you planing to leave it as it is, since there is a workaround?
If so, any tip on how to get the instruction view working inside a fragment?

I agree with @ryan-hodgman. The existence of the PlaneDiscoveryController suggests that this is a scenario you care about (customizing the instructions view), but it doesn't work as expected. Poking around a bit, the salient bit of code seems to be in BaseArFragment in the onCreateView method, where it calls:
View instructionsView = loadPlaneDiscoveryView(inflater, container);     frameLayout.addView(instructionsView);     planeDiscoveryController = new PlaneDiscoveryController(instructionsView);
Specifically, that second line where it adds the view to the overall Activity FrameLayout. That bit of code is necessary for any view to show up, but calls to setInstructionView don't change the Activity FrameLayout, they just change the internal View variable. That's why the default view (the moving hand by itself) won't go away and why new views don't show up. Please fix this!
I recommend adding code in setInstructionView to remove any existing view(s) and then add the new views to the right place in the hierarchy (i.e. in the overall FrameLayout).


Ho can I test GPS?

Hi Dear , Is there an example to test the GPS function?
try to use your AllFunctions/AllFunctions.ino example but there isn't nothing for the GPS can you help me how to test?
thanks
Fabio

Hello，Is your board 2021-12-18 V1.0?

Hi dear Where I can found this?
In the middle of the board is writed T-SIM7000G 20-4-15
behind sim7000x

This version has no GPS capability

And why there is a GPS port?

The A7670 package is compatible with SIM7000G.  This version is directly attached to the board of SIM7000 with A7670


Fix message duplication in GraphState messages

Context:
In the GraphState class, the messages variable is of type list, annotated with add_messages. This ensures that new messages are appended to the list without needing to resend old messages, as they are already present.
Problem:
In the generate and code_check methods, the existing list was being extracted and, after appending a new message, sent back to update the messages variable. This approach caused duplication since the old messages were already present in the list. The correct behavior should only send back the new message to be appended.
Solution:
This pull request fixes the issue by ensuring that only the new message is sent from the generate and code_check methods, preventing duplication.
Additional Notes:

I verified the issue through debugging the GraphState variables.
The rest of the script remains unchanged.

@vbarda Kindly review this pull request.

Thank you! This wouldn't actually be an issue since add_messages deduplicates messages based on the ID


fix(deps): update dependency @dcos/ui-kit to v3.84.0

This PR contains the following updates:

Package
Type
Update
Change

@dcos/ui-kit
dependencies
minor
3.82.1 -> 3.84.0

Release Notes

dcos-labs/ui-kit
v3.84.0
Compare Source
Features

promo: adds PromoBanner, PromoInline, and PromoContent (6060544)

v3.83.0
Compare Source
Features

progressbar: adds condensed layout variant (7c52ac7)

Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or if you modify the PR title to begin with "rebase!".
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

Available now for Enterprise: Renovate Pro with real-time webhook handling and priority job queue.

:tada: This PR is included in version 5.0.3 :tada:
The release is available on:

v5.0.3
GitHub release

Your semantic-release bot :package::rocket:


Use Path to load and wirte token as OS-neutral

The original code uses \\key.txt, but that doesn't work on Linux, it justs calls the file lichs\key.txt
But based on this blog post, you can just use :
Path(__file__).parent.absolute() / "key"
And it will deal with the OS specific path (\ for Windows, and / for Linux/MacOS).
I also decided to add the read and write methods from Path, which imo makes the code cleaner.
And since we are being OS-neutral, we might as well just use key instead of key.txt

Yeah that previous usage of pathlib.Path was very strange. Small but very good pull request.

Thank you for changing this, when I made it I couldn't get it to work and then I ended up with some really strange solution.


AttributeError: 'tuple' object has no attribute 'make_one_shot_iterator'

When I follow the demo, here comes this error.
Even in the docker image.

fedlearner/trainer/estimator.py
def _get_features_and_labels_from_input_fn(self, input_fn, mode):        return input_fn(self._bridge, self._trainer_master)

How about redirecting to #402 ?


eid-1428 - make a picture of Proxy Node PKI

WIP
Describe PKI for eIDAS Proxy Node in a diagram.
This will allow us to validate our design with other GDS departments, and help as a roadmap for new starters.
View the diagram.

Thanks for all reviews @chrisfarms 👍 , your suggestions have been merged in


Ensure backup paths ignore case on windows and mac

Fixes #15862

@Tyriar I think this applies to more places, e.g. also:

https://github.com/Microsoft/vscode/blob/tyriar/hot_exit/15862/src/vs/workbench/services/backup/node/backupFileService.ts#L96
https://github.com/Microsoft/vscode/blob/tyriar/hot_exit/15862/src/vs/platform/backup/electron-main/backupMainService.ts#L81


backgroundVideo and Requirejs

How can I use it with require? Are you planing to adapt it to be loaded as a module?
Thanks!

I've actually used this with RequireJS on a project. Is it not working for you?

I'm going to close this as there has not been a response. If you still have problems, please can you provide code examples and I will see if I can reproduce

I'm sorry. I have not had the time to re-test and ended up forgetting about this, since I have ceased to use require for this particular project. It would be nice however to have a little requirejs example from you :)
Anyway, thanks


Unable to encode 'sparse array's

What is the problem with parsing it like this?
local function encode_table(val, stack)
  local res = {}
  stack = stack or {}

  -- Circular reference?
  if stack[val] then error("circular reference") end

  stack[val] = true

  local isArray = true
  for k in pairs(val) do
    if type(k) ~= "number" then
      isArray = false
      break
    end
  end
  if isArray then
    -- Encode
    for i=1, #val do
      table.insert(res, encode(val[i], stack))
    end
    stack[val] = nil
    return "[" .. table.concat(res, ",") .. "]"
  else
    -- Treat as an object
    for k, v in pairs(val) do
      if type(k) ~= "string" then
        error("invalid table: mixed or invalid key types")
      end
      table.insert(res, encode(k, stack) .. ":" .. encode(v, stack))
    end
    stack[val] = nil
    return "{" .. table.concat(res, ",") .. "}"
  end
end```

This becomes a problem in scenarios where you have a table as such:
{ [1] = true, [1000000] = true }

If you want to encode a sparse array you should either manually replace the missing values with false, convert the keys to string before encoding, or use a format other than JSON.

Hi @rxi,
Can you please clarify why such structure cannot be converted into JSON {"1": true, "1000000": true}?

@makarov-roman See #12

I like that this failed. I had an "array" indexed at zero. Very happy that I saw a failure rather than JSON going out in the form { "0" : val1, "1" : val2 }.


Support mermaid graphs

Wyam themes like Samson for the docs recipie have mermaid included by default. Would be nice if Cake.Graph could generate Markdown files with mermaid syntax to avoid having to use another graph engine in the same site.

I agree, this looks promising. I'll try a few things out, but I'm away soon so it'll likely be late November before I'll make any real progress with this.


Support new stage Alpha 2 for 4.10.0 in wazuh-security-dashboards-plugin repository

Description
This issue attempts to support a new stage Alpha 2 for 4.10.0 in the wazuh-security-dashboards-plugin repository.
Tasks

[x] Ensure changelog is updated for 4.10.0 (if applicable).
[x] Bump revision for branch 4.10.0 on wazuh-security-dashboards-plugin repository.

https://github.com/wazuh/wazuh-security-dashboards-plugin/pull/116

[x] Create tag v4.10.0-alpha2 from branch 4.10.0 on wazuh-security-dashboards-plugin repository.
[x] Create and publish a pre-release: https://github.com/wazuh/wazuh-security-dashboards-plugin/releases/tag/v4.10.0-alpha2.

LGTM


✨ Admin - DDD Retro | New members page

Cc: @adamcogan, @william-liebenberg, @SSWConsulting/sswadmin
(From email - DDD Brisbane 2023 Retrospective)

Hi @SSWConsulting/ssw-rewards
Pain

Currently, we have to manually extract new user information from the database after events (DDD, NDC) to follow up with them.
Suggested Solution

It would be awesome to have a way to view new users on the Admin portal.
Ideally this view would allow filtering for new users from a Start Date.
Tasks

[ ] Update with API endpoint if required
[ ] Create Admin Page
[ ] Get it tested by Penny

Acceptance Criteria

[ ] Meets Definition of Done

Thanks!

Hey @tkapa, we now have the "New Users" page in the Admin portal.
Can this one be closed?

Hey @AntPolkanov,
I think that after /NEW we should follow up with Penny on this one :)


NullReferenceException occurs when you put GTAV on the pause screen, change the song and restart the game

What version are you using?
1.0.0
What were you trying to do?
As the title suggests, if you pause the game while riding in a vehicle, play another song, and then return to the game, an error will occur.
What were you expecting to happen?
I thought the newly played song would be displayed when I returned from the pause screen, but an error occurred.
What actually happened?
I apologize for the similar text, but contrary to my expectations, a NullReferenceException actually occurred. Looking at the log, it seems that it is occurring within OnTick.
What are your system specifications?
OS: Windows 10 Pro 64 Bit 22H2
CPU: 13th Gen Intel(R) Core(TM) i9-13900KS   3.20 GHz
RAM: 128 GB
GPU: NVIDIA GeForce RTX 3090
Anything else you might want to add?
I thought it was an interesting mod and downloaded it.
I am Japanese, so I would appreciate it if you could respond to my Issue, which is translated by Google Translate.
I would like to download and use the latest version when it is updated! Thank you very much.

Hi, would you be willing to send the file called ScriptHookVDotNet.log? So I can see exactly where the problem is happening. Thanks!

got it!  Unfortunately, I'm out of town right now, so I'll send it to you as soon as I get home!

Okay, no problem. So far I have been unable to replicate it so I'm going to wait for your log file :)

Scratch that, I managed to replicate it although the line doesn't makes sense. Ill take a deeper look.

Fixed!
The problem was that some players instead of updating the playback information, they remove the current song information and create a new one.

Side note: This probably affects all music players that run as web apps in Chromium based browsers.

Thank you for the quick answer!  I'm sorry that I couldn't attach the log file after all... I'll definitely download the updated mod!

If you want the fix as soon as possible, you can download the latest test build from the Actions Artifacts:

Go to https://github.com/justalemon/WhatsPlaying/actions
Click the last build with the green checkmark
Scroll all the way down until you see this, click WhatsPlaying.Debug to get the latest development build


[Benchmark Feature] Add Method to Calculate TFLOPS for BLAS Operations

The feature, motivation and pitch
Description
Please update the implementation of the get_tflops function in benchmark/test_blas_perf.py under the benchmark directory. The function should be fully implemented to calculate TFLOPS accurately for the following operations:

addmm
mm
mv
bmm

Requirements

The get_tflops function should handle inputs for 2D, 3D, and 4D tensor scenarios.
Ensure compatibility with the listed operations to provide a consistent TFLOPS calculation across different input dimensions and types.

Alternatives
No response

shuailong616 已认领


feat: Collections pages

gatsby-image needs some love in the CollectionHero component.

Closing as redundant now.


Add extras_require to sqlalchemy in setup.py

When using oemof.db to establish a database connection, the package psycopg2 is indirectly needed because sqlalchemy requires it. psycopg2 is not automatically installed when installing sqlalchemy though and it is not specified in the install_requires in the setup.py of oemof.db.
I would suggest that we add the extras_require 'postgresql' to sqlalchemy in install_requires so that psycopg2 is installed along with sqlalchemy (see https://github.com/zzzeek/sqlalchemy/blob/master/setup.py).
The install_requires would then look as follows:
install_requires=['sqlalchemy[postgresql] >= 1.0',  'keyring >= 4.0',  'shapely', 'psycopg2'])
@oemof/oemof-db If it's okay with you I would adjust the setup.py accordingly.

Sorry, gplssm fixed this in June but I was on an old branch...


Improve formatting in README

This change converts the broken list items into separate headings.

thank you very much!


React material autosuggest scrollbar not working on up and down arrow keys

Bug

StackBlitz URL.

Steps to reproduce

Focus on the input field
Type a, and wait for suggestions to appear
Press Up/Down arrow key to navigate through the suggestions

Observed behavior: Suggestions get highlighted on pressing up/down keys (working as expected). But, the scrollbar remains at the top.

Expected behavior: Scrollbar should move according to the highlighted suggestion.

Having the same issue here

Having the same problem I found this one - it did not solve my problem, but may be it will help you
https://github.com/moroshko/react-autosuggest/issues/361

I had this too. This was the best workaround I could come up with:
const Suggestion = ({ isHighlighted, text }) => {
  const itemEl = useRef(null)
  const [bottomRef, bottomInView] = useInView() // from react-intersection-observer
  const [topRef, topInView] = useInView()

  useEffect(() => {
    if (isHighlighted && !bottomInView) {
      itemEl.current.scrollIntoView({ behavior: 'smooth', block: 'end' })
    } else if (isHighlighted && !topInView) {
      itemEl.current.scrollIntoView({ behavior: 'smooth', block: 'start' })
    }
  }, [isHighlighted])

  return (

        <MenuItem selected={isHighlighted} component="span">
          {text}
        </MenuItem>

  )
}

const renderSuggestion = (suggestion, { query, isHighlighted }) =>
  <Suggestion
    isHighlighted={isHighlighted}
    text={suggestion.text}
  />

I was experiencing this issue due to a custom container component in renderSuggestionsContainer. Removing this prop fixed the issue for me.

This was a css issue for me that was fixed by moving the position: absolute; overflow-y: auto; and other custom dropdown styling from the 'ul' class to the results container opened class 'react-autosuggest__suggestions-container--open'.
See this example: https://codepen.io/moroshko/pen/XRgbxR?editors=0110


wsl --install throws Error code: Wsl/InstallDistro/WININET_E_NAME_NOT_RESOLVED

Windows Version
Microsoft Windows [Version 10.0.22000.1817]
WSL Version
<IP_ADDRESS>
Are you using WSL 1 or WSL 2?

[X] WSL 2
[ ] WSL 1

Kernel Version
<IP_ADDRESS>
Distro Version
None installed yet
Other Software
Had Docker Desktop and Minikube, now uninstalled.
Repro Steps
I've used WSL, WSLg, Docker, and Minikube. At some point Docker failed to start, so I tried uninstalling Docker, Minikube, but Docker never started again after reinstalling it, so I uninstall WSL and reinstall it, only to find out now WSL refuses to install.
Expected Behavior
That wsl --install works.
Actual Behavior
C:\> wsl --install
The server name or address could not be resolved
Error code: Wsl/InstallDistro/WININET_E_NAME_NOT_RESOLVED

Diagnostic Logs
diagnostics.zip

Almost two weeks with broken WSL, and the minute I create the ticket, I find the solution.
Here is how I fixed it:
sfc /scannow
dism /Online /Cleanup-Image /RestoreHealth

but I think the fix was on the following I ran just after:
netsh winsock reset
netsh int ip reset all
netsh winhttp reset proxy
ipconfig /flushdns

I tried (1) this video, (2) this article's solution, and (3) your commands. It finally worked when I used my phone's hotspot instead of the internet. It might have been an internet problem from the start, but that's what I tried

I tried (1) this video, (2) this article's solution, and (3) your commands. It finally worked when I used my phone's hotspot instead of home's wifii. It might have been an internet problem from the start, but that's what I tried

me too, i am in Henan,China.


Use MathJax for LaTeX rendering

#17

I'm happy to make a patch release for this one.

This is a good idea! 👍


[Bug]: When deleting a workspace, dangling datasources do not get archived.

Is there an existing issue for this?

[X] I have searched the existing issues

Description
When the workspace is deleted, the dangling datasources exist on the deleted workspace.
Steps To Reproduce

Create a workspace.
Create an application.
Create a datasource.
Delete the application.
Delete the workspace.

There is a dangling datasource which isn't archived.
Public Sample App
No response
Environment
Production
Issue video log
No response
Version
All versions

@rohan-arthur - please triage this and assign priority

Duplicate of #16866


[Usage] RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cuda:1!

Describe the issue
Issue:
I execute cli command with my custom model. But I get a cuda error when I run it.
Command:
python -m llava.serve.cli \
    --model-base "liuhaotian/llava-v1.5-13b"\
    --model-path "./checkpoints/llava1.5_13b_task_lora_epoch1"\
    --image-file ./playground/data/LLaVA-Pretrain/images/test2/4.png

Log:
Traceback (most recent call last):
  File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/app/LLaVA/llava/serve/cli.py", line 124, in <module>
    main(args)
  File "/app/LLaVA/llava/serve/cli.py", line 94, in main
    output_ids = model.generate(
  File "/usr/local/lib/python3.10/dist-packages/torch/utils/_contextlib.py", line 115, in decorate_context
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/transformers/generation/utils.py", line 1588, in generate
    return self.sample(
  File "/usr/local/lib/python3.10/dist-packages/transformers/generation/utils.py", line 2642, in sample
    outputs = self(
  File "/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/accelerate/hooks.py", line 165, in new_forward
    output = old_forward(*args, **kwargs)
  File "/app/LLaVA/llava/model/language_model/llava_llama.py", line 79, in forward
    ) = self.prepare_inputs_labels_for_multimodal(
  File "/app/LLaVA/llava/model/llava_arch.py", line 183, in prepare_inputs_labels_for_multimodal
    cur_new_input_embeds = torch.cat(cur_new_input_embeds)
RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cuda:1! (when checking argument for argument tensors in method wrapper_CUDA_cat)

I had the same issue, adding the --device argument fixed it.
Eg.
python -m llava.serve.cli
--model-base "liuhaotian/llava-v1.5-13b"
--model-path "./checkpoints/llava1.5_13b_task_lora_epoch1"
--image-file ./playground/data/LLaVA-Pretrain/images/test2/4.png
--device cuda:0

@DavidK0 Is this solution compatible with using multiple GPUs? It seems like that's just selecting one GPU. I think that the original poster might have been encountering this problem while intentionally trying to use both of their GPU's (cuda:0 and cuda:1) I encountered this error while trying to use multiple cuda devices because a single card did not have enough video ram.
@unmo  for what it's worth I got around this by using the --load-4bit option to reduce memory footprint and then specify to use only one of my GPU's by prepending CUDA_VISIBLE_DEVICES=0. I'm using the demo interface not cli, but my command is this:
CUDA_VISIBLE_DEVICES=0 python -m llava.serve.model_worker --host <IP_ADDRESS> --controller http://localhost:10000 --port 40000 --worker http://localhost:40000 --model-path ./llava-v1.5-7b --load-4bit

Why can't the new version '1.1.3' infer cli.py with multiple GPUs? I switched back to version '1.1.1', and it worked perfectly with no errors like 'Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cuda:1!'. However, when I use version '1.1.3', it raises this error.

I found that new version is not work. So I used new main branch code, but don't know tag version.
Previous version code is good worked.

I found that new version is not work. So I used new main branch code, but don't know tag version. Previous version code is good worked.

Yes. Can you help with this? @haotian-liu

Sorry for the inconvenience. It should now be fixed in https://github.com/haotian-liu/LLaVA/commit/4a77fb46181b9354261648613b0b8b7eb35b815c

Sorry for the inconvenience. It should now be fixed in 4a77fb4

It's solved! Thank you!

I resolved it. Thank you.


TPDO change-of-state mechanism in canopend

It seems like the change-of-state mechanism isn't working in canopend
Please correct me if I'm wrong; perhaps it's working as intended
Initially, I thought that every entry in the OD supported this, and i only needed to correctly configure the TPDO mapping for the value to be transmitted.
However, it only transmits if the event timer is not zero (another mechanism working in this case)
when i change the value with cocomm it's not being transmitted.
As the documentation states it's an "application event," perhaps it must be triggered in something like CO_application.c for every OD entry?

Change of state in Linux is working as intended. In CANopenNode v4 it has to be handled by application, as shown in demo/CO_application.c. I think, OD_requestTPDO() may be quite useful functionality and offers many options.
Instead of static int32_t value_old, you can also use setter function, which verifies, if value is changing. Etc.
Please note, there may be a problem, if you have many TPDOs triggered on change of state. There may be critical situations, where all TPDOs on network triggers at once and that may overload the network. Properly configured synchronous PDOs may have more bus load in average, but are much more deterministic.


Update OWNERS

Issue link

N/A
What changes have been made

I have added myself as a reviewer and approver
Verification steps

Checks

[ ] I've made sure the tests are passing.
Testing Strategy

[ ] Unit tests
[ ] Manual tests
[ ] Testing is not required for this change

A nitpick, can you keep alphabetical order there?

A nitpick, can you keep alphabetical order there?

You got it!


feat: Add Code Lint Checking

Adds lint checking much like HACS uses.  It also cuts a PR against the source branch of another PR when it fails.  It will be on PR per failed check, for example one for the black fixes one for pyupgrade.  Examples can be viewed here:
https://github.com/cdnninja/kia_uvo/pull/3
https://github.com/cdnninja/kia_uvo/pull/9
https://github.com/cdnninja/kia_uvo/pull/10
If people are on board with going Black I will first test a compliant version of the repo before we commit this.    I don't see it causing issues but you never know!  Feedback appreciated since this could be annoying,

@dahlb  Interested in your thoughts as well.

as a new comer to this project and python, that hadn't programmed for a year until this contrib.
I saw a comment about somebody concerned enough about empty lines to ask for a change in code so black seems a great way to keep things consistent without wasting anybody's time.
I generally like lints, assuming they work; I've had some lint failures and I think they are obviously the only reason I managed to follow preferred practices with comment messages here.  I'm just used to being able to restart pipelines when they fail, but I think I only had an issue because of correcting things using force pushes.

That is fair! I am new to this as well.  I jumped in for the Canadian side.  My thoughts are that a decent lint checker helped me contribute to other repos in the past so may be great for this one.  If @fuatakgun  is good with using a black checker I will make this happen.

Agree with black, it is also required by home assistant team to be a core integration

I have the action bot working against the lint-checking branch.  I will get the validations passing on master slowly before I merge the action to the main branch.  This way it doesn't mess with other Pulls.   You will see PRs being created but those auto created are all against the lint branch not master.


Smoke test expected failures might need to be updated

Hello,
While working on PR#1297, my latest commit didn't pass the smoke test.
I got confused as i only did some changes in help comments, and markdown documents.
Trials:

Pulled changes from the master branch, failed the smoke test.

Note: I run the tests locally, maybe something wrong in my environment?
Fix Proposed:
Change expected failures of project opentitan to 648 instead of 646
I will gladly do it, once it is confirmed as a real issue.

we're pulling the 'live' repositories we're running the tools against, so it might well be that the number of failures change.
Let me fix that quickly.

Alright, done. Rebase and try again.


REST API

It would be quite helpful to many people to make use of a public REST API for Ziglist, so that people can make their own applications that make use of the knowledge available. For example, someone's package manager CLI could make use of the directory, or someone could make a CLI for Ziglist, or a discord bot, etc.
Here's some example endpoints I had in mind:
# get basic statistics about the repository, i.e. package counts
GET /

# get front-page packages
GET /packages?sort=active
GET /packages?sort=new
GET /packages?sort=top

# get package dependencies
GET /deps

# search packages
GET /packages?q=http
GET /packages?q=websocket

# get a specific package by its 'name' on ziglist
GET /packages/karlseguin/http.zig

Unless there's strong demands, I don't think an API makes sense.
If people want the data Ziglist has, they can:

pull data from GitHub directly: Ziglist is MIT, just copy-paste the code
scrape the page, it's raw html
get the SQLite dump and play with it (https://drive.google.com/file/d/1pL8FhVRSFt82jxeMlYa9ILjvDiCoz2fb/view?usp=share_link)

I think these three solutions work fine for most cases without the overhead of designing+maintaining API endpoints.


api

Hi florian, I installed it on my computer and the project opened, I clicked the create button, but it didn't work, I wonder if there is a place where I need to enter the api key.

Hi, there are two sections "Mindmapping" and "Settings" (this "menu" could be nicer). If you click on "Settings", you can enter the API key / token under "OpenAI Token".
Just for your information ( but it should be obvious): Using the API will result in request-based costs ( it is not part of the ChatGPT Subscription).

Thanks


As a user, i want to be able to specify the output collection name to I want when requesting workflow execution

no -predefined - collections needed
Input to the job process request
maps to the a path in the destination S3 Bucket

This would need to be an option in the workflow execution (e.g. in the initial WPS-T request) but the action for catalog/staging needs to know this collection as well.

DS automatically creates collection upon ingest. See related https://github.com/unity-sds/unity-data-services/issues/43


apis: Node Resource Reservation supports apply policy

Ⅰ. Describe what this PR does
Add applyPolicy to enhance compatibility of Node Resource Reservation with kubelet reservation mechanism.

Ⅱ. Does this pull request fix one issue?
fix #1216

Ⅲ. Describe how to verify it
Ⅳ. Special notes for reviews
V. Checklist

[x] I have written necessary docs and comments
[x] I have added necessary unit tests and integration tests
[x] All checks passed in make test

@lucming PTAL

/lgtm


Generator work for BQ

[ ] Add option to execute synchronously
[ ] Handle types any
[ ] Handle $$ case
[ ] Handle the recursion case (not sure what triggers this one)

Also handle the BigQuery "map" JSON convention.

Are you including injecting custom proto definitions for fields of type "any" as part of your "Handle types any" item?

I would keep the "option to execute synchronously" as either a env var or command line flag, not something that is part of the configuration proto.

Are you including injecting custom proto definitions for fields of type "any" as part of your "Handle types any" item?

No added a separate item.

I would keep the "option to execute synchronously" as either a env var or command line flag, not something that is part of the configuration proto.

Ack noted that.

Also handle the BigQuery "map" JSON convention.

Not sure what this is. Added it as a line item.

The BigQuery Discovery Document has slight differences in field names for paginated rpcs than what the generator expects per AIP-158 (https://google.aip.dev/158) compared to http://cloud/bigquery/docs/reference/rest/v2/jobs/list. The necessary fields are there so there should be a way to provide pagination.

rest_stub_helpers.h defines overloads for Post that rely on template argument deduction to reduce the introspection required from the generator. However, this works as long as the Response and Request types are different. When they're not the resolution is ambiguous. BigQuery has a few rpcs where this occurs ("InsertDataset", "InsertJob", "InsertRoutine", "InsertTable"). For these, and any other such methods, we need to figure out a solution. One such solution is to emit both types when calling Post, e.g.:
StatusOr<google::cloud::cpp::bigquery::v2::Job> DefaultJobsRestStub::InsertJob(
    google::cloud::rest_internal::RestContext& rest_context,
    Options const& options,
    google::cloud::cpp::bigquery::jobs::v2::InsertJobRequest const& request) {
  return rest_internal::Post<google::cloud::cpp::bigquery::v2::Job,
                             google::cloud::cpp::bigquery::v2::Job>(
      *service_, rest_context, request.job_resource(), false,
      absl::StrCat("/", "bigquery", "/",
                   rest_internal::DetermineApiVersion("v2", options), "/",
                   "projects", "/", request.project_id(), "/", "jobs"));
}

The BigQuery Discovery Document has slight differences in field names for paginated rpcs

  rpc ListJobs(ListJobsRequest) returns (google.cloud.cpp.bigquery.v2.JobList) {
    option (google.api.http) = {
      get: "/bigquery/v2/projects/{project_id}/jobs"
    };
    option (google.api.method_signature) = "project_id";
  }

// Request message for ListJobs.
message ListJobsRequest {
  // The maximum number of results to return in a single response page. Leverage
  // the page tokens to iterate through the entire collection.
  optional uint32 max_results = 3 [json_name="maxResults"];

  // Page token, returned by a previous call, to request the next page of
  // results.
  optional string page_token = 5 [json_name="pageToken"];

// JobList is the response format for a jobs.list call.
message JobList {
  // A token to request the next page of results.
  optional string next_page_token = 4 [json_name="nextPageToken"];
}

than what the generator expects per AIP-158 (google.aip.dev/158)

message ListBooksRequest {
  int32 page_size = 2;
  string page_token = 3;
}

message ListBooksResponse {
  string next_page_token = 2;
}

compared to http://cloud/bigquery/docs/reference/rest/v2/jobs/list. The necessary fields are there so there should be a way to provide pagination.

I think you are saying we should rename max_results fields to page_size, but not sure. Can you clarify?

It may not be necessary to rename the field, but to alter how the generator identifies and determines pagination https://github.com/googleapis/google-cloud-cpp/blob/a77950e488c3be12832aa5efece7a0889ff47a08/generator/internal/pagination.cc#L126

It may not be necessary to rename the field, but to alter how the generator identifies and determines pagination
https://github.com/googleapis/google-cloud-cpp/blob/a77950e488c3be12832aa5efece7a0889ff47a08/generator/internal/pagination.cc#L126

Ahh that makes sense. Thanks!

Closing out, since we are now going to use BQ protos.


AddressElementEdit shows state/zip on same row in staging (hopefully)

Description
Shows state/zip on same row in Code 125 Pre Approval Requests.
Reviewer Notes
This is a bit weird, because the issue can't be duplicated on dev. Here's my argument for why this fixes the problem.
The difference between dev and staging is that, for some reason, src/App/index.css takes precedence over uswds.css on staging, while uswds.css takes precedence on dev. Specifically, we need the margins of usa-width-one-half in uswds.css to override the margins of usa-input in index.css. To accomplish this, we wrap each input in a node that carries the usa-width-one-half classname, ensuring the two objects stay on the same row. Then we adjust other css to make everything look normal.
Code Review Verification Steps

[ ] There are no aXe warnings for UI.
[ ] This works in Supported Browsers and their phone views (Chrome, Firefox, IE, Edge).
[ ] Tested in the Experimental environment (for changes to containers, app startup, or connection to data stores)
[ ] Request review from a member of a different team.
[ ] Have the Pivotal acceptance criteria been met for this change?

References

Pivotal story for this change

I suspect you could test this locally by running make server_run_standalone and hitting milmovelocal:8080. That would use the production build of the css and js.


Link from one collection item to another

DESC

might use template string notation in CMS to reference mutliple fields
use "____" as seperation mark

TODOs

[x] implement for toolkit apps
[x] implement for webinars
[x] implement for toolkit components

implemented


Build fails

I get this when compiling from scratch on a linux VPS with rustc 1.71.0 (8ede3aae2 2023-07-12).
Oddly, when compiling locally (mac os) with rustc 1.68.0 (2c8cc3432 2023-03-06) this error is not thrown.
   Compiling mostro v0.7.9 (/home/bilthon/mostro)
error[E0308]: mismatched types
   --> src/app/rate_user.rs:82:33
    |
82  |     relay.send_msg(msg.clone(), false).await.unwrap();
    |           --------              ^^^^^ expected `Option<Duration>`, found `bool`
    |           |
    |           arguments to this method are incorrect
    |
    = note: expected enum `std::option::Option<std::time::Duration>`
               found type `bool`
note: method defined here
   --> /home/bilthon/.cargo/git/checkouts/nostr-7fe31184c4acbae8/8261bff/crates/nostr-sdk/src/relay/mod.rs:694:18
    |
694 |     pub async fn send_msg(&self, msg: ClientMessage, wait: Option<Duration>) -> Result<(), Error> {
    |                  ^^^^^^^^

error[E0308]: mismatched types
   --> src/app/rate_user.rs:111:46
    |
111 |     relay.send_msg(ClientMessage::close(id), false).await.ok()?;
    |           --------                           ^^^^^ expected `Option<Duration>`, found `bool`
    |           |
    |           arguments to this method are incorrect
    |
    = note: expected enum `std::option::Option<std::time::Duration>`
               found type `bool`
note: method defined here
   --> /home/bilthon/.cargo/git/checkouts/nostr-7fe31184c4acbae8/8261bff/crates/nostr-sdk/src/relay/mod.rs:694:18
    |
694 |     pub async fn send_msg(&self, msg: ClientMessage, wait: Option<Duration>) -> Result<(), Error> {
    |                  ^^^^^^^^

For more information about this error, try `rustc --explain E0308`.
error: could not compile `mostro` (bin "mostro") due to 2 previous errors

This is with v0.7.9 commit 6f2c043212a68d5da0f7115dad726974d5a1d026.

Fixed in #92. My main was just not up to date.


Provide option to hide the toggle shortcuts

Hey hey :wave: At the moment we always show the "Toggle" shortcuts on the top right.
There is an option to not show the help, but there is no option to hide this toggle menu. For non-interactive use-cases like running on a raspberry pi with a small display attached, but no keyboard, it would be great if we could hide the toggle shortcuts.
Maybe --hide-help could just remove these, too?

Great idea! I'll get this added.

Ahhh, much better :)


Control the cell or column size

Hello Sir, is there any way to control the column width and height. I mean can I assign the custom width to any column? or any option so column width according to the content of cell?

You can use fixedWidth peoperty of DataColumn2. There's no capability to auto size columns to contents and no plans to do so.


mina-archive does not work with new final testnet and docker node (version read 260000000 does not match expected version 1)

Running Block Producer as docker image minaprotocol/mina-daemon-baked:1.0.0-fd39808
Running mina-archive as daemon mina-archive=1.0.0-fd39808
Error:

{
      "sexp": [
        [
          "rpc_error",
          [
            "Bin_io_exn",
            [
              [ "location", "server-side rpc query un-bin-io'ing" ],
              [
                "exn",
                [
                  "Failure",
                  "bin_read_t: version read 260000000 does not match expected version 1"
                ]
              ]
            ]
          ]
        ],
        [ "connection_description", "<created-directly>" ],
        [ "rpc_tag", "Send_archive_diff" ],
        [ "rpc_version", "0" ]
      ]
    }
  ],
  "length": 5,
  "tags": [
    {
      "tag":
        "Could not send archive diff data to archive process after 5 tries. The process may not be running, please check the daemon-argument",
      "sexp": [
        [ "host_and_port", [ "host.docker.internal", "3086" ] ],
        [ "daemon-argument", "--archive-address" ]
      ]
    }

In the previous testnet everything worked fine but now it does not.

I'm also seeing this same issue.
mina-testnet-postake-medium-curves=1.0.0-fd39808
mina-archive=0.4.2-245a3f7

I think the mina-archive container needs to be updated.

@sm1ck Did you mean that's the version of coda-archive (not mina-archive)?

@garethtdavies yes, we're seeing it in the testnet deploy

@sm1ck Did you mean that's the version of coda-archive (not mina-archive)?

It's coda-archive in /usr/local/bin but package named mina-archive
apt-get install mina-archive
Reading package lists... Done
Building dependency tree
Reading state information... Done
mina-archive is already the newest version (1.0.0-fd39808).


Plot multi-level rooms in matterport3D

❓ Questions and Help
Am I correct that this function currently only plots the trajectory of the agent within one level of the house?
Since there are some houses of multiple levels in matterport3d, is there a function that can handle multiple levels in one figure?
Thank you very much!

We currently do not have such a function.


[Request] Alternative parameterization for negative binomial distributions?

Currently, the struct NegativeBinomial uses the parameters r and p, as in the interpretation of negative binomial distribution as the distribution of the number of failures in a sequence of Bernoulli trials with probability of success p that continue until r successes occur.
Another way to describe a negative binomial distribution is through the mean and the size/dispersion parameters. This is worth implementing especially given that a lot of the statistical questions center around the mean of the distribution.
r and p can be calculated from the mean and the dispersion parameter.
Perhaps the alternative parameterization of negative binomial distributions can be a useful addition to the crate's functionality?

I expect that you'd want this at initialization, but I don't have the background to know when else a different parametrization would be useful. Can you help me understand such a scenario?

Thank you for getting back to me!
Here's a quick summary of what parameterizations we are discussing: the current parameterization of negative binomial distribution as implemented uses r and p, which have specific meanings in terms of Bernoulli trials. The alternative parameterization I am interested in uses mean and dispersion as parameters, which is described in more detail in the last two paragraphs of "Alternative formulation" of negative binomial distribution on Wikipedia page. Also, I appreciate the warning in the current documentation to note carefully the meaning of the parameters.
The mean-and-dispersion is more widely used in regression analysis, because the explanatory variables can be linked to the mean, similar to linear regression. This is also, in my opinion, more intuitive when it comes to interpreting the effects of explanatory variables on the negative binomial counts. (Personally, I don't think I have seen negative binomial regression done with the r-and-p parameterization.) In my work, having the mean in parameterization also helps me compare a negative binomial distribution with a Poisson distribution of the same mean, since I can more quickly evaluate the dispersion level in the negative binomial distribution. I would also imagine that the mean-and-dispersion parameterization is more useful outside of a frequentist statistics context.
The parameters, or statistics like means and variances, can be derived using the current parameterization. In my own codes, I just wrote a separate struct that "wraps" the calls to the statrs::distribution::NegativeBinomial but with calculations to convert the r-and-p parameterization to the mean-and-dispersion parameterization. I imagine that something similar can be done natively within statsrs, which will make the use of negative binomial distribution more consistent, and it shouldn't break anything. I also understand that it may not be a priority, since conversion on the user end, such as the one I have done, is reasonably doable.

This "Alternative Parameterization" usually called the "Method of moments estimator". This parameterization exists for many distributions, so in my opinion it is rather a trait.

Hmm, were it a trait, how would you define that, i.e. what methods and generics would go with it?

I don't really think such a feature is one of the highest priorities, in any case I think the implementation should look like the following:
trait StandardizedMoments {
    fn mean(&self) -> Option<f64>;
    fn variance(&self) -> Option<f64>;
    fn skewness(&self) -> Option<f64>;
    fn kurtosis(&self) -> Option<f64>;
}

trait MethodOfMomentsEstimator {
    fn from_moments<M: StandardizedMoments>(moments: M) -> Result<Self>;
}

Skewness & kurtosis here as negative binomial distribution (not only this distribution) can be fitted not only to fist 2 moments, but to first 4 moments. There are multiple ways how to fit data to distributions.

I see this as a way to refer to distributions or estimators with constraints by their moments instead of other parameters. I was expecting something narrower, things that would specify distributions given family and number of moments that fully specify the parametrization of the distribution.
I see usefulness in thinking about moments by specifying mean [and variance [and skew...]] , (notation is bash-style optionals) but I think these are little far off from where the crate is now

specifying a moment without specifying all moments of lower order
overconstrained number of moments relative to parameters under some sense of fit

Not opposed to them, but think they would take a significant amount of work.
@diaorch how close is this to what you were wanting?

The discussion brings up several good points. Firstly, I agree that it's likely not of the highest priority for the crate right now.
Secondly, I wasn't considering generalizing to the Method of Moments Estimator, but I agree that if we are going with the Method of Moments Estimator in general, a trait would be a better choice than, say, a method specific to a distribution struct. As for how exactly the trait should work, I have to admit it's a bit beyond my ability for me to confidently conclude the discussion.
Hope this is still helpful.

@YeungOnion I don't have ready to implement API design. Maybe instead of trait it could be a builder pattern... this way set of parameters can be effectively constrained if, for instance, set of variance will return an "extended" builder.
As an additional example – Gamma distribution can be parametrized by:

Mean only – and it will be identical to exponential distribution.
Mean and variance – using method of moments from Wiki.
Mean, variance with skewness and/or kurtosis – using numerical optimizer.

@diaorch that's alright by me, but I think as a user you have some great input for how you'd like it to work as a library despite implementation. Could you share what the struct you wrapped the negative binomial distribution in?

@tessob yeah, I think it will take some digging, perhaps as its own feature request. I also think a builder pattern would work well, as it seems like there are a few things that can come out depending on what info is specified, assuming all have specified the family of distribution,

Underconstrained parameters for distribution. If you also specify a fit function and an optimizer, then you'd specify parametrized distribution
Exactly constrained parameters for distribution, this is equivalent to specifying a distribution but perhaps not in the parameters we use in the existing constructors.
Overconstrainted parameters for distribution with fit function. I don't think this makes sense without a fit function. Then adding an optimizer would specify parameters for a distribution?

Thoughts?

@YeungOnion hey sorry for the very late reply and thank you for the appreciation for input from a user like me. Here are the codes I used as a wrapper to use the alternative parameterization for its probability mass function. Some of the ideas are taken from R source codes. Hope they are useful for showing what I was describing as the alternative parameterization and how I was using it.
impl NegativeBinomialAlt {
    pub fn new(mu: f64, r: f64) -> Result<NegativeBinomialAlt> {
        if mu.is_nan() || r.is_nan() || mu < 0. || r <= 0. {
            Err(StatsError::BadParams)
        } else {
            Ok(NegativeBinomialAlt { mu, r })
        }
    }

    // probability mass function
    pub fn pmf(&self, x: usize, ln_trans: bool) -> f64 {
        let ln_res: f64;

        // handling zero counts, to be accurate for n << mu and n >> mu
        // based on R source codes
        if x == 0 {
            if self.r < self.mu {
                ln_res = (self.r / (self.r + self.mu)).ln() * self.r;
            } else {
                ln_res = (-1. * self.mu / (self.r + self.mu)).ln_1p() * self.r;
            }
        } else {
            // parameterization prob. = r / (r + mu)
            let p = self.r / (self.r + self.mu);

            // handling of when p close to 1
            // when p is 1, the NB is a point mass at zero
            // however, == with floating points is not trustworthy,
            // in this case, i specifically want to handle the case with
            // p as f64 is exacly 1 causing NaN, therefore == is used here
            if p == 1. {
                if x == 0 {
                    ln_res = (1_f64).ln();
                } else {
                    ln_res = (0_f64).ln();
                    if !ln_trans {
                        return 0_f64;
                    }
                }
            } else {
                // if x << r, use Martin Maechler, June 2008 formula cited
                // in R source code dnbinom()
                if (x as f64) < 1e-10 * self.r {
                    let q: f64;
                    if self.r < self.mu {
                        q = (self.r / (1. + self.r / self.mu)).ln();
                    } else {
                        q = (self.mu / (1. + self.mu / self.r)).ln();
                    }
                    let x_f = x as f64;
                    ln_res = x_f * q - self.mu - gamma::ln_gamma(x_f + 1.) + (x_f * (x_f + 1.) / (2. * self.r)).ln_1p();
                } else {
                    let nb = NegativeBinomial::new(self.r, p).unwrap();
                    ln_res = nb.ln_pmf(x.try_into().expect("statrs::NegativeBinomial calc PMF of u64, found usize and failed try_into()."));
                }
            }
        }
        if ln_trans {
            return ln_res;
        } else {
            return ln_res.exp();
        }
    }
}

Let me know if there is anything else I can do to help and I will do my best to be less than half-a-year late this time.

One idea on how to implement this pattern would be with generics.
So e.g. NegativeBinomial currently looks like this:
struct NegativeBinomial {
    r: f64,
    p: f64,
}

We could move the parametrization out into a wrapper struct:
struct NegativeBinomial<P> {
    param: P
}

// naming TBD
struct SuccessProbability {
    r: f64,
    p: f64,
}

struct MeanVariance {
    m: f64, // μ
    v: f64, // σ²
}

impl NegativeBinomial<SuccessProbability> {
    pub fn new_success_probability(r: f64, p: f64) -> Result<Self, Error>;

    pub const fn p(&self) -> f64 { self.param.p }
    pub const fn r(&self) -> f64 { self.param.r }

    // maybe return Result, if conversion can fail
    pub fn into_mean_variance(self) -> NegativeBinomial<MeanVariance>;
}

impl NegativeBinomial<MeanVariance> {
    pub fn new_mean_variance(m: f64, v: f64) -> Result<Self, Error>;

    pub const fn m(&self) -> f64 { self.param.m }
    pub const fn v(&self) -> f64 { self.param.v }

    pub fn into_success_probability(self) -> NegativeBinomial<SuccessProbability>;
}

impl DiscreteCDF<u64, f64> for NegativeBinomial<SuccessProbability> {
    // implement functions for r, p
}

impl DiscreteCDF<u64, f64> for NegativeBinomial<MeanVariance> {
    // implement functions for m, v
}

// etc.

This would mean that we need to implement traits for both NegativeBinomial<SP> and NegativeBinomial<MV> (and other potential parametrizations) separately. But I think it's fair to assume that different parametrizations will usually use different formulas? Not 100% sure, but that's easily solved by a shared function which is called by both implementations.
Anyways, from a user's point of view this should mean that when you type NegativeBinomial::new into your IDE, it should recommend the new function for both parametrizations. Most API would stay the same because of the implemented traits (min, max, mean, variance, mode, cdf, sf, etc.) with some obvious differences (I can't call nb.p() on a NegativeBinomial<MeanVariance>).
The documentation would need to explain this well. And it would add a generic parameter to the type, which makes things more complicated (often you don't need to explicitly type your variables, this is Rust after all, but for beginners it can get confusing).

As an additional example – Gamma distribution can be parametrized by:
Mean only – and it will be identical to exponential distribution.
Mean and variance – using method of moments from Wiki.
Mean, variance with skewness and/or kurtosis – using numerical optimizer.

I think a builder would be great for this. You should even be able to handle different types.
pub struct GammaBuilder<P> {
    p: P
}

impl<P> GammaBuilder<P> {
    pub fn new(mean: f64) -> GammaBuilder<ExpBuilderParams> {
        GammaBuilder {
            p: ExpBuilderParams { mean }
        }
    }
}

impl GammaBuilder<ExpBuilderParams> {
    pub fn variance(self, variance: f64) -> GammaBuilder<GammaBuilderParams> {
        GammaBuilder {
            GammaBuilderParams {
                mean: self.mean,
                variance,
             }
         }
    }

    pub fn build(self) -> Exp {
        // ...
    }
}

impl GammaBuilder<GammaBuilderParams> {
    pub fn build(self) -> Gamma {
        // ...
    }
}

struct ExpBuilderParams {
    mean: f64
}

struct GammaBuilderParams {
    mean: f64,
    variance: f64,
}

Needs a bit of polish and I can't sketch an API for the numerical optimizer part since I don't know too much about that, but that generally work, I think.

I think supporting construction by specifying moments would be useful and as general fitting/optimizing of distribution functions should be a feature of statrs,  we should aim to have helpful, unsurprising API to work with the popular optimizer crates.
I also think the builder is a good choice. It even extends well for fitting to data.
I've got other thoughts, but while writing it I realized we haven't defined if this project aims to be more for those writing single analyses or more as a library for applications / other library-like crates.


Polish translations

Create translations of strings for Polish Psychology

@jpslav thank you! I added missing entry.
About using translation, I just added this line for now  to pl-psychology bake file in Recipe repo:

It's working, but I will bring this up on the call with the team, so we can find more elegant solution :slightly_smiling_face:


Fix failing unit test in prerelease build

Critical Changes
Changes
Issues Closed
New Metadata
Unpackaged Metadata
Deleted Metadata
Testing Notes

@MatthewBlanski, sorry for the prettier changes. The fix is in hhAccountNewChildContactNotResetPrimaryContact().

QA Passes - Will merge on Wed/Thurs after the merge freeze is lifted.


Emitter::emit is not being optimized by the VM

This is a big deal because this method is used all over the place in our model. This is caused by using an args... formal parameter. This issue is tracking the problem in CoffeeScript.
@benogle: I remember you mentioning seeing emit as a huge part of the profile in find and replace. This seems like it could be a big part of the reason why.

All repositories in the atom-archive organization are unmaintained and deprecated. Because of this, we are archiving this repository and closing all issues and pull requests. Thanks very much for your support and contributions!


New GitHub Action: terraform-validate

Hello!
I've created a new action: https://github.com/maruloop/action-terraform-validate
I want to move this action to this org.

👍
I sent an invitation.

Thank you! I'll submit a PR to update README later.
https://github.com/reviewdog/action-terraform-validate


Drawer Issue on Material Design Website

Drawer is flickering on the material design's website. (On Safari Web Browser only)
Check this Screen Recording Video to get an idea : Screen Recording Video.
The display resolution is the default native resolution (1280x800).
The flickering stops if I slightly re-adjust the size of the browser window.
Expected Behavior 🤔
Drawer should be closing and opening correctly
Steps to Reproduce 🕹
Steps:

Open safari browser and navigate to material design website, go to page https://material-ui.com/getting-started/installation/
Click on the main drawer button on top left

Your Environment 🌎
MacBook Pro 13" Mid 2012
Safari Version 14.0 (156<IP_ADDRESS>.9, 15610)
Screen Resolution: 1280x800

Duplicate of #22812


Simplify MainActivity

Current implementation is too complex and data flow is not unidirectional

Make data flow simpler throughout components
Remove complexity from views, especially MainActivity

@iamareebjamal
Please be more detailed.

It's simply that the current way the selected event is propagated through components and the use of an interface to detect when the event is loaded is pretty complex and unneeded as discussed in the PR for navigation view. This adds window for large amount of bugs we can't test for


Make a builder for GetBlobOptions

The GetBlobOptions class needs a builder to make its construction flexible.

Fixed in #510


PartyMember.soul_offset getter

If you're asking why it is a getter, it's because it may be different if you're using a different battle sprites in another battle. Like in the Frisk library. (or Ralsei)


implement GetRecentActivity with RecentActivityResponse struct.

implement GetRecentActivity with RecentActivityResponse struct.
@ahmdrz

Great , Thank you.
Test file +1


Key (slug)=() already exists in Postgres

Hello.
I'm writing test for my code which uses taggit. The model is straightforward:
class Post(models.Model):
    # ...
    text = models.TextField(blank=False)
    tags = TaggableManager(blank=True)

In my tests, I'm creating several models with predefined tags for further testing, like so:
texts = [
    'some random text 1',
    'some random text 2',
    # ...
]

tags = [
    ['randomtag1', 'randomtag2'],
    ['randomtag1', 'randomtag2', 'randomtag3'],
    # ...
]

class TagsTest(TestCase):
    def setUp(self):
        super().setUp()
        for text, t in zip(texts, tags):
            post = Post.objects.create(text=text)
            post.tags.add(*t)

The tests do not fail, but I can see this in PostgreSQL console:

postgres_1  | ERROR:  duplicate key value violates unique constraint "taggit_tag_slug_key"
postgres_1  | DETAIL:  Key (slug)=() already exists.
postgres_1  | STATEMENT:  INSERT INTO "taggit_tag" ("name", "slug") VALUES ('randomtag1', '') RETURNING "taggit_tag"."id"
postgres_1  | ERROR:  duplicate key value violates unique constraint "taggit_tag_slug_key"
postgres_1  | DETAIL:  Key (slug)=() already exists.
postgres_1  | STATEMENT:  INSERT INTO "taggit_tag" ("name", "slug") VALUES ('randomtag2', '') RETURNING "taggit_tag"."id"
postgres_1  | ERROR:  duplicate key value violates unique constraint "taggit_tag_slug_key"
postgres_1  | DETAIL:  Key (slug)=() already exists.
postgres_1  | STATEMENT:  INSERT INTO "taggit_tag" ("name", "slug") VALUES ('randomtag3', '') RETURNING "taggit_tag"."id"
postgres_1  | ERROR:  duplicate key value violates unique constraint "taggit_tag_slug_key"
postgres_1  | DETAIL:  Key (slug)=() already exists.
postgres_1  | STATEMENT:  INSERT INTO "taggit_tag" ("name", "slug") VALUES ('randomtag1', '') RETURNING "taggit_tag"."id"

Even though tests do not fail, this does not seem right. Is this something wrong with my code? How am I supposed to add tags to objects then?

Oh nevermind, I seem to have bumped into #273 (the tags was actually non-ASCII).
On a side note, you guys really should've document this, as #348 suggests.


Search page visit crashes /contents view

Describe the bug
After visiting the search page, if you click on any link from the site followed by the contents section
Volto crashes
To Reproduce
Steps to reproduce the behavior, once you are logged in:

Go to https://volto.kitconcept.com/search
Click on Logo to go to the homepage https://volto.kitconcept.com
Click on the contents icon to go to that section
See the error

Expected behavior
No errors to occur
Screenshots

Software (please complete the following information):

OS: [Mac]
Browser [Firefox]
Volto Version [15.5.0]
Plone Version [e.g. 5.2.2]

I was hoping that this issue would have been fixed by the following pull request https://github.com/plone/volto/pull/3224
but it didn't fix the issue.
It didn't trigger this issue either as before the demo site had Volto 15.3.0 where I've spotted the bug first,
and this fix was released in 15.4.1


add transactions list

add transaction list
at least the last xfer transaction.

Not in the close future.


Dip-178-P2M-Refund

Please review the first draft of DIP-178 about P2M Refund

Will open a new PR after DIP-158 changes are merged to main


ENH/CLN: Add name_area content (Area of Interest), some cleaning and add content-specific tests

Technically solving #333 however, also clean up list of contents and improve testing of contents. Could be considered to split into two or more PR's, but commits should be fairly atomic.
Clean up list of contents:
We maintain several lists of contents, but they are not fully synched. There is more cleaning to be done here, but in this PR:

Sorting both alphabetically
Leaving some ToDo's

Explicitly test each defined content:
While functionality for handling contents is tested in test_dataio.py, we never actually test each content explicitly. Adding a new dedicated set of unit tests for this purpose. If we ever get around to more explicitly handling different contents, this may come in handy. For now, we at least make sure that all allowed contents are actually covered by at least one test. Did not put this into existing test scripts, as it became quite large.
Add new content: named_area
This is solving #333. The original issue calls for "area of interest". If found "named_area" to be better. Not sure if it is more precise. Note that this should not be confused with "region" (which is also a very generic term, but a known term in the domain.) (e.g. we want consumers to clearly understand when they are reading a region and when they are reading an arbitrary area. Regions will at some point be connected to master data, etc.)
Use case or named_area cover defined areas (that are not regions), that are to be used when visualizing and/or analyzing FMU results. Example: Drainage area of a well, or for use in volume calculations within a polygon.

LGTM. Is there a possibility this becomes unintentionally user defined metadata?

Yes, that probability of that is non-zero. Not sure if the risk of that is much higher than for other free text attributes. I don't see an immediate mitigation (?)


Adding rotabase generation to the foldx interface

As of foldx5, the rotabase.txt file can be automatically generated. We should address that in the interface and documentation.

There're two ways of doing this. We either clarify in the foldx documentation, or we do it automatically. Doing it automatically requires that the user has v5 of foldx.

[ ] Delete rotabase.txt and run a repairPDB/BuildModel command to see if it re-generates it automatically in the right location.


DankPyon_Metallic

Thing Category DankPyon_Metallic does not exist in base MO or in this mod
HugsLib

Exists in MO gitHub. Additional conditional check added

Oh,.. didn't know MO had a git... Thank you for the additional check.


False positive for string "... \nto ..."

The "nto" reports at https://goreportcard.com/report/github.com/projectcalico/felix#misspell are wrong.  The string concerned is "Connectivity was incorrect:\n\nExpected\n    %s\nto match\n    %s" and the "nto" is actually a newline ("\n") followed by "to".

I've also raised this: https://github.com/client9/misspell/issues/160

I've also raised this: https://github.com/client9/misspell/issues/160

Slowly nearing a year later and misspell still doesn't handle a typical use case correctly. With lots of such false positives it quickly looses its quality.


Add #[inline(always)] to find_inner

Benchmark
Boost at most 6%.
test clone_from_large            ... bench:       5,562 ->   5,523 ns/iter (+/- 96)
test clone_from_small            ... bench:          52 ->      52 ns/iter (+/- 0)
test clone_large                 ... bench:       5,764 ->   5,760 ns/iter (+/- 36)
test clone_small                 ... bench:          71 ->      72 ns/iter (+/- 12)
test grow_insert_ahash_highbits  ... bench:      24,918 ->  25,229 ns/iter (+/- 710)
test grow_insert_ahash_random    ... bench:      24,590 ->  24,824 ns/iter (+/- 279)
test grow_insert_ahash_serial    ... bench:      24,896 ->  24,892 ns/iter (+/- 3,497)
test grow_insert_std_highbits    ... bench:      43,482 ->  43,342 ns/iter (+/- 706)
test grow_insert_std_random      ... bench:      43,074 ->  43,674 ns/iter (+/- 592)
test grow_insert_std_serial      ... bench:      43,305 ->  43,335 ns/iter (+/- 1,059)
test insert_ahash_highbits       ... bench:      25,025 ->  25,110 ns/iter (+/- 96)
test insert_ahash_random         ... bench:      25,017 ->  25,329 ns/iter (+/- 7,387)
test insert_ahash_serial         ... bench:      24,895 ->  25,041 ns/iter (+/- 692)
test insert_erase_ahash_highbits ... bench:      25,049 ->  25,284 ns/iter (+/- 1,191)
test insert_erase_ahash_random   ... bench:      24,836 ->  24,742 ns/iter (+/- 380)
test insert_erase_ahash_serial   ... bench:      23,832 ->  23,563 ns/iter (+/- 611)
test insert_erase_std_highbits   ... bench:      43,699 ->  43,265 ns/iter (+/- 684)
test insert_erase_std_random     ... bench:      44,499 ->  44,193 ns/iter (+/- 670)
test insert_erase_std_serial     ... bench:      45,250 ->  43,969 ns/iter (+/- 544)
test insert_std_highbits         ... bench:      35,552 ->  34,444 ns/iter (+/- 739)
test insert_std_random           ... bench:      34,484 ->  34,596 ns/iter (+/- 508)
test insert_std_serial           ... bench:      34,778 ->  34,658 ns/iter (+/- 1,003)
test iter_ahash_highbits         ... bench:       1,292 ->   1,292 ns/iter (+/- 89)
test iter_ahash_random           ... bench:       1,299 ->   1,295 ns/iter (+/- 72)
test iter_ahash_serial           ... bench:       1,306 ->   1,295 ns/iter (+/- 18)
test iter_std_highbits           ... bench:       1,277 ->   1,306 ns/iter (+/- 31)
test iter_std_random             ... bench:       1,278 ->   1,295 ns/iter (+/- 30)
test iter_std_serial             ... bench:       1,303 ->   1,310 ns/iter (+/- 54)
test lookup_ahash_highbits       ... bench:       4,766 ->   4,767 ns/iter (+/- 44)
test lookup_ahash_random         ... bench:       4,735 ->   4,761 ns/iter (+/- 45)
test lookup_ahash_serial         ... bench:       4,670 ->   4,696 ns/iter (+/- 98)
test lookup_fail_ahash_highbits  ... bench:       4,438 ->   4,232 ns/iter (+/- 55)
test lookup_fail_ahash_random    ... bench:       4,233 ->   4,243 ns/iter (+/- 85)
test lookup_fail_ahash_serial    ... bench:       3,928 ->   3,970 ns/iter (+/- 307)
test lookup_fail_std_highbits    ... bench:      14,177 ->  14,927 ns/iter (+/- 165)
test lookup_fail_std_random      ... bench:      14,217 ->  15,081 ns/iter (+/- 188)
test lookup_fail_std_serial      ... bench:      14,253 ->  14,949 ns/iter (+/- 1,439)
test lookup_std_highbits         ... bench:      14,700 ->  14,797 ns/iter (+/- 940)
test lookup_std_random           ... bench:      14,759 ->  14,996 ns/iter (+/- 609)
test lookup_std_serial           ... bench:      14,784 ->  14,928 ns/iter (+/- 293)
test rehash_in_place             ... bench:     213,678 -> 218,933 ns/iter (+/- 3,012)

ASM Difference
Here's the major difference of generated assembly of HashMap::<u64, u64>::get:

When using #[inline], the last self.bucket(index) of find doesn't get optimized away. According to @nbdd0121, #[inline(always)] happens in MIR inlining, while #[inline] (likely) happens in LLVM inlining.

@bors r+

:pushpin: Commit 7d6c2a82f9156067744c7f1f1b900bbc3a379cb4 has been approved by Amanieu
It is now in the queue for this repository.

:hourglass: Testing commit 7d6c2a82f9156067744c7f1f1b900bbc3a379cb4 with merge c93ef8f44162d7478e3430d3b650dcd0a7a0b038...

:sunny: Test successful - checks-actions
Approved by: Amanieu
Pushing c93ef8f44162d7478e3430d3b650dcd0a7a0b038 to master...

The code mentioned that "avoid Option::map because it bloats LLVM IR." By my tests, although option_value.map(...) does generate bad assembly, option_value.as_ref().map(...) has the same codegen as match. I haven't checked LLVM IR though. You might be interested in using this fact to simplify the code.

LLVM can optimize the code to the same as a match, that's not the problem. The issue is that using closures generates many small functions and it slows down compilation. This is noticeable when building rustc itself since it uses a lot of hashtables and each of these small functions needs to be instantiated for every K/V combination used in the code base.


rdwrap.ini for version 10.0.19041.2075

OS build 19044.2604 on windows 10 listening not supported pleas solve problem

Duplicate of https://github.com/stascorp/rdpwrap/issues/1992


python3Packages.imageio: 2.28.1 -> 2.30.0

Description of changes
https://github.com/imageio/imageio/releases/tag/v2.29.0
https://github.com/imageio/imageio/releases/tag/v2.30.0
Things done

Built on platform(s)

[x] x86_64-linux
[x] aarch64-linux
[x] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.


Import csv by url

To Test:

Visit the app, but append something like ?xlsx=https://raw.githubusercontent.com/senior-knights/course-schedulizer/develop/client-course-schedulizer/csv/math-schedule.xlsx or ?csv=https://raw.githubusercontent.com/senior-knights/course-schedulizer/develop/client-course-schedulizer/csv/math-schedule-full.csv to the end of the url.
It should load the schedule from that url.

Notes:

404s will be displayed in the console.
I didn't worry too much about invalid files, but I think we can expect users to provide valid files (or notice their own error when not)? It seems that providing a csv when you say it's an xlsx or vice versa might actually still work based on my testing.
The file in the url will only load if the initial state has an empty schedule AND the file should only load once on page refresh (try importing a different schedule after page load, it should work as expected). This is to prevent user work from being overwritten, but I can see how it might be confusing that the file provided in the url doesn't load if you have an existing schedule loaded, thoughts on this are appreciated.

Maybe the redirect isn't a big deal. So you can probably skip it if you haven't implemented it yet.

Maybe the redirect isn't a big deal. So you can probably skip it if you haven't implemented it yet.

Okay, although I was thinking of adding a button to import by url, so I may still end up adding this here.


[1.3.x] Skip contents of symlinked directories in clean

The clean task was previously deleting the contents of directories that
were symlinked into the target directory. This was an oversight because
it never occurred to me that users might symlink a directory whose
contents they did not want deleted into the target directory.

backports #5852 to 1.3.x


(maint) add updates for npm publishing

I think it would be wise to remove the .tgz from the PR. We don't want to put that in the repo.


postgresql: libpq-only lib output

Description of changes
This change makes it so only libpq.* is moved to the lib output.
Advantages:

Smaller postgresql.lib
Potentially less workarounds patching $lib->$out. In theory we should only have to do this for libpq now.

Disadvantages:

It's not clear what LIBDIR = in pg_config should point to since there are now two /libs. It could potentially break some builds that rely on pg_config.
Potentially a breaking change for postgresql.lib users.

Previous discussions: #61580 #234470

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[x] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

This is only a draft. Just curious about the initial thoughts on this approach from maintainers who have more experience dealing with postgres. cc @thoughtpolice @marsam
I tested this with a sample project using libpq through postgresql.lib and it seems to work fine. But I'm not familiar with the intricacies of the postgres server.

Closing in favor of #294504


Begin draining a node when it enters Terminating state

... and continue with other operations once it reaches
Terminating:wait state.
As per https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-conn-drain.html

If your instances are part of an Auto Scaling group and connection draining
is enabled for your load balancer, Auto Scaling waits for the in-flight
requests to complete, or for the maximum timeout to expire, before
terminating instances due to a scaling event or health check replacement

ASGs will beging draining nodes from load balancers while in
Terminating state, and will even remove them from the load balancer
before the node transitions to Terminating:wait. This means if you
depend on pod evictions to move a critical service to another available
node in the load balancer target group, this will only happen after
that node has already been drained and removed from the load balancer.
This effect is amplified whenever there is a timeout, or Deregistration delay
value set on the load balancer. The default value is 300 seconds, as per
here: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#deregistration-delay
By draining sooner, critical pods providing service through that load
balancer can move to other nodes and maintain uptime while the node is
being deregistered from the load balancer.

Yes, according to the ASG lifecycle hooks, this should help.
https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroupLifecycle.html#as-lifecycle-hooks

When Amazon EC2 Auto Scaling responds to a scale-in event, it terminates one or more instances. These instances are detached from the Auto Scaling group and enter the Terminating state. If you added an autoscaling:EC2_INSTANCE_TERMINATING lifecycle hook to your Auto Scaling group, the instances move from the Terminating state to the Terminating:Wait state. After you complete the lifecycle action, the instances enter the Terminating:Proceed state. When the instances are fully terminated, they enter the Terminated state.

I like this idea, thank you.


identify points in excel

Hi, thanks for the good software.
I'd like to know if there is a way to identify the points for make a correlate with the excel file.
Thanks.

There are plans to support it, but this feature not available at the moment.
Do you need to tell electrode paths apart (just a guess from your support request, I'm the same guy who mailed you earlier today)? @Majpuc did that in the past, but I don't remember what her approach was, perhaps she will throw in some details here.
As electrodes are straight lines, it's possible to tell them apart in a mathematical way, perhaps via applying RANSAC repeatedly. But first let's see if Maja has a simpler approach.

Dear Gfernandezv,
Thank you for your question. We understand that keeping track of your markers in LocaliZoom could be challenging when having several electrodes. The way I did this analysis was to color code my electrodes and place the markers systematically always in the same order. In the Excel sheet I would annotate the markers with the corresponding color and then copy over the list of markers corresponding to the same electrode to a notepad document that I can paste directly in MeshView for visualisation.

I did this manually but I guess this can easily be done with some clever python script :)
I hope this information was useful.


Vickel: Watch 1stscenic.co.uk

Vickel requests the watch of the watch_keyword 1stscenic\.co\.uk. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

1stscenic\.co\.uk has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by tripleee in Charcoal HQ


Problem: Timex requires Elixir 1.3 and builds fail due to Elixir 1.2 …

…environment
Solution: Update required Elixir version to >= 1.3.0 and update Travis config accordingly

Changes Unknown when pulling 59bee682b492710065873191d3f66999caec2876 on elixir-1.3 into ** on master**.


Message from GATK team

Hello,
We saw that you have created some wrappers and a pipeline script for CWL users to run GATK. That is really great, and we appreciate it! That being said, we have a few suggestions to improve them.
Your pipeline unfortunately implements an outdated version of our Best Practices for germline short variant discovery, as described in the 2013 publication by Van der Auwera et al. Your links and diagrams, however, reference our current Best Practices implementation. Our pipeline has undergone a few iterative updates since the publication of the paper itself, the most notable of which is the joint genotyping aspect of the workflow. This was a big breakthrough in the GATK 3.x versions--we split the variant calling functionality of HaplotypeCaller into two parts, allowing us to individually generate the intermediate files called GVCFs, then jointly call them to produce variant calls. We would encourage you to update your implementation to reflect our most recent Best Practices. However, if you’re not able to tackle that right now, we would like to ask you to at least rename it to avoid confusion with the current Best Practices, as they are very different. If you do choose to update your implementation, specifying “Best Practices as of Month Year” is the most accurate long-term.
We have shared some of our pipeline scripts (written in WDL) to serve as a reference implementation of our current Best Practices. You might find these scripts useful for updating the CWL implementation. See here for an implementation of the first part of the pipeline, which covers data pre-processing through generating the intermediate GVCF. Here you can find the second part of the pipeline, which jointly calls those GVCFs, then performs variant filtering and genotype refinement. We also have some accompanying documentation which can be found here. This documentation describes the main implementation decisions for the pipeline script of the same name.
Additionally, did you know that you can use GATK's tool-specific JSON files to generate your scripts? Using that, I was able to auto-generate these WDL tasks, which are easy to keep up-to-date with the latest GATK version. Let me know if you have any questions regarding the pipeline implementations I have referenced. We are very keen to help make GATK pipelines available to all users, regardless of the pipelining language they choose to work with.

Thank you @knoblett for the update. All contributions to this repository are done on a voluntary basis.
We will gladly review pull requests to implement your ideas.

Best guess as to who authored the pseudonymous issue - Katharine Noblett:
https://www.linkedin.com/in/katharine-noblett-30765a97/
Best guess as to the tool which could be tweaked to autogenerate industry-standard CWL from GATK JSON instead of proprietary WDL: https://github.com/broadinstitute/wdl/blob/develop/scripts/wrappers/gatk/gatkToWdlWrapper.py
@knoblett clearly has the knowledge and skill to improve the GATK example pipeline. Looking forward to the PR.

Hello @knoblett , thank you for your enthusiasm, though it seems a bit aggressive.
Reviewing the situation, I am reminded that GATK (the software) isn't freely redistributable and is therefore untestable using public infrastructure. As every other piece of software described in this repo is freely available I suggest that we move the GATK/CWL descriptions to their own repo where those who are interested in maintaining them can do so.
After the reorganization the new README will be more prominent and that should provide clarity about the status of the workflow description.
@briandoconnor @yassineS @hocinebendou What do you think?

Also there's https://github.com/common-workflow-language/wdl2cwl (ping @anton-khodak) which may be able to autoconvert the GATK best practices WDL.

@knoblett the GATK workflows and tools are being moved to https://github.com/h3abionet/h3agatk/tree/master/workflows/GATK

Posting here because this may be of interest to people who find this issue while searching for GATK CWL CommandLineTool definitions. We have written a conversion tool that generates CWL directly from the GATK (json) documentation: https://github.com/wtsi-hgi/gatk-cwl-generator
The releases from the same repo (https://github.com/wtsi-hgi/gatk-cwl-generator/releases) include CWL CommandLineTool definitions for all documented GATK commands for GATK versions 3.5, 3.6, 3.7, and 3.8 (as well as preview CWL for GATK 4 beta).

@jrandall This is really cool, thank you for sharing! You are very welcome to announce this on the CWL mailing list — or I can do so, with your permission.


bulk-crap-uninstaller is failing verifier

https://chocolatey.org/packages/bulk-crap-uninstaller/3.3.1

https://gist.github.com/choco-bot/70f3947a73657f619aa3fd2b08376a92

f56a202dc72eb66