Negotiated datachannels

Description
Adds the Negotiated fields to the right places.
I feel like there's more to do with this PR but just looking for review.

The behaviour I see from the browser WebRTC implementation is that if a datachannel is created with the options {negotiated: true, id: 0} where ID is any value for a stream id. Then there is no associated event triggered for ondatachannel.
What is supposed to happen is that when both peers create a datachannel that is negotiated, with the same ID on both sides - then the datachannel is said to be opened. The implementation in pion seems to be that all datachannels are opened as non-negotiated which means in pion you cannot control whether a datachannel gets opened at all. If one peer decides to open a datachannel then the other peer must accept it and the local peer always calls its DataChannel.OnOpen call back.
I can build a small JS example and the same example in pion to show the differences but looking for feedback on the above to ensure that I've understood the various RFCs around this.

For example, if we read: https://www.w3.org/TR/webrtc/#rtcdatachannel
Then it states:

[...] The second way is to let the application negotiate the RTCDataChannel. To do this, create an RTCDataChannel object with the negotiated RTCDataChannelInit dictionary member set to true, and signal out-of-band (e.g. via a web server) to the other side that it SHOULD create a corresponding RTCDataChannel with the negotiated RTCDataChannelInit dictionary member set to true and the same id. This will connect the two separately created RTCDataChannel objects. The second way makes it possible to create channels with asymmetric properties and to create channels in a declarative way by specifying matching ids.

I've played around with this in JS just in the browser, seeing how it deals with this and now I'm more confused.
      // Create the data channel and establish its event listeners
      sendChannel = localConnection.createDataChannel("sendChannel", {negotiated: true, id: 0});
      sendChannel.onopen = (event) => {
          console.log("local sendChannel on open");
      };
      sendChannel.onclose = (event) => {
          console.log("local sendChannel on close");
      };

      localConnection.ondatachannel = (event) => {
          console.log('local ondatachannel');
      };

      // Create the remote connection and its event listeners
      sendChannel.addEventListener("open", (event) => {
          console.log("addEventListener open");
          console.log(event);
      });

      remoteConnection = new RTCPeerConnection();
      remoteConnection.ondatachannel = (event) => {
          console.log("remote ondatachannel");
      };

We get events from the onopen function and the addEventListener but the remoteConnection.ondatachannel call back isn't called.
What really is the expected behaviour? How do you control which datachannels are opened either side of a WebRTC connection without having to support and open all channels requested by both parties? The documentation for WebRTC around the web in various forms suggests that the {negotiated: true, id:0} method is the way to do this but no matter what - the channels are always opened, at least on the local side.

from w3c.github.io:

Each RTCDataChannel has an associated underlying data transport that is used to transport actual data to the other peer. In the case of SCTP data channels utilizing an RTCSctpTransport (which represents the state of the SCTP association), the underlying data transport is the SCTP stream pair. The transport properties of the underlying data transport, such as in order delivery settings and reliability mode, are configured by the peer as the channel is created. The properties of a channel cannot change after the channel has been created. The actual wire protocol between the peers is specified by the WebRTC DataChannel Protocol specification [RTCWEB-DATA].

An RTCDataChannel can be configured to operate in different reliability modes. A reliable channel ensures that the data is delivered at the other peer through retransmissions. An unreliable channel is configured to either limit the number of retransmissions ( maxRetransmits ) or set a time during which transmissions (including retransmissions) are allowed ( maxPacketLifeTime ). These properties can not be used simultaneously and an attempt to do so will result in an error. Not setting any of these properties results in a reliable channel.
An RTCDataChannel, created with createDataChannel or dispatched via an RTCDataChannelEvent, MUST initially be in the connecting state. Each RTCDataChannel has an associated underlying data transport that is used to transport actual data to the other peer. In the case of SCTP data channels utilizing an RTCSctpTransport (which represents the state of the SCTP association), the underlying data transport is the SCTP stream pair. The transport properties of the underlying data transport, such as in order delivery settings and reliability mode, are configured by the peer as the channel is created. The properties of a channel cannot change after the channel has been created. The actual wire protocol between the peers is specified by the WebRTC DataChannel Protocol specification [RTCWEB-DATA].
An RTCDataChannel can be configured to operate in different reliability modes. A reliable channel ensures that the data is delivered at the other peer through retransmissions. An unreliable channel is configured to either limit the number of retransmissions ( maxRetransmits ) or set a time during which transmissions (including retransmissions) are allowed ( maxPacketLifeTime ). These properties can not be used simultaneously and an attempt to do so will result in an error. Not setting any of these properties results in a reliable channel.
An RTCDataChannel, created with createDataChannel or dispatched via an RTCDataChannelEvent, MUST initially be in the connecting state. When the RTCDataChannel object's underlying data transport is ready, the user agent MUST announce the RTCDataChannel as open.
Emphasis mine.
It seems browsers also implement this differently as well - owing to the fact that the onopen event is fired even if the actual stream is not actually available for us (i.e. the underlying data transport is NOT READY)
So question is @Sean-Der what should pion do? Realistically if you create a stream that a peer is not expecting, that is, one side creates a stream with negotiated: true and yet your onopen event fires - you are just casting data into the abyss (this actually happens in the browsers I tested) which eats resources or has a peer perform costly operations.

pcap.zip
This should be a pretty simple change! It looks like when someone passes negotiated: true each side just needs to not fire a DATACHANNEL_OPEN_REQUEST in the attached pcap you can see it if you decode the packets as SCTP.

In the pion/datachannel project don't call this write https://github.com/pion/datachannel/blob/master/datachannel.go#L116
https://gist.github.com/5a166e16b5383daf3788a776d7845d60 is helpful for debugging. I just grabbed a capture via tcpdump to confirm the differences.
I think our current implementation of onopen is fine. Since the association is ready no data should be lost!

@Sean-Der reason I mention about the onopen implementation is that I wonder if there's an issue with emitting the onopen event when the datachannel may not exist on the peer.

Aye good question.
So we can wait/emit until the association is ready. But we can't really know if the other side accepts/acknowledges our DataChannel.
This is probably worth another PR. If you update pion/datachannel to take into account the value of negotiated did everything work ok?
Oh! We also have our WASM tests, so that would be a great way to test the compliance of all our DataChannel methods.

Hey @AeroNotix
Anything I can do to help?

@Sean-Der not sure - mostly I am wondering if the behaviour of how the OnOpen event is triggered for negotiated datachannels even when the remote peer isn't going to create one for it is the right behaviour.
E.g. peer A attempts to connect to peer B. Peer A offers a bunch of datachannels - yet peer B refuses or does not want to handle, or doesn't understand how to handle these datachannels but Peer A's OnOpen event still fires. Without some mechanism via signalling or a "control plane" datachannel that is always requested - what exactly is the solution here?
Reason I started looking into negotiated data channel support is because I want a generic application to be able to support specific datachannels for specific streams of data. Having them "negotiated" should mean that either peer opens the channels that they will need for the session, if one side doesn't open that channel then that session doesn't support that stream - and my impression was that the OnOpen event should not fire.
Thoughts?

Closing in favor of #855
pion/datachannel change has landed, just need to wire up for Go


qt 6.2.2 does not have following module . webenginewidgets webchannel webenginecore core5compat multimedia

      - name: Install Qt
        uses: jurplel/install-qt-action@v2
        with:
          version: 6.2.2
          cached: 'false'
          modules: qtwebengine

https://github.com/xiaoyifang/goldendict/runs/5512685469?check_suite_focus=true
error
Project ERROR: Unknown module(s) in QT: webenginewidgets webchannel webenginecore core5compat multimedia

btw,qt5.15.2 is ok.

Hi! Please try jurplel/install-qt-action@v3 .
Here is an example workflow for CMake build on Ubuntu. Try to understand it and make your Windows MSVC build work:
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: jurplel/install-qt-action@v3
        with:
          version: '6.2.2'
          # Qt6WebEngineCore depends on Qt6WebChannel and Qt6Positioning
          modules: qtwebengine qtwebchannel qtpositioning
      - run: find ../
      - name: checkout the code from 'https://code.qt.io/cgit/qt/qtwebengine.git/tree/examples/webenginequick/minimal/?h=6.2.2'
        run: |
          wget \
            --mirror \
            --no-parent \
            --no-host-directories \
            --cut-dirs=6 \
            --content-disposition \
            'https://code.qt.io/cgit/qt/qtwebengine.git/plain/examples/webenginequick/minimal/?h=6.2.2'
      - name: build
        run: |
          set -e
          mkdir build/
          pushd build/
          cmake ../minimal
          make

In addition, it seems that you are from jaredtao/HelloActions-Qt. I would recommend that you use ilammy/msvc-dev-cmd to configure the MSVC development environment since configuring environment variables manually is error-prone.

great thanks ,this have solve my problem.


Enhance apropos to also search method names returned by dir(objname)

Is your feature request related to a problem?
Apropos does a lot of work to string match anything it possibly can in VisIt's CLI. But, I neglected to include method names defined on an object in the initial implementation. We should add it. But, we need to take care that if we match a method name from the dir() of an object that we also include the parent object type in the listed results apropos returns.

Also noticed that in an import visit scenario, visit.apropos("sil") returns nothing. Thats probably because its using a dir() to find all the methods to search and that works slightly differently in an import scenario.
Also found that help(visit.apropos) returns...
apropos(key, truncate=30, called_from_help=False)
    # Return the list of names of all methods where the specified regex
    # matches either in the method name or its doc string or a strinified
    # version of the object. Use a set to accumulate only unique results
    # but return the result as a list. The matching is performed all in
    # lower case.

Note the # chars and the typo strinified.


weblate: init at 5.6.2

This adds the weblate package, module and integration test from my previous work at https://github.com/ngi-nix/weblate.
As this package attempt uses poetry2nix, which isn't part of Nixpkgs anymore, I had to add it as a Flake input to NgiPkgs.
Also I noticed that I would benefit from the snakeoil TLS certificates used by many NixOS tests in Nixpkgs, so I figured it would make sense to expose nixpkgs as part of sources to every project?
I also update the package to the latest version 5.6.2.
Let me know if I should squash for inclusion, the commit messages are more or less written for myself.
Edit: Pinging @fricklerhandwerk as he asked me to do this, and @lorenzleutgeb as I saw your earlier branch.
Closes https://github.com/ngi-nix/ngipkgs/issues/221

Just noticed that the overview output auto-generates a URL to the project site: https://nlnet.nl/project/Weblate
But I can't find a Weblate project in https://nlnet.nl/project/? Is it just not listed maybe?

Oh, it may never have been funded by NLnet. I suppose we'll have to adjust how we do the attribution.

Had to fix an override for aeidon, which probably broke due to a Python upgrade.


publish to npm?

Really great work here! Just wondering whether this is likely to be published at some point soon?

Thank you! I don't have such plans. I feel its publishing is against the npm philosophy. However, Addy Osmani published a few packages (bubble sort, recursive binary search, [https://github.com/addyosmani/selectionsort](selection sort) and may be others) based on implementations in this repository.

Oh perfect! Thanks for the reply. I'll take a look over what's on npm to see what dedicated modules there are for these sort of algorithms. In the mean time I'll also continue to learn from the code here. :+1:  Closing.


content headers  remark

Hello,
Im trying to solve this problem and solved it.
Then I looked at the official answer and I think there is something not right.
The problem stated : If it's application/json, return {message: 'hi!'} with appropriate content headers
And in the official answer I do not see the content headers set.
Roelof

@roelof1967 Feel free to send a PR.


ContextMenu has to be clicked twice to uncheck

I have a ContextMenu with items created like this:
MenuItem menuItem = addItem(label, e -> {
    boolean checked = e.getSource().isChecked();
    column.setVisible(checked);
});
menuItem.setCheckable(true);
menuItem.setChecked(true);

Now I write a test:
ContextMenuKt._clickItemWithCaption(contextMenu, "Vertrag");

But then checked is still true. I hae to call _clickItemWithCaption twice to have it unchecked.

Hi, excellent catch, thank you for letting me know. I have reproduced the issue.

Fixed in Karibu-Testing 1.3.19


Use /proc/loadavg on Linux

GNU Make uses /proc/loadavg on Linux to decide whether to start another task: https://lwn.net/Articles/913253/ / https://git.savannah.gnu.org/cgit/make.git/commit/src/job.c?id=d8728efc80b720c630e6b12dbd34a3d44e060690. I would like Ninja to do the same.
Since /proc/loadavg provides "number of processes currently runnable (running or on ready queue)" (https://www.kernel.org/doc/html/latest/filesystems/proc.html), Ninja would be able to take better decisions than by looking only at the info provided by getloadavg().

To have some numbers, I have a Jenkins slave with 64 cores. When pushing to a repository, multiple jobs are triggered. Those jobs are independent, and there is no easy way to have a common "jobserver" to limit the number of parallel tasks. All the makes/ninjas are run with "-j 64 -l 128".
With GNU Make 4.4 the peak 1 minute average load is 132, and the peak memory usage 55 GiB.
With Ninja the peak 1 minute average load is 562, and the peak memory usage 222 GiB.

I'm not creating a PR because I'm not sure about the licence implications of me "basing" it on the GPL make patch. Maybe /proc/loadavg should be kept open the whole time instead of opening and closing in continuously, the parsing could maybe be made more robust, etc.
But this does the trick.
--- a/src/util.cc
+++ b/src/util.cc
@@ -818,6 +818,38 @@ double GetLoadAverage() {
 double GetLoadAverage() {
     return -0.0f;
 }
+#elif defined(linux)
+double GetLoadAverage() {
+  int fd = open("/proc/loadavg", O_RDONLY);
+  if(fd == -1) {
+    return -0.0f;
+  }
+
+  char avg[65];
+  int size = read(fd, avg, 64);
+  close(fd);
+  if(size == -1) {
+    return -0.0f;
+  }
+  avg[size] = '\0';
+
+  const char *p = strchr(avg, ' ');
+  if (p) {
+    p = strchr(p+1, ' ');
+  }
+  if (p) {
+    p = strchr(p+1, ' ');
+  }
+  if (!p) {
+    return -0.0f;
+  }
+
+  if((unsigned)p[1] - '0' > 9) {
+    return -0.0f;
+  }
+
+  return atoi(p+1);
+}
 #else
 double GetLoadAverage() {
   double loadavg[3] = { 0.0f, 0.0f, 0.0f };

0001-Use-proc-loadavg-on-Linux.log

I'm not sure about the licence implications of me "basing" it on the GPL make patch.

There is none if you don't the copy code. If you just take the idea and reimplement it in a different program then that is fine.

Yeah, this would be pretty convenient. Given that ninja still doesn't support the GNU jobserver (#1139) , supporting /proc/loadavg would be a possibly simpler way to deal with the issue of many ninja instances spawned somewhere down the line by make -j <n>.


NumberInput elements diagram in spec doesn't label the input subcomponent

@LeonidLevi @tyv wat?

@abumami can you explain issue?

The input subcompact, that is the text field where the number input is either entered or displayed, is not identified in the spec elements image. The prefix and suffix subcomponents are identified, however the input field itself is not identified.

Should the issue be assigned to me? Looks like this is about spec.

@VKobeliatsky Should be assigned to whoever is doing the spec. Simple issue really, just need to add a label to identify the input field. Whoever did the original element image, should be able to do this easily.


Add logpoint validation

VSCode Version:
OS Version:

Steps to Reproduce:

Run Node debugger
Add a logpoint somewhere for an invalid expression, e.g. for an invalid identifier: {iDoNotExist}

Expected:

There is some validation/feedback in the logpoint UI to show that this is an invalid expression/identifier, just like it would if you used this expression in the file itself:

The logpoint fails loudly.

Actual:

There is no validation/feedback in the logpoint UI to show that this is an invalid expression/identifier.
The logpoint silently fails.

Does this issue occur when all extensions are disabled?: Yes

This is a fair feature request, however it is not curretnly on our plan thus assigning to the backlog.


Cannot generate mesh.yaml

By typing " phonopy --dim="6 6 3" --readfc --hdf5 --fc-symmetry --mesh="1 1 1" --eigenvectors", I got a mesh.hdf5 file but not mesh.yaml file. Anyone knows how to solve this?

With the --hdf5 flag, newer versions of Phonopy write mesh.hdf5 in place of mesh.yaml.
The code has been updated to read mesh.hdf5, if present, and the a-SiO2 example has been updated to reflect this.
Could you check this fix works for you, and if so I'll close the issue?

Making sure the below private communication (?) gets attached to the issue.

Oops -- forgot to include the updated Constants module in the commit. Please check whether the latest push works for you.

On 10 April 2018 at 15:41, Giuncan<EMAIL_ADDRESS>wrote:
I tried to run phonopy-ir but ZeroTolerance is not defined in Constants file

Thank you. I have slove this by using --readfc-format to generate mesh.yaml.
Jonathan Skelton<EMAIL_ADDRESS>周二02:50写道：

With the --hdf5 flag, newer versions of Phonopy write mesh.hdf5 in place
of mesh.yaml.
The code has been updated to read mesh.hdf5, if present, and the a-SiO2
example has been updated to reflect this.
Could you check this fix works for you, and if so I'll close the issue?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/JMSkelton/Phonopy-Spectroscopy/issues/1#issuecomment-380041668,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Acmlt7mcXtp_blSnFEg23zILKiSTBRrXks5tnIBwgaJpZM4TMENK
.

Tagging additional comments on 8fbef70 and closing issue.

OK - glad to hear it.
No problem. I'll add this conversation to the issue and close it.

On 11 April 2018 at 09:48, Giuncan<EMAIL_ADDRESS>wrote:
thanks, now it works
(Do I have to delete the comment?)

Dear Jonathan,
I have noticed that the relative Raman intensities have discrepancies with experimental measurements in bands with low-frequency. Could you tell what is the possible reason for that? I’m calculating Raman spectra using Phonopy-Spectroscopy, it will be better if I could explain the discrepancies in my paper.
Best,
Yuhang

Hi Yuhang,
I presume you're referring to your own calculations rather than the SiO2
example?
The first question to ask is probably "how large is the discrepancy"? If
the correspondence between the experiments and theory is sufficient to
assign the bands, I'd personally say the agreement is good enough.
I can think of a number of potential reasons why the two may disagree
quantitatively:

Problems during your calculation -- if you're using DFPT to calculate
the dielectric tensors, make sure the initial SCF converges properly, as
I've found in the past that if it doesn't it can lead to unphysical
intensities.

Errors in the calculation of the dielectric tensor with your chosen DFT
functional -- the dielectric constant depends on the bandgap, which is
underestimated with DFT; although I think taking the derivative should, to
some extent, cancel this, artefacts due to this problem may still be an
issue.

Numerical errors in the calculation of the intensities -- you could test
selected bands with a smaller/larger step to check this isn't the problem.

Errors/issues in the calculation of the phonon frequencies - bands that
should/shouldn't overlap don't/do, giving a different intensity
distribution; this could happen if your calculation was done with the
relaxed (0 K) cell volume, but your measurements were done at room
temperature.

Not including calculated linewidths (if you didn't), or errors in those
calculations (if you did).

Instrumental artefacts in the experimental spectra -- these are entirely
possible, and depend on how good the Raman instrument used to take the
measurements was; in particular, you sometimes see artefacts in bands close
to the laser line.

I hope this is helpful, and I'd be happy to elaborate on any of these
points if they're not clear (I don't know how much of a Raman expert you
are - you may well know a lot more than I do!). Also, if you want to send
me your results, I might be able to make some more specific comments.
Best wishes,
Jonathan
On 17 May 2018 at 08:14, liuyuhang599<EMAIL_ADDRESS>wrote:

Dear Jonathan,
I have noticed that the relative Raman intensities have discrepancies with
experimental measurements in bands with low-frequency. Could you tell what
is the possible reason for that? I’m calculating Raman spectra using
Phonopy-Spectroscopy, it will be better if I could explain the
discrepancies in my paper.
Best,
Yuhang
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/JMSkelton/Phonopy-Spectroscopy/issues/1#issuecomment-389768274,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AISuFD-VOnNXBoCuLAmsQICko43_TkMKks5tzSNQgaJpZM4TMENK
.

Dear Jonathan,
I am trying to use HSE06 functional to calculate the Raman spectrum of
VO2Cl molecule by using Phonopy-Spectriscopy, but the calculated Raman
tensors of several peaks are null matrix. Do you know any possible reasons
for that error? Some useful files are attached.
Best,
Yuhang

Hi Yuhang,
Did you mean to attach something? I don't see any files with your last message.
When you say "VO2Cl molecule", I presume you mean an isolated (gas-phase) molecule in a vacuum box? I presume also that you expect the bands with zero intensity to be Raman active?
I've never actually tested Raman spectra on a molecule-in-a-box model (IR seems to work reasonably well), so I'd have to see your output files.
Best wishes,
Jonathan

I calculated a VO2Cl molecule in vacuum, I could get non-zero intensities
by using PBE but only get zero intensities by HSE06. The output files of
PBE and HSE06 are attached.
On Thu, Jul 12, 2018 at 12:08 AM, Jonathan Skelton<EMAIL_ADDRESS>
wrote:

Hi Yuhang,
Did you mean to attach something? I don't see any files with your last
message.
When you say "VO2Cl molecule", I presume you mean an isolated (gas-phase)
molecule in a vacuum box? I presume also that you expect the bands with
zero intensity to be Raman active?
I've never actually tested Raman spectra on a molecule-in-a-box model (IR
seems to work reasonably well), so I'd have to see your output files.
Best wishes,
Jonathan
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/JMSkelton/Phonopy-Spectroscopy/issues/1#issuecomment-404411762,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Acmlt6OCsovQaRGdIXgbUqkYRzi9xHaJks5uFvXdgaJpZM4TMENK
.

Hi Yuhang,
Thanks for sending the files -- and apologies for my apparent inability to use the GitHub mailing system properly (!).
I believe I've found the problem. All the calculated dielectric tensors in your HSE 06 Raman.yaml are the same (i.e. all displacements, for all the bands you calculated).
I can think of three possible causes:
(1) Your band selection (--bands) for the HSE 06 calculation somehow triggered a bug that causes phonopy-raman to write out the same structure repeatedly -- the easiest way to check would be to open the Raman-POSCAR-*.vasp files in a text editor and compare them.
(2) You (accidentally) copied the wrong POSCAR file when you did your HSE 06 calculations -- if #1 checks out, perhaps check your scripts, etc. to make sure this isn't the issue.
(3) You (or phonopy-raman) accidentally read in the same OUTCAR file for all the modes -- I think this is unlikely, but if neither #1 or #2 apply then it's worth investigating.
Can you take a look and let me know what you find?
Best wishes,
Jonathan


Sync Response Handling and Background Sync Improvements

Part of vector-im/element-ios#3579

Not needed anymore.


Button3D: Allow setting the dimensions at creation time

See https://forum.babylonjs.com/t/holographicbutton-button3d-sizes/39134/3
The dimensions can be set at creation time only because it has an impact on the creation of the mesh. I would have to recreate the mesh if we allowed the dimensions to be changed at any time, but _createNode (which creates the mesh) is called by Control3D, and the result of that call is stored in a private variable. If the user wants to change the dimensions afterwards, he will have to recreate the button.

Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s).
To prevent this PR from going to the changelog marked it with the "skip changelog" label.

Snapshot stored with reference name:
refs/pull/13637/merge
Test environment:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/13637/merge/index.html
To test a playground add it to the URL, for example:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/13637/merge/index.html#WGZLGJ#4600
Links to test babylon tools with this snapshot:
https://playground.babylonjs.com/?snapshot=refs/pull/13637/merge
https://sandbox.babylonjs.com/?snapshot=refs/pull/13637/merge
https://gui.babylonjs.com/?snapshot=refs/pull/13637/merge
https://nme.babylonjs.com/?snapshot=refs/pull/13637/merge
To test the snapshot in the playground with a playground ID add it after the snapshot query string:
https://playground.babylonjs.com/?snapshot=refs/pull/13637/merge#BCU1XR#0


Update 1 b1

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
~[ ] Reset the build number to 0 (if the version changed)~
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Build is necessary to account for complications with numpy 2.0.0 which became apparent after release


move module-level functions into WeeklySchedule as appropriate

These functions in schedule.py make more sense as instance methods of WeeklySchedule class:

getEventType()
createEvents()

Move them in there after #15 is merged.

Also, don't work on this until #21 is merged, due to the major reorganization work under that issue.

Also, make WeeklySchedule Observer-aware as agreed.


[New game]: Snake Feeder Game [GSSoC'23]

🎮 Game Request
Game logic and basic description
In this game, Players control a growing snake and guide it to eat food items while avoiding collisions with its own body and the game boundaries.
The players are to accumulate points by consuming feeders, with the challenge increasing as the snake grows longer.
Point down the features
Game points
Points are distributed according to the below points :

Food items consumption
Length of the snake
Time bonus, etc.

Select program in which you are contributing
GSSoC23
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hey @Avdhesh-Varshney !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹

Sirs, @kunjgit @Arun9739 @raju-kumar21 please /assign this task to me to contribute under GSSoC'23.

Thank you so much sir @kunjgit for assigning this task to me

Hello @Avdhesh-Varshney, Time's Uppp!⏰
Sorry for closing your issue!
But it's more than a week since we haven't received anything from your side 😢 .
Come up with new ideas, create a new issue and make sure you finish it within a week! 🔥
All the best! 🚀
Happy Hacking! 💗

Hey @Avdhesh-Varshney ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


Remove tree hyperlink or fix, as clicking on it does NOT open a tree

When you click on the icon shown at the top right of the table, it opens a page that shows nothing.

Clicking on the View button renders a tree for PhylogeneticTree job results, but it is broken for CodonTree job results.
As a work around, you can click on the Newick file, and then a view button will appear on the green bar.  Clicking that view button will render the tree.
I would recommend fixing the button instead of removing it since it works for PhylogeneticTree job results.


Improve UX for hanging tests

Summary:
If a test does not exit after completing, that usually indicates that some async resource is not properly waited for or cleaned up. Jest ships with a --detect-open-handles CLI flag to help locate this, but it doesn’t work in all case. This project would explore how this detection could be made smarter so people spend less time trying to fix their tests.

Issue: https://github.com/facebook/jest/issues/9785
Work in progress PR: fix: improve open handles detection · Issue #9532 · facebook/jest

Level of complexity: Medium
Experience wanted:

JavaScript
Jest testing framework

Deliverables:

Fixing the reported cases in Jest’s issue tracker where --detect-open-handles doesn’t work properly

We will not be completing this task during the fellowship


Error on creating a react app

It looks like a problem with npm itself. Try following instructions from this comment.

It looks like a problem with npm itself. Try following instructions from this comment.

I tried this, but didn't work for me.

Have you tried changing NodeJS version?

Hi JRoman2018 , Looks like this issue is with your local system . Try to clean you node/npm cache , directories. If not sure try it with another machine. if the issue doesn't persist then the issue is most likely in your local system . something which is not CRA issue.

I tried cleaning the node/npm cache. But still didn't work.

I did the same action and have received the same issue as mentioned before, do not close this issue as this is clearly related to 'facebook/create-react-app' side of the issue.
Version of 'node' via 'NVM' being used:
samuelbanya@Samuels-MBP ~/hub/Development/code/phase-4/phase-4-lecture-videos-client-configuration/flatiron-theater $ nvm list
->     v16.14.2
         system
default -> lts/* (-> v16.14.2)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v16.14.2) (default)
stable -> 16.14 (-> v16.14.2) (default)
lts/* -> lts/gallium (-> v16.14.2)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.11 (-> N/A)
lts/fermium -> v14.19.1 (-> N/A)
lts/gallium -> v16.14.2

Related output that matches @JRoman2018 's output:
samuelbanya@Samuels-MBP ~/hub/Development/code/phase-4/phase-4-lecture-videos-client-configuration/flatiron-theater $ npx create create-react-app client --use-npm
npm ERR! cb.apply is not a function

npm ERR!      /Users/samuelbanya/.npm/_logs/2022-10-25T23_50_46_959Z-debug.log
Install for [ 'create@latest' ] failed with code 1

Related output in '/Users/samuelbanya/.npm/_logs/2022-10-25T23_50_46_959Z-debug.log':
0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli   '/Users/samuelbanya/.nvm/versions/node/v16.14.2/bin/node',
1 verbose cli   '/Users/samuelbanya/.nvm/versions/node/v16.14.2/lib/node_modules/npx/node_modules/npm/bin/npm-cli.js',
1 verbose cli   'install',
1 verbose cli   'create@latest',
1 verbose cli   '--global',
1 verbose cli   '--prefix',
1 verbose cli   '/Users/samuelbanya/.npm/_npx/15628',
1 verbose cli   '--loglevel',
1 verbose cli   'error',
1 verbose cli   '--json'
1 verbose cli ]
2 info using<EMAIL_ADDRESS>3 info using<EMAIL_ADDRESS>4 verbose npm-session 4d13296a1532d757
5 silly install loadCurrentTree
6 silly install readGlobalPackageData
7 http fetch GET 200 https://registry.npmjs.org/create 23ms (from cache)
8 silly pacote tag manifest for create@latest fetched in 39ms
9 verbose stack TypeError: cb.apply is not a function
9 verbose stack     at /Users/samuelbanya/.nvm/versions/node/v16.14.2/lib/node_modules/npx/node_modules/npm/node_modules/graceful-fs/polyfills.js:287:18
9 verbose stack     at FSReqCallback.oncomplete (node:fs:199:5)
10 verbose cwd /Users/samuelbanya/hub/Development/code/phase-4/phase-4-lecture-videos-client-configuration/flatiron-theater
11 verbose Darwin 21.6.0
12 verbose argv "/Users/samuelbanya/.nvm/versions/node/v16.14.2/bin/node" "/Users/samuelbanya/.nvm/versions/node/v16.14.2/lib/node_modules/npx/node_modules/npm/bin/npm-cli.js" "install" "create@latest" "--global" "--prefix" "/Users/samuelbanya/.npm/_npx/15628" "--loglevel" "error" "--json"
13 verbose node v16.14.2
14 verbose npm  v5.1.0
15 error cb.apply is not a function
16 verbose exit [ 1, true ]

Update on this one, this command fixed my issue, aka I upgraded my 'nvm' to use the latest 'lts' release via the following command:
nvm install --lts

Now I am able to use the 'npx create-react-app client --use-npm' command without an issue.
With this in mind, this issue is isolated to 'node' version 16.14.2 on MacOS.


snpeff SHA1 mismatch

Hey all - I'm trying to setup an isolated installation and hit a roadblock at snpEff.
Error: SHA1 mismatch
Expected: 83e1d2e32bfc8b9104f1856e70f8b1112fa290ab
Actual: ed4460b89bc22cd6873d1ca6a3cde8565bd2f8d8

My SHA1 actually matches the SourceForge download at http://sourceforge.net/projects/snpeff/files/
Looks like the SourceForge download was modified yesterday and might have a new SHA1 value?

Sorry - I think this is probably an upstream issue in homebrew-cbl.

Matt;
Thanks much for the report. I submitted an upstream patch into homebrew-science to resolve this, and will try to make the behavior more consistent long term working with the author of snpEff. As soon as the patch gets pulled into homebrew-science this'll be good again. Thanks again.

Thanks, Brad!


Rename Devices + Reorder

Extension – Set Audio Device
Author: @benvp

Describe the feature and the current behavior/state.

⚠  Both requests apply to both commands in the extension.

Currently, you can just select the device. Some of those devices have unclear names.
It would be great to customise the device name, so it's bespoke to the user. In my case, External Headphones are in fact my speakers plugged in to the headphone jack. I'd like to rename it something like Speakers.
I would also like to move the devices around to order in a way that is to my preference. I don't ever use the LG monitor for either speakers or microphone, but for some unclear reason, they comes first.

Who will benefit with this feature?
Everyone.
Any Other info.
No.

Interesting addition. Do you have an idea how we could persist the user data? Is there any way in the Raycast api build in for such use cases?


WaitAsync() overload documentation is inconsistent

Most of the SemaphoreSlim.WaitAsync methods indicate that they may throw an ObjectDisposedException if "The current instance has already been disposed." However the WaitAsync() and WaitAsync(TimeSpan, CancellationToken) overloads do not call this out.
Examining the code from https://source.dot.net/#System.Private.CoreLib/src/System/Threading/SemaphoreSlim.cs,314 seems to indicate that all overloads of WaitAsync can throw the ObjectDisposedException

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: f74a9f68-b637-ced3-c1b0-93701179da74
Version Independent ID: cd4ed6ba-7d50-b448-0682-517ea576218d
Content: SemaphoreSlim.WaitAsync Method (System.Threading)
Content Source: xml/System.Threading/SemaphoreSlim.xml
Product: .net
GitHub Login: @dotnet-bot
Microsoft Alias: dotnetcontent

Thanks for pointing this out, @Keboo. All overloads of WaitAsync can in fact throw an ObjectDisposedException, as can each of the overloads of Wait. We've opened dotnet/dotnet-api-docs#310 to add the missing exception information.


Allow site-wide search to return results from variable labels

(Only do this if somewhat straightforward - otherwise we will backlog)
We want to add some special labels to variables across datasets (e.g. for a specific type of AHI variable) in our ongoing harmonization efforts. We would like to allow users to pull up a list of these similar variables. In lieu of adding these technical codes to display names, having the site-wide search also parse variable labels could help.
Note: I have no idea how the search index gets built - or how it gets updated either? I actually found some "stale" results in the site-wide search, e.g. linking to variables that have since been changed and therefore no longer exist in a given dataset.

So the labels aren't included currently (however will add them in the next commit), easy change. In order to remove stale results, you can reset the search cache using the following:
rails search:reset RAILS_ENV=production

This shouldn't need to be done that often, and it's something I'll run after adding the new search field to the index.


Cannot share Styled Components between components (SSR, Production Build Only)

Version
2.1.2
babel-plugin-styled-components: 1.2.0

Steps to reproduce
in Heading.js
import styled from 'styled-components'

export const Heading1 = styled.div`
  display: inline-block;
  font-size: 3rem;
`

in index.js
import { Heading1 } from './Heading'
- use heading somewhere in jsx -

Expected Behavior
no error in production
Actual Behavior
produces the following error
Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object. Check the render method of `t`

(Minified React error 130;)
More Details
Used with<EMAIL_ADDRESS><EMAIL_ADDRESS>Styled Component in the same file works normally
No error or warning in development mode

The issue seem to be caused by the mixing of various plugins not the fault of Styled Component itself.
Sorry for posting this.

No worries, happy that you've figured it out!


Reduce the number of threads used in test

Previously this test often failed at the following exception:
java.lang.IllegalStateException: Unable to shutdown the worker group in 60000 ms
	at com.linkedin.pinot.transport.netty.NettyCloseChannelTest.testCloseServerChannel(NettyCloseChannelTest.java:96)

Looking into the code, worker group is assigned 20 threads when the constructor gets called. While in Travis, the machine could be lack of available threads.

Codecov Report

Merging #2959 into master will increase coverage by 0.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #2959      +/-   ##
==========================================
+ Coverage   69.22%   69.24%   +0.01%
==========================================
  Files         914      914
  Lines       43496    43500       +4
  Branches     5929     5929
==========================================
+ Hits        30112    30121       +9
+ Misses      11369    11366       -3
+ Partials     2015     2013       -2

Impacted Files
Coverage Δ

...om/linkedin/pinot/transport/netty/NettyServer.java
80% <100%> (+0.4%)
:arrow_up:

...linkedin/pinot/transport/netty/NettyTCPServer.java
89.65% <100%> (+0.76%)
:arrow_up:

...a/manager/realtime/RealtimeSegmentDataManager.java
50% <0%> (-50%)
:arrow_down:

...impl/dictionary/FloatOffHeapMutableDictionary.java
83.63% <0%> (-9.1%)
:arrow_down:

.../impl/dictionary/LongOffHeapMutableDictionary.java
83.63% <0%> (-9.1%)
:arrow_down:

...nsport/netty/PooledNettyClientResourceManager.java
85.41% <0%> (-4.17%)
:arrow_down:

...ata/manager/realtime/RealtimeTableDataManager.java
39.55% <0%> (-1.5%)
:arrow_down:

...not/broker/requesthandler/RangeMergeOptimizer.java
89.7% <0%> (-1.48%)
:arrow_down:

.../pinot/core/common/datatable/DataTableBuilder.java
78.82% <0%> (-1.18%)
:arrow_down:

...ot/core/query/pruner/ColumnValueSegmentPruner.java
84.74% <0%> (ø)
:arrow_up:

... and 11 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 76a34cc...743aa0f. Read the comment docs.


WordCount Example (Batch) exe path correction

It was pointing to SparkClrPi.exe instead of SparkClrWordCount.exe

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot

Thanks @kmleow
We will get this merged once a build issue is fixed


Beeswing (365580) does not work out of the box

Previously I submitted a change that marks this game as working. However later I realized that it worked because I earlier applied a workaround to it.
Currently Beeswing does not have a SteamOS icon on the Store page, but does show up in the Steam library, and works only after a workaround is applied.

Why we store this data is a bit more complicated. Store has it marked just for Windows, backend has all 3 platforms, launch config and depots work for all - which strictly means it should be included as working, even if it needs a workaround to fix launching.
If it had a private branch with a pword, we would at least tag it so.
Let me poke another contributor about their thoughts.

After speaking with @soeb we’re not going to accept this change - if you buy the game on steam, you can download it if you are a Linux Steam user.
If there are problems launching the title, contacting the devs would be great.
Maybe in the future this might change, but for now:


drop python 3.7

Codecov Report

Merging #9 (c54d21b) into main (9008980) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main       #9   +/-   ##
=======================================
  Coverage   99.38%   99.38%
=======================================
  Files           4        4
  Lines         484      484
=======================================
  Hits          481      481
  Misses          3        3

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9008980...c54d21b. Read the comment docs.


Arista cEOS Management1 Interface

Currently, Arista cEOS nodes launched in Containerlab use Management0 as the default management interface. Although this can be overridden by creating an EosIntfMapping.json file, it is preferable for Containerlab to use Management1 as the default management interface, aligning it with vEOS and EOS running on physical switches.

@burnyd @sulrich does it match your view, guys?

I'd rather prefer a simple knob TBH as that can break some existing labs if the default will be simply changed.

One more concern is that if the fix will be to set a default mapping JSON, we have to make sure that "e1_1" -> "Ethernet1/1" conversion still works. As mapping JSON kills this possibility when set. And building complex topology with underscore is much easier than defining a full interface map.

Closing issue as it is possible to specify Ma1 via EosIntfMapping.json if required:
{
"ManagementIntf": {
"eth0": "Management1"
},
...

Closing issue as it is possible to specify Ma1 via EosIntfMapping.json if required:
{
"ManagementIntf": {
"eth0": "Management1"
},
...


While trying to install any missing Dotnet Core 2.1 Dependencies, I get a NSS conflict error.

While trying to run the agent register script for linux, it promts to install any dotnet core dependencies with the installdependencies.sh script. Afterward running that script, I get the error below:

Error: nss-pem conflicts with nss-3.21.3-2.el7_3.x86_64
Error: Package: nss-pem-1.0.3-7.el7.x86_64 (base)
Requires: nss(x86-64) >= 3.36.0
Installed: nss-3.21.3-2.el7_3.x86_64 (@updates)
nss(x86-64) = 3.21.3-2.el7_3
Error: Package: libcurl-7.29.0-54.el7.x86_64 (base)
Requires: libnss3.so(NSS_3.34)(64bit)
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
'yum' failed with exit code '0'
Can't install dotnet core dependencies.
You can manually install all required dependencies based on following documentation
I tried both --skip-borken and rpm- and neither helped.  The CenTos Linux release is 7.3.1611, but the dev box is the same version and was able to have the agent installed with no problem.

Closing due to inactivity. If the problem still exists, please feel free to open a new issue.


Added implementation of year_guess()

year_guess() is a function requested by a user to automatically go back to the last valid date when given an invalid date of the format 'ddd MMM DD...'. Based on issue #6106

This is a crazy new feature which would best live in a plugin. From my understanding you iterate back and find a year that matches the day-of-week? In any case the library is in strict maintenance-only state, so "big" (well medium) features like this are not ok.


Update method for non-square coordinate grids

There is no reason we need to place the latent nodes of our GTM on a square grid. We should expand the method to enable choice of grid type (:square, :hexagonal, :spherical, :toroidal) to match what we have done for SelfOrganizingMaps.jl

I've updated the model with a choice of topology which can now be one of :square, :cylinder, or :torus. I think we can skip the sphere since the sphere and cylinder are homeomorphic (i.e. topologically equivalent)


Seed Script / Deploy Script Redundancy

The seed script is calling code similar to the deploy script; there should be a way to have them share code to prevent redundancy/disconnect.
https://github.com/YaleSTC/reservations/blob/development/db/seeds.rb#L339
https://github.com/YaleSTC/reservations/blob/development/lib/tasks/setup_application.rake#L81

Now that the seed script has been completely overhauled (see #1079) this might actually be easier. If we can make the app:setup task utilize these functions (maybe put some of this stuff in a module that we require) that would be great.

Ha, I came back in here to write the same thing as previous comment. Another thought is that we can just call db:seed from app:setup with a different option set (e.g. setup=true), which would skip everything after the initial user and application setup. In my mind that makes more sense than trying to call app:setup from the seed script. Anyway, still on the wish list.

I was reminded of this by #1305; let's get this done and write tests for the setup script (and ideally the seed script as well).

So I've looked through the scripts a bit, it seems like the setup script is basically performing a simplified version of the seed script, but with a bit more detail and help given to the user in the puts. I'm thinking about moving many of the comments into the user and application setup portion of the seed script and just calling that portion for both the seed script from the setup script. I'm working on creating a new module which has the user and application creation from the seed script and integrating it into both the original seed script, and the application setup.

Sounds like a good plan to me, looking forward to seeing what you come up with!

@AlanLiu96 unless you have significant objections, I'd like to bump this to the wish list (or maybe to v6.1.0) - we have a bunch of recently requested features / fixes in this milestone I'd like to get to first. Let me know if that's ok, thanks!

blocking on #1327, which significantly refactors the seed script


Setup a basic server

Update: The server is going to be full featured. It's going to read config from a json file.

We have an working API with database integration in upto https://github.com/iShafayet/Rewardables/commit/b25b268ce632d1c2dddac17cf87db178aff68097

Marking as done


Debian 11 packages

Hi all,
were trying to install on Debian 11 but fails due to missing dependencies:
#  apt-get install nipapd
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 nipapd : Depends: nipap-common but it is not going to be installed
          Depends: python-psycopg2 but it is not installable
          Depends: python-flask but it is not installable
          Depends: python-flask-xml-rpc but it is not going to be installed
          Depends: python-flask-compress but it is not going to be installed
          Depends: python-tornado but it is not installable
          Depends: python-parsedatetime but it is not installable
          Depends: python-tz but it is not installable
          Depends: python-dateutil but it is not installable
          Depends: python-psutil but it is not installable
          Depends: python-pyparsing but it is not installable
E: Unable to correct problems, you have held broken packages.

I am also running into this issue, is this perhaps a python module deprecation problem?
cannot even install nipap-common, or nipapd which appear to be rather important
looks like a great tool though, and would love to dive in.

Same issue, Debian 11. Seems like you need python2 to install these modules?

The same problem on Debian 11.

Really?
The same issue since 2 years?
Tried to install nipap this morning. No chance with Debian 12. So i switched to Debian 11, also no chance.
But really, i'll not going with old Debian 10 or Docker.
So really a shame.

@jonnycastaway yep... inconvenient to say but I recommend switching to phpipam

Should work on latest release in test apt repo, 0.32.0.

Closing.


amplify-template

Amplify Document tutorial
Amplify tutorialの完走
https://docs.amplify.aws/react/start/quickstart

断念


Video "Fundamentals in 60 minutes" on angularjs.org outdated

At
https://docs.angularjs.org/guide
The link to "Fundamentals in 60 Minutes (video)" ( https://www.youtube.com/watch?v=i9MHigUZKEM ),
leads to a introduction to angular.js predating 1.2.
The code examples will not work with 1.3 at all and only in part with 1.2(routing).
My suggestion:

Remove that video until it is redone with the current stable version (1.3) (send an according note to the author)
Use a diagram similar to https://www.youtube.com/watch?v=i9MHigUZKEM#t=2010 in a central part of the documentation.

This has come up again here: https://github.com/angular/angular.js/issues/12591 @petebacondarwin WDYT?  Remove the video or try to annotate it? Personally, I think we should remove it. It's probably too much work to get it in shape for 1.4.

This video was originally made by @DanWahlin - perhaps we could see if he could update it or suggest an alternative? In the meantime we should probably remove it or modify the link to indicate that the video is for 1.2

I wish YouTube allowed video updates - they don't though. Everything that has changed has been annotated in the video and the samples they can download have been updated. The main changes over the years (that are covered in the video anyway) are:

Stand-alone controller functions are shown initially and then plugged into a module later in the video. An annotation is there about how stand-alone functions can't be used (even though they were used just to keep things simple initially in the video - modules are used later as mentioned).
Routing changed and there's an annotation there.

While I still get tons of people giving positive feedback and saying how it helped them learn Angular quickly, some people don't read the annotations which does make it a challenge (especially with routing). If you guys want to pull if from the Angular site I completely understand - a lot has changed in 2 years. :-)

It looks like there are still people who find the video helpful (see recent comments), so we'll keep it


[2.13-release] Logout does not work

Summary:
Tapping "Logout > Yes" does not actually log me out now.
More specifically, it seems like I am technically "logged out" but it is not reflected in the UI. Instead of being brought back to LoginActivity I am in Contributions still, with a bunch of images that are not mine.
Device and Android version:
Android 10, Samsung Galaxy s9
Commons app version:
2.13-release

Possible duplicate of #3547


Any way to remove the gap between two horizontally stacked cards?

Is your feature request related to a problem?
We have horizontally stacked two cards that we need to unite and show as single card.
The left card is a mushroom-entity-card with secondary information
The right card is a mushroom-template-card again with primary and secondary information.
We want to have a card that presents all of the information above as a single unit, but because there is no such card we are using horizontally stacked cards.
Describe the solution you'd like
Is it possible to eliminate the gap between the two cards hence the two appearing as a single card?
Ideally one card offering more than primary / secondary information would work as well
Describe alternatives you've considered
No response
Additional context
No response

Hi 🙂 You can use https://github.com/ofekashery/vertical-stack-in-card or https://github.com/custom-cards/stack-in-card for this.

@piitaya You're awesome, thanks.
Worked beautifully.
For the record in case anyone else stumbles on this, I used the veritical-stack-in-card
All I had to do is replace
  - type: horizontal-stack

with
  - type: 'custom:vertical-stack-in-card'
    horizontal: true


Home page "Events" -- replace with real coins?

Should this be generic tokenmint news updates, or information about specific coins?


bootstrap: Do not use --use-feature=2020-resolver for pip upgrade

pip might be too old so the --use-feature flag is not available. That
leads to:
$ ./bootstrap
Removing old virtualenv because it uses system site-packages
created virtual environment CPython3.8.5.final.0-64 in 173ms
creator CPython3Posix(dest=/home/tom/devel/ceph/teuthology/virtualenv, clear=False, global=False)
seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/tom/.local/share/virtualenv)
added seed packages: pip==20.1.1, setuptools==50.3.0, wheel==0.35.1
activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
Usage:
pip install [options]  [package-index-options] ...
pip install [options] -r  [package-index-options] ...
pip install [options] [-e]  ...
pip install [options] [-e]  ...
pip install [options] <archive url/path> ...
no such option: --use-feature
Signed-off-by: Thomas Bechtold<EMAIL_ADDRESS>

@toabctl please don't revert it. without this change i would not be able to bootstrap in teuthology in my own environment. could you please use a similar change like https://github.com/ceph/ceph/pull/37527 ?

@tchaikov done

@toabctl  thanks for the detailed commit message!


[Feature Request] 10-Inch Mini Rack

Hey Jazwa!
I saw your post on r/homelab and this seems like a super cool project!
I'd be down to print rackstack in a 10-inch mini rack form factor. I tried to do this myself but couldn't figure out how to do so in OpenSCAD :(
The changes that would have to be made are:

Increase width to 10 inches (currently possible by adding a custom profile in rackFrame.scad)
Use the EIA-310 rack unit spacing
Accommodate M6 hardware for rack mount-items
Increase mainRail.scad width and depth to accommodate larger M6 hardware

Thanks for your project, and if you're able to do this I'd 100% be down to test a prototype!

This has been requested by a couple of people already. I'll look into when I get the time. (I don't think it would be a lot of work, but I'm probably going to eat those words later.) Thank you for your interest!

Hi there, I just found your project and it looks amazing! I’m interested in printing a 10” version of this too and was wondering if either of you had got any further with the required changes? Thanks!

I'm new to networking racks and openSCAD, but am I correct that items 2-4 in the OP are only needed if you're trying to make the printed rack compatible with standard 10" mini racks?
In other words, if I was going to stick to the rackstack ecosystem and print my own mounts for switches, routers, etc., would I only need the first item?

Increase width to 10 inches (~255mm)  (currently possible by adding a custom profile in rackFrame.scad)

Thanks!

That's right, you would only need to increase the width to 10" from the outing of each rail or ~9.312" from the inside. Then you could use Rackstack's uniform hole spacing and M3 hardware.

That's the only thing that i have to do, how to get the 10 inch mounting in the front, the squares?


Adding CodeIgniter in hindi courses

What does this PR do?
Add resource(s) | Remove resource(s) | Add info | Improve repo
For resources
Description
Why is this valuable (or not)?
How do we know it's really free?
For book lists, is it a book? For course lists, is it a course? etc.
Checklist:

[x] Read our contributing guidelines.
[x] Search for duplicates.
[x] Include author(s) and platform where appropriate.
[x] Put lists in alphabetical order, correct spacing.
[x] Add needed indications (PDF, access notes, under construction).
[x] Used an informative name for this pull request.

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

as in our languages list, Codeigniter shoult be a subcategory under PHP

Thanks, and welcome to free-programming-books!


Migrate androidx

What does this change?

Migrate to AndroidX

Hmm. After update version in my project (not androidx), it can't build.
Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91
	is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
	Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:7:5-47:19 to override.

Hmm. After update version in my project (not androidx), it can't build.
Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91
	is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
	Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:7:5-47:19 to override.

This version use androidx.recyclerview.widget.RecyclerView instead of android.support.v7.widget.RecyclerView, so you should use previous version.


fix: ensure specifying <command-name>.exe on Windows works

Although this is obviously not cross platform, it would still be good to ensure this works on Windows.
There was a case sensitive comparison that should have been case insensitive.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


netopeer2 debian package fails to remove

The Debian package of netopeer2 has some cleanup routines that amongst other things try to remove models from sysrepo. However, this can easily fail e.g. due to dependencies to other models. For example:
root@d14d756ab51d:/app# sysrepoctl -i ieee1588-ptp.yang
root@d14d756ab51d:/app# apt remove -y netopeer2
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages will be REMOVED:
  netopeer2
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 919 kB disk space will be freed.
(Reading database ... 26707 files and directories currently installed.)
Removing netopeer2 (2.1.62-1) ...
[ERR] Module "ietf-interfaces" cannot be removed because some other installed module depends on it.
sysrepoctl error: Failed to uninstall modules (Operation failed)
For more details you may try to increase the verbosity up to "-v3".
dpkg: error processing package netopeer2 (--remove):
 installed netopeer2 package post-removal script subprocess returned error exit status 1
dpkg: too many errors, stopping
Errors were encountered while processing:
 netopeer2
Processing was halted because there were too many errors.
E: Sub-process /usr/bin/dpkg returned an error code (1)

A full reproducer is possible with the following Dockerfile:
FROM debian:bullseye
WORKDIR /app
RUN apt update && apt install -y git python3-pip
RUN pip3 install apkg
RUN git clone https://github.com/CESNET/libyang
RUN cd libyang && apkg build --build-dep
RUN apt install /app/libyang/pkg/pkgs/debian-11/libyang2_*/libyang2_*.deb
RUN apt install /app/libyang/pkg/pkgs/debian-11/libyang2_*/libyang2-dev_*.deb
RUN git clone https://github.com/CESNET/libnetconf2
RUN cd libnetconf2 && apkg build --build-dep
RUN apt install /app/libnetconf2/pkg/pkgs/debian-11/libnetconf2_*/libnetconf2-3_*.deb
RUN apt install /app/libnetconf2/pkg/pkgs/debian-11/libnetconf2_*/libnetconf2-dev_*.deb
RUN git clone https://github.com/sysrepo/sysrepo
RUN apt install -y libc6-dev libsystemd-dev systemd
RUN cd sysrepo && apkg build --build-dep
RUN apt install /app/sysrepo/pkg/pkgs/debian-11/sysrepo_*/libsysrepo7_*.deb
RUN apt install /app/sysrepo/pkg/pkgs/debian-11/sysrepo_*/libsysrepo-dev_*.deb
RUN apt install /app/sysrepo/pkg/pkgs/debian-11/sysrepo_*/sysrepo-tools_*.deb
RUN git clone https://github.com/CESNET/netopeer2
RUN cd netopeer2 && apkg build --build-dep
RUN apt install /app/netopeer2/pkg/pkgs/debian-11/netopeer2_*/netopeer2_*_amd64.deb
RUN curl -OJ https://raw.githubusercontent.com/YangModels/yang/main/standard/ieee/draft/1588/ieee1588-ptp.yang
RUN sysrepoctl -i ieee1588-ptp.yang
RUN apt remove -y netopeer2

Just building it with docker build . will fail with the error message shown above.

Okay, I had to guess what the problem is because I could not reproduce it with debugging symbols and the packages are without them but I guessed right, the crash is fixed now. As for the error itself, there is little I can do. The error mentions what module has the problem and you can change the owner/group of it using sysrepoctl and then it will all work normally.

The main problem is solved, thanks a lot!

Well, there are updates in the sense that we no longer have anyone handling official Debian package upload and leave it to the initiative of Debian maintainers. If you are one and are willing to handle this, I would provide assistance and even the scripts (in their basic working form, not strictly compliant with all the Debian requirements), we still try to maintain them in the repository directly.

We had a quick look and apparently there are a few bugs that are currently blocking further progress at Debian side for both netopeer2 and sysrepo:

https://bugs.debian.org/cgi-bin/pkgreport.cgi?archive=no&pend-exc=pending-fixed&pend-exc=fixed&pend-exc=done&sev-inc=critical&sev-inc=grave&sev-inc=serious&repeatmerged=no&src=sysrepo
https://bugs.debian.org/cgi-bin/pkgreport.cgi?archive=no&pend-exc=pending-fixed&pend-exc=fixed&pend-exc=done&sev-inc=critical&sev-inc=grave&sev-inc=serious&repeatmerged=no&src=netopeer2

Do some of these bugs trigger something in the back of your mind that is already handled in the GitHub issue tracker (or even already fixed)?
I am happy to support with fixing (likely not immediately, but within the next months) and/or responding to the Debian bug tracker to enable further progress on Debian side.

Okay, those versions are really old and most of the problems have already been fixed, I will fix the rest. So please contact me once you would like to make some progress with this, the first step would be to upload the current versions of the projects.

Sounds good! I created https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1065080 and hope to get an answer from  Ondřej, since he is the assigned Debian maintainer for the packages. If he does not respond or is busy, we should hopefully be able to take the next steps (like triggering a non-maintainer upload).

I doubt he will. He was the first maintainer we tried to have officially, it did not work out. Then there was another guy, which also cannot maintain it anymore so that is why I asked you.

I expected that, but Debian is quite strict with its maintainership, so at least we need to have it documented that we tried to contact him before proceeding. I also cannot promise yet that it will work out with us long term (I am also not a Debian maintainer, but we have one at our company), but one of our projects (https://github.com/Linutronix/detnetctl) heavily relies on YANG and sysrepo and we usually use Debian as distribution for our projects (we even have our own Debian-based build environment (https://elbe-rfs.org/)). So at least as long as we use YANG for our projects, we will have a motivation for up-to-date Debian packages for the YANG ecosystem.

Understood, that is more than we have now so no problem.


Added AIML Projects

I've added a folder for AIML projects with a project of car detection in real time using Python.
I look forward to adding more AI projects in the time to come, hope you like it!

Don't  add anything extra. Kindly follow rules to contribute!!!


Encryption

To be done after #5 .

Integrate safe_crypto and allow socket-collection sockets to encrypt data.
Investigate that encrypting the payload size header (plaintext size of 4 bytes representing a u32) always produces a consistent length of ciphertext. Otherwise it'll be quite hard to decrypt the payload size header at the recipient.
Encrypt everything that goes out to the wire and/or everything that comes in from the wire if the context in #5 says so.
Context Applicability:
a) Context should be applied before writing it to the socket. On event of a WOULDBLOCK, it would write it to the write queue. After that we should not touch the existing data that has thus already been marked to go out whenever the socket is ready again, even if the crypto-context changes in the meantime.
b) Context changes must take effect after a message that has started being read with the current context is completely read. So if we start with a crypto-context of anonymous-encrypted reads and we have read the first few bytes and are waiting for the rest and in the mean time the context changes to authenticated-reads, then continue reading the current set of bytes (mostly applicable to TCP as UDP would be all or none) until we can anonymously decrypt the payload size and read the payload further with the size we now have and decrypt that too anonymously. Any remaining bytes should of-course be read as being authenticated-encrypted content. If this is becoming quite "racy" or too much book-keeping then the context itself can be enhanced to have options like "Read x msgs anonymously and after that with authenticated encryption" etc., Investigate and present the solution here before implementing it.

Just did some testing on point 2.
extern crate safe_crypto;

use safe_crypto::gen_encrypt_keypair;

fn main() {
    let (pk, sk) = gen_encrypt_keypair();
    let shared_key = sk.shared_secret(&pk);
    for header_size in 0..65535u32 {
        let encrypted = shared_key.encrypt(&header_size).unwrap();
        assert_eq!(52, encrypted.len());
    }
}

libsodium always produces constant size array for encrypted number. Encrypted u32 is 52 bytes length array.


Add licensing info

On the Godot Assetlib you mentioned that the addon is under the MIT license, but nothing confirms it in the source code.
See https://choosealicense.com/ for information on how to apply a license to your work.

Thanks! Updated the repository with a LICENSE file.


Init container uses out of date api version

Subject of the issue
Describe your issue here
Environment
kind k8s 1.25.3
Steps to reproduce
kubectl run autocert-init -it --rm --image cr.step.sm/smallstep/autocert-init --restart Never

Expected behaviour
Script should finish successfully
Actual behaviour
Deploying autocert...
service/autocert created
configmap/autocert-config created
deployment.apps/autocert created
clusterrole.rbac.authorization.k8s.io/autocert-controller created
clusterrolebinding.rbac.authorization.k8s.io/autocert-controller created
Waiting for deployment "autocert" rollout to finish: 0 of 1 updated replicas are available...
deployment "autocert" successfully rolled out
error: unable to recognize "STDIN": no matches for kind "MutatingWebhookConfiguration" in version "admissionregistration.k8s.io/v1beta1"
pod "autocert-init" deleted
pod default/autocert-init terminated (Error)

Additional context
The code in github is correct but the container seems to be out of date.

This issue was fixed with https://github.com/smallstep/autocert/commit/37b89c50de1fde939a0200d99be5aa7cf683c5bb


plex: Add aarch64 platform

Motivation for this change
The package fails to install in aarch64 architectures even though its marked for platform.linux which contains aarch64-linux
Things done
I've added the aarch64 build and moved the x86-64 build to Debian since there is no aarch64 build for RedHat.
building on x86-64
these derivations will be built:
  /nix/store/j8fywrsa852jgnn9026kpai33b7b0j97-plexmediaserver_<IP_ADDRESS>00-47c0d9038_amd64.deb.drv
  /nix/store/z670b91lg9p97zhmiwskky5ysq1a3nbj-plexmediaserver-<IP_ADDRESS>00-47c0d9038.drv
building '/nix/store/j8fywrsa852jgnn9026kpai33b7b0j97-plexmediaserver_<IP_ADDRESS>00-47c0d9038_amd64.deb.drv'...

trying https://downloads.plex.tv/plex-media-server-new/<IP_ADDRESS>00-47c0d9038/debian/plexmediaserver_<IP_ADDRESS>00-47c0d9038_amd64.deb
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 76.8M  100 76.8M    0     0  12.2M      0  0:00:06  0:00:06 --:--:-- 13.1M
building '/nix/store/z670b91lg9p97zhmiwskky5ysq1a3nbj-plexmediaserver-<IP_ADDRESS>00-47c0d9038.drv'...
unpacking sources
installing
post-installation fixup
checking for references to /build/ in /nix/store/n1lpwzhnkb6lpa3qp29iwx6wfwr4d9fb-plexmediaserver-<IP_ADDRESS>00-47c0d9038...
checking for references to /build/ in /nix/store/459n9xyb794380cdg2a6xi7zgaalv0sv-plexmediaserver-<IP_ADDRESS>00-47c0d9038-basedb...
/nix/store/n1lpwzhnkb6lpa3qp29iwx6wfwr4d9fb-plexmediaserver-<IP_ADDRESS>00-47c0d9038

and on a raspberry pi 4 (aarch64)
these derivations will be built:
  /nix/store/jn1w2l96mmwrj3639w793fdlp5n998cc-plexmediaserver_<IP_ADDRESS>00-47c0d9038_arm64.deb.drv
  /nix/store/ngn9gb730z7ibvg18pspaj71rvq0p00i-plexmediaserver-<IP_ADDRESS>00-47c0d9038.drv
building '/nix/store/jn1w2l96mmwrj3639w793fdlp5n998cc-plexmediaserver_<IP_ADDRESS>00-47c0d9038_arm64.deb.drv'...

trying https://downloads.plex.tv/plex-media-server-new/<IP_ADDRESS>00-47c0d9038/debian/plexmediaserver_<IP_ADDRESS>00-47c0d9038_arm64.deb
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 67.5M  100 67.5M    0     0  8052k      0  0:00:08  0:00:08 --:--:-- 4033k
building '/nix/store/ngn9gb730z7ibvg18pspaj71rvq0p00i-plexmediaserver-<IP_ADDRESS>00-47c0d9038.drv'...
unpacking sources
installing
post-installation fixup
checking for references to /build/ in /nix/store/x6zly5r8ssybk45pg8xhnli1g9asw4g4-plexmediaserver-<IP_ADDRESS>00-47c0d9038...
checking for references to /build/ in /nix/store/nsr4wm4kq4dhqj3q8x8mg9v2rcm4rnb4-plexmediaserver-<IP_ADDRESS>00-47c0d9038-basedb...
/nix/store/x6zly5r8ssybk45pg8xhnli1g9asw4g4-plexmediaserver-<IP_ADDRESS>00-47c0d9038

Result of nixpkgs-review pr 105000 run on x86_64-linux 1

2 packages built:

plex
plexRaw


[BUG] GIF file fails to open

PATTERN0.zip
in is nullptr
   auto in = ImageInput::open(filePath);
    if (in)
    {
        const ImageSpec &spec = in->spec();
        int xres              = spec.width;
        int yres              = spec.height;
        int channels          = spec.nchannels;
        in->close();
    }

I guess this is a feature request.

Works for me.
Do you get an error? (If in is nullptr, you can retrieve with OIIO::geterror()).
How sure are you that GIF support was compiled in at build time?

Is GIF another option?  It is not in the extension list.

Almost all formats are optional. I think only TIFF, PNG, and OpenEXR are hard failures if not found (and mostly because elements of those packages are used in OIIO in ways that are not confined strictly to reading those files).

As kind of a separate issue from whether OIIO should consider more dependencies to be non-optional, I don't have any explanation for why vcpkg doesn't make several of the options (for which it can easily build the dependencies) on by default.

The idea behind optional format dependencies is supposed to be: if a user doesn't have a package installed and doesn't particularly need that format, don't unnecessarily burden them with tracking down and building that dependency from scratch.
But with a package manager, there is no real burden on the user when the dependency is another package that the package manager can simply build itself by listing it as an oiio dependency. Vcpkg, I'm looking at you.

If gif is not in your extension list, then this whole thing is just because you don't have support compiled in. Closing the issue.


Build fails

Describe the bug
Currently a "cargo build" fails with the following error:
error[E0599]: no function or associated item named from_str_unchecked found for struct proc_macro2::Literal in the current scope
--> /Users/timvw/.cargo/registry/src/github.com-1ecc6299db9ec823/quote-1.0.11/src/runtime.rs:301:41
To Reproduce
cargo build
Expected behavior
the build does not fail

PEBKAC: was still working on outdated fork.

https://github.com/apache/arrow-datafusion/issues/1498
https://github.com/apache/arrow-datafusion/pull/1499
https://github.com/apache/arrow-datafusion/pull/1523
I think the only thing is to publish a new version on crates.io


支持 Physical Volume (PV) 自动故障隔离

是否可以扩展 Physical Volume (PV) 自动故障隔离？(扫描了代码 没有调用 pvmove vgreduce)

@nashtsai Thanks for your feedback.
This is a very practical suggestion. In a production environment, failures are inevitable, and the disk, data volume, and nodes may all be potential points of failure. We have already made some attempts for these scenarios, including isolation and recovery at the data volume level. These features(we call ai-ops including fault-management, fault-detect...) are not fully ready yet, but if you have any specific requirements, feel free to describe them.


Dynamic Calibratior underwater

Hi ！ I have a question, which material is required to print the DynamicCalibrator target when using DynamicCalibrator underwater? What should I pay attention to when printing? How can Dynamic Calibrator be used underwater to complete calibration faster?
https://www.intel.com/content/dam/support/us/en/documents/emerging-technologies/intel-realsense-technology/print-target-fixed-width.pdf

Hi @hfdlwt  A pre-made Dynamic Calibration target board product made from special material is available from Intel for $1500 USD that is suitable for use in large underwater spaces such as pools.  Because of this special material (information is not available about the material used) this large-scale target cannot be self-printed on paper by RealSense users.
https://store.intelrealsense.com/buy-intel-realsense-d400-cameras-calibration-target.html
For smaller underwater spaces such as fish aquariums, the free downloadable print target should be sufficient.
https://dev.intelrealsense.com/docs/dynamic-calibration-print-target
If you are printing the target yourself for underwater use then it should presumably be enclosed in a rigid plastic see-through sleeve so that the surface remains flat like when mounted on a wall.  Googling for the term rigid document holder waterproof will provide some examples of possible products to seal the printed target in.
There is an extensive discussion about underwater calibration with the Dynamic Calibration tool at https://github.com/IntelRealSense/realsense-ros/issues/1723
The discussion is so long that a lot of it is hidden under a cut, so I recommend going to https://github.com/IntelRealSense/realsense-ros/issues/1723#issuecomment-802741234 first and clicking the '25 hidden items' link to show the entire discussion.
Once the full discussion is uncovered, to shorten reading time I also recommend reading the advice by RealSense team member agrunnet at https://github.com/IntelRealSense/realsense-ros/issues/1723#issuecomment-808406783 and the comments beneath it.

Thank you @MartyG-RealSense , but I have another question. Should I need to print the gray area in the middle? If there are no gray areas, is there any impact?

Yes, in order for the Dynamic Calibration to work you should print the entire page 1 of the PDF target document without editing it, keeping everything including the text on the page.  Page 2 does not need to be printed.

Thanks @MartyG-RealSense  , Can I customize the calibration board with materials such as aluminum oxide?

I am not aware of othe RealSense users who have attempted this but as long as the materials do not make the target harder for the camera to read (for example, by being reflective or colored black) then I do not see a reason why it would not be possible.

Hi @hfdlwt  Do you require further assistance with this case, please?  Thanks!

Case closed due to no further comments received.


Fix typo. Improve order of prompts.

I think grouping the questions by topic makes sense - or why do I get asked about custom steps, then about translations and then about custom steps again? Any specific reason?

Thanks!


Remove gf library in MKL

Do not use gf library in MKL. Even after I install the entire MKL library it is still not found. After removing it, the MKL code can still run. I'm not sure why that library is included.
Does it make sense?
Test Plan: Build Caffe2 with MKL linked statically. using the following flag:
scripts/build_local.sh -DBUILD_BINARY=ON -DBUILD_SHARE_DIR=ON -DBUILD_OBSERVERS=ON -DUSE_ZSTD=ON -DBLAS=MKL -DMKL_USE_STATIC_LIBS=ON -DMKL_USE_SINGLE_DYNAMIC_LIBRARY=OFF
Run caffe2_benchmark with MKL and some models can run successfully

sgtm

MKL build is passing. Merging.


add docker compose support

I would close this PR since it doesn't follow the CONTRIBUTING guidelines -- All changes are welcome as long as no code is involved


Update delfin integration guide for new features

…ce collection features

What type of PR is this?

Uncomment only one  /kind <> line, hit enter to put that in a new line, and remove leading whitespace from that line:
/kind new feature
/kind bug fix
/kind cleanup
/kind revert change
/kind design
/kind documentation
/kind enhancement

What this PR does / why we need it:
Update third party delfin integration documentation for new performance collection
Which issue(s) this PR fixes:

Fixes #
Test Report Added?:

Uncomment only one  /kind <> line, hit enter to put that in a new line, and remove leading whitespace from that line:
/kind TESTED
/kind NOT-TESTED

Test Report:

Special notes for your reviewer:

LGTM


Most members of std::allocate are deprecated in C++17

Replace them by their cousins from std::allocator_traits.
Signed-off-by: Daniela Engert<EMAIL_ADDRESS>

@chhenning I think you can merge it too, no?

This is included in the planning towards C++14/17 discussion here https://github.com/boostorg/gil/discussions/676


Modify the history_trades table to be friendlier for price aggregation

In preparation for #94, modifying the history_trades table can assist in simpler aggregation.
The main two issues to handle:

history_trades has no time of creation, only operation id. This requires joining with the history_ledgers to get exact times.
The separation of buyers and sellers is not relevant for aggregation and forces every query to handle both possible directions.

A proposition for this table, assuming there's a history_assets lookup_table. (https://github.com/stellar/horizon/issues/378)
CREATE TABLE history_trades (
  history_operation_id BIGINT NOT NULL,
  ledger_closed_at TIMESTAMP NOT NULL,
  "order" INTEGER NOT NULL,
  offer_id BIGINT NOT NULL,
  base_asset_id BIGINT NOT NULL REFERENCES history_assets(id),
  base_volume BIGINT NOT NULL CHECK (base_volume > 0),
  counter_asset_id BIGINT NOT NULL REFERENCES history_assets(id),
  counter_volume BIGINT NOT NULL CHECK (counter_volume > 0),
  CHECK(base_asset_id < counter_asset_id) -- Check that convention is followed.
);

CREATE INDEX htrd_pair_time_lookup ON history_trades USING BTREE(base_asset_id, counter_asset_id, ledger_closed_at);
CREATE INDEX htrd_time_lookup ON history_trades USING BTREE(ledger_closed_at);
CREATE INDEX htrd_counter_lookup ON history_trades USING BTREE(counter_asset_id);
-- Are the following indexes actually used?
CREATE UNIQUE INDEX htrd_pid ON history_trades USING btree (history_operation_id, "order");
CREATE INDEX htrd_by_offer ON history_trades USING btree (offer_id);


Embrace Resource Owners

Kubernetes already supports hierarchical ownership and cascading deletion.  Rather than doing this ourselves, we should use owner references to do the heavy lifting and remove a bunch of code and RBAC permissions e.g.

identity

network

server

security group

security group rule

Thus we can delete things anywhere in the hierarchy and get the correct cascading semantics.
Open question... deleting a security group while in use by a server will fail, how do we handle this?

For any newbies undertaking this task, read https://kubernetes.io/docs/concepts/overview/working-with-objects/owners-dependents/ especially the foreground/blocking deletion semantics.


Anacona Prompt Add

Hi,
Please add Anaconda prompt to list.
I installed anaconda, but I can't see it in terminal list.
Please help me.

you can add the following section under "profiles" key in profiles.json to add Anaconda into the list. You might need to change the paths depending on where you installed Anaconda. (the following example is for Anaconda3 installed on the default location)
{
    "acrylicOpacity" : 0.9,
    "closeOnExit" : true,
    "colorScheme" : "Campbell",
    "commandline" : "cmd.exe /K %USERPROFILE%\\Anaconda3\\Scripts\\activate.bat %USERPROFILE%\\Anaconda3",
    "cursorColor" : "#FFFFFF",
    "cursorShape" : "bar",
    "fontFace" : "Consolas",
    "fontSize" : 14,
    "guid" : "{0caa0dad-35be-5f56-a8ff-afceeeaa6100}",
    "historySize" : 9001,
    "icon" : "%USERPROFILE%/Anaconda3/Menu/anaconda-navigator.ico",
    "name" : "Anaconda3",
    "padding" : "0, 0, 0, 0",
    "snapOnInput" : true,
    "startingDirectory" : "%USERPROFILE%",
    "useAcrylic" : true
}

Thank you for your reply.
I want to if the anaconda is installed on my system, terminal recognize it and add above script automatically.
Thank you.

This is a /dupe of #2283. Thanks for the request!


updated README for TextThresher

@JasmineDeng Please merge https://github.com/Goodly/TextThresher/pull/12/files before merging this to master. Thanks!

👍 :shipit:

These updated dev instructions are must-have, so I went ahead and merged.
The deploy instructions do still need updating, I think the deploy code also needs some attention. So will be logical to update that together later.


Virtual Assistant: confusing prompts in calendar and email

Project
Name:
Language:
Description
Testing VA results changes to prompts for calendar/email.

To Reproduce
Virtual Assistant: prompt updates in calendar/email
Calendar:
•	Current: Alright, I will send an invite to [participant alias], what is the subject of the meeting? Or you can say skip to use the default title.
Updated (skipping default in prompt): Alright, I have included [participant alias]; [email], what is the subject of the meeting?
•	Current: Okay, I will send this to [name participant]: [email]. If this is not the [name participant] you were looking for, let me know.
o	Yes/No routes wrong
•	Current: What do you want to add in the meeting details?
Updated: What do you want to add as content?
•	Current: The event is on tomorrow from 8 - 8.30 AM.
Updated: The event is [tomorrow/date/day], from 8:00 AM till 9:00 AM
Email:
•	Current: What is the subject of the email? Or you can input skip to bypass it.
Updated (skipping default in prompt): What is the subject of the email?
•	Current: Would you like to see your email overview again? You can also ask me to forward, reply, delete this email for you, or show the next/previous page
Updated: Want to go back to the email overview? Or you can ask me to complete an action on this email.
•	Current: Do you want to see the content of the first email? I can show any email for you, just let me know by naming out the subject or from whom.
Updated: Want to know the content of the first email? Let me know if you want to know the next or another email.

Expected behavior

Screenshots

Additional context

@Quirinevwm Thanks for this, what might be easier if your willing - is for me to send you some github instructions and pointers to the language files for English so you can quickly/easily can make these changes and review all responses at the same time?

@darrenj yess good idea!


Is there a way to defer validation until after init and trigger it manually?

Question
I'd like to defer validation until after __init__, ideally only when I call it manually.  This way pydantic models could be worked with similar to Django models in that they don't require all the required fields to be passed in when initializing them, i.e.
from typing import List
from pydantic import BaseModel, validate_model, ValidationError

class SomeModel(BaseModel):
    id: int
    title: str
    tags: List[str]

model = SomeModel()                                # this fails validation due to the missing required fields
model.id = 1
model.title = 'Title'
model.tags = ['foo', 'bar', 'baz']
try:
    validate_model(model, model.__values__)        # is there an instance method for this?
    print(model.json())
except ValidationError:
    pass

Right now, if I want to do something like this, I'd have to assemble the values in a dict and pass them to the constructor, which is ugly compared to the nice OO syntax pydantic provides.  For this trivial example that's not a big deal, but I need to assemble models with large sets of fields populated from a variety of functions.  This is currently done by passing around and updating lot of dicts, which is clunky and hard-to-read, and that's one of the reasons I want to move to the clearer syntax of dataclasses or pydantic in the first place.
One workaround is to give all the fields default values, but if they're ultimately required fields, then there's no way to actually validate their presence.
In other words, it'd be good if there were a way to validate a model when you need to, such as before serializing, but without requiring that it be valid at all moments throughout its existence.

Not impossible to do, but I doubt it would actually be used by many people.
Probably better to setup a your own custom dataclass which defers validation.
Simple example:
from datetime import datetime
from pydantic.dataclasses import dataclass

@dataclass
class User:
    id: int
    name: str = 'John Doe'
    signup_ts: datetime = None

User.validate = User.__post_init__
User.__post_init__ = lambda _: None

user = User(id='xxx', signup_ts='2032-06-21T12:00')
print(user)
#> User(id='xxx', name='John Doe', signup_ts='2032-06-21T12:00')

user.validate()
#> ValidationError....

Let me know if that really doesn't work for you.

For what it's worth, I would very much use that feature, for exactly the reasons @lsemel described.

I ended up working around this by allowing all the fields to default to None.

@dbichko @lsemel Thanks to the change __values__ -> __dict__, as of pydantic 0.32 (I believe), this is possible:
from typing import Generic, TypeVar, TYPE_CHECKING, Dict, Any

from pydantic import BaseModel, ValidationError

T = TypeVar("T")

class DeferredValidationModel(BaseModel):
    if TYPE_CHECKING:
        __deferred_validation_kwargs__: Dict[str, Any]

    def __init__(self, **kwargs: Any) -> None:
        self.__dict__["__deferred_validation_kwargs__"] = kwargs

    def validate_after_deferral(self: T) -> T:
        super().__init__(**self.__deferred_validation_kwargs__)

class A(DeferredValidationModel):
    x: int

a = A(x="1")
print(a)
# A __deferred_validation_kwargs__={'x': '1'}

a.validate_after_deferral()
print(a)
# A x=1

a = A(x="a")
print(a)
# A __deferred_validation_kwargs__={'x': 'a'}

try:
    a.validate_after_deferral()
except ValidationError as exc:
    print(exc)
"""
1 validation error for A
x
  value is not a valid integer (type=type_error.integer)
"""

I couldn't figure out how to backport it to the older versions using __values__ without running into recursion errors, but that might be possible.

(I edited my original answer with a typesafe version that works both in current pydantic and older pydantic.)

Any plans to include the above snippet as a part of the library? Looks promising to me

This feature would be great!

This feature would lead to much cleaner code.

No, I have no plans to support this.
It might become easier to hack a solution to this in v2.

I've had a need for this, just posting my solution here.
In my case, I have several steps of a data processing pipeline that create instances of my objects that are stored intermediately prior to validation, and I want to defer validating them to the end because if there's a ValidationError I want to write code to handle that error in one place (at the end of the pipeline) rather than handling it at several prior steps of my pipeline when the objects are created.
To clarify with the example below, I'm first creating objects with instance = Range.construct(minimum=Fraction(3,1), maximum=Fraction(4,5)) at various points, then later calling validated_instance = instance.reinit() as I've implemented below.
All I have is this method on my model (ignore the model details in this example):
class Range(BaseModel):
    minimum: Optional[Fraction] = Field(...)
    maximum: Optional[Fraction] = Field(...)

    def reinit(self):
        self.__init__(**super().dict())

In my case, I was also overwriting Range.dict() (not shown) to serialize these objects correctly, so I needed to call super() to get the original dict() implementation. If you haven't overwritten the dict() method, you can implement the same thing by calling self.dict() rather than super().dict().

I constantly need a deferred validation when ingesting data from anything apart databases, which is 90% of the use-cases I have e.g.

Load data from multiple jsons
Extract data from text
Data from multiple API calls
Messy data which is cleaned step by step beyond what makes sense to do it in one go using validators.

Data comes in one by one, you need an extra container to store the data, either a dict or a non-pydantic class containing the same fields. It is just double the work, hard to maintain. I have lots of projects containing two identical classes...
It would be so nice to be able to say "dont to anything until I flip the switch".
Now that version 2 is here perhaps it is easier to implement?


Not getting alignment properly

Hi!
I trained tacotron2 more than 60000 steps but I cannot get alignment properly.
The alignment graph is as follows. Does anyone know the cause of this?

I'm training using 100 samples of elderly voice data selected from the common voice dataset.
Training performance was not good in previous attempts, so I looked for other issues.

if the batch size is reduced, the learning rate must also be reduced

        use_saved_learning_rate=False,
        learning_rate=0.25*1e-3,
        weight_decay=1e-6,
        grad_clip_thresh=1.0,
        batch_size=16, #64
        mask_padding=True  # set model's padded outputs to padded values
    )

padding_idx=0 should be added as a hyperparameter to the embedding

But sadly it didn't work.

Use Sox to remove silence in the audio file. It's not yet a complete success, but some improvements have been made.

import subprocess
import os
import glob

def remove_silence(input_file, output_file):
    try:
        # sox
        subprocess.run([
            'sox', input_file, output_file, 'silence', '2', '0.1', '1%', 'reverse', 'silence', '2', '0.1', '1%', 'reverse'
        ], check=True)
        print(f'Successfully removed silence from {input_file} and saved to {output_file}')
    except subprocess.CalledProcessError as e:
        print(f'Error occurred: {e}')

def process_folder(input_folder, output_folder):
    # mkdir output folder
    os.makedirs(output_folder, exist_ok=True)

    # process all of the wav files in the input_folder
    for wav_file in glob.glob(os.path.join(input_folder, '*.wav')):
        file_name = os.path.basename(wav_file)
        output_wav = os.path.join(output_folder, file_name)
        remove_silence(wav_file, output_wav)

resampling your audio as 22050
check your audio bit depth and change max_wav_value in hparams.py

https://www.semanticscholar.org/reader/57c38167e0fa7c045c7fa6d9783216c7d725f6ad


Papi support

This change adds support for resolving all PAPI placeholders in the commands used for a reward (and not just the placeholders of this plugin).

+1 could use this. Why is this still not merged?


After reprovisioning the webshell rejects logons

After pulling most recent branch and re-provisioning both shell and web, everything appears to work correctly except for login on the webshell. After the update the correct passwords (which work on the web login still) no longer work for the shell.

Resolved by re-provisioning with correctly set WIP and SIP values.

Note for future: this is related to #155 (Persist overridden settings)